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":"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"}
1
+ {"version":3,"file":"NSBoxEntity.js","sourceRoot":"","sources":["../../src/components/NSBoxEntity.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "framework": "npm",
9
9
  "application": "package",
10
10
  "private": false,
11
- "version": "1.3.338",
11
+ "version": "1.3.340",
12
12
  "author": "Amir Abolhasani, Alireza Esmaeeli, Sepideh Mazloumi, Hooman Shashaeh",
13
13
  "license": "MIT",
14
14
  "main": "./dist/main.js",
@@ -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
- constructor(props: INSBoxEntityProps<Data>) {
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
- this.state.values.forEach(value => {
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
- setValue(value: Data | null): void {
80
- this.setState({ value }, () => {
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
- this.setState({ values }, () => {
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
- this.props.getItems([], null, null).then(items => {
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}`}>