@knockout-js/layout 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/es2017/components/dictionary/index.d.ts +6 -0
  2. package/es2017/components/dictionary/index.js +71 -0
  3. package/es2017/components/dictionary/index.js.map +1 -0
  4. package/es2017/components/dictionary/index.module.css +4 -0
  5. package/es2017/components/dictionary/select.d.ts +19 -0
  6. package/es2017/components/dictionary/select.js +51 -0
  7. package/es2017/components/dictionary/select.js.map +1 -0
  8. package/es2017/components/dictionary/text.d.ts +23 -0
  9. package/es2017/components/dictionary/text.js +28 -0
  10. package/es2017/components/dictionary/text.js.map +1 -0
  11. package/es2017/components/index.d.ts +2 -0
  12. package/es2017/components/index.js +2 -0
  13. package/es2017/components/index.js.map +1 -1
  14. package/es2017/components/theme-switch/index.js +14 -14
  15. package/es2017/components/theme-switch/index.js.map +1 -1
  16. package/es2017/components/theme-switch/index.module.css +14 -0
  17. package/esm/components/dictionary/index.d.ts +6 -0
  18. package/esm/components/dictionary/index.js +92 -0
  19. package/esm/components/dictionary/index.js.map +1 -0
  20. package/esm/components/dictionary/index.module.css +4 -0
  21. package/esm/components/dictionary/select.d.ts +19 -0
  22. package/esm/components/dictionary/select.js +71 -0
  23. package/esm/components/dictionary/select.js.map +1 -0
  24. package/esm/components/dictionary/text.d.ts +23 -0
  25. package/esm/components/dictionary/text.js +31 -0
  26. package/esm/components/dictionary/text.js.map +1 -0
  27. package/esm/components/index.d.ts +2 -0
  28. package/esm/components/index.js +2 -0
  29. package/esm/components/index.js.map +1 -1
  30. package/esm/components/theme-switch/index.js +14 -14
  31. package/esm/components/theme-switch/index.js.map +1 -1
  32. package/esm/components/theme-switch/index.module.css +14 -0
  33. package/package.json +3 -3
