d2coreui 23.0.33 → 23.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { SelectProps } from "antd";
|
|
3
|
-
|
|
3
|
+
import { DefaultOptionType } from "rc-select/lib/Select";
|
|
4
|
+
type EnumTypes = string | number;
|
|
5
|
+
type EnumRepresentation<T extends EnumTypes> = {
|
|
4
6
|
[key in string]: T;
|
|
5
7
|
};
|
|
6
|
-
|
|
8
|
+
interface EnumValuePickerProps<T extends EnumTypes> extends Omit<SelectProps<T>, "onChange"> {
|
|
7
9
|
allowedValueTypes?: T[];
|
|
8
10
|
values: EnumRepresentation<T>;
|
|
9
11
|
translateValue?: boolean;
|
|
10
12
|
translationPrefix?: string;
|
|
11
|
-
onChange(value?: T)
|
|
13
|
+
onChange?: (value?: T) => void;
|
|
12
14
|
}
|
|
13
|
-
|
|
15
|
+
interface EnumValuePickerState {
|
|
16
|
+
options: DefaultOptionType[];
|
|
17
|
+
}
|
|
18
|
+
export default class EnumValuePicker<T extends EnumTypes> extends React.Component<EnumValuePickerProps<T>, EnumValuePickerState> {
|
|
19
|
+
constructor(props: Readonly<EnumValuePickerProps<T>>);
|
|
20
|
+
componentDidUpdate(prevProps: Readonly<EnumValuePickerProps<T>>): void;
|
|
14
21
|
render(): React.JSX.Element;
|
|
22
|
+
private getOptions;
|
|
15
23
|
}
|
|
16
24
|
export {};
|
|
@@ -13,6 +13,18 @@ import React from "react";
|
|
|
13
13
|
import { Select } from "antd";
|
|
14
14
|
import i18n from "d2core/i18n/i18n";
|
|
15
15
|
export default class EnumValuePicker extends React.Component {
|
|
16
|
+
constructor(props) {
|
|
17
|
+
super(props);
|
|
18
|
+
this.state = {
|
|
19
|
+
options: this.getOptions(props.values, props.allowedValueTypes, props.translateValue, props.translationPrefix),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
componentDidUpdate(prevProps) {
|
|
23
|
+
if (prevProps.values !== this.props.values) {
|
|
24
|
+
const { values, allowedValueTypes, translateValue, translationPrefix } = this.props;
|
|
25
|
+
this.setState({ options: this.getOptions(values, allowedValueTypes, translateValue, translationPrefix) });
|
|
26
|
+
}
|
|
27
|
+
}
|
|
16
28
|
render() {
|
|
17
29
|
const _a = this.props, { value, allowedValueTypes, onChange, translationPrefix, values, translateValue } = _a, others = __rest(_a, ["value", "allowedValueTypes", "onChange", "translationPrefix", "values", "translateValue"]);
|
|
18
30
|
let selectValue = value;
|
|
@@ -22,14 +34,23 @@ export default class EnumValuePicker extends React.Component {
|
|
|
22
34
|
}
|
|
23
35
|
}
|
|
24
36
|
return (React.createElement(Select, Object.assign({ value: selectValue, onChange: (value) => {
|
|
25
|
-
onChange(value !== "" ? value : undefined);
|
|
26
|
-
} }, others)
|
|
27
|
-
|
|
37
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(value !== "" ? value : undefined);
|
|
38
|
+
}, options: this.state.options }, others)));
|
|
39
|
+
}
|
|
40
|
+
getOptions(enumValue, allowedValueTypes, translateValue, translationPrefix) {
|
|
41
|
+
return Object.keys(enumValue)
|
|
42
|
+
.filter((key) => isNaN(Number(key)) && (!allowedValueTypes || allowedValueTypes.includes(enumValue[key])))
|
|
43
|
+
.map((key) => [enumValue[key], key])
|
|
44
|
+
.map(([k, v]) => {
|
|
45
|
+
let text = v;
|
|
28
46
|
if (translateValue) {
|
|
29
|
-
text = i18n(translationPrefix
|
|
47
|
+
text = i18n((translationPrefix !== null && translationPrefix !== void 0 ? translationPrefix : "") + text);
|
|
30
48
|
}
|
|
31
|
-
return
|
|
32
|
-
|
|
49
|
+
return {
|
|
50
|
+
value: k,
|
|
51
|
+
label: text,
|
|
52
|
+
};
|
|
53
|
+
});
|
|
33
54
|
}
|
|
34
55
|
}
|
|
35
56
|
//# sourceMappingURL=enumValuePicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enumValuePicker.js","sourceRoot":"","sources":["../../../../components/picker/enumValuePicker.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAc,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"enumValuePicker.js","sourceRoot":"","sources":["../../../../components/picker/enumValuePicker.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAc,MAAM,MAAM,CAAC;AAEzC,OAAO,IAAI,MAAM,kBAAkB,CAAC;AAkBpC,MAAM,CAAC,OAAO,OAAO,eAAqC,SAAQ,KAAK,CAAC,SAAwD;IAC5H,YAAY,KAAwC;QAChD,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG;YACT,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,iBAAiB,CAAC;SACjH,CAAA;IACL,CAAC;IAED,kBAAkB,CAAC,SAA4C;QAC3D,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACzC,MAAM,EAAC,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YAClF,IAAI,CAAC,QAAQ,CAAC,EAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,CAAC,EAAC,CAAC,CAAC;QAC5G,CAAC;IACL,CAAC;IAED,MAAM;QACF,MAAM,KAA6F,IAAI,CAAC,KAAK,EAAvG,EAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,OAAyB,EAApB,MAAM,cAAzF,2FAA0F,CAAa,CAAC;QAC9G,IAAI,WAAW,GAAyB,KAAK,CAAC;QAE9C,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,IAAI,iBAAiB,EAAE,CAAC;YACzE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3C,WAAW,GAAG,SAAS,CAAC;YAC5B,CAAC;QACL,CAAC;QAED,OAAO,CACH,oBAAC,MAAM,kBAAI,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACjD,CAAC,EACD,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,IACvB,MAAM,EAAI,CAC5B,CAAC;IACN,CAAC;IAEO,UAAU,CAAC,SAAgC,EAAE,iBAAuB,EAAE,cAAwB,EAAE,iBAA0B;QAC9H,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;aACxB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACzG,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;aACnC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,IAAI,IAAI,GAAc,CAAC,CAAC;YAExB,IAAI,cAAc,EAAE,CAAC;gBACjB,IAAI,GAAG,IAAI,CAAC,CAAC,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YAClD,CAAC;YAED,OAAO;gBACH,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,IAAI;aACO,CAAA;QAC1B,CAAC,CAAC,CAAC;IACX,CAAC;CACJ","sourcesContent":["import React from \"react\";\r\nimport {Select, SelectProps} from \"antd\";\r\nimport {DefaultOptionType} from \"rc-select/lib/Select\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\n\r\ntype EnumTypes = string | number;\r\ntype EnumRepresentation<T extends EnumTypes> = { [key in string]: T };\r\n\r\ninterface EnumValuePickerProps<T extends EnumTypes> extends Omit<SelectProps<T>, \"onChange\"> {\r\n allowedValueTypes?: T[]\r\n values: EnumRepresentation<T>\r\n translateValue?: boolean\r\n translationPrefix?: string\r\n\r\n onChange?: (value?: T) => void\r\n}\r\n\r\ninterface EnumValuePickerState {\r\n options: DefaultOptionType[]\r\n}\r\n\r\nexport default class EnumValuePicker<T extends EnumTypes> extends React.Component<EnumValuePickerProps<T>, EnumValuePickerState> {\r\n constructor(props: Readonly<EnumValuePickerProps<T>>) {\r\n super(props);\r\n this.state = {\r\n options: this.getOptions(props.values, props.allowedValueTypes, props.translateValue, props.translationPrefix),\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<EnumValuePickerProps<T>>) {\r\n if (prevProps.values !== this.props.values) {\r\n const {values, allowedValueTypes, translateValue, translationPrefix} = this.props;\r\n this.setState({options: this.getOptions(values, allowedValueTypes, translateValue, translationPrefix)});\r\n }\r\n }\r\n\r\n render() {\r\n const {value, allowedValueTypes, onChange, translationPrefix, values, translateValue, ...others} = this.props;\r\n let selectValue: T | null | undefined = value;\r\n\r\n if (selectValue !== undefined && selectValue !== null && allowedValueTypes) {\r\n if (!allowedValueTypes.includes(selectValue)) {\r\n selectValue = undefined;\r\n }\r\n }\r\n\r\n return (\r\n <Select<T> value={selectValue}\r\n onChange={(value) => {\r\n onChange?.(value !== \"\" ? value : undefined);\r\n }}\r\n options={this.state.options}\r\n {...others} />\r\n );\r\n }\r\n\r\n private getOptions(enumValue: EnumRepresentation<T>, allowedValueTypes?: T[], translateValue?: boolean, translationPrefix?: string): DefaultOptionType[] {\r\n return Object.keys(enumValue)\r\n .filter((key) => isNaN(Number(key)) && (!allowedValueTypes || allowedValueTypes.includes(enumValue[key])))\r\n .map((key) => [enumValue[key], key])\r\n .map(([k, v]) => {\r\n let text: EnumTypes = v;\r\n\r\n if (translateValue) {\r\n text = i18n((translationPrefix ?? \"\") + text);\r\n }\r\n\r\n return {\r\n value: k,\r\n label: text,\r\n } as DefaultOptionType\r\n });\r\n }\r\n}"]}
|