namirasoft-site-react 1.3.338 → 1.3.340
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.
|
@@ -14,6 +14,7 @@ export interface INSBoxEntityProps<Data> extends IBaseComponentProps, IValidatio
|
|
|
14
14
|
defaultValue?: string;
|
|
15
15
|
onChanged?: (e: NSBoxEntity<Data>) => void;
|
|
16
16
|
onClicked?: (e: NSBoxEntity<Data>) => void;
|
|
17
|
+
onLoaded?: (e: NSBoxEntity<Data>) => void;
|
|
17
18
|
multiple: boolean;
|
|
18
19
|
getItems: (filters: FilterItem[] | null, page: number | null, size: number | null) => Promise<{
|
|
19
20
|
count: number;
|
|
@@ -34,6 +35,8 @@ export declare class NSBoxEntity<Data> extends React.Component<INSBoxEntityProps
|
|
|
34
35
|
getError(value: Data | null): string | null;
|
|
35
36
|
getValue(): Data | null;
|
|
36
37
|
getValues(): Data[];
|
|
38
|
+
search(finder: (data: Data) => boolean): Data | null;
|
|
39
|
+
setValueBySearch(finder: (data: Data) => boolean): void;
|
|
37
40
|
setValue(value: Data | null): void;
|
|
38
41
|
setValues(values: Data[]): void;
|
|
39
42
|
private onChanged;
|
|
@@ -44,6 +44,20 @@ export class NSBoxEntity extends React.Component {
|
|
|
44
44
|
});
|
|
45
45
|
return this.state.values;
|
|
46
46
|
}
|
|
47
|
+
search(finder) {
|
|
48
|
+
if (this.state.items)
|
|
49
|
+
for (let i = 0; i < this.state.items.length; i++) {
|
|
50
|
+
const data = this.state.items[i];
|
|
51
|
+
if (finder(data))
|
|
52
|
+
return data;
|
|
53
|
+
}
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
setValueBySearch(finder) {
|
|
57
|
+
let data = this.search(finder);
|
|
58
|
+
if (data)
|
|
59
|
+
this.setValue(data);
|
|
60
|
+
}
|
|
47
61
|
setValue(value) {
|
|
48
62
|
this.setState({ value }, () => {
|
|
49
63
|
if (this.props.onChanged)
|
|
@@ -72,7 +86,10 @@ export class NSBoxEntity extends React.Component {
|
|
|
72
86
|
componentDidMount() {
|
|
73
87
|
this.props.getItems([], null, null).then(items => {
|
|
74
88
|
let items_string = items.rows.map(item => { return { value: this.props.getValue(item), desc: this.props.getText(item) }; });
|
|
75
|
-
this.setState({ items: items.rows, items_string })
|
|
89
|
+
this.setState({ items: items.rows, items_string }, () => {
|
|
90
|
+
if (this.props.onLoaded)
|
|
91
|
+
this.props.onLoaded(this);
|
|
92
|
+
});
|
|
76
93
|
}).catch(() => { });
|
|
77
94
|
}
|
|
78
95
|
render() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NSBoxEntity.js","sourceRoot":"","sources":["../../src/components/NSBoxEntity.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,aAAa,MAAM,sCAAsC,CAAC;AAGjE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"NSBoxEntity.js","sourceRoot":"","sources":["../../src/components/NSBoxEntity.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,25 +11,29 @@ import { BaseOptionType } from "antd/es/select";
|
|
|
11
11
|
import { FilterItem } from "namirasoft-core";
|
|
12
12
|
import { NSLoading } from "./NSLoading";
|
|
13
13
|
|
|
14
|
-
interface INSBoxEntitOption extends BaseOptionType
|
|
14
|
+
interface INSBoxEntitOption extends BaseOptionType
|
|
15
|
+
{
|
|
15
16
|
desc: string;
|
|
16
17
|
value: string;
|
|
17
18
|
}
|
|
18
19
|
|
|
19
|
-
export interface INSBoxEntityProps<Data> extends IBaseComponentProps, IValidationProps
|
|
20
|
+
export interface INSBoxEntityProps<Data> extends IBaseComponentProps, IValidationProps
|
|
21
|
+
{
|
|
20
22
|
title: string;
|
|
21
23
|
placeholder?: string;
|
|
22
24
|
fullWidth?: boolean;
|
|
23
25
|
defaultValue?: string;
|
|
24
26
|
onChanged?: (e: NSBoxEntity<Data>) => void;
|
|
25
27
|
onClicked?: (e: NSBoxEntity<Data>) => void;
|
|
28
|
+
onLoaded?: (e: NSBoxEntity<Data>) => void;
|
|
26
29
|
multiple: boolean;
|
|
27
30
|
getItems: (filters: FilterItem[] | null, page: number | null, size: number | null) => Promise<{ count: number, rows: Data[] }>;
|
|
28
31
|
getValue: (item: Data) => string;
|
|
29
32
|
getText: (item: Data) => string;
|
|
30
33
|
}
|
|
31
34
|
|
|
32
|
-
export interface INSBoxEntityState<Data>
|
|
35
|
+
export interface INSBoxEntityState<Data>
|
|
36
|
+
{
|
|
33
37
|
items: Data[] | null;
|
|
34
38
|
items_string: INSBoxEntitOption[] | null;
|
|
35
39
|
value: Data | null;
|
|
@@ -37,8 +41,10 @@ export interface INSBoxEntityState<Data> {
|
|
|
37
41
|
error?: string;
|
|
38
42
|
}
|
|
39
43
|
|
|
40
|
-
export class NSBoxEntity<Data> extends React.Component<INSBoxEntityProps<Data>, INSBoxEntityState<Data>>
|
|
41
|
-
|
|
44
|
+
export class NSBoxEntity<Data> extends React.Component<INSBoxEntityProps<Data>, INSBoxEntityState<Data>>
|
|
45
|
+
{
|
|
46
|
+
constructor(props: INSBoxEntityProps<Data>)
|
|
47
|
+
{
|
|
42
48
|
super(props);
|
|
43
49
|
this.state = {
|
|
44
50
|
items: null,
|
|
@@ -52,61 +58,98 @@ export class NSBoxEntity<Data> extends React.Component<INSBoxEntityProps<Data>,
|
|
|
52
58
|
this.getValue = this.getValue.bind(this);
|
|
53
59
|
this.onChanged = this.onChanged.bind(this);
|
|
54
60
|
}
|
|
55
|
-
getError(value: Data | null): string | null
|
|
61
|
+
getError(value: Data | null): string | null
|
|
62
|
+
{
|
|
56
63
|
let value_string = value == null ? "" : this.props.getValue(value);
|
|
57
64
|
return (
|
|
58
65
|
Validator.getError(this.props.title, value_string, this.props)
|
|
59
66
|
);
|
|
60
67
|
}
|
|
61
|
-
getValue(): Data | null
|
|
68
|
+
getValue(): Data | null
|
|
69
|
+
{
|
|
62
70
|
let error = this.getError(this.state.value);
|
|
63
|
-
if (error)
|
|
71
|
+
if (error)
|
|
72
|
+
{
|
|
64
73
|
this.setState({ error });
|
|
65
74
|
throw new Error(error);
|
|
66
75
|
}
|
|
67
76
|
return this.state.value;
|
|
68
77
|
}
|
|
69
|
-
getValues(): Data[]
|
|
70
|
-
|
|
78
|
+
getValues(): Data[]
|
|
79
|
+
{
|
|
80
|
+
this.state.values.forEach(value =>
|
|
81
|
+
{
|
|
71
82
|
let error = this.getError(value);
|
|
72
|
-
if (error)
|
|
83
|
+
if (error)
|
|
84
|
+
{
|
|
73
85
|
this.setState({ error });
|
|
74
86
|
throw new Error(error);
|
|
75
87
|
}
|
|
76
88
|
});
|
|
77
89
|
return this.state.values;
|
|
78
90
|
}
|
|
79
|
-
|
|
80
|
-
|
|
91
|
+
search(finder: (data: Data) => boolean): Data | null
|
|
92
|
+
{
|
|
93
|
+
if (this.state.items)
|
|
94
|
+
for (let i = 0; i < this.state.items.length; i++)
|
|
95
|
+
{
|
|
96
|
+
const data = this.state.items[i];
|
|
97
|
+
if (finder(data))
|
|
98
|
+
return data;
|
|
99
|
+
}
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
setValueBySearch(finder: (data: Data) => boolean): void
|
|
103
|
+
{
|
|
104
|
+
let data = this.search(finder);
|
|
105
|
+
if (data)
|
|
106
|
+
this.setValue(data);
|
|
107
|
+
}
|
|
108
|
+
setValue(value: Data | null): void
|
|
109
|
+
{
|
|
110
|
+
this.setState({ value }, () =>
|
|
111
|
+
{
|
|
81
112
|
if (this.props.onChanged)
|
|
82
113
|
this.props.onChanged(this);
|
|
83
114
|
});
|
|
84
115
|
}
|
|
85
|
-
setValues(values: Data[]): void
|
|
86
|
-
|
|
116
|
+
setValues(values: Data[]): void
|
|
117
|
+
{
|
|
118
|
+
this.setState({ values }, () =>
|
|
119
|
+
{
|
|
87
120
|
if (this.props.onChanged)
|
|
88
121
|
this.props.onChanged(this);
|
|
89
122
|
});
|
|
90
123
|
}
|
|
91
|
-
private onChanged(value: string | null | string[]): void
|
|
124
|
+
private onChanged(value: string | null | string[]): void
|
|
125
|
+
{
|
|
92
126
|
if (this.state.items)
|
|
93
|
-
if (this.props.multiple)
|
|
127
|
+
if (this.props.multiple)
|
|
128
|
+
{
|
|
94
129
|
let string_values = value as string[];
|
|
95
130
|
let ds = this.state.items.filter(item => string_values.includes(this.props.getValue(item))) ?? [];
|
|
96
131
|
this.setValues(ds);
|
|
97
132
|
}
|
|
98
|
-
else
|
|
133
|
+
else
|
|
134
|
+
{
|
|
99
135
|
let d = this.state.items.find(item => this.props.getValue(item) === value) ?? null;
|
|
100
136
|
this.setValue(d);
|
|
101
137
|
}
|
|
102
138
|
}
|
|
103
|
-
override componentDidMount()
|
|
104
|
-
|
|
139
|
+
override componentDidMount()
|
|
140
|
+
{
|
|
141
|
+
this.props.getItems([], null, null).then(items =>
|
|
142
|
+
{
|
|
105
143
|
let items_string = items.rows.map(item => { return { value: this.props.getValue(item), desc: this.props.getText(item) } });
|
|
106
|
-
this.setState({ items: items.rows, items_string })
|
|
144
|
+
this.setState({ items: items.rows, items_string }, () =>
|
|
145
|
+
{
|
|
146
|
+
if (this.props.onLoaded)
|
|
147
|
+
this.props.onLoaded(this);
|
|
148
|
+
});
|
|
107
149
|
}).catch(() => { });
|
|
108
150
|
}
|
|
109
|
-
override render()
|
|
151
|
+
override render()
|
|
152
|
+
{
|
|
110
153
|
return (
|
|
111
154
|
<>
|
|
112
155
|
<div id={this.props.id} className={`${Styles.ns_input_parent}`}>
|