@@ -0,0 +1,6 @@
1
+ import { AppDictItem } from "@knockout-js/api/ucenter";
2
+ /**
3
+ * 用来处理缓存字典项列表
4
+ * @returns
5
+ */
6
+ export declare const useDistItems: (dictCode: string, dataSource?: AppDictItem[]) => [AppDictItem[], () => Promise<void>];
@@ -0,0 +1,71 @@
1
+ import { getDictItems } from "@knockout-js/api";
2
+ import { useEffect, useState } from "react";
3
+ let timeoutFn = undefined, isLoad = false;
4
+ const distData = {}, collectCode = [];
5
+ /**
6
+ * 用来处理缓存字典项列表
7
+ * @returns
8
+ */ export const useDistItems = (dictCode, dataSource)=>{
9
+ var _distData_dictCode;
10
+ const [items, setItems] = useState((_distData_dictCode = distData[dictCode]) !== null && _distData_dictCode !== void 0 ? _distData_dictCode : []);
11
+ /**
12
+ * 通过列表设置存储
13
+ * @param list
14
+ */ const setDistItems = (list)=>{
15
+ const dictCodes = [
16
+ ...new Set(list.map((item)=>{
17
+ var _item_dict;
18
+ return (_item_dict = item.dict) === null || _item_dict === void 0 ? void 0 : _item_dict.code;
19
+ }))
20
+ ];
21
+ dictCodes.forEach((code)=>{
22
+ if (code) distData[code] = list.filter((item)=>{
23
+ var _item_dict;
24
+ return ((_item_dict = item.dict) === null || _item_dict === void 0 ? void 0 : _item_dict.code) == code;
25
+ });
26
+ });
27
+ };
28
+ /**
29
+ * 刷新列表接口
30
+ */ const reloadDistItems = async ()=>{
31
+ const result = await getDictItems(dictCode, true);
32
+ if (result.length) setDistItems(result);
33
+ };
34
+ useEffect(()=>{
35
+ if (dataSource === null || dataSource === void 0 ? void 0 : dataSource.length) setDistItems(dataSource);
36
+ else {
37
+ if (!collectCode.includes(dictCode)) {
38
+ collectCode.push(dictCode);
39
+ isLoad = true;
40
+ }
41
+ if (isLoad) {
42
+ clearTimeout(timeoutFn);
43
+ timeoutFn = setTimeout(()=>{
44
+ getDictItems(collectCode).then((result)=>{
45
+ if (result.length) setDistItems(result);
46
+ isLoad = false;
47
+ });
48
+ }, 100);
49
+ }
50
+ }
51
+ }, [
52
+ dictCode,
53
+ dataSource
54
+ ]);
55
+ useEffect(()=>{
56
+ var _distData_dictCode;
57
+ var _distData_dictCode_filter;
58
+ setItems((_distData_dictCode_filter = (_distData_dictCode = distData[dictCode]) === null || _distData_dictCode === void 0 ? void 0 : _distData_dictCode.filter((item)=>{
59
+ var _item_dict;
60
+ return ((_item_dict = item.dict) === null || _item_dict === void 0 ? void 0 : _item_dict.code) === dictCode;
61
+ })) !== null && _distData_dictCode_filter !== void 0 ? _distData_dictCode_filter : []);
62
+ }, [
63
+ distData[dictCode]
64
+ ]);
65
+ return [
66
+ items,
67
+ reloadDistItems
68
+ ];
69
+ };
70
+
71
+ //# sourceMappingURL=D:\codeing\git\github\knockout-js\packages\layout\es2017\components\dictionary\index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\dictionary\\index.ts"],"sourcesContent":["import { getDictItems } from \"@knockout-js/api\";\r\nimport { AppDictItem } from \"@knockout-js/api/ucenter\";\r\nimport { useEffect, useState } from \"react\";\r\n\r\nlet timeoutFn: NodeJS.Timeout | undefined = undefined, isLoad = false;\r\nconst distData: Record<string, AppDictItem[] | undefined> = {},\r\n collectCode: string[] = [];\r\n\r\n/**\r\n * 用来处理缓存字典项列表\r\n * @returns\r\n */\r\nexport const useDistItems = (dictCode: string, dataSource?: AppDictItem[]): [AppDictItem[], () => Promise<void>] => {\r\n\r\n const [items, setItems] = useState<AppDictItem[]>(distData[dictCode] ?? []);\r\n\r\n /**\r\n * 通过列表设置存储\r\n * @param list\r\n */\r\n const setDistItems = (list: AppDictItem[]) => {\r\n const dictCodes = [...new Set(list.map(item => item.dict?.code))];\r\n dictCodes.forEach(code => {\r\n if (code) {\r\n distData[code] = list.filter(item => item.dict?.code == code);\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * 刷新列表接口\r\n */\r\n const reloadDistItems = async () => {\r\n const result = await getDictItems(dictCode, true);\r\n if (result.length) {\r\n setDistItems(result);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (dataSource?.length) {\r\n setDistItems(dataSource);\r\n } else {\r\n if (!collectCode.includes(dictCode)) {\r\n collectCode.push(dictCode);\r\n isLoad = true;\r\n }\r\n if (isLoad) {\r\n clearTimeout(timeoutFn)\r\n timeoutFn = setTimeout(() => {\r\n getDictItems(collectCode).then(result => {\r\n if (result.length) {\r\n setDistItems(result);\r\n }\r\n isLoad = false;\r\n });\r\n }, 100);\r\n }\r\n }\r\n }, [dictCode, dataSource]);\r\n\r\n useEffect(() => {\r\n setItems(distData[dictCode]?.filter(item => item.dict?.code === dictCode) ?? [])\r\n }, [distData[dictCode]])\r\n\r\n\r\n return [items, reloadDistItems];\r\n}\r\n"],"names":["getDictItems","useEffect","useState","timeoutFn","undefined","isLoad","distData","collectCode","useDistItems","dictCode","dataSource","items","setItems","setDistItems","list","dictCodes","Set","map","item","dict","code","forEach","filter","reloadDistItems","result","length","includes","push","clearTimeout","setTimeout","then"],"mappings":"AAAA,SAASA,YAAY,QAAQ,mBAAmB;AAEhD,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAE5C,IAAIC,YAAwCC,WAAWC,SAAS,KAAK;AACrE,MAAMC,WAAsD,CAAC,GAC3DC,cAAwB,EAAE;AAE5B;;;CAGC,GACD,OAAO,MAAMC,eAAe,CAACC,UAAkBC,aAAqE;QAEhEJ;IAAlD,MAAM,CAACK,OAAOC,SAAS,GAAGV,SAAwBI,CAAAA,qBAAAA,QAAQ,CAACG,SAAS,cAAlBH,gCAAAA,qBAAsB,EAAE;IAE1E;;;GAGC,GACD,MAAMO,eAAe,CAACC,OAAwB;QAC5C,MAAMC,YAAY;eAAI,IAAIC,IAAIF,KAAKG,GAAG,CAACC,CAAAA;oBAAQA;gBAAAA,OAAAA,CAAAA,aAAAA,KAAKC,IAAI,cAATD,wBAAAA,KAAAA,IAAAA,WAAWE,IAAI;;SAAG;QACjEL,UAAUM,OAAO,CAACD,CAAAA,OAAQ;YACxB,IAAIA,MACFd,QAAQ,CAACc,KAAK,GAAGN,KAAKQ,MAAM,CAACJ,CAAAA;oBAAQA;gBAAAA,OAAAA,CAAAA,CAAAA,aAAAA,KAAKC,IAAI,cAATD,wBAAAA,KAAAA,IAAAA,WAAWE,IAAI,AAAD,KAAKA;;QAE5D;IACF;IAEA;;GAEC,GACD,MAAMG,kBAAkB,UAAY;QAClC,MAAMC,SAAS,MAAMxB,aAAaS,UAAU,IAAI;QAChD,IAAIe,OAAOC,MAAM,EACfZ,aAAaW;IAEjB;IAEAvB,UAAU,IAAM;QACd,IAAIS,uBAAAA,wBAAAA,KAAAA,IAAAA,WAAYe,MAAM,EACpBZ,aAAaH;aACR;YACL,IAAI,CAACH,YAAYmB,QAAQ,CAACjB,WAAW;gBACnCF,YAAYoB,IAAI,CAAClB;gBACjBJ,SAAS,IAAI;YACf,CAAC;YACD,IAAIA,QAAQ;gBACVuB,aAAazB;gBACbA,YAAY0B,WAAW,IAAM;oBAC3B7B,aAAaO,aAAauB,IAAI,CAACN,CAAAA,SAAU;wBACvC,IAAIA,OAAOC,MAAM,EACfZ,aAAaW;wBAEfnB,SAAS,KAAK;oBAChB;gBACF,GAAG;YACL,CAAC;QACH,CAAC;IACH,GAAG;QAACI;QAAUC;KAAW;IAEzBT,UAAU,IAAM;YACLK;YAAAA;QAATM,SAASN,CAAAA,4BAAAA,CAAAA,qBAAAA,QAAQ,CAACG,SAAS,cAAlBH,gCAAAA,KAAAA,IAAAA,mBAAoBgB,OAAOJ,CAAAA;gBAAQA;YAAAA,OAAAA,CAAAA,CAAAA,aAAAA,KAAKC,IAAI,cAATD,wBAAAA,KAAAA,IAAAA,WAAWE,IAAI,AAAD,MAAMX;wBAAvDH,uCAAAA,4BAAoE,EAAE;IACjF,GAAG;QAACA,QAAQ,CAACG,SAAS;KAAC;IAGvB,OAAO;QAACE;QAAOY;KAAgB;AACjC,EAAC"}
@@ -0,0 +1,4 @@
1
+ .selectActions {
2
+ text-align: right;
3
+ padding: 2px 8px;
4
+ }
@@ -0,0 +1,19 @@
1
+ /// <reference types="react" />
2
+ import { AppDictItem } from "@knockout-js/api/ucenter";
3
+ import { SelectProps } from "antd";
4
+ export interface DictionarySelectProps extends SelectProps {
5
+ /**
6
+ * 字典code
7
+ */
8
+ dictCode: string;
9
+ /**
10
+ * 外部提供数据源
11
+ */
12
+ dataSource?: AppDictItem[];
13
+ /**
14
+ * changeValue=id: onChange的第一个参数值就为code
15
+ */
16
+ changeValue?: "id" | "code";
17
+ }
18
+ declare const _default: (props: DictionarySelectProps) => JSX.Element;
19
+ export default _default;
@@ -0,0 +1,51 @@
1
+ import _object_spread from "@swc/helpers/src/_object_spread.mjs";
2
+ import _object_spread_props from "@swc/helpers/src/_object_spread_props.mjs";
3
+ import _object_without_properties from "@swc/helpers/src/_object_without_properties.mjs";
4
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ice/jsx-runtime/jsx-runtime";
5
+ import { ReloadOutlined } from "@ant-design/icons";
6
+ import { Select } from "antd";
7
+ import { useEffect, useState } from "react";
8
+ import styles from "./index.module.css";
9
+ import { useDistItems } from "./index";
10
+ export default ((props)=>{
11
+ const { dictCode , dataSource , changeValue } = props, restProps = _object_without_properties(props, [
12
+ "dictCode",
13
+ "dataSource",
14
+ "changeValue"
15
+ ]), [items, itemsReload] = useDistItems(dictCode, dataSource), [loading, setLoading] = useState(false), [options, setOptions] = useState([]);
16
+ useEffect(()=>{
17
+ setOptions(items.map((item)=>({
18
+ label: item.name,
19
+ value: item[changeValue !== null && changeValue !== void 0 ? changeValue : 'code'],
20
+ data: item
21
+ })));
22
+ }, [
23
+ items
24
+ ]);
25
+ return /*#__PURE__*/ _jsx(Select, _object_spread_props(_object_spread({
26
+ style: {
27
+ width: '100%'
28
+ }
29
+ }, restProps), {
30
+ loading: loading,
31
+ options: options,
32
+ dropdownRender: (menu)=>/*#__PURE__*/ _jsxs(_Fragment, {
33
+ children: [
34
+ menu,
35
+ /*#__PURE__*/ _jsx("div", {
36
+ className: styles.selectActions,
37
+ children: /*#__PURE__*/ _jsx(ReloadOutlined, {
38
+ rev: undefined,
39
+ onClick: async ()=>{
40
+ setLoading(true);
41
+ await itemsReload();
42
+ setLoading(false);
43
+ }
44
+ })
45
+ })
46
+ ]
47
+ })
48
+ }));
49
+ });
50
+
51
+ //# sourceMappingURL=D:\codeing\git\github\knockout-js\packages\layout\es2017\components\dictionary\select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\dictionary\\select.tsx"],"sourcesContent":["import { ReloadOutlined } from \"@ant-design/icons\";\r\nimport { AppDictItem } from \"@knockout-js/api/ucenter\";\r\nimport { Select, SelectProps } from \"antd\";\r\nimport { useEffect, useState } from \"react\";\r\nimport styles from \"./index.module.css\";\r\nimport { useDistItems } from \".\";\r\n\r\nexport interface DictionarySelectProps extends SelectProps {\r\n /**\r\n * 字典code\r\n */\r\n dictCode: string;\r\n /**\r\n * 外部提供数据源\r\n */\r\n dataSource?: AppDictItem[];\r\n /**\r\n * changeValue=id: onChange的第一个参数值就为code\r\n */\r\n changeValue?: \"id\" | \"code\";\r\n}\r\n\r\ntype DictionarySelectOption = {\r\n label: string;\r\n value: string;\r\n data: AppDictItem;\r\n}\r\n\r\nexport default (props: DictionarySelectProps) => {\r\n const { dictCode, dataSource, changeValue, ...restProps } = props,\r\n [items, itemsReload] = useDistItems(dictCode, dataSource),\r\n [loading, setLoading] = useState(false),\r\n [options, setOptions] = useState<DictionarySelectOption[]>([]);\r\n\r\n useEffect(() => {\r\n setOptions(items\r\n .map(item => ({\r\n label: item.name,\r\n value: item[changeValue ?? 'code'],\r\n data: item,\r\n }))\r\n );\r\n }, [items])\r\n\r\n return <Select\r\n style={{ width: '100%' }}\r\n {...restProps}\r\n loading={loading}\r\n options={options}\r\n dropdownRender={(menu) => <>\r\n {menu}\r\n <div className={styles.selectActions}>\r\n <ReloadOutlined rev={undefined} onClick={async () => {\r\n setLoading(true);\r\n await itemsReload();\r\n setLoading(false);\r\n }} />\r\n </div>\r\n </>\r\n }\r\n />\r\n}\r\n"],"names":["ReloadOutlined","Select","useEffect","useState","styles","useDistItems","props","dictCode","dataSource","changeValue","restProps","items","itemsReload","loading","setLoading","options","setOptions","map","item","label","name","value","data","style","width","dropdownRender","menu","div","className","selectActions","rev","undefined","onClick"],"mappings":";;;;AAAA,SAASA,cAAc,QAAQ,oBAAoB;AAEnD,SAASC,MAAM,QAAqB,OAAO;AAC3C,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAC5C,OAAOC,YAAY,qBAAqB;AACxC,SAASC,YAAY,QAAQ,UAAI;AAuBjC,eAAe,CAAA,CAACC,QAAiC;IAC/C,MAAM,EAAEC,SAAQ,EAAEC,WAAU,EAAEC,YAAW,EAAgB,GAAGH,OAAdI,uCAAcJ;QAApDC;QAAUC;QAAYC;QAC5B,CAACE,OAAOC,YAAY,GAAGP,aAAaE,UAAUC,aAC9C,CAACK,SAASC,WAAW,GAAGX,SAAS,KAAK,GACtC,CAACY,SAASC,WAAW,GAAGb,SAAmC,EAAE;IAE/DD,UAAU,IAAM;QACdc,WAAWL,MACRM,GAAG,CAACC,CAAAA,OAAS,CAAA;gBACZC,OAAOD,KAAKE,IAAI;gBAChBC,OAAOH,IAAI,CAACT,wBAAAA,yBAAAA,cAAe,MAAM,CAAC;gBAClCa,MAAMJ;YACR,CAAA;IAEJ,GAAG;QAACP;KAAM;IAEV,qBAAO,KAACV;QACNsB,OAAO;YAAEC,OAAO;QAAO;OACnBd;QACJG,SAASA;QACTE,SAASA;QACTU,gBAAgB,CAACC,qBAAS;;oBACvBA;kCACD,KAACC;wBAAIC,WAAWxB,OAAOyB,aAAa;kCAClC,cAAA,KAAC7B;4BAAe8B,KAAKC;4BAAWC,SAAS,UAAY;gCACnDlB,WAAW,IAAI;gCACf,MAAMF;gCACNE,WAAW,KAAK;4BAClB;;;;;;AAKR,CAAA,EAAC"}
@@ -0,0 +1,23 @@
1
+ /// <reference types="react" />
2
+ import { AppDictItem } from "@knockout-js/api/ucenter";
3
+ import { TextProps } from "antd/es/typography/Text";
4
+ export interface DictionaryTextProps extends TextProps {
5
+ /**
6
+ * 值
7
+ */
8
+ value?: string;
9
+ /**
10
+ * 字典code
11
+ */
12
+ dictCode: string;
13
+ /**
14
+ * 外部提供数据源
15
+ */
16
+ dataSource?: AppDictItem[];
17
+ /**
18
+ * 默认使用code来匹配value
19
+ */
20
+ valueKey?: "id" | "code";
21
+ }
22
+ declare const _default: (props: DictionaryTextProps) => JSX.Element;
23
+ export default _default;
@@ -0,0 +1,28 @@
1
+ import _object_spread from "@swc/helpers/src/_object_spread.mjs";
2
+ import _object_spread_props from "@swc/helpers/src/_object_spread_props.mjs";
3
+ import _object_without_properties from "@swc/helpers/src/_object_without_properties.mjs";
4
+ import { jsx as _jsx } from "@ice/jsx-runtime/jsx-runtime";
5
+ import { Typography } from "antd";
6
+ import { useEffect, useState } from "react";
7
+ import { useDistItems } from "./index";
8
+ export default ((props)=>{
9
+ const { value , dataSource , dictCode , valueKey } = props, restProps = _object_without_properties(props, [
10
+ "value",
11
+ "dataSource",
12
+ "dictCode",
13
+ "valueKey"
14
+ ]), [items] = useDistItems(dictCode, dataSource), [dictItem, setDictItem] = useState();
15
+ useEffect(()=>{
16
+ setDictItem(items.find((item)=>item[valueKey !== null && valueKey !== void 0 ? valueKey : 'code'] === value));
17
+ }, [
18
+ value,
19
+ valueKey,
20
+ items
21
+ ]);
22
+ var _dictItem_name, _ref;
23
+ return /*#__PURE__*/ _jsx(Typography.Text, _object_spread_props(_object_spread({}, restProps), {
24
+ children: (_ref = (_dictItem_name = dictItem === null || dictItem === void 0 ? void 0 : dictItem.name) !== null && _dictItem_name !== void 0 ? _dictItem_name : value) !== null && _ref !== void 0 ? _ref : ''
25
+ }));
26
+ });
27
+
28
+ //# sourceMappingURL=D:\codeing\git\github\knockout-js\packages\layout\es2017\components\dictionary\text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\dictionary\\text.tsx"],"sourcesContent":["import { AppDictItem } from \"@knockout-js/api/ucenter\";\r\nimport { Typography } from \"antd\"\r\nimport { TextProps } from \"antd/es/typography/Text\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useDistItems } from \".\";\r\n\r\nexport interface DictionaryTextProps extends TextProps {\r\n /**\r\n * 值\r\n */\r\n value?: string;\r\n /**\r\n * 字典code\r\n */\r\n dictCode: string;\r\n /**\r\n * 外部提供数据源\r\n */\r\n dataSource?: AppDictItem[];\r\n /**\r\n * 默认使用code来匹配value\r\n */\r\n valueKey?: \"id\" | \"code\";\r\n}\r\n\r\n\r\nexport default (props: DictionaryTextProps) => {\r\n const { value, dataSource, dictCode, valueKey, ...restProps } = props,\r\n [items] = useDistItems(dictCode, dataSource),\r\n [dictItem, setDictItem] = useState<AppDictItem>();\r\n\r\n\r\n useEffect(() => {\r\n setDictItem(items.find(item => item[valueKey ?? 'code'] === value));\r\n }, [value, valueKey, items]);\r\n\r\n return <Typography.Text {...restProps}>\r\n {dictItem?.name ?? value ?? ''}\r\n </Typography.Text>\r\n}\r\n"],"names":["Typography","useEffect","useState","useDistItems","props","value","dataSource","dictCode","valueKey","restProps","items","dictItem","setDictItem","find","item","Text","name"],"mappings":";;;;AACA,SAASA,UAAU,QAAQ,OAAM;AAEjC,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAC5C,SAASC,YAAY,QAAQ,UAAI;AAsBjC,eAAe,CAAA,CAACC,QAA+B;IAC7C,MAAM,EAAEC,MAAK,EAAEC,WAAU,EAAEC,SAAQ,EAAEC,SAAQ,EAAgB,GAAGJ,OAAdK,uCAAcL;QAAxDC;QAAOC;QAAYC;QAAUC;QACnC,CAACE,MAAM,GAAGP,aAAaI,UAAUD,aACjC,CAACK,UAAUC,YAAY,GAAGV;IAG5BD,UAAU,IAAM;QACdW,YAAYF,MAAMG,IAAI,CAACC,CAAAA,OAAQA,IAAI,CAACN,qBAAAA,sBAAAA,WAAY,MAAM,CAAC,KAAKH;IAC9D,GAAG;QAACA;QAAOG;QAAUE;KAAM;QAGxBC,gBAAAA;IADH,qBAAO,KAACX,WAAWe,IAAI,0CAAKN;kBACzBE,CAAAA,OAAAA,CAAAA,iBAAAA,qBAAAA,sBAAAA,KAAAA,IAAAA,SAAUK,IAAI,cAAdL,4BAAAA,iBAAkBN,KAAK,cAAvBM,kBAAAA,OAA2B,EAAE;;AAElC,CAAA,EAAC"}
@@ -2,6 +2,8 @@ export { default as Provider, Context, type ProviderProps, } from './provider';
2
2
  export { default as ThemeSwitch } from './theme-switch';
