@esic-lab/data-core-ui 0.0.76 → 0.0.77
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.
- package/dist/assets/STO-logo.svg +92 -92
- package/dist/index.css +2 -1
- package/dist/index.d.mts +25 -1
- package/dist/index.d.ts +25 -1
- package/dist/index.js +550 -415
- package/dist/index.mjs +528 -395
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -402,6 +402,8 @@ __export(index_exports, {
|
|
|
402
402
|
TertiaryButton: () => TertiaryButton,
|
|
403
403
|
TextAreaInput: () => TextAreaInput,
|
|
404
404
|
TextInput: () => TextInput,
|
|
405
|
+
TimePickerBasic: () => TimePickerBasic,
|
|
406
|
+
TimePickerRangePicker: () => TimePickerRangePicker,
|
|
405
407
|
TopNavBar: () => TopNavBar,
|
|
406
408
|
messageError: () => messageError,
|
|
407
409
|
messageInfo: () => messageInfo,
|
|
@@ -1785,28 +1787,28 @@ function DatePickerRange({
|
|
|
1785
1787
|
] });
|
|
1786
1788
|
}
|
|
1787
1789
|
|
|
1788
|
-
// src/
|
|
1790
|
+
// src/TimePicker/TimePickerBasic/TimePickerBasic.tsx
|
|
1789
1791
|
var import_antd8 = require("antd");
|
|
1792
|
+
var import_dayjs3 = __toESM(require_dayjs_min());
|
|
1793
|
+
var import_th_TH = __toESM(require("antd/locale/th_TH.js"));
|
|
1790
1794
|
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1791
|
-
function
|
|
1795
|
+
function TimePickerBasic({
|
|
1792
1796
|
value,
|
|
1793
1797
|
onChange,
|
|
1794
1798
|
required,
|
|
1795
1799
|
label,
|
|
1796
1800
|
error,
|
|
1801
|
+
placeholder,
|
|
1797
1802
|
disabled,
|
|
1798
|
-
|
|
1799
|
-
defaultFormat,
|
|
1800
|
-
className,
|
|
1801
|
-
placeholder = "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E2A\u0E35"
|
|
1803
|
+
className
|
|
1802
1804
|
}) {
|
|
1803
1805
|
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1804
1806
|
import_antd8.ConfigProvider,
|
|
1805
1807
|
{
|
|
1808
|
+
locale: import_th_TH.default,
|
|
1806
1809
|
theme: {
|
|
1807
1810
|
token: {
|
|
1808
|
-
fontFamily: "Kanit"
|
|
1809
|
-
fontSize: 16
|
|
1811
|
+
fontFamily: "Kanit"
|
|
1810
1812
|
}
|
|
1811
1813
|
},
|
|
1812
1814
|
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "container-input", children: [
|
|
@@ -1816,7 +1818,112 @@ function ColorPickerBasic({
|
|
|
1816
1818
|
required && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "text-red-500", children: "*" })
|
|
1817
1819
|
] }),
|
|
1818
1820
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1819
|
-
import_antd8.
|
|
1821
|
+
import_antd8.TimePicker,
|
|
1822
|
+
{
|
|
1823
|
+
format: "HH:mm",
|
|
1824
|
+
className: `body-1 w-full ${className ?? ""}`,
|
|
1825
|
+
value: value ? (0, import_dayjs3.default)(value) : null,
|
|
1826
|
+
placeholder,
|
|
1827
|
+
onChange: (time) => {
|
|
1828
|
+
onChange(time ? time.toDate() : null);
|
|
1829
|
+
},
|
|
1830
|
+
allowClear: true,
|
|
1831
|
+
disabled
|
|
1832
|
+
}
|
|
1833
|
+
),
|
|
1834
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-red-500 caption-1", children: error })
|
|
1835
|
+
] })
|
|
1836
|
+
}
|
|
1837
|
+
);
|
|
1838
|
+
}
|
|
1839
|
+
|
|
1840
|
+
// src/TimePicker/TimePickerRangePicker/TimerPickerRangePicker.tsx
|
|
1841
|
+
var import_antd9 = require("antd");
|
|
1842
|
+
var import_dayjs4 = __toESM(require_dayjs_min());
|
|
1843
|
+
var import_th_TH2 = __toESM(require("antd/locale/th_TH.js"));
|
|
1844
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
1845
|
+
function TimePickerRangePicker({
|
|
1846
|
+
value,
|
|
1847
|
+
onChange,
|
|
1848
|
+
placeholder = ["\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19", "\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14"],
|
|
1849
|
+
label,
|
|
1850
|
+
required,
|
|
1851
|
+
error,
|
|
1852
|
+
disabled,
|
|
1853
|
+
className
|
|
1854
|
+
}) {
|
|
1855
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1856
|
+
import_antd9.ConfigProvider,
|
|
1857
|
+
{
|
|
1858
|
+
locale: import_th_TH2.default,
|
|
1859
|
+
theme: {
|
|
1860
|
+
token: {
|
|
1861
|
+
fontFamily: "Kanit"
|
|
1862
|
+
}
|
|
1863
|
+
},
|
|
1864
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "container-input", children: [
|
|
1865
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { children: [
|
|
1866
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "body-1", children: label }),
|
|
1867
|
+
" ",
|
|
1868
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "text-red-500", children: "*" })
|
|
1869
|
+
] }),
|
|
1870
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
1871
|
+
import_antd9.TimePicker.RangePicker,
|
|
1872
|
+
{
|
|
1873
|
+
format: "HH:mm",
|
|
1874
|
+
value: value ? [value[0] ? (0, import_dayjs4.default)(value[0]) : null, value[1] ? (0, import_dayjs4.default)(value[1]) : null] : null,
|
|
1875
|
+
placeholder,
|
|
1876
|
+
className: `body-1 w-full ${className ?? ""}`,
|
|
1877
|
+
onChange: (dates, dateStrings) => {
|
|
1878
|
+
if (!dates) {
|
|
1879
|
+
onChange(null);
|
|
1880
|
+
} else {
|
|
1881
|
+
onChange([dates[0] ? dates[0].toDate() : null, dates[1] ? dates[1].toDate() : null]);
|
|
1882
|
+
}
|
|
1883
|
+
},
|
|
1884
|
+
allowClear: true,
|
|
1885
|
+
disabled,
|
|
1886
|
+
showNow: true
|
|
1887
|
+
}
|
|
1888
|
+
),
|
|
1889
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("p", { className: "text-red-500 caption-1", children: error })
|
|
1890
|
+
] })
|
|
1891
|
+
}
|
|
1892
|
+
);
|
|
1893
|
+
}
|
|
1894
|
+
|
|
1895
|
+
// src/ColorPicker/ColorPickerBasic/ColorPicker.tsx
|
|
1896
|
+
var import_antd10 = require("antd");
|
|
1897
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
1898
|
+
function ColorPickerBasic({
|
|
1899
|
+
value,
|
|
1900
|
+
onChange,
|
|
1901
|
+
required,
|
|
1902
|
+
label,
|
|
1903
|
+
error,
|
|
1904
|
+
disabled,
|
|
1905
|
+
allowClear,
|
|
1906
|
+
defaultFormat,
|
|
1907
|
+
className,
|
|
1908
|
+
placeholder = "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E2A\u0E35"
|
|
1909
|
+
}) {
|
|
1910
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
1911
|
+
import_antd10.ConfigProvider,
|
|
1912
|
+
{
|
|
1913
|
+
theme: {
|
|
1914
|
+
token: {
|
|
1915
|
+
fontFamily: "Kanit",
|
|
1916
|
+
fontSize: 16
|
|
1917
|
+
}
|
|
1918
|
+
},
|
|
1919
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "container-input", children: [
|
|
1920
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { children: [
|
|
1921
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "body-1", children: label }),
|
|
1922
|
+
" ",
|
|
1923
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "text-red-500", children: "*" })
|
|
1924
|
+
] }),
|
|
1925
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
1926
|
+
import_antd10.ColorPicker,
|
|
1820
1927
|
{
|
|
1821
1928
|
defaultFormat,
|
|
1822
1929
|
className: `body-1 w-full ${className ?? ""}`,
|
|
@@ -1827,9 +1934,9 @@ function ColorPickerBasic({
|
|
|
1827
1934
|
showText: (color) => {
|
|
1828
1935
|
const hex = color.toHexString();
|
|
1829
1936
|
if (!value) {
|
|
1830
|
-
return /* @__PURE__ */ (0,
|
|
1937
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { children: placeholder });
|
|
1831
1938
|
}
|
|
1832
|
-
return /* @__PURE__ */ (0,
|
|
1939
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("span", { children: [
|
|
1833
1940
|
"(",
|
|
1834
1941
|
hex,
|
|
1835
1942
|
")"
|
|
@@ -1838,14 +1945,14 @@ function ColorPickerBasic({
|
|
|
1838
1945
|
disabled
|
|
1839
1946
|
}
|
|
1840
1947
|
),
|
|
1841
|
-
error && /* @__PURE__ */ (0,
|
|
1948
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("p", { className: "text-red-500 caption-1", children: error })
|
|
1842
1949
|
] })
|
|
1843
1950
|
}
|
|
1844
1951
|
);
|
|
1845
1952
|
}
|
|
1846
1953
|
|
|
1847
1954
|
// src/ColorPicker/ColorPalettePickerBasic/ColorPalettePickerBasic.tsx
|
|
1848
|
-
var
|
|
1955
|
+
var import_antd11 = require("antd");
|
|
1849
1956
|
|
|
1850
1957
|
// node_modules/@babel/runtime/helpers/esm/typeof.js
|
|
1851
1958
|
function _typeof(o) {
|
|
@@ -2547,7 +2654,7 @@ var greyDark = ["#151515", "#1f1f1f", "#2d2d2d", "#393939", "#494949", "#5a5a5a"
|
|
|
2547
2654
|
greyDark.primary = greyDark[5];
|
|
2548
2655
|
|
|
2549
2656
|
// src/ColorPicker/ColorPalettePickerBasic/ColorPalettePickerBasic.tsx
|
|
2550
|
-
var
|
|
2657
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
2551
2658
|
function genPresets(presets = presetPalettes) {
|
|
2552
2659
|
return Object.entries(presets).map(([label, colors]) => ({
|
|
2553
2660
|
label,
|
|
@@ -2568,14 +2675,14 @@ function ColorPalettePickerBasic({
|
|
|
2568
2675
|
placeholder = "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E2A\u0E35",
|
|
2569
2676
|
onClear
|
|
2570
2677
|
}) {
|
|
2571
|
-
const { token } =
|
|
2678
|
+
const { token } = import_antd11.theme.useToken();
|
|
2572
2679
|
const presets = genPresets({
|
|
2573
2680
|
primary: generate(token.colorPrimary),
|
|
2574
2681
|
red,
|
|
2575
2682
|
green
|
|
2576
2683
|
});
|
|
2577
|
-
return /* @__PURE__ */ (0,
|
|
2578
|
-
|
|
2684
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
2685
|
+
import_antd11.ConfigProvider,
|
|
2579
2686
|
{
|
|
2580
2687
|
theme: {
|
|
2581
2688
|
token: {
|
|
@@ -2583,14 +2690,14 @@ function ColorPalettePickerBasic({
|
|
|
2583
2690
|
fontSize: 16
|
|
2584
2691
|
}
|
|
2585
2692
|
},
|
|
2586
|
-
children: /* @__PURE__ */ (0,
|
|
2587
|
-
/* @__PURE__ */ (0,
|
|
2588
|
-
/* @__PURE__ */ (0,
|
|
2693
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "container-input", children: [
|
|
2694
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { children: [
|
|
2695
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "body-1", children: label }),
|
|
2589
2696
|
" ",
|
|
2590
|
-
required && /* @__PURE__ */ (0,
|
|
2697
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "text-red-500", children: "*" })
|
|
2591
2698
|
] }),
|
|
2592
|
-
/* @__PURE__ */ (0,
|
|
2593
|
-
|
|
2699
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
2700
|
+
import_antd11.ColorPicker,
|
|
2594
2701
|
{
|
|
2595
2702
|
defaultFormat,
|
|
2596
2703
|
className: `body-1 w-full ${className ?? ""}`,
|
|
@@ -2602,9 +2709,9 @@ function ColorPalettePickerBasic({
|
|
|
2602
2709
|
showText: (color) => {
|
|
2603
2710
|
const hex = color.toHexString();
|
|
2604
2711
|
if (!value) {
|
|
2605
|
-
return /* @__PURE__ */ (0,
|
|
2712
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { children: placeholder });
|
|
2606
2713
|
}
|
|
2607
|
-
return /* @__PURE__ */ (0,
|
|
2714
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("span", { children: [
|
|
2608
2715
|
"(",
|
|
2609
2716
|
hex,
|
|
2610
2717
|
")"
|
|
@@ -2614,15 +2721,15 @@ function ColorPalettePickerBasic({
|
|
|
2614
2721
|
onClear
|
|
2615
2722
|
}
|
|
2616
2723
|
),
|
|
2617
|
-
error && /* @__PURE__ */ (0,
|
|
2724
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "text-red-500 caption-1", children: error })
|
|
2618
2725
|
] })
|
|
2619
2726
|
}
|
|
2620
2727
|
);
|
|
2621
2728
|
}
|
|
2622
2729
|
|
|
2623
2730
|
// src/Select/SelectField/SelectField.tsx
|
|
2624
|
-
var
|
|
2625
|
-
var
|
|
2731
|
+
var import_antd12 = require("antd");
|
|
2732
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
2626
2733
|
function SelectField({
|
|
2627
2734
|
value,
|
|
2628
2735
|
onChange,
|
|
@@ -2642,8 +2749,8 @@ function SelectField({
|
|
|
2642
2749
|
size = "middle",
|
|
2643
2750
|
allowClear = true
|
|
2644
2751
|
}) {
|
|
2645
|
-
return /* @__PURE__ */ (0,
|
|
2646
|
-
|
|
2752
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
2753
|
+
import_antd12.ConfigProvider,
|
|
2647
2754
|
{
|
|
2648
2755
|
theme: {
|
|
2649
2756
|
token: {
|
|
@@ -2651,14 +2758,14 @@ function SelectField({
|
|
|
2651
2758
|
fontSize: 16
|
|
2652
2759
|
}
|
|
2653
2760
|
},
|
|
2654
|
-
children: /* @__PURE__ */ (0,
|
|
2655
|
-
/* @__PURE__ */ (0,
|
|
2656
|
-
/* @__PURE__ */ (0,
|
|
2761
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "container-input", children: [
|
|
2762
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { children: [
|
|
2763
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "body-1", children: label }),
|
|
2657
2764
|
" ",
|
|
2658
|
-
required && /* @__PURE__ */ (0,
|
|
2765
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "text-red-500", children: "*" })
|
|
2659
2766
|
] }),
|
|
2660
|
-
/* @__PURE__ */ (0,
|
|
2661
|
-
|
|
2767
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
2768
|
+
import_antd12.Select,
|
|
2662
2769
|
{
|
|
2663
2770
|
size,
|
|
2664
2771
|
showSearch: true,
|
|
@@ -2673,7 +2780,7 @@ function SelectField({
|
|
|
2673
2780
|
options,
|
|
2674
2781
|
mode,
|
|
2675
2782
|
onSearch: handleSearch,
|
|
2676
|
-
prefix: prefix ? /* @__PURE__ */ (0,
|
|
2783
|
+
prefix: prefix ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
2677
2784
|
"span",
|
|
2678
2785
|
{
|
|
2679
2786
|
style: {
|
|
@@ -2690,15 +2797,15 @@ function SelectField({
|
|
|
2690
2797
|
onClear
|
|
2691
2798
|
}
|
|
2692
2799
|
),
|
|
2693
|
-
error && /* @__PURE__ */ (0,
|
|
2800
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", { className: "text-red-500 caption-1", children: error })
|
|
2694
2801
|
] })
|
|
2695
2802
|
}
|
|
2696
2803
|
);
|
|
2697
2804
|
}
|
|
2698
2805
|
|
|
2699
2806
|
// src/Select/SelectFieldGroup/SelectFieldGroup.tsx
|
|
2700
|
-
var
|
|
2701
|
-
var
|
|
2807
|
+
var import_antd13 = require("antd");
|
|
2808
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
2702
2809
|
function SelectFieldGroup({
|
|
2703
2810
|
value,
|
|
2704
2811
|
onChange,
|
|
@@ -2717,22 +2824,22 @@ function SelectFieldGroup({
|
|
|
2717
2824
|
size = "middle",
|
|
2718
2825
|
allowClear = true
|
|
2719
2826
|
}) {
|
|
2720
|
-
return /* @__PURE__ */ (0,
|
|
2721
|
-
|
|
2827
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
2828
|
+
import_antd13.ConfigProvider,
|
|
2722
2829
|
{
|
|
2723
2830
|
theme: {
|
|
2724
2831
|
token: {
|
|
2725
2832
|
fontFamily: "Kanit"
|
|
2726
2833
|
}
|
|
2727
2834
|
},
|
|
2728
|
-
children: /* @__PURE__ */ (0,
|
|
2729
|
-
/* @__PURE__ */ (0,
|
|
2730
|
-
/* @__PURE__ */ (0,
|
|
2835
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "container-input", children: [
|
|
2836
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { children: [
|
|
2837
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "body-1", children: label }),
|
|
2731
2838
|
" ",
|
|
2732
|
-
required && /* @__PURE__ */ (0,
|
|
2839
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "text-red-500", children: "*" })
|
|
2733
2840
|
] }),
|
|
2734
|
-
/* @__PURE__ */ (0,
|
|
2735
|
-
|
|
2841
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
2842
|
+
import_antd13.Select,
|
|
2736
2843
|
{
|
|
2737
2844
|
size,
|
|
2738
2845
|
showSearch: true,
|
|
@@ -2747,7 +2854,7 @@ function SelectFieldGroup({
|
|
|
2747
2854
|
options,
|
|
2748
2855
|
mode,
|
|
2749
2856
|
onSearch: handleSearch,
|
|
2750
|
-
prefix: prefix ? /* @__PURE__ */ (0,
|
|
2857
|
+
prefix: prefix ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
2751
2858
|
"span",
|
|
2752
2859
|
{
|
|
2753
2860
|
style: {
|
|
@@ -2763,16 +2870,16 @@ function SelectFieldGroup({
|
|
|
2763
2870
|
allowClear
|
|
2764
2871
|
}
|
|
2765
2872
|
),
|
|
2766
|
-
error && /* @__PURE__ */ (0,
|
|
2873
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("p", { className: "text-red-500 caption-1", children: error })
|
|
2767
2874
|
] })
|
|
2768
2875
|
}
|
|
2769
2876
|
);
|
|
2770
2877
|
}
|
|
2771
2878
|
|
|
2772
2879
|
// src/Select/SelectFieldStatus/SelectFieldStatus.tsx
|
|
2773
|
-
var
|
|
2880
|
+
var import_antd14 = require("antd");
|
|
2774
2881
|
var import_icons = require("@ant-design/icons");
|
|
2775
|
-
var
|
|
2882
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
2776
2883
|
function SelectFieldStatus({
|
|
2777
2884
|
value,
|
|
2778
2885
|
onChange,
|
|
@@ -2787,8 +2894,8 @@ function SelectFieldStatus({
|
|
|
2787
2894
|
allowClear = false
|
|
2788
2895
|
}) {
|
|
2789
2896
|
const selectedItem = options?.find((s) => s.value === value);
|
|
2790
|
-
return /* @__PURE__ */ (0,
|
|
2791
|
-
|
|
2897
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
2898
|
+
import_antd14.ConfigProvider,
|
|
2792
2899
|
{
|
|
2793
2900
|
theme: {
|
|
2794
2901
|
components: {
|
|
@@ -2803,18 +2910,18 @@ function SelectFieldStatus({
|
|
|
2803
2910
|
fontFamily: "Kanit"
|
|
2804
2911
|
}
|
|
2805
2912
|
},
|
|
2806
|
-
children: /* @__PURE__ */ (0,
|
|
2807
|
-
/* @__PURE__ */ (0,
|
|
2808
|
-
/* @__PURE__ */ (0,
|
|
2913
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "container-input", children: [
|
|
2914
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { children: [
|
|
2915
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "body-1", children: label }),
|
|
2809
2916
|
" ",
|
|
2810
|
-
required && /* @__PURE__ */ (0,
|
|
2917
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "text-red-500", children: "*" })
|
|
2811
2918
|
] }),
|
|
2812
|
-
/* @__PURE__ */ (0,
|
|
2813
|
-
|
|
2919
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
2920
|
+
import_antd14.Select,
|
|
2814
2921
|
{
|
|
2815
2922
|
size,
|
|
2816
2923
|
disabled,
|
|
2817
|
-
suffixIcon: /* @__PURE__ */ (0,
|
|
2924
|
+
suffixIcon: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_icons.DownOutlined, { style: { color: value ? "#fff" : "#D9D9D9" } }),
|
|
2818
2925
|
value: value ? value : void 0,
|
|
2819
2926
|
onChange,
|
|
2820
2927
|
className: `body-3 custom-select flex justify-center w-full ${className ?? ""} `,
|
|
@@ -2826,14 +2933,14 @@ function SelectFieldStatus({
|
|
|
2826
2933
|
allowClear
|
|
2827
2934
|
}
|
|
2828
2935
|
),
|
|
2829
|
-
error && /* @__PURE__ */ (0,
|
|
2936
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("p", { className: "text-red-500 caption-1", children: error })
|
|
2830
2937
|
] })
|
|
2831
2938
|
}
|
|
2832
2939
|
);
|
|
2833
2940
|
}
|
|
2834
2941
|
|
|
2835
2942
|
// src/Select/SelectFieldStatusReport/SelectFieldStatusReport.tsx
|
|
2836
|
-
var
|
|
2943
|
+
var import_antd15 = require("antd");
|
|
2837
2944
|
|
|
2838
2945
|
// src/Select/SelectFieldStatusReport/StatusReportMockup.ts
|
|
2839
2946
|
var status = [
|
|
@@ -2843,7 +2950,7 @@ var status = [
|
|
|
2843
2950
|
|
|
2844
2951
|
// src/Select/SelectFieldStatusReport/SelectFieldStatusReport.tsx
|
|
2845
2952
|
var import_icons2 = require("@ant-design/icons");
|
|
2846
|
-
var
|
|
2953
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
2847
2954
|
function SelectFieldStatusReport({
|
|
2848
2955
|
value,
|
|
2849
2956
|
onChange,
|
|
@@ -2858,8 +2965,8 @@ function SelectFieldStatusReport({
|
|
|
2858
2965
|
allowClear = false
|
|
2859
2966
|
}) {
|
|
2860
2967
|
const selectedItem = status.find((s) => s.value === value);
|
|
2861
|
-
return /* @__PURE__ */ (0,
|
|
2862
|
-
|
|
2968
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
2969
|
+
import_antd15.ConfigProvider,
|
|
2863
2970
|
{
|
|
2864
2971
|
theme: {
|
|
2865
2972
|
components: {
|
|
@@ -2874,18 +2981,18 @@ function SelectFieldStatusReport({
|
|
|
2874
2981
|
fontFamily: "Kanit"
|
|
2875
2982
|
}
|
|
2876
2983
|
},
|
|
2877
|
-
children: /* @__PURE__ */ (0,
|
|
2878
|
-
/* @__PURE__ */ (0,
|
|
2879
|
-
/* @__PURE__ */ (0,
|
|
2984
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "container-input", children: [
|
|
2985
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { children: [
|
|
2986
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "body-1", children: label }),
|
|
2880
2987
|
" ",
|
|
2881
|
-
required && /* @__PURE__ */ (0,
|
|
2988
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "text-red-500", children: "*" })
|
|
2882
2989
|
] }),
|
|
2883
|
-
/* @__PURE__ */ (0,
|
|
2884
|
-
|
|
2990
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
2991
|
+
import_antd15.Select,
|
|
2885
2992
|
{
|
|
2886
2993
|
size,
|
|
2887
2994
|
disabled,
|
|
2888
|
-
suffixIcon: /* @__PURE__ */ (0,
|
|
2995
|
+
suffixIcon: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_icons2.DownOutlined, { style: { color: value ? "#fff" : "#D9D9D9" } }),
|
|
2889
2996
|
value: value ? value : void 0,
|
|
2890
2997
|
onChange,
|
|
2891
2998
|
className: `body-3 custom-select flex justify-center w-full ${className ?? ""}`,
|
|
@@ -2897,16 +3004,16 @@ function SelectFieldStatusReport({
|
|
|
2897
3004
|
allowClear
|
|
2898
3005
|
}
|
|
2899
3006
|
),
|
|
2900
|
-
error && /* @__PURE__ */ (0,
|
|
3007
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("p", { className: "text-red-500 caption-1", children: error })
|
|
2901
3008
|
] })
|
|
2902
3009
|
}
|
|
2903
3010
|
);
|
|
2904
3011
|
}
|
|
2905
3012
|
|
|
2906
3013
|
// src/Select/SelectFieldTag/SelectFieldTag.tsx
|
|
2907
|
-
var
|
|
3014
|
+
var import_antd16 = require("antd");
|
|
2908
3015
|
var import_react10 = require("react");
|
|
2909
|
-
var
|
|
3016
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
2910
3017
|
function SelectFieldTag({
|
|
2911
3018
|
label,
|
|
2912
3019
|
required,
|
|
@@ -2941,22 +3048,22 @@ function SelectFieldTag({
|
|
|
2941
3048
|
}
|
|
2942
3049
|
onChange?.([]);
|
|
2943
3050
|
};
|
|
2944
|
-
return /* @__PURE__ */ (0,
|
|
2945
|
-
|
|
3051
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
3052
|
+
import_antd16.ConfigProvider,
|
|
2946
3053
|
{
|
|
2947
3054
|
theme: {
|
|
2948
3055
|
token: {
|
|
2949
3056
|
fontFamily: "Kanit"
|
|
2950
3057
|
}
|
|
2951
3058
|
},
|
|
2952
|
-
children: /* @__PURE__ */ (0,
|
|
2953
|
-
/* @__PURE__ */ (0,
|
|
2954
|
-
/* @__PURE__ */ (0,
|
|
3059
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "container-input", children: [
|
|
3060
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { children: [
|
|
3061
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "body-1", children: label }),
|
|
2955
3062
|
" ",
|
|
2956
|
-
required && /* @__PURE__ */ (0,
|
|
3063
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "text-red-500", children: "*" })
|
|
2957
3064
|
] }),
|
|
2958
|
-
/* @__PURE__ */ (0,
|
|
2959
|
-
|
|
3065
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
3066
|
+
import_antd16.Select,
|
|
2960
3067
|
{
|
|
2961
3068
|
size,
|
|
2962
3069
|
mode: "tags",
|
|
@@ -2975,7 +3082,7 @@ function SelectFieldTag({
|
|
|
2975
3082
|
onClear
|
|
2976
3083
|
}
|
|
2977
3084
|
),
|
|
2978
|
-
error && /* @__PURE__ */ (0,
|
|
3085
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("p", { className: "text-red-500 caption-1", children: error })
|
|
2979
3086
|
] })
|
|
2980
3087
|
}
|
|
2981
3088
|
);
|
|
@@ -2983,9 +3090,9 @@ function SelectFieldTag({
|
|
|
2983
3090
|
|
|
2984
3091
|
// src/Select/SelectCustom/SelectCustom.tsx
|
|
2985
3092
|
var import_icons_react8 = require("@tabler/icons-react");
|
|
2986
|
-
var
|
|
3093
|
+
var import_antd17 = require("antd");
|
|
2987
3094
|
var import_react11 = require("react");
|
|
2988
|
-
var
|
|
3095
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
2989
3096
|
function SelectCustom({
|
|
2990
3097
|
label = "\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23",
|
|
2991
3098
|
placeholder = "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01",
|
|
@@ -3016,8 +3123,8 @@ function SelectCustom({
|
|
|
3016
3123
|
});
|
|
3017
3124
|
};
|
|
3018
3125
|
const filteredOptions = options.filter((opt) => !valueList.includes(opt.value)).map((opt) => ({ value: opt.value, label: opt.label }));
|
|
3019
|
-
return /* @__PURE__ */ (0,
|
|
3020
|
-
|
|
3126
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
3127
|
+
import_antd17.ConfigProvider,
|
|
3021
3128
|
{
|
|
3022
3129
|
theme: {
|
|
3023
3130
|
token: {
|
|
@@ -3025,14 +3132,14 @@ function SelectCustom({
|
|
|
3025
3132
|
fontSize: 16
|
|
3026
3133
|
}
|
|
3027
3134
|
},
|
|
3028
|
-
children: /* @__PURE__ */ (0,
|
|
3029
|
-
/* @__PURE__ */ (0,
|
|
3030
|
-
/* @__PURE__ */ (0,
|
|
3135
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "container-input", children: [
|
|
3136
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { children: [
|
|
3137
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "body-1", children: label }),
|
|
3031
3138
|
" ",
|
|
3032
|
-
required && /* @__PURE__ */ (0,
|
|
3139
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "text-red-500", children: "*" })
|
|
3033
3140
|
] }),
|
|
3034
|
-
/* @__PURE__ */ (0,
|
|
3035
|
-
|
|
3141
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
3142
|
+
import_antd17.Select,
|
|
3036
3143
|
{
|
|
3037
3144
|
size,
|
|
3038
3145
|
value: value ? value : void 0,
|
|
@@ -3044,20 +3151,20 @@ function SelectCustom({
|
|
|
3044
3151
|
allowClear
|
|
3045
3152
|
}
|
|
3046
3153
|
),
|
|
3047
|
-
error && /* @__PURE__ */ (0,
|
|
3048
|
-
/* @__PURE__ */ (0,
|
|
3154
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { className: "text-red-500 caption-1", children: error }),
|
|
3155
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "w-full p-[2px] overflow-y-auto", children: valueList.map((v, index) => /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
|
|
3049
3156
|
"div",
|
|
3050
3157
|
{
|
|
3051
3158
|
className: "flex justify-between items-center py-[2px] body-1",
|
|
3052
3159
|
children: [
|
|
3053
|
-
/* @__PURE__ */ (0,
|
|
3054
|
-
/* @__PURE__ */ (0,
|
|
3160
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex flex-row gap-[8px]", children: [
|
|
3161
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("p", { children: [
|
|
3055
3162
|
index + 1,
|
|
3056
3163
|
"."
|
|
3057
3164
|
] }),
|
|
3058
|
-
/* @__PURE__ */ (0,
|
|
3165
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { children: v })
|
|
3059
3166
|
] }),
|
|
3060
|
-
/* @__PURE__ */ (0,
|
|
3167
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
3061
3168
|
import_icons_react8.IconTrash,
|
|
3062
3169
|
{
|
|
3063
3170
|
className: "cursor-pointer",
|
|
@@ -3074,7 +3181,7 @@ function SelectCustom({
|
|
|
3074
3181
|
}
|
|
3075
3182
|
|
|
3076
3183
|
// src/SortFilter/SortFilter.tsx
|
|
3077
|
-
var
|
|
3184
|
+
var import_antd18 = require("antd");
|
|
3078
3185
|
var import_icons3 = require("@ant-design/icons");
|
|
3079
3186
|
|
|
3080
3187
|
// src/SortFilter/DataMockSortFilter.ts
|
|
@@ -3107,7 +3214,7 @@ var quarters = [
|
|
|
3107
3214
|
// src/SortFilter/SortFilter.tsx
|
|
3108
3215
|
var import_react12 = require("react");
|
|
3109
3216
|
var import_icons_react9 = require("@tabler/icons-react");
|
|
3110
|
-
var
|
|
3217
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
3111
3218
|
function SortFilter({
|
|
3112
3219
|
showYear = true,
|
|
3113
3220
|
showQuarter = true,
|
|
@@ -3118,20 +3225,20 @@ function SortFilter({
|
|
|
3118
3225
|
const [yearValue, setYearValue] = (0, import_react12.useState)();
|
|
3119
3226
|
const [monthValue, setMonthValue] = (0, import_react12.useState)();
|
|
3120
3227
|
const [quarterValue, setQuartersValue] = (0, import_react12.useState)();
|
|
3121
|
-
return /* @__PURE__ */ (0,
|
|
3122
|
-
|
|
3228
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3229
|
+
import_antd18.ConfigProvider,
|
|
3123
3230
|
{
|
|
3124
3231
|
theme: {
|
|
3125
3232
|
token: {
|
|
3126
3233
|
fontFamily: "Kanit"
|
|
3127
3234
|
}
|
|
3128
3235
|
},
|
|
3129
|
-
children: /* @__PURE__ */ (0,
|
|
3130
|
-
/* @__PURE__ */ (0,
|
|
3131
|
-
showYear && /* @__PURE__ */ (0,
|
|
3236
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "w-full flex items-center justify-between", children: [
|
|
3237
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "w-full flex gap-[10px]", children: [
|
|
3238
|
+
showYear && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "w-[200px]", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3132
3239
|
SelectField,
|
|
3133
3240
|
{
|
|
3134
|
-
prefix: /* @__PURE__ */ (0,
|
|
3241
|
+
prefix: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_icons3.CalendarOutlined, {}),
|
|
3135
3242
|
onChange: setYearValue,
|
|
3136
3243
|
options: years.map((s) => ({
|
|
3137
3244
|
value: s.value,
|
|
@@ -3141,10 +3248,10 @@ function SortFilter({
|
|
|
3141
3248
|
value: yearValue
|
|
3142
3249
|
}
|
|
3143
3250
|
) }),
|
|
3144
|
-
showMonth && /* @__PURE__ */ (0,
|
|
3251
|
+
showMonth && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "w-[200px]", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3145
3252
|
SelectField,
|
|
3146
3253
|
{
|
|
3147
|
-
prefix: /* @__PURE__ */ (0,
|
|
3254
|
+
prefix: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_icons3.CalendarOutlined, {}),
|
|
3148
3255
|
onChange: setMonthValue,
|
|
3149
3256
|
options: months.map((s) => ({
|
|
3150
3257
|
value: s.value,
|
|
@@ -3154,10 +3261,10 @@ function SortFilter({
|
|
|
3154
3261
|
placeholder: "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E40\u0E14\u0E37\u0E2D\u0E19"
|
|
3155
3262
|
}
|
|
3156
3263
|
) }),
|
|
3157
|
-
showQuarter && /* @__PURE__ */ (0,
|
|
3264
|
+
showQuarter && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "w-[200px]", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3158
3265
|
SelectField,
|
|
3159
3266
|
{
|
|
3160
|
-
prefix: /* @__PURE__ */ (0,
|
|
3267
|
+
prefix: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_icons3.CalendarOutlined, {}),
|
|
3161
3268
|
onChange: setQuartersValue,
|
|
3162
3269
|
options: quarters.map((s) => ({
|
|
3163
3270
|
value: s.value,
|
|
@@ -3168,8 +3275,8 @@ function SortFilter({
|
|
|
3168
3275
|
}
|
|
3169
3276
|
) })
|
|
3170
3277
|
] }),
|
|
3171
|
-
/* @__PURE__ */ (0,
|
|
3172
|
-
/* @__PURE__ */ (0,
|
|
3278
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex gap-[10px]", children: [
|
|
3279
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3173
3280
|
import_icons_react9.IconSortDescending,
|
|
3174
3281
|
{
|
|
3175
3282
|
size: 24,
|
|
@@ -3177,7 +3284,7 @@ function SortFilter({
|
|
|
3177
3284
|
onClick: onSortClick
|
|
3178
3285
|
}
|
|
3179
3286
|
),
|
|
3180
|
-
/* @__PURE__ */ (0,
|
|
3287
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3181
3288
|
import_icons_react9.IconFilter,
|
|
3182
3289
|
{
|
|
3183
3290
|
size: 24,
|
|
@@ -3194,7 +3301,7 @@ function SortFilter({
|
|
|
3194
3301
|
// src/Upload/FileUploader/FileUploader.tsx
|
|
3195
3302
|
var import_icons_react10 = require("@tabler/icons-react");
|
|
3196
3303
|
var import_react13 = require("react");
|
|
3197
|
-
var
|
|
3304
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
3198
3305
|
function FileUploader({
|
|
3199
3306
|
onUpload,
|
|
3200
3307
|
onError,
|
|
@@ -3280,10 +3387,10 @@ function FileUploader({
|
|
|
3280
3387
|
}
|
|
3281
3388
|
if (inputRef.current) inputRef.current.value = "";
|
|
3282
3389
|
};
|
|
3283
|
-
return /* @__PURE__ */ (0,
|
|
3284
|
-
label && /* @__PURE__ */ (0,
|
|
3285
|
-
!readOnly && /* @__PURE__ */ (0,
|
|
3286
|
-
mode === "upload" ? /* @__PURE__ */ (0,
|
|
3390
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "w-full", children: [
|
|
3391
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "body-1", children: label }),
|
|
3392
|
+
!readOnly && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: uploaderWidth, children: [
|
|
3393
|
+
mode === "upload" ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
3287
3394
|
"button",
|
|
3288
3395
|
{
|
|
3289
3396
|
type: "button",
|
|
@@ -3291,16 +3398,16 @@ function FileUploader({
|
|
|
3291
3398
|
className: `h-[34px] flex justify-center items-center gap-2 w-full rounded-[2px] border border-gray-200 body-1
|
|
3292
3399
|
${disabled ? "cursor-not-allowed text-gray-400 bg-gray-100" : "cursor-pointer hover:text-primary-400 hover:border-primary-200 duration-300"}`,
|
|
3293
3400
|
disabled: disabled ? disabled : uploading,
|
|
3294
|
-
children: uploading ? /* @__PURE__ */ (0,
|
|
3295
|
-
/* @__PURE__ */ (0,
|
|
3401
|
+
children: uploading ? /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
|
|
3402
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Loader, { size: 15 }),
|
|
3296
3403
|
" \u0E01\u0E33\u0E25\u0E31\u0E07\u0E2D\u0E31\u0E1B\u0E42\u0E2B\u0E25\u0E14"
|
|
3297
|
-
] }) : /* @__PURE__ */ (0,
|
|
3298
|
-
/* @__PURE__ */ (0,
|
|
3404
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
|
|
3405
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_icons_react10.IconUpload, { size: 15, className: "text-gray-400" }),
|
|
3299
3406
|
" ",
|
|
3300
3407
|
uploadText
|
|
3301
3408
|
] })
|
|
3302
3409
|
}
|
|
3303
|
-
) : /* @__PURE__ */ (0,
|
|
3410
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
3304
3411
|
"div",
|
|
3305
3412
|
{
|
|
3306
3413
|
className: `w-full min-h-[120px] flex justify-center items-center border-2 border-dashed rounded-md p-4 transition-colors body-1
|
|
@@ -3314,17 +3421,17 @@ function FileUploader({
|
|
|
3314
3421
|
},
|
|
3315
3422
|
onDragLeave: () => setDragActive(false),
|
|
3316
3423
|
onDrop: handleDrop,
|
|
3317
|
-
children: uploading ? /* @__PURE__ */ (0,
|
|
3318
|
-
/* @__PURE__ */ (0,
|
|
3424
|
+
children: uploading ? /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex justify-center items-center gap-2", children: [
|
|
3425
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Loader, { size: 15 }),
|
|
3319
3426
|
" \u0E01\u0E33\u0E25\u0E31\u0E07\u0E2D\u0E31\u0E1B\u0E42\u0E2B\u0E25\u0E14"
|
|
3320
|
-
] }) : /* @__PURE__ */ (0,
|
|
3321
|
-
/* @__PURE__ */ (0,
|
|
3322
|
-
/* @__PURE__ */ (0,
|
|
3323
|
-
/* @__PURE__ */ (0,
|
|
3427
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex flex-col items-center gap-2", children: [
|
|
3428
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_icons_react10.IconUpload, { size: 20 }),
|
|
3429
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "body-1", children: "\u0E04\u0E25\u0E34\u0E01\u0E2B\u0E23\u0E37\u0E2D\u0E25\u0E32\u0E01\u0E44\u0E1F\u0E25\u0E4C\u0E21\u0E32\u0E17\u0E35\u0E48\u0E1A\u0E23\u0E34\u0E40\u0E27\u0E13\u0E19\u0E35\u0E49\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E2D\u0E31\u0E1B\u0E42\u0E2B\u0E25\u0E14" }),
|
|
3430
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "text-gray-400 body-3", children: "\u0E23\u0E2D\u0E07\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E2D\u0E31\u0E1B\u0E42\u0E2B\u0E25\u0E14\u0E41\u0E1A\u0E1A\u0E40\u0E14\u0E35\u0E48\u0E22\u0E27\u0E2B\u0E23\u0E37\u0E2D\u0E2B\u0E25\u0E32\u0E22\u0E44\u0E1F\u0E25\u0E4C" })
|
|
3324
3431
|
] })
|
|
3325
3432
|
}
|
|
3326
3433
|
),
|
|
3327
|
-
/* @__PURE__ */ (0,
|
|
3434
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
3328
3435
|
"input",
|
|
3329
3436
|
{
|
|
3330
3437
|
type: "file",
|
|
@@ -3337,8 +3444,8 @@ function FileUploader({
|
|
|
3337
3444
|
}
|
|
3338
3445
|
)
|
|
3339
3446
|
] }),
|
|
3340
|
-
description && /* @__PURE__ */ (0,
|
|
3341
|
-
/* @__PURE__ */ (0,
|
|
3447
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-gray-400 body-4", children: description }),
|
|
3448
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: `mt-[8px] ${attachWidth}`, children: filesToDisplay.length !== 0 && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex flex-col rounded-[6px] body-1 border-[1px] border-gray-300", children: filesToDisplay.map((file, index) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
3342
3449
|
"div",
|
|
3343
3450
|
{
|
|
3344
3451
|
className: `flex px-[16px] hover:bg-primary-50 hover:cursor-pointer
|
|
@@ -3348,11 +3455,11 @@ function FileUploader({
|
|
|
3348
3455
|
${index !== 0 ? "pt-[16px]" : ""}`,
|
|
3349
3456
|
onClick: () => onClickFile && onClickFile(file),
|
|
3350
3457
|
children: [
|
|
3351
|
-
/* @__PURE__ */ (0,
|
|
3352
|
-
/* @__PURE__ */ (0,
|
|
3353
|
-
/* @__PURE__ */ (0,
|
|
3458
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex gap-2 overflow-hidden", children: [
|
|
3459
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "w-[24px] h-[24px] flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_icons_react10.IconFileDescription, { size: 20 }) }),
|
|
3460
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "truncate", children: file.name || file.fileName })
|
|
3354
3461
|
] }),
|
|
3355
|
-
!readOnly && !disabled && /* @__PURE__ */ (0,
|
|
3462
|
+
!readOnly && !disabled && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
3356
3463
|
import_icons_react10.IconTrash,
|
|
3357
3464
|
{
|
|
3358
3465
|
size: 20,
|
|
@@ -3392,9 +3499,9 @@ function messageLoading(content, duration) {
|
|
|
3392
3499
|
}
|
|
3393
3500
|
|
|
3394
3501
|
// src/Breadcrumb/Breadcrumb.tsx
|
|
3395
|
-
var
|
|
3396
|
-
var
|
|
3397
|
-
var
|
|
3502
|
+
var import_antd19 = require("antd");
|
|
3503
|
+
var import_antd20 = require("antd");
|
|
3504
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
3398
3505
|
function Breadcrumbs({
|
|
3399
3506
|
items,
|
|
3400
3507
|
separator,
|
|
@@ -3402,16 +3509,16 @@ function Breadcrumbs({
|
|
|
3402
3509
|
classname,
|
|
3403
3510
|
params
|
|
3404
3511
|
}) {
|
|
3405
|
-
return /* @__PURE__ */ (0,
|
|
3406
|
-
|
|
3512
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3513
|
+
import_antd19.ConfigProvider,
|
|
3407
3514
|
{
|
|
3408
3515
|
theme: {
|
|
3409
3516
|
token: {
|
|
3410
3517
|
fontFamily: "Kanit"
|
|
3411
3518
|
}
|
|
3412
3519
|
},
|
|
3413
|
-
children: /* @__PURE__ */ (0,
|
|
3414
|
-
|
|
3520
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3521
|
+
import_antd20.Breadcrumb,
|
|
3415
3522
|
{
|
|
3416
3523
|
items,
|
|
3417
3524
|
separator,
|
|
@@ -3425,8 +3532,8 @@ function Breadcrumbs({
|
|
|
3425
3532
|
}
|
|
3426
3533
|
|
|
3427
3534
|
// src/HeadingPage/HeadingPage.tsx
|
|
3428
|
-
var
|
|
3429
|
-
var
|
|
3535
|
+
var import_antd21 = require("antd");
|
|
3536
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
3430
3537
|
function HeadingPage({ Heading }) {
|
|
3431
3538
|
const today = (/* @__PURE__ */ new Date()).toLocaleDateString("th-TH", {
|
|
3432
3539
|
weekday: "long",
|
|
@@ -3434,17 +3541,17 @@ function HeadingPage({ Heading }) {
|
|
|
3434
3541
|
month: "long",
|
|
3435
3542
|
year: "numeric"
|
|
3436
3543
|
});
|
|
3437
|
-
return /* @__PURE__ */ (0,
|
|
3438
|
-
|
|
3544
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3545
|
+
import_antd21.ConfigProvider,
|
|
3439
3546
|
{
|
|
3440
3547
|
theme: {
|
|
3441
3548
|
token: {
|
|
3442
3549
|
fontFamily: "Kanit"
|
|
3443
3550
|
}
|
|
3444
3551
|
},
|
|
3445
|
-
children: /* @__PURE__ */ (0,
|
|
3446
|
-
/* @__PURE__ */ (0,
|
|
3447
|
-
/* @__PURE__ */ (0,
|
|
3552
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex flex-col gap-[10px] px-[20px] py-[10px]", children: [
|
|
3553
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "headline-5", children: Heading }),
|
|
3554
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("p", { className: "body-1", children: [
|
|
3448
3555
|
" \u0E27\u0E31\u0E19\u0E19\u0E35\u0E49 ",
|
|
3449
3556
|
today
|
|
3450
3557
|
] })
|
|
@@ -3454,9 +3561,9 @@ function HeadingPage({ Heading }) {
|
|
|
3454
3561
|
}
|
|
3455
3562
|
|
|
3456
3563
|
// src/Progress/ProgressBar.tsx
|
|
3457
|
-
var
|
|
3564
|
+
var import_antd22 = require("antd");
|
|
3458
3565
|
var import_react14 = require("react");
|
|
3459
|
-
var
|
|
3566
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
3460
3567
|
function ProgressBar({
|
|
3461
3568
|
percent = 0,
|
|
3462
3569
|
size = "default",
|
|
@@ -3487,17 +3594,17 @@ function ProgressBar({
|
|
|
3487
3594
|
observer.observe(inner);
|
|
3488
3595
|
return () => observer.disconnect();
|
|
3489
3596
|
}, []);
|
|
3490
|
-
return /* @__PURE__ */ (0,
|
|
3491
|
-
|
|
3597
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
3598
|
+
import_antd22.ConfigProvider,
|
|
3492
3599
|
{
|
|
3493
3600
|
theme: {
|
|
3494
3601
|
token: {
|
|
3495
3602
|
fontFamily: "Kanit"
|
|
3496
3603
|
}
|
|
3497
3604
|
},
|
|
3498
|
-
children: /* @__PURE__ */ (0,
|
|
3499
|
-
/* @__PURE__ */ (0,
|
|
3500
|
-
|
|
3605
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "relative w-full", ref: progressRef, children: [
|
|
3606
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
3607
|
+
import_antd22.Progress,
|
|
3501
3608
|
{
|
|
3502
3609
|
className: "w-full",
|
|
3503
3610
|
percent,
|
|
@@ -3512,7 +3619,7 @@ function ProgressBar({
|
|
|
3512
3619
|
strokeColor
|
|
3513
3620
|
}
|
|
3514
3621
|
),
|
|
3515
|
-
barWidth > 0 && isCheckPoints && type !== "circle" && checkpoints.map((cp) => /* @__PURE__ */ (0,
|
|
3622
|
+
barWidth > 0 && isCheckPoints && type !== "circle" && checkpoints.map((cp) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
3516
3623
|
"div",
|
|
3517
3624
|
{
|
|
3518
3625
|
className: "checkpoint absolute top-0",
|
|
@@ -3534,7 +3641,7 @@ function ProgressBar({
|
|
|
3534
3641
|
}
|
|
3535
3642
|
|
|
3536
3643
|
// src/KpiSection/KpiSection.tsx
|
|
3537
|
-
var
|
|
3644
|
+
var import_antd23 = require("antd");
|
|
3538
3645
|
var import_react16 = require("react");
|
|
3539
3646
|
|
|
3540
3647
|
// src/KpiSection/hooks/useGetKpiSection.ts
|
|
@@ -3685,7 +3792,7 @@ function useGetKpiSection() {
|
|
|
3685
3792
|
|
|
3686
3793
|
// src/KpiSection/KpiSection.tsx
|
|
3687
3794
|
var import_icons_react11 = require("@tabler/icons-react");
|
|
3688
|
-
var
|
|
3795
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
3689
3796
|
function KpiSection({ type, onChangeKpiList }) {
|
|
3690
3797
|
const {
|
|
3691
3798
|
handleAddKpi,
|
|
@@ -3705,7 +3812,7 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3705
3812
|
itemErrors,
|
|
3706
3813
|
setItemErrors
|
|
3707
3814
|
} = useGetKpiSection();
|
|
3708
|
-
const [messageApi2, messageContainer] =
|
|
3815
|
+
const [messageApi2, messageContainer] = import_antd23.message.useMessage();
|
|
3709
3816
|
const [hasShownError, setHasShownError] = (0, import_react16.useState)(false);
|
|
3710
3817
|
(0, import_react16.useEffect)(() => {
|
|
3711
3818
|
setMessageApi(messageApi2);
|
|
@@ -3715,8 +3822,8 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3715
3822
|
onChangeKpiList(kpiList);
|
|
3716
3823
|
}
|
|
3717
3824
|
}, [kpiList]);
|
|
3718
|
-
return /* @__PURE__ */ (0,
|
|
3719
|
-
|
|
3825
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
3826
|
+
import_antd23.ConfigProvider,
|
|
3720
3827
|
{
|
|
3721
3828
|
theme: {
|
|
3722
3829
|
token: {
|
|
@@ -3724,11 +3831,11 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3724
3831
|
fontSize: 16
|
|
3725
3832
|
}
|
|
3726
3833
|
},
|
|
3727
|
-
children: /* @__PURE__ */ (0,
|
|
3834
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "container-input", children: [
|
|
3728
3835
|
messageContainer,
|
|
3729
|
-
type === "number" && /* @__PURE__ */ (0,
|
|
3730
|
-
/* @__PURE__ */ (0,
|
|
3731
|
-
/* @__PURE__ */ (0,
|
|
3836
|
+
type === "number" && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "space-y-4", children: [
|
|
3837
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "grid grid-cols-[1fr_200px_200px_50px] w-full gap-[24px] items-start", children: [
|
|
3838
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
3732
3839
|
InputField,
|
|
3733
3840
|
{
|
|
3734
3841
|
value: nameKpi,
|
|
@@ -3740,7 +3847,7 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3740
3847
|
error: errors.nameKpi
|
|
3741
3848
|
}
|
|
3742
3849
|
),
|
|
3743
|
-
/* @__PURE__ */ (0,
|
|
3850
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
3744
3851
|
InputField,
|
|
3745
3852
|
{
|
|
3746
3853
|
value: kpiValue,
|
|
@@ -3764,7 +3871,7 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3764
3871
|
error: errors.kpiValue
|
|
3765
3872
|
}
|
|
3766
3873
|
),
|
|
3767
|
-
/* @__PURE__ */ (0,
|
|
3874
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
3768
3875
|
InputField,
|
|
3769
3876
|
{
|
|
3770
3877
|
value: unitValue,
|
|
@@ -3776,7 +3883,7 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3776
3883
|
error: errors.unitValue
|
|
3777
3884
|
}
|
|
3778
3885
|
),
|
|
3779
|
-
/* @__PURE__ */ (0,
|
|
3886
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: `flex justify-end mt-[28px]`, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
3780
3887
|
import_icons_react11.IconCirclePlus,
|
|
3781
3888
|
{
|
|
3782
3889
|
className: "w-[40px] h-[40px] cursor-pointer hover:scale-110 transition",
|
|
@@ -3785,17 +3892,17 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3785
3892
|
}
|
|
3786
3893
|
) })
|
|
3787
3894
|
] }),
|
|
3788
|
-
/* @__PURE__ */ (0,
|
|
3895
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { children: kpiList.map((kpi, index) => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
|
|
3789
3896
|
"div",
|
|
3790
3897
|
{
|
|
3791
3898
|
className: "grid grid-cols-[30px_1fr_100px_120px_80px] items-start py-2 body-1 gap-[8px]",
|
|
3792
3899
|
children: [
|
|
3793
|
-
/* @__PURE__ */ (0,
|
|
3900
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("p", { className: `body-1 ${kpi.isEditing ? "mt-[12px]" : ""}`, children: [
|
|
3794
3901
|
index + 1,
|
|
3795
3902
|
"."
|
|
3796
3903
|
] }),
|
|
3797
|
-
kpi.isEditing ? /* @__PURE__ */ (0,
|
|
3798
|
-
/* @__PURE__ */ (0,
|
|
3904
|
+
kpi.isEditing ? /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, { children: [
|
|
3905
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
3799
3906
|
InputField,
|
|
3800
3907
|
{
|
|
3801
3908
|
value: kpi.name,
|
|
@@ -3805,7 +3912,7 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3805
3912
|
error: itemErrors[kpi.id]?.name
|
|
3806
3913
|
}
|
|
3807
3914
|
),
|
|
3808
|
-
/* @__PURE__ */ (0,
|
|
3915
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
3809
3916
|
InputField,
|
|
3810
3917
|
{
|
|
3811
3918
|
value: kpi.value?.toString(),
|
|
@@ -3830,7 +3937,7 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3830
3937
|
error: itemErrors[kpi.id]?.value
|
|
3831
3938
|
}
|
|
3832
3939
|
),
|
|
3833
|
-
/* @__PURE__ */ (0,
|
|
3940
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
3834
3941
|
InputField,
|
|
3835
3942
|
{
|
|
3836
3943
|
value: kpi.unit,
|
|
@@ -3840,29 +3947,29 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3840
3947
|
error: itemErrors[kpi.id]?.unit
|
|
3841
3948
|
}
|
|
3842
3949
|
),
|
|
3843
|
-
/* @__PURE__ */ (0,
|
|
3950
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
|
|
3844
3951
|
"div",
|
|
3845
3952
|
{
|
|
3846
3953
|
className: `flex gap-2 justify-end self-center ${!!itemErrors[kpi.id]?.value || !!itemErrors[kpi.id]?.unit || !!itemErrors[kpi.id]?.name ? "mt-[-12px]" : ""}`,
|
|
3847
3954
|
children: [
|
|
3848
|
-
/* @__PURE__ */ (0,
|
|
3955
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
3849
3956
|
import_icons_react11.IconCheck,
|
|
3850
3957
|
{
|
|
3851
3958
|
className: "w-[30px] h-[30px] cursor-pointer",
|
|
3852
3959
|
onClick: () => handleSave(kpi.id, type)
|
|
3853
3960
|
}
|
|
3854
3961
|
),
|
|
3855
|
-
/* @__PURE__ */ (0,
|
|
3962
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_icons_react11.IconX, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleCancel(kpi.id) })
|
|
3856
3963
|
]
|
|
3857
3964
|
}
|
|
3858
3965
|
)
|
|
3859
|
-
] }) : /* @__PURE__ */ (0,
|
|
3860
|
-
/* @__PURE__ */ (0,
|
|
3861
|
-
/* @__PURE__ */ (0,
|
|
3862
|
-
/* @__PURE__ */ (0,
|
|
3863
|
-
/* @__PURE__ */ (0,
|
|
3864
|
-
/* @__PURE__ */ (0,
|
|
3865
|
-
/* @__PURE__ */ (0,
|
|
3966
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, { children: [
|
|
3967
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "body-1", children: kpi.name }),
|
|
3968
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "body-1", children: kpi.value }),
|
|
3969
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "body-1", children: kpi.unit }),
|
|
3970
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex gap-3 justify-end", children: [
|
|
3971
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_icons_react11.IconPencil, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleEdit(kpi.id) }),
|
|
3972
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_icons_react11.IconTrash, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleDelete(kpi.id) })
|
|
3866
3973
|
] })
|
|
3867
3974
|
] })
|
|
3868
3975
|
]
|
|
@@ -3870,9 +3977,9 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3870
3977
|
kpi.id
|
|
3871
3978
|
)) })
|
|
3872
3979
|
] }),
|
|
3873
|
-
type === "text" && /* @__PURE__ */ (0,
|
|
3874
|
-
/* @__PURE__ */ (0,
|
|
3875
|
-
/* @__PURE__ */ (0,
|
|
3980
|
+
type === "text" && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "space-y-4", children: [
|
|
3981
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "grid grid-cols-[1fr_50px] w-full gap-[24px] items-start", children: [
|
|
3982
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
3876
3983
|
InputField,
|
|
3877
3984
|
{
|
|
3878
3985
|
value: nameKpi,
|
|
@@ -3884,7 +3991,7 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3884
3991
|
error: errors.nameKpi
|
|
3885
3992
|
}
|
|
3886
3993
|
),
|
|
3887
|
-
/* @__PURE__ */ (0,
|
|
3994
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: `flex justify-end mt-[28px]`, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
3888
3995
|
import_icons_react11.IconCirclePlus,
|
|
3889
3996
|
{
|
|
3890
3997
|
className: "w-[40px] h-[40px] cursor-pointer hover:scale-110 transition",
|
|
@@ -3893,13 +4000,13 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3893
4000
|
}
|
|
3894
4001
|
) })
|
|
3895
4002
|
] }),
|
|
3896
|
-
/* @__PURE__ */ (0,
|
|
3897
|
-
/* @__PURE__ */ (0,
|
|
4003
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { children: kpiList.map((kpi, index) => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "grid grid-cols-[30px_1fr_80px] items-start py-2 body-1 gap-[8px]", children: [
|
|
4004
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("p", { className: `body-1 ${kpi.isEditing ? "mt-[12px]" : ""}`, children: [
|
|
3898
4005
|
index + 1,
|
|
3899
4006
|
"."
|
|
3900
4007
|
] }),
|
|
3901
|
-
kpi.isEditing ? /* @__PURE__ */ (0,
|
|
3902
|
-
/* @__PURE__ */ (0,
|
|
4008
|
+
kpi.isEditing ? /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, { children: [
|
|
4009
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
3903
4010
|
InputField,
|
|
3904
4011
|
{
|
|
3905
4012
|
value: kpi.name,
|
|
@@ -3909,27 +4016,27 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3909
4016
|
error: itemErrors[kpi.id]?.name
|
|
3910
4017
|
}
|
|
3911
4018
|
),
|
|
3912
|
-
/* @__PURE__ */ (0,
|
|
4019
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
|
|
3913
4020
|
"div",
|
|
3914
4021
|
{
|
|
3915
4022
|
className: `flex gap-2 justify-end self-center ${!!itemErrors[kpi.id]?.name ? "mt-[-12px]" : ""}`,
|
|
3916
4023
|
children: [
|
|
3917
|
-
/* @__PURE__ */ (0,
|
|
4024
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
3918
4025
|
import_icons_react11.IconCheck,
|
|
3919
4026
|
{
|
|
3920
4027
|
className: "w-[30px] h-[30px] cursor-pointer",
|
|
3921
4028
|
onClick: () => handleSave(kpi.id, type)
|
|
3922
4029
|
}
|
|
3923
4030
|
),
|
|
3924
|
-
/* @__PURE__ */ (0,
|
|
4031
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_icons_react11.IconX, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleCancel(kpi.id) })
|
|
3925
4032
|
]
|
|
3926
4033
|
}
|
|
3927
4034
|
)
|
|
3928
|
-
] }) : /* @__PURE__ */ (0,
|
|
3929
|
-
/* @__PURE__ */ (0,
|
|
3930
|
-
/* @__PURE__ */ (0,
|
|
3931
|
-
/* @__PURE__ */ (0,
|
|
3932
|
-
/* @__PURE__ */ (0,
|
|
4035
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(import_jsx_runtime41.Fragment, { children: [
|
|
4036
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "body-1", children: kpi.name }),
|
|
4037
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex gap-3 justify-end", children: [
|
|
4038
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_icons_react11.IconPencil, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleEdit(kpi.id) }),
|
|
4039
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_icons_react11.IconTrash, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleDelete(kpi.id) })
|
|
3933
4040
|
] })
|
|
3934
4041
|
] })
|
|
3935
4042
|
] }, kpi.id)) })
|
|
@@ -3940,17 +4047,17 @@ function KpiSection({ type, onChangeKpiList }) {
|
|
|
3940
4047
|
}
|
|
3941
4048
|
|
|
3942
4049
|
// src/Modal/Modal/Modal.tsx
|
|
3943
|
-
var
|
|
3944
|
-
var
|
|
4050
|
+
var import_antd24 = require("antd");
|
|
4051
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
3945
4052
|
function AntDModal({ children, isOpen, width, onCancel }) {
|
|
3946
|
-
return /* @__PURE__ */ (0,
|
|
4053
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_antd24.Modal, { open: isOpen, onCancel, width, centered: true, footer: null, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { children }) }) });
|
|
3947
4054
|
}
|
|
3948
4055
|
|
|
3949
4056
|
// src/Indicator/Indicator/Indicator.tsx
|
|
3950
4057
|
var import_icons_react12 = require("@tabler/icons-react");
|
|
3951
4058
|
var import_react17 = require("react");
|
|
3952
|
-
var
|
|
3953
|
-
var
|
|
4059
|
+
var import_antd25 = require("antd");
|
|
4060
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
3954
4061
|
function Indicator({
|
|
3955
4062
|
option = [
|
|
3956
4063
|
{ value: "TEXT", label: "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21" },
|
|
@@ -4076,14 +4183,14 @@ function Indicator({
|
|
|
4076
4183
|
[name]: value
|
|
4077
4184
|
}));
|
|
4078
4185
|
};
|
|
4079
|
-
return /* @__PURE__ */ (0,
|
|
4080
|
-
/* @__PURE__ */ (0,
|
|
4186
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "w-full", children: [
|
|
4187
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
|
|
4081
4188
|
"div",
|
|
4082
4189
|
{
|
|
4083
4190
|
className: `space-x-2 grid ${valueSwitch === "TEXT" ? `grid-cols-[140px_1fr_50px]` : `grid-cols-[140px_1fr_200px_200px_50px]`} items-start`,
|
|
4084
4191
|
children: [
|
|
4085
|
-
/* @__PURE__ */ (0,
|
|
4086
|
-
/* @__PURE__ */ (0,
|
|
4192
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(SwitchSelect, { option, onClick: handleClick, value: valueSwitch, label: "\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17", required: true }),
|
|
4193
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4087
4194
|
InputField,
|
|
4088
4195
|
{
|
|
4089
4196
|
label: type === "TARGET" ? "\u0E0A\u0E37\u0E48\u0E2D\u0E01\u0E25\u0E38\u0E48\u0E21\u0E40\u0E1B\u0E49\u0E32\u0E2B\u0E21\u0E32\u0E22" : `\u0E0A\u0E37\u0E48\u0E2D\u0E15\u0E31\u0E27\u0E0A\u0E35\u0E49\u0E27\u0E31\u0E14${type === "OUTPUT" ? "\u0E1C\u0E25\u0E1C\u0E25\u0E34\u0E15" : "\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C"}`,
|
|
@@ -4098,8 +4205,8 @@ function Indicator({
|
|
|
4098
4205
|
error: addError.textValue
|
|
4099
4206
|
}
|
|
4100
4207
|
),
|
|
4101
|
-
valueSwitch === "NUMBER" && /* @__PURE__ */ (0,
|
|
4102
|
-
/* @__PURE__ */ (0,
|
|
4208
|
+
valueSwitch === "NUMBER" && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_jsx_runtime43.Fragment, { children: [
|
|
4209
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4103
4210
|
InputFieldNumber,
|
|
4104
4211
|
{
|
|
4105
4212
|
label: type === "TARGET" ? "\u0E04\u0E48\u0E32\u0E40\u0E1B\u0E49\u0E32\u0E2B\u0E21\u0E32\u0E22" : `\u0E04\u0E48\u0E32\u0E40\u0E1B\u0E49\u0E32\u0E2B\u0E21\u0E32\u0E22${type === "OUTPUT" ? "\u0E1C\u0E25\u0E1C\u0E25\u0E34\u0E15" : "\u0E1C\u0E25\u0E25\u0E31\u0E1E\u0E18\u0E4C"}`,
|
|
@@ -4115,7 +4222,7 @@ function Indicator({
|
|
|
4115
4222
|
error: addError.numberValue
|
|
4116
4223
|
}
|
|
4117
4224
|
),
|
|
4118
|
-
/* @__PURE__ */ (0,
|
|
4225
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4119
4226
|
InputField,
|
|
4120
4227
|
{
|
|
4121
4228
|
label: `\u0E2B\u0E19\u0E48\u0E27\u0E22`,
|
|
@@ -4131,19 +4238,19 @@ function Indicator({
|
|
|
4131
4238
|
}
|
|
4132
4239
|
)
|
|
4133
4240
|
] }),
|
|
4134
|
-
/* @__PURE__ */ (0,
|
|
4241
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_icons_react12.IconCirclePlus, { onClick: handleAddIndicator, className: "mt-8 cursor-pointer", size: 32 })
|
|
4135
4242
|
]
|
|
4136
4243
|
}
|
|
4137
4244
|
),
|
|
4138
|
-
/* @__PURE__ */ (0,
|
|
4245
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_jsx_runtime43.Fragment, { children: arrayData.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
|
|
4139
4246
|
"div",
|
|
4140
4247
|
{
|
|
4141
4248
|
className: `space-y-2 grid ${item.inputType === "TEXT" ? `grid-cols-[140px_1fr_50px_50px]` : `grid-cols-[140px_1fr_200px_150px_50px_50px]`} items-start`,
|
|
4142
4249
|
children: [
|
|
4143
|
-
/* @__PURE__ */ (0,
|
|
4144
|
-
index === editIndex ? /* @__PURE__ */ (0,
|
|
4145
|
-
/* @__PURE__ */ (0,
|
|
4146
|
-
|
|
4250
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "body-1 mt-2", children: item.inputType === "TEXT" ? "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21" : "\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02" }),
|
|
4251
|
+
index === editIndex ? /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-col gap-[8px]", children: [
|
|
4252
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4253
|
+
import_antd25.Input,
|
|
4147
4254
|
{
|
|
4148
4255
|
className: "body-1 mt-2",
|
|
4149
4256
|
variant: "underlined",
|
|
@@ -4155,12 +4262,12 @@ function Indicator({
|
|
|
4155
4262
|
}
|
|
4156
4263
|
}
|
|
4157
4264
|
),
|
|
4158
|
-
editError.textValue && /* @__PURE__ */ (0,
|
|
4159
|
-
] }) : /* @__PURE__ */ (0,
|
|
4160
|
-
item.inputType === "NUMBER" && /* @__PURE__ */ (0,
|
|
4161
|
-
index === editIndex ? /* @__PURE__ */ (0,
|
|
4162
|
-
/* @__PURE__ */ (0,
|
|
4163
|
-
|
|
4265
|
+
editError.textValue && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-red-500 caption-1", children: editError.textValue })
|
|
4266
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "body-1 mt-2", children: item.textValue }),
|
|
4267
|
+
item.inputType === "NUMBER" && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_jsx_runtime43.Fragment, { children: [
|
|
4268
|
+
index === editIndex ? /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-col gap-[8px]", children: [
|
|
4269
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4270
|
+
import_antd25.Input,
|
|
4164
4271
|
{
|
|
4165
4272
|
type: "number",
|
|
4166
4273
|
className: "body-1 mt-2",
|
|
@@ -4173,11 +4280,11 @@ function Indicator({
|
|
|
4173
4280
|
}
|
|
4174
4281
|
}
|
|
4175
4282
|
),
|
|
4176
|
-
editError.numberValue && /* @__PURE__ */ (0,
|
|
4177
|
-
] }) : /* @__PURE__ */ (0,
|
|
4178
|
-
index === editIndex ? /* @__PURE__ */ (0,
|
|
4179
|
-
/* @__PURE__ */ (0,
|
|
4180
|
-
|
|
4283
|
+
editError.numberValue && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-red-500 caption-1", children: editError.numberValue })
|
|
4284
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "body-1 mt-2", children: item.numberValue }),
|
|
4285
|
+
index === editIndex ? /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-col gap-[8px]", children: [
|
|
4286
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4287
|
+
import_antd25.Input,
|
|
4181
4288
|
{
|
|
4182
4289
|
className: "body-1 mt-2",
|
|
4183
4290
|
variant: "underlined",
|
|
@@ -4189,20 +4296,20 @@ function Indicator({
|
|
|
4189
4296
|
}
|
|
4190
4297
|
}
|
|
4191
4298
|
),
|
|
4192
|
-
editError.unit && /* @__PURE__ */ (0,
|
|
4193
|
-
] }) : /* @__PURE__ */ (0,
|
|
4299
|
+
editError.unit && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-red-500 caption-1", children: editError.unit })
|
|
4300
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "body-1 mt-2", children: item.unit })
|
|
4194
4301
|
] }),
|
|
4195
|
-
/* @__PURE__ */ (0,
|
|
4196
|
-
/* @__PURE__ */ (0,
|
|
4302
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "body-1 mt-2 flex", children: editIndex !== null ? editIndex === index ? /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex", children: [
|
|
4303
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4197
4304
|
import_icons_react12.IconCheck,
|
|
4198
4305
|
{
|
|
4199
4306
|
className: "cursor-pointer text-green-600",
|
|
4200
4307
|
onClick: () => handleConfirmEditIndicator(index)
|
|
4201
4308
|
}
|
|
4202
4309
|
),
|
|
4203
|
-
/* @__PURE__ */ (0,
|
|
4310
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_icons_react12.IconX, { className: "cursor-pointer text-red-600", onClick: handleCancelEditIndicator })
|
|
4204
4311
|
] }) : void 0 : false }),
|
|
4205
|
-
/* @__PURE__ */ (0,
|
|
4312
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "body-1 mt-2 cursor-pointer", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4206
4313
|
import_icons_react12.IconTrash,
|
|
4207
4314
|
{
|
|
4208
4315
|
onClick: () => {
|
|
@@ -4225,7 +4332,7 @@ function Indicator({
|
|
|
4225
4332
|
// src/FilterPopUp/FilterPopUp.tsx
|
|
4226
4333
|
var import_icons_react13 = require("@tabler/icons-react");
|
|
4227
4334
|
var import_react18 = require("react");
|
|
4228
|
-
var
|
|
4335
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
4229
4336
|
var FilterPopUp = (filter) => {
|
|
4230
4337
|
const [isAction, setIsAction] = (0, import_react18.useState)(true);
|
|
4231
4338
|
const [filterArray, setFilterArray] = (0, import_react18.useState)([""]);
|
|
@@ -4235,20 +4342,20 @@ var FilterPopUp = (filter) => {
|
|
|
4235
4342
|
const handleSubmitFilter = () => {
|
|
4236
4343
|
filter.handleSearch(filterArray);
|
|
4237
4344
|
};
|
|
4238
|
-
return /* @__PURE__ */ (0,
|
|
4239
|
-
/* @__PURE__ */ (0,
|
|
4240
|
-
/* @__PURE__ */ (0,
|
|
4345
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "relative", children: [
|
|
4346
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("button", { className: "flex px-2 py-1 rounded-lg border-1", onClick: () => setIsAction(!isAction), children: [
|
|
4347
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_icons_react13.IconFilter, {}),
|
|
4241
4348
|
"filter"
|
|
4242
4349
|
] }),
|
|
4243
|
-
isAction ? /* @__PURE__ */ (0,
|
|
4244
|
-
/* @__PURE__ */ (0,
|
|
4245
|
-
/* @__PURE__ */ (0,
|
|
4246
|
-
/* @__PURE__ */ (0,
|
|
4247
|
-
/* @__PURE__ */ (0,
|
|
4350
|
+
isAction ? /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "absolute bg-white p-5 rounded-lg shadow-2xl w-[600px]", children: [
|
|
4351
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex justify-end", children: [
|
|
4352
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex justify-end text-nowrap gap-2", children: [
|
|
4353
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(GhostButton, { title: "\u0E43\u0E0A\u0E49\u0E1F\u0E34\u0E25\u0E40\u0E15\u0E2D\u0E23\u0E4C", onClick: handleSubmitFilter, iconLeft: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_icons_react13.IconCheck, {}) }),
|
|
4354
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(GhostButton, { title: "\u0E25\u0E49\u0E32\u0E07\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14", onClick: handleClearFilter, iconLeft: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_icons_react13.IconTrash, {}) })
|
|
4248
4355
|
] }),
|
|
4249
4356
|
""
|
|
4250
4357
|
] }),
|
|
4251
|
-
/* @__PURE__ */ (0,
|
|
4358
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
4252
4359
|
SelectCustom,
|
|
4253
4360
|
{
|
|
4254
4361
|
options: filter.selectionFilter,
|
|
@@ -4263,8 +4370,8 @@ var FilterPopUp = (filter) => {
|
|
|
4263
4370
|
// src/ProfileSelect/ProfileSelect/ProfileSelect.tsx
|
|
4264
4371
|
var import_react19 = require("react");
|
|
4265
4372
|
var import_icons_react14 = require("@tabler/icons-react");
|
|
4266
|
-
var
|
|
4267
|
-
var
|
|
4373
|
+
var import_antd26 = require("antd");
|
|
4374
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
4268
4375
|
function ProfileSelect({
|
|
4269
4376
|
allUser,
|
|
4270
4377
|
assignUser,
|
|
@@ -4324,22 +4431,22 @@ function ProfileSelect({
|
|
|
4324
4431
|
const isSearching = normalizedSearch.length > 0;
|
|
4325
4432
|
const noResult = filteredAssigned.length === 0 && filteredUnassigned.length === 0;
|
|
4326
4433
|
const noUserOption = allUser.length === 0 && !isSearching;
|
|
4327
|
-
return /* @__PURE__ */ (0,
|
|
4328
|
-
mode === "icon" ? /* @__PURE__ */ (0,
|
|
4434
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { ref: containerRef, className: "relative body-1", children: [
|
|
4435
|
+
mode === "icon" ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
4329
4436
|
import_icons_react14.IconUsers,
|
|
4330
4437
|
{
|
|
4331
4438
|
size: 40,
|
|
4332
4439
|
className: "p-2 border rounded cursor-pointer bg-white",
|
|
4333
4440
|
onClick: () => setIsShowSelect(!isShowSelect)
|
|
4334
4441
|
}
|
|
4335
|
-
) }) : mode === "showAssign" ? /* @__PURE__ */ (0,
|
|
4442
|
+
) }) : mode === "showAssign" ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
4336
4443
|
"div",
|
|
4337
4444
|
{
|
|
4338
4445
|
className: `w-full h-[40px] flex items-center p-2 cursor-pointer ${className}`,
|
|
4339
4446
|
onClick: () => setIsShowSelect(!isShowSelect),
|
|
4340
|
-
children: visibleUsers.length === 0 ? placeholder ? /* @__PURE__ */ (0,
|
|
4341
|
-
/* @__PURE__ */ (0,
|
|
4342
|
-
/* @__PURE__ */ (0,
|
|
4447
|
+
children: visibleUsers.length === 0 ? placeholder ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "body-1 text-gray-400 select-none", children: placeholder }) : null : /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_jsx_runtime45.Fragment, { children: [
|
|
4448
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "flex -space-x-2", children: visibleUsers.map((user) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("label", { className: "relative group cursor-pointer", children: [
|
|
4449
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
4343
4450
|
"img",
|
|
4344
4451
|
{
|
|
4345
4452
|
src: user.profile,
|
|
@@ -4352,7 +4459,7 @@ function ProfileSelect({
|
|
|
4352
4459
|
className: "border border-white group-hover:border-3 group-hover:border-red-500 transition"
|
|
4353
4460
|
}
|
|
4354
4461
|
),
|
|
4355
|
-
/* @__PURE__ */ (0,
|
|
4462
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
4356
4463
|
"span",
|
|
4357
4464
|
{
|
|
4358
4465
|
className: "absolute top-0 right-0 -translate-y-2 translate-x-2 \r\n rounded-full bg-white opacity-0 group-hover:opacity-100 \r\n border-3 z-10 border-red-500 flex items-center justify-center transition",
|
|
@@ -4360,11 +4467,11 @@ function ProfileSelect({
|
|
|
4360
4467
|
e.stopPropagation();
|
|
4361
4468
|
onUpdateAssignUser(user, "remove");
|
|
4362
4469
|
},
|
|
4363
|
-
children: /* @__PURE__ */ (0,
|
|
4470
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_icons_react14.IconX, { className: "w-4 h-4 text-red-500" })
|
|
4364
4471
|
}
|
|
4365
4472
|
)
|
|
4366
4473
|
] }) }, user.id)) }),
|
|
4367
|
-
showPlus && /* @__PURE__ */ (0,
|
|
4474
|
+
showPlus && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
|
|
4368
4475
|
"div",
|
|
4369
4476
|
{
|
|
4370
4477
|
className: "border border-white flex items-center justify-center bg-gray-300 text-black text-sm ml-2",
|
|
@@ -4381,8 +4488,8 @@ function ProfileSelect({
|
|
|
4381
4488
|
)
|
|
4382
4489
|
] })
|
|
4383
4490
|
}
|
|
4384
|
-
) : /* @__PURE__ */ (0,
|
|
4385
|
-
visibleUsers.map((user) => /* @__PURE__ */ (0,
|
|
4491
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: `w-full h-[40px] flex -space-x-2 p-2 ${className}`, children: [
|
|
4492
|
+
visibleUsers.map((user) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "flex items-center ", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("label", { className: "relative group ", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
4386
4493
|
"img",
|
|
4387
4494
|
{
|
|
4388
4495
|
src: user.profile,
|
|
@@ -4395,7 +4502,7 @@ function ProfileSelect({
|
|
|
4395
4502
|
className: "border border-white transition"
|
|
4396
4503
|
}
|
|
4397
4504
|
) }) }, user.id)),
|
|
4398
|
-
showPlus && /* @__PURE__ */ (0,
|
|
4505
|
+
showPlus && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
|
|
4399
4506
|
"div",
|
|
4400
4507
|
{
|
|
4401
4508
|
className: "border border-white flex items-center justify-center bg-gray-300 text-black text-sm",
|
|
@@ -4411,16 +4518,16 @@ function ProfileSelect({
|
|
|
4411
4518
|
}
|
|
4412
4519
|
)
|
|
4413
4520
|
] }),
|
|
4414
|
-
isShowSelect ? /* @__PURE__ */ (0,
|
|
4521
|
+
isShowSelect ? /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
|
|
4415
4522
|
"div",
|
|
4416
4523
|
{
|
|
4417
4524
|
className: "absolute top-12 min-w-[261px] max-w-[400px] w-full h-[314px] p-2 text-xs border-1 rounded-sm z-20 bg-white",
|
|
4418
4525
|
ref: selectRef,
|
|
4419
4526
|
children: [
|
|
4420
|
-
/* @__PURE__ */ (0,
|
|
4421
|
-
/* @__PURE__ */ (0,
|
|
4422
|
-
/* @__PURE__ */ (0,
|
|
4423
|
-
|
|
4527
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "flex border-1 rounded-md p-2 gap-2 items-center", children: [
|
|
4528
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_icons_react14.IconSearch, {}),
|
|
4529
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
4530
|
+
import_antd26.Input,
|
|
4424
4531
|
{
|
|
4425
4532
|
variant: "borderless",
|
|
4426
4533
|
placeholder: "\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E0A\u0E37\u0E48\u0E2D",
|
|
@@ -4430,16 +4537,16 @@ function ProfileSelect({
|
|
|
4430
4537
|
}
|
|
4431
4538
|
)
|
|
4432
4539
|
] }),
|
|
4433
|
-
/* @__PURE__ */ (0,
|
|
4434
|
-
filteredAssigned.length > 0 && /* @__PURE__ */ (0,
|
|
4435
|
-
/* @__PURE__ */ (0,
|
|
4436
|
-
filteredAssigned.map((user) => /* @__PURE__ */ (0,
|
|
4540
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "overflow-y-auto h-[250px] pt-2 px-4 body-3", children: noUserOption ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "flex items-center justify-center h-full text-gray-400 select-none", children: "\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E21\u0E35\u0E1C\u0E39\u0E49\u0E04\u0E19\u0E43\u0E2B\u0E49\u0E40\u0E25\u0E37\u0E2D\u0E01" }) : isSearching && noResult ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "flex items-center justify-center h-full text-gray-400 select-none", children: "\u0E44\u0E21\u0E48\u0E1E\u0E1A\u0E1C\u0E39\u0E49\u0E04\u0E19\u0E17\u0E35\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32" }) : /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_jsx_runtime45.Fragment, { children: [
|
|
4541
|
+
filteredAssigned.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_jsx_runtime45.Fragment, { children: [
|
|
4542
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "mb-1", children: "\u0E2A\u0E21\u0E32\u0E0A\u0E34\u0E01\u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01" }),
|
|
4543
|
+
filteredAssigned.map((user) => /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
|
|
4437
4544
|
"button",
|
|
4438
4545
|
{
|
|
4439
4546
|
className: "flex items-center group my-1 w-full p-1 rounded hover:bg-gray-100",
|
|
4440
4547
|
children: [
|
|
4441
|
-
/* @__PURE__ */ (0,
|
|
4442
|
-
/* @__PURE__ */ (0,
|
|
4548
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "relative cursor-pointer", children: [
|
|
4549
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
4443
4550
|
"img",
|
|
4444
4551
|
{
|
|
4445
4552
|
src: user.profile,
|
|
@@ -4452,30 +4559,30 @@ function ProfileSelect({
|
|
|
4452
4559
|
className: "border-3 border-red-500"
|
|
4453
4560
|
}
|
|
4454
4561
|
),
|
|
4455
|
-
/* @__PURE__ */ (0,
|
|
4562
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
4456
4563
|
"span",
|
|
4457
4564
|
{
|
|
4458
4565
|
className: "absolute top-0 right-0 -translate-y-2 translate-x-2 \r\n rounded-full bg-white opacity-0 group-hover:opacity-100 \r\n border-3 border-red-500 flex items-center justify-center transition",
|
|
4459
4566
|
onClick: () => onUpdateAssignUser(user, "remove"),
|
|
4460
|
-
children: /* @__PURE__ */ (0,
|
|
4567
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_icons_react14.IconX, { className: "text-red-500", size: 15 })
|
|
4461
4568
|
}
|
|
4462
4569
|
)
|
|
4463
4570
|
] }),
|
|
4464
|
-
/* @__PURE__ */ (0,
|
|
4571
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ml-2", children: user.name })
|
|
4465
4572
|
]
|
|
4466
4573
|
},
|
|
4467
4574
|
user.id
|
|
4468
4575
|
))
|
|
4469
4576
|
] }),
|
|
4470
|
-
filteredUnassigned.length > 0 && /* @__PURE__ */ (0,
|
|
4471
|
-
/* @__PURE__ */ (0,
|
|
4472
|
-
filteredUnassigned.map((user) => /* @__PURE__ */ (0,
|
|
4577
|
+
filteredUnassigned.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_jsx_runtime45.Fragment, { children: [
|
|
4578
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "mt-2", children: "\u0E1C\u0E39\u0E49\u0E04\u0E19" }),
|
|
4579
|
+
filteredUnassigned.map((user) => /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
|
|
4473
4580
|
"button",
|
|
4474
4581
|
{
|
|
4475
4582
|
className: "flex items-center my-1 hover:bg-gray-100 w-full p-1 rounded",
|
|
4476
4583
|
onClick: () => onUpdateAssignUser(user),
|
|
4477
4584
|
children: [
|
|
4478
|
-
/* @__PURE__ */ (0,
|
|
4585
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
4479
4586
|
"img",
|
|
4480
4587
|
{
|
|
4481
4588
|
src: user.profile,
|
|
@@ -4488,7 +4595,7 @@ function ProfileSelect({
|
|
|
4488
4595
|
className: "border"
|
|
4489
4596
|
}
|
|
4490
4597
|
),
|
|
4491
|
-
/* @__PURE__ */ (0,
|
|
4598
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "ml-2", children: user.name })
|
|
4492
4599
|
]
|
|
4493
4600
|
},
|
|
4494
4601
|
user.id
|
|
@@ -4504,7 +4611,7 @@ function ProfileSelect({
|
|
|
4504
4611
|
// src/Button/QRCode/QRCode.tsx
|
|
4505
4612
|
var import_react20 = require("react");
|
|
4506
4613
|
var import_qrcode = __toESM(require("qrcode"));
|
|
4507
|
-
var
|
|
4614
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
4508
4615
|
var QRCodeGenerator = ({
|
|
4509
4616
|
url,
|
|
4510
4617
|
previewSize = 200,
|
|
@@ -4517,31 +4624,31 @@ var QRCodeGenerator = ({
|
|
|
4517
4624
|
const sizeOption = [
|
|
4518
4625
|
{
|
|
4519
4626
|
label: "64 x 64",
|
|
4520
|
-
value:
|
|
4627
|
+
value: 64
|
|
4521
4628
|
},
|
|
4522
4629
|
{
|
|
4523
4630
|
label: "128 x 128",
|
|
4524
|
-
value:
|
|
4631
|
+
value: 128
|
|
4525
4632
|
},
|
|
4526
4633
|
{
|
|
4527
4634
|
label: "256 x 256",
|
|
4528
|
-
value:
|
|
4635
|
+
value: 256
|
|
4529
4636
|
},
|
|
4530
4637
|
{
|
|
4531
4638
|
label: "512 x 512",
|
|
4532
|
-
value:
|
|
4639
|
+
value: 512
|
|
4533
4640
|
},
|
|
4534
4641
|
{
|
|
4535
4642
|
label: "1024 x 1024",
|
|
4536
|
-
value:
|
|
4643
|
+
value: 1024
|
|
4537
4644
|
},
|
|
4538
4645
|
{
|
|
4539
4646
|
label: "2048 x 2048",
|
|
4540
|
-
value:
|
|
4647
|
+
value: 2048
|
|
4541
4648
|
},
|
|
4542
4649
|
{
|
|
4543
4650
|
label: "4096 x 4096",
|
|
4544
|
-
value:
|
|
4651
|
+
value: 4096
|
|
4545
4652
|
}
|
|
4546
4653
|
];
|
|
4547
4654
|
const typeOption = [
|
|
@@ -4560,9 +4667,14 @@ var QRCodeGenerator = ({
|
|
|
4560
4667
|
];
|
|
4561
4668
|
(0, import_react20.useEffect)(() => {
|
|
4562
4669
|
if (!canvasRef.current) return;
|
|
4563
|
-
import_qrcode.default.toCanvas(
|
|
4564
|
-
|
|
4565
|
-
|
|
4670
|
+
import_qrcode.default.toCanvas(
|
|
4671
|
+
canvasRef.current,
|
|
4672
|
+
url,
|
|
4673
|
+
{ width: previewSize, margin: 1 },
|
|
4674
|
+
(error) => {
|
|
4675
|
+
if (error) console.error(error);
|
|
4676
|
+
}
|
|
4677
|
+
);
|
|
4566
4678
|
}, [url, previewSize]);
|
|
4567
4679
|
const download = async () => {
|
|
4568
4680
|
try {
|
|
@@ -4599,52 +4711,73 @@ var QRCodeGenerator = ({
|
|
|
4599
4711
|
a.click();
|
|
4600
4712
|
a.remove();
|
|
4601
4713
|
};
|
|
4602
|
-
return /* @__PURE__ */ (0,
|
|
4603
|
-
|
|
4604
|
-
|
|
4605
|
-
"
|
|
4606
|
-
|
|
4607
|
-
|
|
4608
|
-
|
|
4609
|
-
|
|
4610
|
-
|
|
4611
|
-
|
|
4612
|
-
|
|
4613
|
-
|
|
4614
|
-
|
|
4615
|
-
|
|
4616
|
-
|
|
4617
|
-
|
|
4618
|
-
|
|
4619
|
-
|
|
4620
|
-
|
|
4621
|
-
|
|
4622
|
-
|
|
4623
|
-
|
|
4624
|
-
|
|
4625
|
-
|
|
4626
|
-
|
|
4627
|
-
|
|
4628
|
-
|
|
4629
|
-
|
|
4630
|
-
|
|
4631
|
-
|
|
4632
|
-
|
|
4633
|
-
|
|
4634
|
-
|
|
4635
|
-
|
|
4636
|
-
|
|
4637
|
-
|
|
4638
|
-
|
|
4639
|
-
|
|
4714
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
|
|
4715
|
+
"div",
|
|
4716
|
+
{
|
|
4717
|
+
style: { display: "inline-flex", flexDirection: "column", gap: 8 },
|
|
4718
|
+
className: "justify-center items-center",
|
|
4719
|
+
children: [
|
|
4720
|
+
url === "" ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
4721
|
+
"div",
|
|
4722
|
+
{
|
|
4723
|
+
className: "border-1 p-2 mb-2",
|
|
4724
|
+
style: { width: `${previewSize}px`, height: `${previewSize}px` }
|
|
4725
|
+
}
|
|
4726
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("canvas", { ref: canvasRef, className: "border-1 p-2 mb-2" }),
|
|
4727
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
|
|
4728
|
+
"div",
|
|
4729
|
+
{
|
|
4730
|
+
style: {
|
|
4731
|
+
display: "flex",
|
|
4732
|
+
gap: 8,
|
|
4733
|
+
alignItems: "center",
|
|
4734
|
+
flexWrap: "wrap"
|
|
4735
|
+
},
|
|
4736
|
+
className: "flex-col",
|
|
4737
|
+
children: [
|
|
4738
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex gap-2 mx-2", children: [
|
|
4739
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("label", { className: "border-1 p-2 rounded-md flex flex-col w-1/2 text-sm text-gray-400", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
4740
|
+
SelectField,
|
|
4741
|
+
{
|
|
4742
|
+
label: "\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A",
|
|
4743
|
+
value: format5,
|
|
4744
|
+
onChange: (value) => setFormat(value),
|
|
4745
|
+
options: typeOption
|
|
4746
|
+
}
|
|
4747
|
+
) }),
|
|
4748
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("label", { className: "border-1 p-2 rounded-md flex flex-col w-1/2 text-sm text-gray-400", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
4749
|
+
SelectField,
|
|
4750
|
+
{
|
|
4751
|
+
label: "\u0E02\u0E19\u0E32\u0E14 (px)",
|
|
4752
|
+
value: exportSize,
|
|
4753
|
+
onChange: (value) => setExportSize(Number(value)),
|
|
4754
|
+
options: sizeOption
|
|
4755
|
+
}
|
|
4756
|
+
) })
|
|
4757
|
+
] }),
|
|
4758
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
4759
|
+
PrimaryButton,
|
|
4760
|
+
{
|
|
4761
|
+
onClick: download,
|
|
4762
|
+
disabled: url === "",
|
|
4763
|
+
textColor: "white",
|
|
4764
|
+
title: "\u0E14\u0E32\u0E27\u0E42\u0E2B\u0E25\u0E14\u0E23\u0E2B\u0E31\u0E2A QR"
|
|
4765
|
+
}
|
|
4766
|
+
)
|
|
4767
|
+
]
|
|
4768
|
+
}
|
|
4769
|
+
)
|
|
4770
|
+
]
|
|
4771
|
+
}
|
|
4772
|
+
);
|
|
4640
4773
|
};
|
|
4641
4774
|
|
|
4642
4775
|
// src/TabPropject/TabProject/TabProject.tsx
|
|
4643
|
-
var
|
|
4644
|
-
var
|
|
4776
|
+
var import_antd27 = require("antd");
|
|
4777
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
4645
4778
|
function TabProject({ tabOption, now, onChange }) {
|
|
4646
|
-
return /* @__PURE__ */ (0,
|
|
4647
|
-
|
|
4779
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
4780
|
+
import_antd27.ConfigProvider,
|
|
4648
4781
|
{
|
|
4649
4782
|
theme: {
|
|
4650
4783
|
token: {
|
|
@@ -4660,16 +4793,16 @@ function TabProject({ tabOption, now, onChange }) {
|
|
|
4660
4793
|
}
|
|
4661
4794
|
}
|
|
4662
4795
|
},
|
|
4663
|
-
children: /* @__PURE__ */ (0,
|
|
4664
|
-
|
|
4796
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
4797
|
+
import_antd27.Tabs,
|
|
4665
4798
|
{
|
|
4666
4799
|
activeKey: now,
|
|
4667
4800
|
onChange,
|
|
4668
4801
|
items: tabOption.map((item) => ({
|
|
4669
4802
|
key: item.key,
|
|
4670
|
-
label: /* @__PURE__ */ (0,
|
|
4803
|
+
label: /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("span", { className: "tab-label flex gap-2 items-center body-1", children: [
|
|
4671
4804
|
item.icon,
|
|
4672
|
-
/* @__PURE__ */ (0,
|
|
4805
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { children: item.label })
|
|
4673
4806
|
] })
|
|
4674
4807
|
}))
|
|
4675
4808
|
}
|
|
@@ -4681,7 +4814,7 @@ function TabProject({ tabOption, now, onChange }) {
|
|
|
4681
4814
|
// src/Chart/BarChart/BarChart.tsx
|
|
4682
4815
|
var import_react21 = require("react");
|
|
4683
4816
|
var d3 = __toESM(require("d3"));
|
|
4684
|
-
var
|
|
4817
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
4685
4818
|
var defaultMargin = { top: 30, right: 200, bottom: 36, left: 50 };
|
|
4686
4819
|
var defaultColorPalette = [
|
|
4687
4820
|
"#4E79A7",
|
|
@@ -4863,7 +4996,7 @@ var BarChart = ({
|
|
|
4863
4996
|
(0, import_react21.useEffect)(() => {
|
|
4864
4997
|
render();
|
|
4865
4998
|
}, [data, height, margin, modeLabel, xDomain.toString(), yDomain.toString()]);
|
|
4866
|
-
return /* @__PURE__ */ (0,
|
|
4999
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { ref: containerRef, style: { width: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
|
|
4867
5000
|
"svg",
|
|
4868
5001
|
{
|
|
4869
5002
|
ref: svgRef,
|
|
@@ -4871,10 +5004,10 @@ var BarChart = ({
|
|
|
4871
5004
|
"aria-label": "Bar chart",
|
|
4872
5005
|
style: { display: "block", width: "100%", height },
|
|
4873
5006
|
children: [
|
|
4874
|
-
/* @__PURE__ */ (0,
|
|
4875
|
-
/* @__PURE__ */ (0,
|
|
4876
|
-
/* @__PURE__ */ (0,
|
|
4877
|
-
/* @__PURE__ */ (0,
|
|
5007
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("title", { children: "Bar chart" }),
|
|
5008
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("g", { ref: gRef, transform: `translate(${margin.left},${margin.top})` }),
|
|
5009
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("g", { ref: xAxisRef }),
|
|
5010
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("g", { ref: yAxisRef })
|
|
4878
5011
|
]
|
|
4879
5012
|
}
|
|
4880
5013
|
) });
|
|
@@ -4883,7 +5016,7 @@ var BarChart = ({
|
|
|
4883
5016
|
// src/Chart/PieChart/PieChart.tsx
|
|
4884
5017
|
var import_react22 = __toESM(require("react"));
|
|
4885
5018
|
var d32 = __toESM(require("d3"));
|
|
4886
|
-
var
|
|
5019
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
4887
5020
|
var defaultColors = d32.schemeCategory10;
|
|
4888
5021
|
var PieChart = ({
|
|
4889
5022
|
title,
|
|
@@ -4917,15 +5050,15 @@ var PieChart = ({
|
|
|
4917
5050
|
return `${percentage}%`;
|
|
4918
5051
|
});
|
|
4919
5052
|
}, [data, width, height]);
|
|
4920
|
-
return /* @__PURE__ */ (0,
|
|
4921
|
-
title && /* @__PURE__ */ (0,
|
|
4922
|
-
description && /* @__PURE__ */ (0,
|
|
4923
|
-
/* @__PURE__ */ (0,
|
|
4924
|
-
/* @__PURE__ */ (0,
|
|
4925
|
-
/* @__PURE__ */ (0,
|
|
4926
|
-
/* @__PURE__ */ (0,
|
|
4927
|
-
/* @__PURE__ */ (0,
|
|
4928
|
-
/* @__PURE__ */ (0,
|
|
5053
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { children: [
|
|
5054
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("p", { className: "body-2", children: title }),
|
|
5055
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("p", { className: "caption-1", children: description }),
|
|
5056
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex", children: [
|
|
5057
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("svg", { ref: svgRef }),
|
|
5058
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "flex flex-col gap-2 body-3 pl-[200px]", children: dataSide.map((d, i) => /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "grid grid-cols-3 gap-2 items-center body-2", children: [
|
|
5059
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "w-[20px] h-[20px]", style: { backgroundColor: d.color } }),
|
|
5060
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { children: d.label }),
|
|
5061
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { children: d.value })
|
|
4929
5062
|
] }, i)) })
|
|
4930
5063
|
] })
|
|
4931
5064
|
] });
|
|
@@ -4937,7 +5070,7 @@ var d33 = __toESM(require("d3"));
|
|
|
4937
5070
|
var import_date_fns3 = require("date-fns");
|
|
4938
5071
|
var import_locale3 = require("date-fns/locale");
|
|
4939
5072
|
var import_icons_react15 = require("@tabler/icons-react");
|
|
4940
|
-
var
|
|
5073
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
4941
5074
|
var LAYOUT = {
|
|
4942
5075
|
barHeight: 40,
|
|
4943
5076
|
barSpacing: 10,
|
|
@@ -4957,27 +5090,27 @@ var STATUS_META = {
|
|
|
4957
5090
|
IN_PROGRESS: {
|
|
4958
5091
|
color: "#FFC654",
|
|
4959
5092
|
label: "\u0E01\u0E33\u0E25\u0E31\u0E07\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23",
|
|
4960
|
-
icon: /* @__PURE__ */ (0,
|
|
5093
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_icons_react15.IconHourglassEmpty, { className: "text-[#FFC654]" })
|
|
4961
5094
|
},
|
|
4962
5095
|
CANCELLED: {
|
|
4963
5096
|
color: "#D2D5DB",
|
|
4964
5097
|
label: "\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01",
|
|
4965
|
-
icon: /* @__PURE__ */ (0,
|
|
5098
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_icons_react15.IconCircleX, { className: "text-[#D2D5DB]" })
|
|
4966
5099
|
},
|
|
4967
5100
|
SUCCESS: {
|
|
4968
5101
|
color: "#81CF92",
|
|
4969
5102
|
label: "\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E41\u0E25\u0E49\u0E27\u0E40\u0E2A\u0E23\u0E47\u0E08",
|
|
4970
|
-
icon: /* @__PURE__ */ (0,
|
|
5103
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_icons_react15.IconRosetteDiscountCheck, { className: "text-[#81CF92]" })
|
|
4971
5104
|
},
|
|
4972
5105
|
COMPLETED: {
|
|
4973
5106
|
color: "#81CF92",
|
|
4974
5107
|
label: "\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19",
|
|
4975
|
-
icon: /* @__PURE__ */ (0,
|
|
5108
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_icons_react15.IconRosetteDiscountCheck, { className: "text-[#81CF92]" })
|
|
4976
5109
|
},
|
|
4977
5110
|
DELAY: {
|
|
4978
5111
|
color: "#F4827E",
|
|
4979
5112
|
label: "\u0E25\u0E48\u0E32\u0E0A\u0E49\u0E32",
|
|
4980
|
-
icon: /* @__PURE__ */ (0,
|
|
5113
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_icons_react15.IconClockExclamation, { className: "text-[#F4827E]" })
|
|
4981
5114
|
}
|
|
4982
5115
|
};
|
|
4983
5116
|
var roundedRectPath = (x, y, width, height, radius) => `M${x + radius},${y} H${x + width} V${y + height} H${x + radius} A${radius},${radius},0,0,1,${x},${y + height - radius} V${y + radius} A${radius},${radius},0,0,1,${x + radius},${y}`;
|
|
@@ -5020,7 +5153,7 @@ var ProjectRow = ({ element, barHeight, barSpacing, mode }) => {
|
|
|
5020
5153
|
const statusLabel = getStatusLabel(safeStatus);
|
|
5021
5154
|
const statusIcon = STATUS_META[safeStatus]?.icon;
|
|
5022
5155
|
const toBuddhistDate = (d) => new Date(d.getFullYear() + 543, d.getMonth(), d.getDate());
|
|
5023
|
-
return /* @__PURE__ */ (0,
|
|
5156
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
5024
5157
|
"div",
|
|
5025
5158
|
{
|
|
5026
5159
|
style: {
|
|
@@ -5031,8 +5164,8 @@ var ProjectRow = ({ element, barHeight, barSpacing, mode }) => {
|
|
|
5031
5164
|
},
|
|
5032
5165
|
className: "body-1 grid grid-cols-[1fr_100px_130px] px-8 gap-2",
|
|
5033
5166
|
children: [
|
|
5034
|
-
/* @__PURE__ */ (0,
|
|
5035
|
-
mode === "project" && /* @__PURE__ */ (0,
|
|
5167
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: `grid ${mode === "project" ? "grid-cols-[10px_1fr]" : "grid-cols-[1fr]"} items-center gap-2`, children: [
|
|
5168
|
+
mode === "project" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
5036
5169
|
"div",
|
|
5037
5170
|
{
|
|
5038
5171
|
style: {
|
|
@@ -5041,12 +5174,12 @@ var ProjectRow = ({ element, barHeight, barSpacing, mode }) => {
|
|
|
5041
5174
|
className: "w-[10px] h-[10px] rounded-full"
|
|
5042
5175
|
}
|
|
5043
5176
|
),
|
|
5044
|
-
/* @__PURE__ */ (0,
|
|
5177
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "line-clamp-1 break-words text-[#333]", title: element.label, children: element.label })
|
|
5045
5178
|
] }),
|
|
5046
|
-
mode === "project" ? /* @__PURE__ */ (0,
|
|
5179
|
+
mode === "project" ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { children: safeEndDate ? (0, import_date_fns3.format)(toBuddhistDate(safeEndDate), "dd MMM yyyy", { locale: import_locale3.th }) : "-" }) : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { children: `Q${(0, import_date_fns3.getQuarter)(
|
|
5047
5180
|
safeEndDate ?? /* @__PURE__ */ new Date()
|
|
5048
5181
|
)}/${(safeEndDate?.getFullYear() ?? 0) + 543}` }),
|
|
5049
|
-
/* @__PURE__ */ (0,
|
|
5182
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("button", { className: "rounded-md subtitile-1 flex gap-2 align-start", children: [
|
|
5050
5183
|
statusIcon,
|
|
5051
5184
|
statusLabel
|
|
5052
5185
|
] })
|
|
@@ -5055,7 +5188,7 @@ var ProjectRow = ({ element, barHeight, barSpacing, mode }) => {
|
|
|
5055
5188
|
element.id
|
|
5056
5189
|
);
|
|
5057
5190
|
};
|
|
5058
|
-
var RowOverlay = ({ data, barHeight, barSpacing, totalHeaderHeight }) => /* @__PURE__ */ (0,
|
|
5191
|
+
var RowOverlay = ({ data, barHeight, barSpacing, totalHeaderHeight }) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
5059
5192
|
"div",
|
|
5060
5193
|
{
|
|
5061
5194
|
style: {
|
|
@@ -5069,7 +5202,7 @@ var RowOverlay = ({ data, barHeight, barSpacing, totalHeaderHeight }) => /* @__P
|
|
|
5069
5202
|
children: data.map((_, i) => {
|
|
5070
5203
|
if (i === 0) return null;
|
|
5071
5204
|
const yPos = i * (barHeight + barSpacing) - barSpacing / 2;
|
|
5072
|
-
return /* @__PURE__ */ (0,
|
|
5205
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
5073
5206
|
"div",
|
|
5074
5207
|
{
|
|
5075
5208
|
className: "",
|
|
@@ -5268,7 +5401,7 @@ var GanttChart = ({
|
|
|
5268
5401
|
headersGroupLayer1Height,
|
|
5269
5402
|
headersGroupLayer2Height
|
|
5270
5403
|
]);
|
|
5271
|
-
return /* @__PURE__ */ (0,
|
|
5404
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
5272
5405
|
"div",
|
|
5273
5406
|
{
|
|
5274
5407
|
className: "body-1",
|
|
@@ -5282,7 +5415,7 @@ var GanttChart = ({
|
|
|
5282
5415
|
backgroundColor: "#fff",
|
|
5283
5416
|
overflow: "hidden"
|
|
5284
5417
|
},
|
|
5285
|
-
children: /* @__PURE__ */ (0,
|
|
5418
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
5286
5419
|
"div",
|
|
5287
5420
|
{
|
|
5288
5421
|
style: {
|
|
@@ -5293,7 +5426,7 @@ var GanttChart = ({
|
|
|
5293
5426
|
position: "relative"
|
|
5294
5427
|
},
|
|
5295
5428
|
children: [
|
|
5296
|
-
/* @__PURE__ */ (0,
|
|
5429
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "z-2", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
5297
5430
|
RowOverlay,
|
|
5298
5431
|
{
|
|
5299
5432
|
data: data.length > 10 ? data : ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"],
|
|
@@ -5302,7 +5435,7 @@ var GanttChart = ({
|
|
|
5302
5435
|
totalHeaderHeight
|
|
5303
5436
|
}
|
|
5304
5437
|
) }),
|
|
5305
|
-
/* @__PURE__ */ (0,
|
|
5438
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
5306
5439
|
"div",
|
|
5307
5440
|
{
|
|
5308
5441
|
ref: leftPanelRef,
|
|
@@ -5316,8 +5449,8 @@ var GanttChart = ({
|
|
|
5316
5449
|
zIndex: 2
|
|
5317
5450
|
},
|
|
5318
5451
|
children: [
|
|
5319
|
-
/* @__PURE__ */ (0,
|
|
5320
|
-
/* @__PURE__ */ (0,
|
|
5452
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { ref: dataContainerRef, children: [
|
|
5453
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
5321
5454
|
"div",
|
|
5322
5455
|
{
|
|
5323
5456
|
className: "grid body-2 grid-cols-[1fr_100px_130px] gap-2 px-8 border-b bg-white",
|
|
@@ -5330,13 +5463,13 @@ var GanttChart = ({
|
|
|
5330
5463
|
zIndex: 5
|
|
5331
5464
|
},
|
|
5332
5465
|
children: [
|
|
5333
|
-
/* @__PURE__ */ (0,
|
|
5334
|
-
/* @__PURE__ */ (0,
|
|
5335
|
-
/* @__PURE__ */ (0,
|
|
5466
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { children: "\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23" }),
|
|
5467
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { children: "\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E2A\u0E48\u0E07" }),
|
|
5468
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { children: "\u0E2A\u0E16\u0E32\u0E19\u0E30" })
|
|
5336
5469
|
]
|
|
5337
5470
|
}
|
|
5338
5471
|
),
|
|
5339
|
-
data.map((element) => /* @__PURE__ */ (0,
|
|
5472
|
+
data.map((element) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
5340
5473
|
ProjectRow,
|
|
5341
5474
|
{
|
|
5342
5475
|
mode,
|
|
@@ -5347,7 +5480,7 @@ var GanttChart = ({
|
|
|
5347
5480
|
element.id
|
|
5348
5481
|
))
|
|
5349
5482
|
] }),
|
|
5350
|
-
/* @__PURE__ */ (0,
|
|
5483
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "z-3", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
5351
5484
|
RowOverlay,
|
|
5352
5485
|
{
|
|
5353
5486
|
data,
|
|
@@ -5359,7 +5492,7 @@ var GanttChart = ({
|
|
|
5359
5492
|
]
|
|
5360
5493
|
}
|
|
5361
5494
|
),
|
|
5362
|
-
/* @__PURE__ */ (0,
|
|
5495
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
5363
5496
|
"div",
|
|
5364
5497
|
{
|
|
5365
5498
|
style: {
|
|
@@ -5368,7 +5501,7 @@ var GanttChart = ({
|
|
|
5368
5501
|
position: "relative",
|
|
5369
5502
|
overflow: "visible"
|
|
5370
5503
|
},
|
|
5371
|
-
children: /* @__PURE__ */ (0,
|
|
5504
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
5372
5505
|
"div",
|
|
5373
5506
|
{
|
|
5374
5507
|
style: {
|
|
@@ -5377,7 +5510,7 @@ var GanttChart = ({
|
|
|
5377
5510
|
width: "max-content",
|
|
5378
5511
|
zIndex: 1
|
|
5379
5512
|
},
|
|
5380
|
-
children: /* @__PURE__ */ (0,
|
|
5513
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("svg", { ref: svgRef })
|
|
5381
5514
|
}
|
|
5382
5515
|
)
|
|
5383
5516
|
}
|
|
@@ -5392,16 +5525,16 @@ var GanttChart = ({
|
|
|
5392
5525
|
// src/CardKPI/CardKPI/CardKPI.tsx
|
|
5393
5526
|
var import_icons_react16 = require("@tabler/icons-react");
|
|
5394
5527
|
var import_react24 = require("react");
|
|
5395
|
-
var
|
|
5528
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
5396
5529
|
function KPIRow({ item }) {
|
|
5397
|
-
return /* @__PURE__ */ (0,
|
|
5530
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
|
|
5398
5531
|
"div",
|
|
5399
5532
|
{
|
|
5400
5533
|
className: `w-full grid body-3 py-2 items-center pl-2 ${item.inputType === "NUMBER" ? "grid-cols-[1fr_100px_50px]" : "grid-cols-[1fr_50px]"}`,
|
|
5401
5534
|
children: [
|
|
5402
|
-
/* @__PURE__ */ (0,
|
|
5403
|
-
item.inputType === "NUMBER" && /* @__PURE__ */ (0,
|
|
5404
|
-
item.inputType === "NUMBER" ? /* @__PURE__ */ (0,
|
|
5535
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "line-clamp-2", children: item.textValue }),
|
|
5536
|
+
item.inputType === "NUMBER" && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "flex", children: `${item.currentValue}/${item.numberValue} ${item.unit}` }),
|
|
5537
|
+
item.inputType === "NUMBER" ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "flex", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ProgressBar, { percent: Math.floor(item.currentValue * 100 / (item.numberValue ?? 1)), type: "circle", checkpoints: [0] }) }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_jsx_runtime51.Fragment, { children: item.currentValue !== 0 ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_icons_react16.IconRosetteDiscountCheck, { className: "text-green-500 flex justify-center w-full", size: 30 }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_icons_react16.IconHourglassEmpty, { className: "text-yellow-500 flex justify-center w-full", size: 30 }) })
|
|
5405
5538
|
]
|
|
5406
5539
|
}
|
|
5407
5540
|
);
|
|
@@ -5414,15 +5547,15 @@ function CardKPI({
|
|
|
5414
5547
|
projectId
|
|
5415
5548
|
}) {
|
|
5416
5549
|
const [isOpen, setIsOpen] = (0, import_react24.useState)(false);
|
|
5417
|
-
return /* @__PURE__ */ (0,
|
|
5550
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
|
|
5418
5551
|
"div",
|
|
5419
5552
|
{
|
|
5420
5553
|
className: `border-10 p-4 rounded-md w-[420px] h-[450px] relative`,
|
|
5421
5554
|
style: { borderColor: dataItem.projectColor },
|
|
5422
5555
|
children: [
|
|
5423
|
-
/* @__PURE__ */ (0,
|
|
5424
|
-
/* @__PURE__ */ (0,
|
|
5425
|
-
/* @__PURE__ */ (0,
|
|
5556
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "grid grid-cols-[1fr_70px] justify-between items-center", children: [
|
|
5557
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "line-clamp-2 subtitle-2 ", children: dataItem.name }),
|
|
5558
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "flex justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
5426
5559
|
"button",
|
|
5427
5560
|
{
|
|
5428
5561
|
type: "button",
|
|
@@ -5432,41 +5565,41 @@ function CardKPI({
|
|
|
5432
5565
|
}
|
|
5433
5566
|
) })
|
|
5434
5567
|
] }),
|
|
5435
|
-
/* @__PURE__ */ (0,
|
|
5436
|
-
/* @__PURE__ */ (0,
|
|
5437
|
-
/* @__PURE__ */ (0,
|
|
5568
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "my-2 body-1", children: [
|
|
5569
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "translate-y-2", children: "\u0E23\u0E49\u0E2D\u0E22\u0E25\u0E30\u0E02\u0E2D\u0E07\u0E01\u0E34\u0E08\u0E01\u0E23\u0E23\u0E21" }),
|
|
5570
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ProgressBar, { percent: overallPercent, type: "line", checkpoints: [0] })
|
|
5438
5571
|
] }),
|
|
5439
|
-
/* @__PURE__ */ (0,
|
|
5440
|
-
/* @__PURE__ */ (0,
|
|
5572
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "border-b", children: [
|
|
5573
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "body-2 ", children: "\u0E01\u0E25\u0E38\u0E48\u0E21\u0E40\u0E1B\u0E49\u0E32\u0E2B\u0E21\u0E32\u0E22" }),
|
|
5441
5574
|
indicator.filter((ind) => ind.indicatorType === "TARGET").map((item, index) => {
|
|
5442
5575
|
if (index === 2) return;
|
|
5443
|
-
return /* @__PURE__ */ (0,
|
|
5576
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(KPIRow, { item });
|
|
5444
5577
|
})
|
|
5445
5578
|
] }),
|
|
5446
|
-
/* @__PURE__ */ (0,
|
|
5447
|
-
/* @__PURE__ */ (0,
|
|
5579
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "pt-2", children: [
|
|
5580
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "body-2 ", children: "\u0E15\u0E31\u0E27\u0E0A\u0E35\u0E49\u0E27\u0E31\u0E14\u0E1C\u0E25\u0E1C\u0E25\u0E34\u0E15" }),
|
|
5448
5581
|
indicator.filter((ind) => ind.indicatorType === "OUTPUT").map((item, index) => {
|
|
5449
5582
|
if (index === 2) return;
|
|
5450
|
-
return /* @__PURE__ */ (0,
|
|
5583
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(KPIRow, { item });
|
|
5451
5584
|
})
|
|
5452
5585
|
] }),
|
|
5453
|
-
indicator.filter((item) => item.indicatorType === "TARGET").length > 2 || indicator.filter((item) => item.indicatorType === "OUTPUT").length > 2 ? /* @__PURE__ */ (0,
|
|
5586
|
+
indicator.filter((item) => item.indicatorType === "TARGET").length > 2 || indicator.filter((item) => item.indicatorType === "OUTPUT").length > 2 ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "bottom-0 right-1/2 absolute text-gray-300", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
5454
5587
|
import_icons_react16.IconDots,
|
|
5455
5588
|
{
|
|
5456
5589
|
className: "cursor-pointer",
|
|
5457
5590
|
onClick: () => setIsOpen(true)
|
|
5458
5591
|
}
|
|
5459
5592
|
) }) : void 0,
|
|
5460
|
-
/* @__PURE__ */ (0,
|
|
5593
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
5461
5594
|
AntDModal,
|
|
5462
5595
|
{
|
|
5463
5596
|
isOpen,
|
|
5464
5597
|
onCancel: () => setIsOpen(false),
|
|
5465
5598
|
width: 600,
|
|
5466
|
-
children: /* @__PURE__ */ (0,
|
|
5467
|
-
/* @__PURE__ */ (0,
|
|
5468
|
-
/* @__PURE__ */ (0,
|
|
5469
|
-
/* @__PURE__ */ (0,
|
|
5599
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "mt-10", children: [
|
|
5600
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "grid grid-cols-[1fr_100px] justify-between items-center subtitle-2 ", children: [
|
|
5601
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "font-medium line-clamp-2", children: dataItem.name }),
|
|
5602
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
5470
5603
|
"button",
|
|
5471
5604
|
{
|
|
5472
5605
|
type: "button",
|
|
@@ -5476,17 +5609,17 @@ function CardKPI({
|
|
|
5476
5609
|
}
|
|
5477
5610
|
)
|
|
5478
5611
|
] }),
|
|
5479
|
-
/* @__PURE__ */ (0,
|
|
5480
|
-
/* @__PURE__ */ (0,
|
|
5481
|
-
/* @__PURE__ */ (0,
|
|
5612
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "p-4", children: [
|
|
5613
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
|
|
5614
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "body-1 border-b", children: "\u0E01\u0E25\u0E38\u0E48\u0E21\u0E40\u0E1B\u0E49\u0E32\u0E2B\u0E21\u0E32\u0E22" }),
|
|
5482
5615
|
indicator.filter((ind) => ind.indicatorType === "TARGET").map((item, index) => {
|
|
5483
|
-
return /* @__PURE__ */ (0,
|
|
5616
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(KPIRow, { item });
|
|
5484
5617
|
})
|
|
5485
5618
|
] }),
|
|
5486
|
-
/* @__PURE__ */ (0,
|
|
5487
|
-
/* @__PURE__ */ (0,
|
|
5619
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
|
|
5620
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "body-1 border-b", children: "\u0E15\u0E31\u0E27\u0E0A\u0E35\u0E49\u0E27\u0E31\u0E14\u0E1C\u0E25\u0E1C\u0E25\u0E34\u0E15" }),
|
|
5488
5621
|
indicator.filter((ind) => ind.indicatorType === "OUTPUT").map((item, index) => {
|
|
5489
|
-
return /* @__PURE__ */ (0,
|
|
5622
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(KPIRow, { item });
|
|
5490
5623
|
})
|
|
5491
5624
|
] })
|
|
5492
5625
|
] })
|
|
@@ -5546,6 +5679,8 @@ function CardKPI({
|
|
|
5546
5679
|
TertiaryButton,
|
|
5547
5680
|
TextAreaInput,
|
|
5548
5681
|
TextInput,
|
|
5682
|
+
TimePickerBasic,
|
|
5683
|
+
TimePickerRangePicker,
|
|
5549
5684
|
TopNavBar,
|
|
5550
5685
|
messageError,
|
|
5551
5686
|
messageInfo,
|