3
3
  export { default as AvatarDropdown } from './avatar-dropdown';
4
4
  export { default as KeepAlive } from './keep-alive';
5
+ export { default as DictText } from './dictionary/text';
6
+ export { default as DictSelect } from './dictionary/select';
5
7
  export { default as TenantDropdown } from './tenant-dropdown';
6
8
  export { default as MsgDropdown } from './msg-dropdown';
7
9
  export { default as LeavePrompt, useLeavePrompt } from './leave-prompt';
@@ -2,6 +2,8 @@ export { default as Provider, Context } from "./provider/index";
2
2
  export { default as ThemeSwitch } from "./theme-switch/index";
3
3
  export { default as AvatarDropdown } from "./avatar-dropdown/index";
4
4
  export { default as KeepAlive } from "./keep-alive/index";
5
+ export { default as DictText } from "./dictionary/text";
6
+ export { default as DictSelect } from "./dictionary/select";
5
7
  export { default as TenantDropdown } from "./tenant-dropdown/index";
6
8
  export { default as MsgDropdown } from "./msg-dropdown/index";
7
9
  export { default as LeavePrompt, useLeavePrompt } from "./leave-prompt/index";
@@ -1 +1 @@
1
- {"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\index.ts"],"sourcesContent":["export { default as Provider, Context, type ProviderProps, } from './provider';\r\nexport { default as ThemeSwitch } from './theme-switch';\r\nexport { default as AvatarDropdown } from './avatar-dropdown';\r\nexport { default as KeepAlive } from './keep-alive';\r\nexport { default as TenantDropdown } from './tenant-dropdown';\r\nexport { default as MsgDropdown } from './msg-dropdown';\r\nexport { default as LeavePrompt, useLeavePrompt } from './leave-prompt';\r\nexport { default as I18nDropdown } from './i18n-dropdown';\r\nexport { default as CollectProviders } from './collect-providers';\r\nexport { LocaleType } from './provider';\r\nexport { default as Layout } from './layout';\r\nexport { default as Modal, type ModalProps } from './modal';\r\nexport { default as AggregateMenu, type AggregateMenuDataSource } from './aggregate-menu';\r\nexport { default as UploadAvatar } from './upload-file/uploadAvatar';\r\nexport { default as UploadMultiple } from './upload-file/uploadMultiple';\r\nexport { default as UploadTemp } from './upload-file/uploadTemp';\r\n\r\nexport * as util from './_util';\r\n"],"names":["default","Provider","Context","ThemeSwitch","AvatarDropdown","KeepAlive","TenantDropdown","MsgDropdown","LeavePrompt","useLeavePrompt","I18nDropdown","CollectProviders","LocaleType","Layout","Modal","AggregateMenu","UploadAvatar","UploadMultiple","UploadTemp","util"],"mappings":"AAAA,SAASA,WAAWC,QAAQ,EAAEC,OAAO,QAA6B,mBAAa;AAC/E,SAASF,WAAWG,WAAW,QAAQ,uBAAiB;AACxD,SAASH,WAAWI,cAAc,QAAQ,0BAAoB;AAC9D,SAASJ,WAAWK,SAAS,QAAQ,qBAAe;AACpD,SAASL,WAAWM,cAAc,QAAQ,0BAAoB;AAC9D,SAASN,WAAWO,WAAW,QAAQ,uBAAiB;AACxD,SAASP,WAAWQ,WAAW,EAAEC,cAAc,QAAQ,uBAAiB;AACxE,SAAST,WAAWU,YAAY,QAAQ,wBAAkB;AAC1D,SAASV,WAAWW,gBAAgB,QAAQ,4BAAsB;AAClE,SAASC,UAAU,QAAQ,mBAAa;AACxC,SAASZ,WAAWa,MAAM,QAAQ,iBAAW;AAC7C,SAASb,WAAWc,KAAK,QAAyB,gBAAU;AAC5D,SAASd,WAAWe,aAAa,QAAsC,yBAAmB;AAC1F,SAASf,WAAWgB,YAAY,QAAQ,6BAA6B;AACrE,SAAShB,WAAWiB,cAAc,QAAQ,+BAA+B;AACzE,SAASjB,WAAWkB,UAAU,QAAQ,2BAA2B;AAEjE,uBAAsB,gBAAU;AAAhC,SAAO,SAAKC,IAAI,GAAgB"}
1
+ {"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\index.ts"],"sourcesContent":["export { default as Provider, Context, type ProviderProps, } from './provider';\r\nexport { default as ThemeSwitch } from './theme-switch';\r\nexport { default as AvatarDropdown } from './avatar-dropdown';\r\nexport { default as KeepAlive } from './keep-alive';\r\nexport { default as DictText } from './dictionary/text';\r\nexport { default as DictSelect } from './dictionary/select';\r\nexport { default as TenantDropdown } from './tenant-dropdown';\r\nexport { default as MsgDropdown } from './msg-dropdown';\r\nexport { default as LeavePrompt, useLeavePrompt } from './leave-prompt';\r\nexport { default as I18nDropdown } from './i18n-dropdown';\r\nexport { default as CollectProviders } from './collect-providers';\r\nexport { LocaleType } from './provider';\r\nexport { default as Layout } from './layout';\r\nexport { default as Modal, type ModalProps } from './modal';\r\nexport { default as AggregateMenu, type AggregateMenuDataSource } from './aggregate-menu';\r\nexport { default as UploadAvatar } from './upload-file/uploadAvatar';\r\nexport { default as UploadMultiple } from './upload-file/uploadMultiple';\r\nexport { default as UploadTemp } from './upload-file/uploadTemp';\r\n\r\nexport * as util from './_util';\r\n"],"names":["default","Provider","Context","ThemeSwitch","AvatarDropdown","KeepAlive","DictText","DictSelect","TenantDropdown","MsgDropdown","LeavePrompt","useLeavePrompt","I18nDropdown","CollectProviders","LocaleType","Layout","Modal","AggregateMenu","UploadAvatar","UploadMultiple","UploadTemp","util"],"mappings":"AAAA,SAASA,WAAWC,QAAQ,EAAEC,OAAO,QAA6B,mBAAa;AAC/E,SAASF,WAAWG,WAAW,QAAQ,uBAAiB;AACxD,SAASH,WAAWI,cAAc,QAAQ,0BAAoB;AAC9D,SAASJ,WAAWK,SAAS,QAAQ,qBAAe;AACpD,SAASL,WAAWM,QAAQ,QAAQ,oBAAoB;AACxD,SAASN,WAAWO,UAAU,QAAQ,sBAAsB;AAC5D,SAASP,WAAWQ,cAAc,QAAQ,0BAAoB;AAC9D,SAASR,WAAWS,WAAW,QAAQ,uBAAiB;AACxD,SAAST,WAAWU,WAAW,EAAEC,cAAc,QAAQ,uBAAiB;AACxE,SAASX,WAAWY,YAAY,QAAQ,wBAAkB;AAC1D,SAASZ,WAAWa,gBAAgB,QAAQ,4BAAsB;AAClE,SAASC,UAAU,QAAQ,mBAAa;AACxC,SAASd,WAAWe,MAAM,QAAQ,iBAAW;AAC7C,SAASf,WAAWgB,KAAK,QAAyB,gBAAU;AAC5D,SAAShB,WAAWiB,aAAa,QAAsC,yBAAmB;AAC1F,SAASjB,WAAWkB,YAAY,QAAQ,6BAA6B;AACrE,SAASlB,WAAWmB,cAAc,QAAQ,+BAA+B;AACzE,SAASnB,WAAWoB,UAAU,QAAQ,2BAA2B;AAEjE,uBAAsB,gBAAU;AAAhC,SAAO,SAAKC,IAAI,GAAgB"}
@@ -1,21 +1,21 @@
1
1
  import { jsx as _jsx } from "@ice/jsx-runtime/jsx-runtime";
2
2
  import React from "react";
3
3
  import { Moon, Sun } from "../icons/index";
4
+ import styles from "./index.module.css";
4
5
  const ThemeSwitch = (props)=>{
5
- return props.value ? /*#__PURE__*/ _jsx(Sun, {
6
- style: {
7
- color: 'rgba(0, 0, 0, 0.88)'
8
- },
9
- onClick: ()=>{
10
- props.onChange(false);
11
- }
12
- }) : /*#__PURE__*/ _jsx(Moon, {
13
- style: {
14
- color: 'rgba(0, 0, 0, 0.88)'
15
- },
16
- onClick: ()=>{
17
- props.onChange(true);
18
- }
6
+ return /*#__PURE__*/ _jsx("span", {
7
+ className: styles.action,
8
+ children: /*#__PURE__*/ _jsx("span", {
9
+ children: props.value ? /*#__PURE__*/ _jsx(Moon, {
10
+ onClick: ()=>{
11
+ props.onChange(false);
12
+ }
13
+ }) : /*#__PURE__*/ _jsx(Sun, {
14
+ onClick: ()=>{
15
+ props.onChange(true);
16
+ }
17
+ })
18
+ })
19
19
  });
20
20
  };
21
21
  export default ThemeSwitch;
@@ -1 +1 @@
1
- {"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\theme-switch\\index.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Moon, Sun } from '../icons';\r\n\r\nexport interface ThemeSwitchLocale {\r\n bright: string;\r\n dark: string;\r\n}\r\n\r\nexport interface ThemeSwitchProps {\r\n /**\r\n * 值\r\n */\r\n value: boolean;\r\n /**\r\n * 值变更事件 (value: boolean) => void;\r\n */\r\n onChange: (value: boolean) => void;\r\n}\r\n\r\nconst ThemeSwitch: React.FC<ThemeSwitchProps> = (props: ThemeSwitchProps) => {\r\n return props.value ? <Sun style={{ color: 'rgba(0, 0, 0, 0.88)' }} onClick={() => {\r\n props.onChange(false)\r\n\r\n }} /> : <Moon style={{ color: 'rgba(0, 0, 0, 0.88)' }} onClick={() => {\r\n props.onChange(true)\r\n\r\n }} />\r\n};\r\n\r\nexport default ThemeSwitch;\r\n"],"names":["React","Moon","Sun","ThemeSwitch","props","value","style","color","onClick","onChange"],"mappings":";AAAA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,IAAI,EAAEC,GAAG,QAAQ,iBAAW;AAkBrC,MAAMC,cAA0C,CAACC,QAA4B;IAC3E,OAAOA,MAAMC,KAAK,iBAAG,KAACH;QAAII,OAAO;YAAEC,OAAO;QAAsB;QAAGC,SAAS,IAAM;YAChFJ,MAAMK,QAAQ,CAAC,KAAK;QAEtB;uBAAQ,KAACR;QAAKK,OAAO;YAAEC,OAAO;QAAsB;QAAGC,SAAS,IAAM;YACpEJ,MAAMK,QAAQ,CAAC,IAAI;QAErB;MAAK;AACP;AAEA,eAAeN,YAAY"}
1
+ {"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\theme-switch\\index.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Moon, Sun } from '../icons';\r\nimport styles from './index.module.css';\r\n\r\nexport interface ThemeSwitchLocale {\r\n bright: string;\r\n dark: string;\r\n}\r\n\r\nexport interface ThemeSwitchProps {\r\n /**\r\n * 值\r\n */\r\n value: boolean;\r\n /**\r\n * 值变更事件 (value: boolean) => void;\r\n */\r\n onChange: (value: boolean) => void;\r\n}\r\n\r\nconst ThemeSwitch: React.FC<ThemeSwitchProps> = (props: ThemeSwitchProps) => {\r\n return <span className={styles.action}>\r\n <span>{\r\n props.value ? <Moon onClick={() => {\r\n props.onChange(false)\r\n\r\n }} /> : <Sun onClick={() => {\r\n props.onChange(true)\r\n\r\n }} />}\r\n </span>\r\n </span>\r\n};\r\n\r\nexport default ThemeSwitch;\r\n"],"names":["React","Moon","Sun","styles","ThemeSwitch","props","span","className","action","value","onClick","onChange"],"mappings":";AAAA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,IAAI,EAAEC,GAAG,QAAQ,iBAAW;AACrC,OAAOC,YAAY,qBAAqB;AAkBxC,MAAMC,cAA0C,CAACC,QAA4B;IAC3E,qBAAO,KAACC;QAAKC,WAAWJ,OAAOK,MAAM;kBACnC,cAAA,KAACF;sBACCD,MAAMI,KAAK,iBAAG,KAACR;gBAAKS,SAAS,IAAM;oBACjCL,MAAMM,QAAQ,CAAC,KAAK;gBAEtB;+BAAQ,KAACT;gBAAIQ,SAAS,IAAM;oBAC1BL,MAAMM,QAAQ,CAAC,IAAI;gBAErB;cAAK;;;AAGX;AAEA,eAAeP,YAAY"}
@@ -0,0 +1,14 @@
1
+ .action {
2
+ display: flex;
3
+ align-items: center;
4
+ height: 42px;
5
+ padding: 0 12px;
6
+ cursor: pointer;
7
+ transition: all 0.3s;
8
+ }
9
+
10
+ .action svg {
11
+ vertical-align: middle;
12
+ width: 18px;
13
+ height: 18px;
14
+ }
@@ -0,0 +1,6 @@
1
+ import { AppDictItem } from "@knockout-js/api/ucenter";
2
+ /**
3
+ * 用来处理缓存字典项列表
4
+ * @returns
5
+ */
6
+ export declare const useDistItems: (dictCode: string, dataSource?: AppDictItem[]) => [AppDictItem[], () => Promise<void>];
@@ -0,0 +1,92 @@
1
+ import _async_to_generator from "@swc/helpers/src/_async_to_generator.mjs";
2
+ import _sliced_to_array from "@swc/helpers/src/_sliced_to_array.mjs";
3
+ import _to_consumable_array from "@swc/helpers/src/_to_consumable_array.mjs";
4
+ import _ts_generator from "@swc/helpers/src/_ts_generator.mjs";
5
+ import { getDictItems } from "@knockout-js/api";
6
+ import { useEffect, useState } from "react";
7
+ var timeoutFn = undefined, isLoad = false;
8
+ var distData = {}, collectCode = [];
9
+ /**
10
+ * 用来处理缓存字典项列表
11
+ * @returns
12
+ */ export var useDistItems = function(dictCode, dataSource) {
13
+ var _distData_dictCode;
14
+ var _useState = _sliced_to_array(useState((_distData_dictCode = distData[dictCode]) !== null && _distData_dictCode !== void 0 ? _distData_dictCode : []), 2), items = _useState[0], setItems = _useState[1];
15
+ /**
16
+ * 通过列表设置存储
17
+ * @param list
18
+ */ var setDistItems = function(list) {
19
+ var dictCodes = _to_consumable_array(new Set(list.map(function(item) {
20
+ var _item_dict;
21
+ return (_item_dict = item.dict) === null || _item_dict === void 0 ? void 0 : _item_dict.code;
22
+ })));
23
+ dictCodes.forEach(function(code) {
24
+ if (code) distData[code] = list.filter(function(item) {
25
+ var _item_dict;
26
+ return ((_item_dict = item.dict) === null || _item_dict === void 0 ? void 0 : _item_dict.code) == code;
27
+ });
28
+ });
29
+ };
30
+ /**
31
+ * 刷新列表接口
32
+ */ var reloadDistItems = function() {
33
+ var _ref = _async_to_generator(function() {
34
+ var result;
35
+ return _ts_generator(this, function(_state) {
36
+ switch(_state.label){
37
+ case 0:
38
+ return [
39
+ 4,
40
+ getDictItems(dictCode, true)
41
+ ];
42
+ case 1:
43
+ result = _state.sent();
44
+ if (result.length) setDistItems(result);
45
+ return [
46
+ 2
47
+ ];
48
+ }
49
+ });
50
+ });
51
+ return function reloadDistItems() {
52
+ return _ref.apply(this, arguments);
53
+ };
54
+ }();
55
+ useEffect(function() {
56
+ if (dataSource === null || dataSource === void 0 ? void 0 : dataSource.length) setDistItems(dataSource);
57
+ else {
58
+ if (!collectCode.includes(dictCode)) {
59
+ collectCode.push(dictCode);
60
+ isLoad = true;
61
+ }
62
+ if (isLoad) {
63
+ clearTimeout(timeoutFn);
64
+ timeoutFn = setTimeout(function() {
65
+ getDictItems(collectCode).then(function(result) {
66
+ if (result.length) setDistItems(result);
67
+ isLoad = false;
68
+ });
69
+ }, 100);
70
+ }
71
+ }
72
+ }, [
73
+ dictCode,
74
+ dataSource
75
+ ]);
76
+ useEffect(function() {
77
+ var _distData_dictCode;
78
+ var _distData_dictCode_filter;
79
+ setItems((_distData_dictCode_filter = (_distData_dictCode = distData[dictCode]) === null || _distData_dictCode === void 0 ? void 0 : _distData_dictCode.filter(function(item) {
80
+ var _item_dict;
81
+ return ((_item_dict = item.dict) === null || _item_dict === void 0 ? void 0 : _item_dict.code) === dictCode;
82
+ })) !== null && _distData_dictCode_filter !== void 0 ? _distData_dictCode_filter : []);
83
+ }, [
84
+ distData[dictCode]
85
+ ]);
86
+ return [
87
+ items,
88
+ reloadDistItems
89
+ ];
90
+ };
91
+
92
+ //# sourceMappingURL=D:\codeing\git\github\knockout-js\packages\layout\esm\components\dictionary\index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\dictionary\\index.ts"],"sourcesContent":["import { getDictItems } from \"@knockout-js/api\";\r\nimport { AppDictItem } from \"@knockout-js/api/ucenter\";\r\nimport { useEffect, useState } from \"react\";\r\n\r\nlet timeoutFn: NodeJS.Timeout | undefined = undefined, isLoad = false;\r\nconst distData: Record<string, AppDictItem[] | undefined> = {},\r\n collectCode: string[] = [];\r\n\r\n/**\r\n * 用来处理缓存字典项列表\r\n * @returns\r\n */\r\nexport const useDistItems = (dictCode: string, dataSource?: AppDictItem[]): [AppDictItem[], () => Promise<void>] => {\r\n\r\n const [items, setItems] = useState<AppDictItem[]>(distData[dictCode] ?? []);\r\n\r\n /**\r\n * 通过列表设置存储\r\n * @param list\r\n */\r\n const setDistItems = (list: AppDictItem[]) => {\r\n const dictCodes = [...new Set(list.map(item => item.dict?.code))];\r\n dictCodes.forEach(code => {\r\n if (code) {\r\n distData[code] = list.filter(item => item.dict?.code == code);\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * 刷新列表接口\r\n */\r\n const reloadDistItems = async () => {\r\n const result = await getDictItems(dictCode, true);\r\n if (result.length) {\r\n setDistItems(result);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (dataSource?.length) {\r\n setDistItems(dataSource);\r\n } else {\r\n if (!collectCode.includes(dictCode)) {\r\n collectCode.push(dictCode);\r\n isLoad = true;\r\n }\r\n if (isLoad) {\r\n clearTimeout(timeoutFn)\r\n timeoutFn = setTimeout(() => {\r\n getDictItems(collectCode).then(result => {\r\n if (result.length) {\r\n setDistItems(result);\r\n }\r\n isLoad = false;\r\n });\r\n }, 100);\r\n }\r\n }\r\n }, [dictCode, dataSource]);\r\n\r\n useEffect(() => {\r\n setItems(distData[dictCode]?.filter(item => item.dict?.code === dictCode) ?? [])\r\n }, [distData[dictCode]])\r\n\r\n\r\n return [items, reloadDistItems];\r\n}\r\n"],"names":["getDictItems","useEffect","useState","timeoutFn","undefined","isLoad","distData","collectCode","useDistItems","dictCode","dataSource","items","setItems","setDistItems","list","dictCodes","Set","map","item","dict","code","forEach","filter","reloadDistItems","result","length","includes","push","clearTimeout","setTimeout","then"],"mappings":";;;;AAAA,SAASA,YAAY,QAAQ,mBAAmB;AAEhD,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAE5C,IAAIC,YAAwCC,WAAWC,SAAS,KAAK;AACrE,IAAMC,WAAsD,CAAC,GAC3DC,cAAwB,EAAE;AAE5B;;;CAGC,GACD,OAAO,IAAMC,eAAe,SAACC,UAAkBC,YAAqE;QAEhEJ;IAAlD,IAA0BJ,6BAAAA,SAAwBI,CAAAA,qBAAAA,QAAQ,CAACG,SAAS,cAAlBH,gCAAAA,qBAAsB,EAAE,OAAnEK,QAAmBT,cAAZU,WAAYV;IAE1B;;;GAGC,GACD,IAAMW,eAAe,SAACC,MAAwB;QAC5C,IAAMC,YAAa,qBAAG,IAAIC,IAAIF,KAAKG,GAAG,CAACC,SAAAA;gBAAQA;YAAAA,OAAAA,CAAAA,aAAAA,KAAKC,IAAI,cAATD,wBAAAA,KAAAA,IAAAA,WAAWE,IAAI;;QAC9DL,UAAUM,OAAO,CAACD,SAAAA,MAAQ;YACxB,IAAIA,MACFd,QAAQ,CAACc,KAAK,GAAGN,KAAKQ,MAAM,CAACJ,SAAAA;oBAAQA;gBAAAA,OAAAA,CAAAA,CAAAA,aAAAA,KAAKC,IAAI,cAATD,wBAAAA,KAAAA,IAAAA,WAAWE,IAAI,AAAD,KAAKA;;QAE5D;IACF;IAEA;;GAEC,GACD,IAAMG;mBAAkB,oBAAA,WAAY;gBAC5BC;;;;wBAAS;;4BAAMxB,aAAaS,UAAU,IAAI;;;wBAA1Ce,SAAS;wBACf,IAAIA,OAAOC,MAAM,EACfZ,aAAaW;;;;;;QAEjB;wBALMD;;;;IAONtB,UAAU,WAAM;QACd,IAAIS,uBAAAA,wBAAAA,KAAAA,IAAAA,WAAYe,MAAM,EACpBZ,aAAaH;aACR;YACL,IAAI,CAACH,YAAYmB,QAAQ,CAACjB,WAAW;gBACnCF,YAAYoB,IAAI,CAAClB;gBACjBJ,SAAS,IAAI;YACf,CAAC;YACD,IAAIA,QAAQ;gBACVuB,aAAazB;gBACbA,YAAY0B,WAAW,WAAM;oBAC3B7B,aAAaO,aAAauB,IAAI,CAACN,SAAAA,QAAU;wBACvC,IAAIA,OAAOC,MAAM,EACfZ,aAAaW;wBAEfnB,SAAS,KAAK;oBAChB;gBACF,GAAG;YACL,CAAC;QACH,CAAC;IACH,GAAG;QAACI;QAAUC;KAAW;IAEzBT,UAAU,WAAM;YACLK;YAAAA;QAATM,SAASN,CAAAA,4BAAAA,CAAAA,qBAAAA,QAAQ,CAACG,SAAS,cAAlBH,gCAAAA,KAAAA,IAAAA,mBAAoBgB,OAAOJ,SAAAA;gBAAQA;YAAAA,OAAAA,CAAAA,CAAAA,aAAAA,KAAKC,IAAI,cAATD,wBAAAA,KAAAA,IAAAA,WAAWE,IAAI,AAAD,MAAMX;wBAAvDH,uCAAAA,4BAAoE,EAAE;IACjF,GAAG;QAACA,QAAQ,CAACG,SAAS;KAAC;IAGvB,OAAO;QAACE;QAAOY;KAAgB;AACjC,EAAC"}
@@ -0,0 +1,4 @@
1
+ .selectActions {
2
+ text-align: right;
3
+ padding: 2px 8px;
4
+ }
@@ -0,0 +1,19 @@
1
+ /// <reference types="react" />
2
+ import { AppDictItem } from "@knockout-js/api/ucenter";
3
+ import { SelectProps } from "antd";
4
+ export interface DictionarySelectProps extends SelectProps {
5
+ /**
6
+ * 字典code
7
+ */
8
+ dictCode: string;
9
+ /**
10
+ * 外部提供数据源
11
+ */
12
+ dataSource?: AppDictItem[];
13
+ /**
14
+ * changeValue=id: onChange的第一个参数值就为code
15
+ */
16
+ changeValue?: "id" | "code";
17
+ }
18
+ declare const _default: (props: DictionarySelectProps) => JSX.Element;
19
+ export default _default;
@@ -0,0 +1,71 @@
1
+ import _async_to_generator from "@swc/helpers/src/_async_to_generator.mjs";
2
+ import _object_spread from "@swc/helpers/src/_object_spread.mjs";
3
+ import _object_spread_props from "@swc/helpers/src/_object_spread_props.mjs";
4
+ import _object_without_properties from "@swc/helpers/src/_object_without_properties.mjs";
5
+ import _sliced_to_array from "@swc/helpers/src/_sliced_to_array.mjs";
6
+ import _ts_generator from "@swc/helpers/src/_ts_generator.mjs";
7
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ice/jsx-runtime/jsx-runtime";
8
+ import { ReloadOutlined } from "@ant-design/icons";
9
+ import { Select } from "antd";
10
+ import { useEffect, useState } from "react";
11
+ import styles from "./index.module.css";
12
+ import { useDistItems } from "./index";
13
+ export default function(props) {
14
+ var dictCode = props.dictCode, dataSource = props.dataSource, changeValue = props.changeValue, restProps = _object_without_properties(props, [
15
+ "dictCode",
16
+ "dataSource",
17
+ "changeValue"
18
+ ]), _useDistItems = _sliced_to_array(useDistItems(dictCode, dataSource), 2), items = _useDistItems[0], itemsReload = _useDistItems[1], _useState = _sliced_to_array(useState(false), 2), loading = _useState[0], setLoading = _useState[1], _useState1 = _sliced_to_array(useState([]), 2), options = _useState1[0], setOptions = _useState1[1];
19
+ useEffect(function() {
20
+ setOptions(items.map(function(item) {
21
+ return {
22
+ label: item.name,
23
+ value: item[changeValue !== null && changeValue !== void 0 ? changeValue : "code"],
24
+ data: item
25
+ };
26
+ }));
27
+ }, [
28
+ items
29
+ ]);
30
+ return /*#__PURE__*/ _jsx(Select, _object_spread_props(_object_spread({
31
+ style: {
32
+ width: "100%"
33
+ }
34
+ }, restProps), {
35
+ loading: loading,
36
+ options: options,
37
+ dropdownRender: function(menu) {
38
+ return /*#__PURE__*/ _jsxs(_Fragment, {
39
+ children: [
40
+ menu,
41
+ /*#__PURE__*/ _jsx("div", {
42
+ className: styles.selectActions,
43
+ children: /*#__PURE__*/ _jsx(ReloadOutlined, {
44
+ rev: undefined,
45
+ onClick: /*#__PURE__*/ _async_to_generator(function() {
46
+ return _ts_generator(this, function(_state) {
47
+ switch(_state.label){
48
+ case 0:
49
+ setLoading(true);
50
+ return [
51
+ 4,
52
+ itemsReload()
53
+ ];
54
+ case 1:
55
+ _state.sent();
56
+ setLoading(false);
57
+ return [
58
+ 2
59
+ ];
60
+ }
61
+ });
62
+ })
63
+ })
64
+ })
65
+ ]
66
+ });
67
+ }
68
+ }));
69
+ };
70
+
71
+ //# sourceMappingURL=D:\codeing\git\github\knockout-js\packages\layout\esm\components\dictionary\select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\dictionary\\select.tsx"],"sourcesContent":["import { ReloadOutlined } from \"@ant-design/icons\";\r\nimport { AppDictItem } from \"@knockout-js/api/ucenter\";\r\nimport { Select, SelectProps } from \"antd\";\r\nimport { useEffect, useState } from \"react\";\r\nimport styles from \"./index.module.css\";\r\nimport { useDistItems } from \".\";\r\n\r\nexport interface DictionarySelectProps extends SelectProps {\r\n /**\r\n * 字典code\r\n */\r\n dictCode: string;\r\n /**\r\n * 外部提供数据源\r\n */\r\n dataSource?: AppDictItem[];\r\n /**\r\n * changeValue=id: onChange的第一个参数值就为code\r\n */\r\n changeValue?: \"id\" | \"code\";\r\n}\r\n\r\ntype DictionarySelectOption = {\r\n label: string;\r\n value: string;\r\n data: AppDictItem;\r\n}\r\n\r\nexport default (props: DictionarySelectProps) => {\r\n const { dictCode, dataSource, changeValue, ...restProps } = props,\r\n [items, itemsReload] = useDistItems(dictCode, dataSource),\r\n [loading, setLoading] = useState(false),\r\n [options, setOptions] = useState<DictionarySelectOption[]>([]);\r\n\r\n useEffect(() => {\r\n setOptions(items\r\n .map(item => ({\r\n label: item.name,\r\n value: item[changeValue ?? 'code'],\r\n data: item,\r\n }))\r\n );\r\n }, [items])\r\n\r\n return <Select\r\n style={{ width: '100%' }}\r\n {...restProps}\r\n loading={loading}\r\n options={options}\r\n dropdownRender={(menu) => <>\r\n {menu}\r\n <div className={styles.selectActions}>\r\n <ReloadOutlined rev={undefined} onClick={async () => {\r\n setLoading(true);\r\n await itemsReload();\r\n setLoading(false);\r\n }} />\r\n </div>\r\n </>\r\n }\r\n />\r\n}\r\n"],"names":["ReloadOutlined","Select","useEffect","useState","styles","useDistItems","props","dictCode","dataSource","changeValue","restProps","items","itemsReload","loading","setLoading","options","setOptions","map","item","label","name","value","data","style","width","dropdownRender","menu","div","className","selectActions","rev","undefined","onClick"],"mappings":";;;;;;;AAAA,SAASA,cAAc,QAAQ,oBAAoB;AAEnD,SAASC,MAAM,QAAqB,OAAO;AAC3C,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAC5C,OAAOC,YAAY,qBAAqB;AACxC,SAASC,YAAY,QAAQ,UAAI;AAuBjC,eAAe,SAACC,OAAiC;IAC/C,IAAQC,WAAoDD,MAApDC,UAAUC,aAA0CF,MAA1CE,YAAYC,cAA8BH,MAA9BG,aAAgBC,uCAAcJ;QAApDC;QAAUC;QAAYC;QACLJ,iCAAAA,aAAaE,UAAUC,iBAA7CG,QAAsBN,kBAAfO,cAAeP,kBACCF,6BAAAA,SAAS,KAAK,OAArCU,UAAuBV,cAAdW,aAAcX,cACAA,8BAAAA,SAAmC,EAAE,OAA5DY,UAAuBZ,eAAda,aAAcb;IAE1BD,UAAU,WAAM;QACdc,WAAWL,MACRM,GAAG,CAACC,SAAAA;mBAAS;gBACZC,OAAOD,KAAKE,IAAI;gBAChBC,OAAOH,IAAI,CAACT,wBAAAA,yBAAAA,cAAe,MAAM,CAAC;gBAClCa,MAAMJ;YACR;;IAEJ,GAAG;QAACP;KAAM;IAEV,qBAAO,KAACV;QACNsB,OAAO;YAAEC,OAAO;QAAO;OACnBd;QACJG,SAASA;QACTE,SAASA;QACTU,gBAAgB,SAACC;iCAAS;;oBACvBA;kCACD,KAACC;wBAAIC,WAAWxB,OAAOyB,aAAa;kCAClC,cAAA,KAAC7B;4BAAe8B,KAAKC;4BAAWC,uBAAS,oBAAA,WAAY;;;;4CACnDlB,WAAW,IAAI;4CACf;;gDAAMF;;;4CAAN;4CACAE,WAAW,KAAK;;;;;;4BAClB;;;;;;;AAKR,EAAC"}
@@ -0,0 +1,23 @@
1
+ /// <reference types="react" />
2
+ import { AppDictItem } from "@knockout-js/api/ucenter";
3
+ import { TextProps } from "antd/es/typography/Text";
4
+ export interface DictionaryTextProps extends TextProps {
5
+ /**
6
+ * 值
7
+ */
8
+ value?: string;
9
+ /**
10
+ * 字典code
11
+ */
12
+ dictCode: string;
13
+ /**
14
+ * 外部提供数据源
15
+ */
16
+ dataSource?: AppDictItem[];
17
+ /**
18
+ * 默认使用code来匹配value
19
+ */
20
+ valueKey?: "id" | "code";
21
+ }
22
+ declare const _default: (props: DictionaryTextProps) => JSX.Element;
23
+ export default _default;
@@ -0,0 +1,31 @@
1
+ import _object_spread from "@swc/helpers/src/_object_spread.mjs";
2
+ import _object_spread_props from "@swc/helpers/src/_object_spread_props.mjs";
3
+ import _object_without_properties from "@swc/helpers/src/_object_without_properties.mjs";
4
+ import _sliced_to_array from "@swc/helpers/src/_sliced_to_array.mjs";
5
+ import { jsx as _jsx } from "@ice/jsx-runtime/jsx-runtime";
6
+ import { Typography } from "antd";
7
+ import { useEffect, useState } from "react";
8
+ import { useDistItems } from "./index";
9
+ export default function(props) {
10
+ var value = props.value, dataSource = props.dataSource, dictCode = props.dictCode, valueKey = props.valueKey, restProps = _object_without_properties(props, [
11
+ "value",
12
+ "dataSource",
13
+ "dictCode",
14
+ "valueKey"
15
+ ]), _useDistItems = _sliced_to_array(useDistItems(dictCode, dataSource), 1), items = _useDistItems[0], _useState = _sliced_to_array(useState(), 2), dictItem = _useState[0], setDictItem = _useState[1];
16
+ useEffect(function() {
17
+ setDictItem(items.find(function(item) {
18
+ return item[valueKey !== null && valueKey !== void 0 ? valueKey : "code"] === value;
19
+ }));
20
+ }, [
21
+ value,
22
+ valueKey,
23
+ items
24
+ ]);
25
+ var _dictItem_name, _ref;
26
+ return /*#__PURE__*/ _jsx(Typography.Text, _object_spread_props(_object_spread({}, restProps), {
27
+ children: (_ref = (_dictItem_name = dictItem === null || dictItem === void 0 ? void 0 : dictItem.name) !== null && _dictItem_name !== void 0 ? _dictItem_name : value) !== null && _ref !== void 0 ? _ref : ""
28
+ }));
29
+ };
30
+
31
+ //# sourceMappingURL=D:\codeing\git\github\knockout-js\packages\layout\esm\components\dictionary\text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\dictionary\\text.tsx"],"sourcesContent":["import { AppDictItem } from \"@knockout-js/api/ucenter\";\r\nimport { Typography } from \"antd\"\r\nimport { TextProps } from \"antd/es/typography/Text\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useDistItems } from \".\";\r\n\r\nexport interface DictionaryTextProps extends TextProps {\r\n /**\r\n * 值\r\n */\r\n value?: string;\r\n /**\r\n * 字典code\r\n */\r\n dictCode: string;\r\n /**\r\n * 外部提供数据源\r\n */\r\n dataSource?: AppDictItem[];\r\n /**\r\n * 默认使用code来匹配value\r\n */\r\n valueKey?: \"id\" | \"code\";\r\n}\r\n\r\n\r\nexport default (props: DictionaryTextProps) => {\r\n const { value, dataSource, dictCode, valueKey, ...restProps } = props,\r\n [items] = useDistItems(dictCode, dataSource),\r\n [dictItem, setDictItem] = useState<AppDictItem>();\r\n\r\n\r\n useEffect(() => {\r\n setDictItem(items.find(item => item[valueKey ?? 'code'] === value));\r\n }, [value, valueKey, items]);\r\n\r\n return <Typography.Text {...restProps}>\r\n {dictItem?.name ?? value ?? ''}\r\n </Typography.Text>\r\n}\r\n"],"names":["Typography","useEffect","useState","useDistItems","props","value","dataSource","dictCode","valueKey","restProps","items","dictItem","setDictItem","find","item","Text","name"],"mappings":";;;;;AACA,SAASA,UAAU,QAAQ,OAAM;AAEjC,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAC5C,SAASC,YAAY,QAAQ,UAAI;AAsBjC,eAAe,SAACC,OAA+B;IAC7C,IAAQC,QAAwDD,MAAxDC,OAAOC,aAAiDF,MAAjDE,YAAYC,WAAqCH,MAArCG,UAAUC,WAA2BJ,MAA3BI,UAAaC,uCAAcL;QAAxDC;QAAOC;QAAYC;QAAUC;QACzBL,iCAAAA,aAAaI,UAAUD,iBAAhCI,QAASP,kBACgBD,6BAAAA,gBAAzBS,WAAyBT,cAAfU,cAAeV;IAG5BD,UAAU,WAAM;QACdW,YAAYF,MAAMG,IAAI,CAACC,SAAAA;mBAAQA,IAAI,CAACN,qBAAAA,sBAAAA,WAAY,MAAM,CAAC,KAAKH;;IAC9D,GAAG;QAACA;QAAOG;QAAUE;KAAM;QAGxBC,gBAAAA;IADH,qBAAO,KAACX,WAAWe,IAAI,0CAAKN;kBACzBE,CAAAA,OAAAA,CAAAA,iBAAAA,qBAAAA,sBAAAA,KAAAA,IAAAA,SAAUK,IAAI,cAAdL,4BAAAA,iBAAkBN,KAAK,cAAvBM,kBAAAA,OAA2B,EAAE;;AAElC,EAAC"}
@@ -2,6 +2,8 @@ export { default as Provider, Context, type ProviderProps, } from './provider';
2
2
  export { default as ThemeSwitch } from './theme-switch';
3
3
  export { default as AvatarDropdown } from './avatar-dropdown';
4
4
  export { default as KeepAlive } from './keep-alive';
5
+ export { default as DictText } from './dictionary/text';
6
+ export { default as DictSelect } from './dictionary/select';
5
7
  export { default as TenantDropdown } from './tenant-dropdown';
6
8
  export { default as MsgDropdown } from './msg-dropdown';
7
9
  export { default as LeavePrompt, useLeavePrompt } from './leave-prompt';
@@ -2,6 +2,8 @@ export { default as Provider, Context } from "./provider/index";
2
2
  export { default as ThemeSwitch } from "./theme-switch/index";
3
3
  export { default as AvatarDropdown } from "./avatar-dropdown/index";
4
4
  export { default as KeepAlive } from "./keep-alive/index";
5
+ export { default as DictText } from "./dictionary/text";
6
+ export { default as DictSelect } from "./dictionary/select";
5
7
  export { default as TenantDropdown } from "./tenant-dropdown/index";
6
8
  export { default as MsgDropdown } from "./msg-dropdown/index";
7
9
  export { default as LeavePrompt, useLeavePrompt } from "./leave-prompt/index";
@@ -1 +1 @@
1
- {"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\index.ts"],"sourcesContent":["export { default as Provider, Context, type ProviderProps, } from './provider';\r\nexport { default as ThemeSwitch } from './theme-switch';\r\nexport { default as AvatarDropdown } from './avatar-dropdown';\r\nexport { default as KeepAlive } from './keep-alive';\r\nexport { default as TenantDropdown } from './tenant-dropdown';\r\nexport { default as MsgDropdown } from './msg-dropdown';\r\nexport { default as LeavePrompt, useLeavePrompt } from './leave-prompt';\r\nexport { default as I18nDropdown } from './i18n-dropdown';\r\nexport { default as CollectProviders } from './collect-providers';\r\nexport { LocaleType } from './provider';\r\nexport { default as Layout } from './layout';\r\nexport { default as Modal, type ModalProps } from './modal';\r\nexport { default as AggregateMenu, type AggregateMenuDataSource } from './aggregate-menu';\r\nexport { default as UploadAvatar } from './upload-file/uploadAvatar';\r\nexport { default as UploadMultiple } from './upload-file/uploadMultiple';\r\nexport { default as UploadTemp } from './upload-file/uploadTemp';\r\n\r\nexport * as util from './_util';\r\n"],"names":["default","Provider","Context","ThemeSwitch","AvatarDropdown","KeepAlive","TenantDropdown","MsgDropdown","LeavePrompt","useLeavePrompt","I18nDropdown","CollectProviders","LocaleType","Layout","Modal","AggregateMenu","UploadAvatar","UploadMultiple","UploadTemp","util"],"mappings":"AAAA,SAASA,WAAWC,QAAQ,EAAEC,OAAO,QAA6B,mBAAa;AAC/E,SAASF,WAAWG,WAAW,QAAQ,uBAAiB;AACxD,SAASH,WAAWI,cAAc,QAAQ,0BAAoB;AAC9D,SAASJ,WAAWK,SAAS,QAAQ,qBAAe;AACpD,SAASL,WAAWM,cAAc,QAAQ,0BAAoB;AAC9D,SAASN,WAAWO,WAAW,QAAQ,uBAAiB;AACxD,SAASP,WAAWQ,WAAW,EAAEC,cAAc,QAAQ,uBAAiB;AACxE,SAAST,WAAWU,YAAY,QAAQ,wBAAkB;AAC1D,SAASV,WAAWW,gBAAgB,QAAQ,4BAAsB;AAClE,SAASC,UAAU,QAAQ,mBAAa;AACxC,SAASZ,WAAWa,MAAM,QAAQ,iBAAW;AAC7C,SAASb,WAAWc,KAAK,QAAyB,gBAAU;AAC5D,SAASd,WAAWe,aAAa,QAAsC,yBAAmB;AAC1F,SAASf,WAAWgB,YAAY,QAAQ,6BAA6B;AACrE,SAAShB,WAAWiB,cAAc,QAAQ,+BAA+B;AACzE,SAASjB,WAAWkB,UAAU,QAAQ,2BAA2B;AAEjE,uBAAsB,gBAAU;AAAhC,SAAO,SAAKC,IAAI,GAAgB"}
1
+ {"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\index.ts"],"sourcesContent":["export { default as Provider, Context, type ProviderProps, } from './provider';\r\nexport { default as ThemeSwitch } from './theme-switch';\r\nexport { default as AvatarDropdown } from './avatar-dropdown';\r\nexport { default as KeepAlive } from './keep-alive';\r\nexport { default as DictText } from './dictionary/text';\r\nexport { default as DictSelect } from './dictionary/select';\r\nexport { default as TenantDropdown } from './tenant-dropdown';\r\nexport { default as MsgDropdown } from './msg-dropdown';\r\nexport { default as LeavePrompt, useLeavePrompt } from './leave-prompt';\r\nexport { default as I18nDropdown } from './i18n-dropdown';\r\nexport { default as CollectProviders } from './collect-providers';\r\nexport { LocaleType } from './provider';\r\nexport { default as Layout } from './layout';\r\nexport { default as Modal, type ModalProps } from './modal';\r\nexport { default as AggregateMenu, type AggregateMenuDataSource } from './aggregate-menu';\r\nexport { default as UploadAvatar } from './upload-file/uploadAvatar';\r\nexport { default as UploadMultiple } from './upload-file/uploadMultiple';\r\nexport { default as UploadTemp } from './upload-file/uploadTemp';\r\n\r\nexport * as util from './_util';\r\n"],"names":["default","Provider","Context","ThemeSwitch","AvatarDropdown","KeepAlive","DictText","DictSelect","TenantDropdown","MsgDropdown","LeavePrompt","useLeavePrompt","I18nDropdown","CollectProviders","LocaleType","Layout","Modal","AggregateMenu","UploadAvatar","UploadMultiple","UploadTemp","util"],"mappings":"AAAA,SAASA,WAAWC,QAAQ,EAAEC,OAAO,QAA6B,mBAAa;AAC/E,SAASF,WAAWG,WAAW,QAAQ,uBAAiB;AACxD,SAASH,WAAWI,cAAc,QAAQ,0BAAoB;AAC9D,SAASJ,WAAWK,SAAS,QAAQ,qBAAe;AACpD,SAASL,WAAWM,QAAQ,QAAQ,oBAAoB;AACxD,SAASN,WAAWO,UAAU,QAAQ,sBAAsB;AAC5D,SAASP,WAAWQ,cAAc,QAAQ,0BAAoB;AAC9D,SAASR,WAAWS,WAAW,QAAQ,uBAAiB;AACxD,SAAST,WAAWU,WAAW,EAAEC,cAAc,QAAQ,uBAAiB;AACxE,SAASX,WAAWY,YAAY,QAAQ,wBAAkB;AAC1D,SAASZ,WAAWa,gBAAgB,QAAQ,4BAAsB;AAClE,SAASC,UAAU,QAAQ,mBAAa;AACxC,SAASd,WAAWe,MAAM,QAAQ,iBAAW;AAC7C,SAASf,WAAWgB,KAAK,QAAyB,gBAAU;AAC5D,SAAShB,WAAWiB,aAAa,QAAsC,yBAAmB;AAC1F,SAASjB,WAAWkB,YAAY,QAAQ,6BAA6B;AACrE,SAASlB,WAAWmB,cAAc,QAAQ,+BAA+B;AACzE,SAASnB,WAAWoB,UAAU,QAAQ,2BAA2B;AAEjE,uBAAsB,gBAAU;AAAhC,SAAO,SAAKC,IAAI,GAAgB"}
@@ -1,21 +1,21 @@
1
1
  import { jsx as _jsx } from "@ice/jsx-runtime/jsx-runtime";
2
2
  import React from "react";
3
3
  import { Moon, Sun } from "../icons/index";
4
+ import styles from "./index.module.css";
4
5
  var ThemeSwitch = function(props) {
5
- return props.value ? /*#__PURE__*/ _jsx(Sun, {
6
- style: {
7
- color: "rgba(0, 0, 0, 0.88)"
8
- },
9
- onClick: function() {
10
- props.onChange(false);
11
- }
12
- }) : /*#__PURE__*/ _jsx(Moon, {
13
- style: {
14
- color: "rgba(0, 0, 0, 0.88)"
15
- },
16
- onClick: function() {
17
- props.onChange(true);
18
- }
6
+ return /*#__PURE__*/ _jsx("span", {
7
+ className: styles.action,
8
+ children: /*#__PURE__*/ _jsx("span", {
9
+ children: props.value ? /*#__PURE__*/ _jsx(Moon, {
10
+ onClick: function() {
11
+ props.onChange(false);
12
+ }
13
+ }) : /*#__PURE__*/ _jsx(Sun, {
14
+ onClick: function() {
15
+ props.onChange(true);
16
+ }
17
+ })
18
+ })
19
19
  });
20
20
  };
21
21
  export default ThemeSwitch;
@@ -1 +1 @@
1
- {"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\theme-switch\\index.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Moon, Sun } from '../icons';\r\n\r\nexport interface ThemeSwitchLocale {\r\n bright: string;\r\n dark: string;\r\n}\r\n\r\nexport interface ThemeSwitchProps {\r\n /**\r\n * 值\r\n */\r\n value: boolean;\r\n /**\r\n * 值变更事件 (value: boolean) => void;\r\n */\r\n onChange: (value: boolean) => void;\r\n}\r\n\r\nconst ThemeSwitch: React.FC<ThemeSwitchProps> = (props: ThemeSwitchProps) => {\r\n return props.value ? <Sun style={{ color: 'rgba(0, 0, 0, 0.88)' }} onClick={() => {\r\n props.onChange(false)\r\n\r\n }} /> : <Moon style={{ color: 'rgba(0, 0, 0, 0.88)' }} onClick={() => {\r\n props.onChange(true)\r\n\r\n }} />\r\n};\r\n\r\nexport default ThemeSwitch;\r\n"],"names":["React","Moon","Sun","ThemeSwitch","props","value","style","color","onClick","onChange"],"mappings":";AAAA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,IAAI,EAAEC,GAAG,QAAQ,iBAAW;AAkBrC,IAAMC,cAA0C,SAACC,OAA4B;IAC3E,OAAOA,MAAMC,KAAK,iBAAG,KAACH;QAAII,OAAO;YAAEC,OAAO;QAAsB;QAAGC,SAAS,WAAM;YAChFJ,MAAMK,QAAQ,CAAC,KAAK;QAEtB;uBAAQ,KAACR;QAAKK,OAAO;YAAEC,OAAO;QAAsB;QAAGC,SAAS,WAAM;YACpEJ,MAAMK,QAAQ,CAAC,IAAI;QAErB;MAAK;AACP;AAEA,eAAeN,YAAY"}
1
+ {"version":3,"sources":["D:\\codeing\\git\\github\\knockout-js\\packages\\layout\\src\\components\\theme-switch\\index.tsx"],"sourcesContent":["import React from 'react';\r\nimport { Moon, Sun } from '../icons';\r\nimport styles from './index.module.css';\r\n\r\nexport interface ThemeSwitchLocale {\r\n bright: string;\r\n dark: string;\r\n}\r\n\r\nexport interface ThemeSwitchProps {\r\n /**\r\n * 值\r\n */\r\n value: boolean;\r\n /**\r\n * 值变更事件 (value: boolean) => void;\r\n */\r\n onChange: (value: boolean) => void;\r\n}\r\n\r\nconst ThemeSwitch: React.FC<ThemeSwitchProps> = (props: ThemeSwitchProps) => {\r\n return <span className={styles.action}>\r\n <span>{\r\n props.value ? <Moon onClick={() => {\r\n props.onChange(false)\r\n\r\n }} /> : <Sun onClick={() => {\r\n props.onChange(true)\r\n\r\n }} />}\r\n </span>\r\n </span>\r\n};\r\n\r\nexport default ThemeSwitch;\r\n"],"names":["React","Moon","Sun","styles","ThemeSwitch","props","span","className","action","value","onClick","onChange"],"mappings":";AAAA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,IAAI,EAAEC,GAAG,QAAQ,iBAAW;AACrC,OAAOC,YAAY,qBAAqB;AAkBxC,IAAMC,cAA0C,SAACC,OAA4B;IAC3E,qBAAO,KAACC;QAAKC,WAAWJ,OAAOK,MAAM;kBACnC,cAAA,KAACF;sBACCD,MAAMI,KAAK,iBAAG,KAACR;gBAAKS,SAAS,WAAM;oBACjCL,MAAMM,QAAQ,CAAC,KAAK;gBAEtB;+BAAQ,KAACT;gBAAIQ,SAAS,WAAM;oBAC1BL,MAAMM,QAAQ,CAAC,IAAI;gBAErB;cAAK;;;AAGX;AAEA,eAAeP,YAAY"}
@@ -0,0 +1,14 @@
1
+ .action {
2
+ display: flex;
3
+ align-items: center;
4
+ height: 42px;
5
+ padding: 0 12px;
6
+ cursor: pointer;
7
+ transition: all 0.3s;
8
+ }
9
+
10
+ .action svg {
11
+ vertical-align: middle;
12
+ width: 18px;
13
+ height: 18px;
14
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knockout-js/layout",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "组件功能描述",
5
5
  "files": [
6
6
  "esm",
@@ -50,8 +50,8 @@
50
50
  "dayjs": "^1.11.9",
51
51
  "react-activation": "^0.12.4",
52
52
  "react-draggable": "^4.4.5",
53
- "@knockout-js/api": "^0.1.1",
54
- "@knockout-js/ice-urql": "^0.1.1"
53
+ "@knockout-js/api": "^0.1.2",
54
+ "@knockout-js/ice-urql": "^0.1.2"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@ice/pkg": "^1.5.0",