namirasoft-site-react 1.3.266 → 1.3.267

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 (330) hide show
  1. package/config-overrides.js +70 -70
  2. package/dist/assets/images/404 image.svg +9 -9
  3. package/dist/assets/images/404 image_mobile.svg +9 -9
  4. package/dist/assets/images/arrow.svg +3 -3
  5. package/dist/assets/images/danger.svg +3 -3
  6. package/dist/assets/images/exit.svg +3 -3
  7. package/dist/assets/images/icon-input-copy.svg +3 -3
  8. package/dist/assets/images/icon-input-date.svg +9 -9
  9. package/dist/assets/images/icon-input-duration.svg +9 -9
  10. package/dist/assets/images/icon-input-email.svg +9 -9
  11. package/dist/assets/images/icon-input-float.svg +9 -9
  12. package/dist/assets/images/icon-input-integer.svg +9 -9
  13. package/dist/assets/images/icon-input-ip.svg +9 -9
  14. package/dist/assets/images/icon-input-phone.svg +9 -9
  15. package/dist/assets/images/icon-input-price.svg +9 -9
  16. package/dist/assets/images/icon-input-search.svg +3 -3
  17. package/dist/assets/images/icon-input-string.svg +9 -9
  18. package/dist/assets/images/icon-input-text.svg +9 -9
  19. package/dist/assets/images/icon-input-time.svg +9 -9
  20. package/dist/assets/images/icon-select-box.svg +3 -3
  21. package/dist/assets/images/logo.svg +9 -9
  22. package/dist/assets/images/menu.svg +3 -3
  23. package/dist/assets/images/namira.svg +9 -9
  24. package/dist/assets/images/rectangle.svg +3 -3
  25. package/dist/components/NSActionMenu.js +2 -2
  26. package/dist/components/NSActionMenu.module.css +75 -75
  27. package/dist/components/NSBarAction.module.css +87 -87
  28. package/dist/components/NSBarHeroBanner.module.css +42 -42
  29. package/dist/components/NSBarNotification.module.css +31 -31
  30. package/dist/components/NSBarTitle.module.css +9 -9
  31. package/dist/components/NSBox.module.css +122 -122
  32. package/dist/components/NSBoxBoolean.module.css +54 -54
  33. package/dist/components/NSBoxCombo.module.css +38 -38
  34. package/dist/components/NSBoxDate.module.css +39 -39
  35. package/dist/components/NSBoxErrorNotifier.module.css +2 -2
  36. package/dist/components/NSBoxLabel.module.css +12 -12
  37. package/dist/components/NSBoxOTP.module.css +10 -10
  38. package/dist/components/NSBoxTextArea.module.css +76 -76
  39. package/dist/components/NSButton.module.css +27 -27
  40. package/dist/components/NSButtonBlue.module.css +4 -4
  41. package/dist/components/NSButtonGreen.module.css +4 -4
  42. package/dist/components/NSButtonRed.module.css +4 -4
  43. package/dist/components/NSCard.module.css +110 -110
  44. package/dist/components/NSCopyToClipboard.module.css +39 -39
  45. package/dist/components/NSElectronicCard.module.css +60 -60
  46. package/dist/components/NSEntityBar.module.css +77 -77
  47. package/dist/components/NSEntityCardBackground.module.css +27 -27
  48. package/dist/components/NSFilterBox.module.css +47 -47
  49. package/dist/components/NSFilterBoxDialog.module.css +36 -36
  50. package/dist/components/NSFilterItem.module.css +23 -23
  51. package/dist/components/NSFooter.module.css +126 -126
  52. package/dist/components/NSGroupedList.module.css +72 -72
  53. package/dist/components/NSHeader.module.css +254 -254
  54. package/dist/components/NSLayout.module.css +13 -13
  55. package/dist/components/NSLink.module.css +36 -36
  56. package/dist/components/NSLoading.module.css +29 -29
  57. package/dist/components/NSModal.js +2 -2
  58. package/dist/components/NSModal.module.css +70 -70
  59. package/dist/components/NSPagination.module.css +91 -91
  60. package/dist/components/NSPanel.module.css +46 -46
  61. package/dist/components/NSRadioButton.module.css +28 -28
  62. package/dist/components/NSSection.module.css +10 -10
  63. package/dist/components/NSSectionBars.module.css +10 -10
  64. package/dist/components/NSSectionCards.module.css +38 -38
  65. package/dist/components/NSTabPage.module.css +48 -48
  66. package/dist/components/NSTable.module.css +173 -173
  67. package/dist/components/NSTag.module.css +44 -44
  68. package/dist/components/NSTitle.module.css +15 -15
  69. package/dist/components/NSVerification.module.css +22 -22
  70. package/dist/pages/NSLoginPage.module.css +19 -19
  71. package/dist/pages/NSNotFoundPage.module.css +18 -18
  72. package/package.json +65 -65
  73. package/public/index.html +38 -38
  74. package/src/App.css +16 -16
  75. package/src/App.tsx +118 -118
  76. package/src/CopyToClipboard.ts +6 -6
  77. package/src/Validator.ts +110 -110
  78. package/src/assets/images/404 image.svg +9 -9
  79. package/src/assets/images/404 image_mobile.svg +9 -9
  80. package/src/assets/images/arrow.svg +3 -3
  81. package/src/assets/images/danger.svg +3 -3
  82. package/src/assets/images/exit.svg +3 -3
  83. package/src/assets/images/icon-input-copy.svg +3 -3
  84. package/src/assets/images/icon-input-date.svg +9 -9
  85. package/src/assets/images/icon-input-duration.svg +9 -9
  86. package/src/assets/images/icon-input-email.svg +9 -9
  87. package/src/assets/images/icon-input-float.svg +9 -9
  88. package/src/assets/images/icon-input-integer.svg +9 -9
  89. package/src/assets/images/icon-input-ip.svg +9 -9
  90. package/src/assets/images/icon-input-phone.svg +9 -9
  91. package/src/assets/images/icon-input-price.svg +9 -9
  92. package/src/assets/images/icon-input-search.svg +3 -3
  93. package/src/assets/images/icon-input-string.svg +9 -9
  94. package/src/assets/images/icon-input-text.svg +9 -9
  95. package/src/assets/images/icon-input-time.svg +9 -9
  96. package/src/assets/images/icon-select-box.svg +3 -3
  97. package/src/assets/images/logo.svg +9 -9
  98. package/src/assets/images/menu.svg +3 -3
  99. package/src/assets/images/namira.svg +9 -9
  100. package/src/assets/images/rectangle.svg +3 -3
  101. package/src/components/NSActionMenu.module.css +75 -75
  102. package/src/components/NSActionMenu.tsx +86 -86
  103. package/src/components/NSBarAction.module.css +87 -87
  104. package/src/components/NSBarAction.tsx +86 -86
  105. package/src/components/NSBarHeroBanner.module.css +42 -42
  106. package/src/components/NSBarHeroBanner.tsx +61 -61
  107. package/src/components/NSBarNotification.module.css +31 -31
  108. package/src/components/NSBarNotification.tsx +63 -63
  109. package/src/components/NSBarTitle.module.css +9 -9
  110. package/src/components/NSBarTitle.tsx +28 -28
  111. package/src/components/NSBox.module.css +122 -122
  112. package/src/components/NSBoxBoolean.module.css +54 -54
  113. package/src/components/NSBoxBoolean.tsx +84 -84
  114. package/src/components/NSBoxCombo.module.css +38 -38
  115. package/src/components/NSBoxCombo.tsx +131 -131
  116. package/src/components/NSBoxDate.module.css +39 -39
  117. package/src/components/NSBoxDate.tsx +83 -83
  118. package/src/components/NSBoxDateTime.tsx +83 -83
  119. package/src/components/NSBoxDouble.tsx +88 -88
  120. package/src/components/NSBoxDuration.tsx +88 -88
  121. package/src/components/NSBoxEmail.tsx +149 -149
  122. package/src/components/NSBoxEntity.tsx +129 -129
  123. package/src/components/NSBoxEnum.tsx +56 -56
  124. package/src/components/NSBoxErrorNotifier.module.css +2 -2
  125. package/src/components/NSBoxErrorNotifier.tsx +33 -33
  126. package/src/components/NSBoxIPV4.tsx +93 -93
  127. package/src/components/NSBoxIPV6.tsx +90 -90
  128. package/src/components/NSBoxInteger.tsx +86 -86
  129. package/src/components/NSBoxLabel.module.css +12 -12
  130. package/src/components/NSBoxLabel.tsx +29 -29
  131. package/src/components/NSBoxOTP.module.css +10 -10
  132. package/src/components/NSBoxOTP.tsx +65 -65
  133. package/src/components/NSBoxPassword.tsx +86 -86
  134. package/src/components/NSBoxPhone.tsx +109 -109
  135. package/src/components/NSBoxPrice.tsx +88 -88
  136. package/src/components/NSBoxString.tsx +135 -135
  137. package/src/components/NSBoxTextArea.module.css +76 -76
  138. package/src/components/NSBoxTextArea.tsx +127 -127
  139. package/src/components/NSBoxTime.tsx +88 -88
  140. package/src/components/NSButton.module.css +27 -27
  141. package/src/components/NSButton.tsx +23 -23
  142. package/src/components/NSButtonBlue.module.css +4 -4
  143. package/src/components/NSButtonBlue.tsx +12 -12
  144. package/src/components/NSButtonGreen.module.css +4 -4
  145. package/src/components/NSButtonGreen.tsx +11 -11
  146. package/src/components/NSButtonRed.module.css +4 -4
  147. package/src/components/NSButtonRed.tsx +11 -11
  148. package/src/components/NSCard.module.css +110 -110
  149. package/src/components/NSCard.tsx +69 -69
  150. package/src/components/NSCopyToClipboard.module.css +39 -39
  151. package/src/components/NSCopyToClipboard.tsx +35 -35
  152. package/src/components/NSElectronicCard.module.css +60 -60
  153. package/src/components/NSElectronicCard.tsx +47 -47
  154. package/src/components/NSEntityBar.module.css +77 -77
  155. package/src/components/NSEntityBar.tsx +27 -27
  156. package/src/components/NSEntityCardBackground.module.css +27 -27
  157. package/src/components/NSEntityCardBackground.tsx +34 -34
  158. package/src/components/NSFilterBox.module.css +47 -47
  159. package/src/components/NSFilterBox.tsx +374 -374
  160. package/src/components/NSFilterBoxDialog.module.css +36 -36
  161. package/src/components/NSFilterBoxDialog.tsx +74 -74
  162. package/src/components/NSFilterItem.module.css +23 -23
  163. package/src/components/NSFilterItem.tsx +72 -72
  164. package/src/components/NSFooter.module.css +126 -126
  165. package/src/components/NSFooter.tsx +153 -153
  166. package/src/components/NSGroupedList.module.css +72 -72
  167. package/src/components/NSGroupedList.tsx +107 -107
  168. package/src/components/NSHeader.module.css +254 -254
  169. package/src/components/NSHeader.tsx +187 -187
  170. package/src/components/NSLayout.module.css +13 -13
  171. package/src/components/NSLayout.tsx +75 -75
  172. package/src/components/NSLine.tsx +18 -18
  173. package/src/components/NSLink.module.css +36 -36
  174. package/src/components/NSLink.tsx +25 -25
  175. package/src/components/NSLinkBlue.tsx +20 -20
  176. package/src/components/NSLinkGreen.tsx +5 -5
  177. package/src/components/NSLinkRed.tsx +5 -5
  178. package/src/components/NSLoading.module.css +29 -29
  179. package/src/components/NSLoading.tsx +19 -19
  180. package/src/components/NSModal.module.css +70 -70
  181. package/src/components/NSModal.tsx +49 -49
  182. package/src/components/NSPagination.module.css +91 -91
  183. package/src/components/NSPagination.tsx +191 -191
  184. package/src/components/NSPanel.module.css +46 -46
  185. package/src/components/NSPanel.tsx +19 -19
  186. package/src/components/NSRadioButton.module.css +28 -28
  187. package/src/components/NSRadioButton.tsx +117 -117
  188. package/src/components/NSSection.module.css +10 -10
  189. package/src/components/NSSection.tsx +23 -23
  190. package/src/components/NSSectionBars.module.css +10 -10
  191. package/src/components/NSSectionBars.tsx +25 -25
  192. package/src/components/NSSectionCards.module.css +38 -38
  193. package/src/components/NSSectionCards.tsx +51 -51
  194. package/src/components/NSSectionTitle.tsx +21 -21
  195. package/src/components/NSSpace.tsx +28 -28
  196. package/src/components/NSTabPage.module.css +48 -48
  197. package/src/components/NSTabPage.tsx +45 -45
  198. package/src/components/NSTable.module.css +173 -173
  199. package/src/components/NSTable.tsx +182 -182
  200. package/src/components/NSTag.module.css +44 -44
  201. package/src/components/NSTag.tsx +49 -49
  202. package/src/components/NSTitle.module.css +15 -15
  203. package/src/components/NSTitle.tsx +19 -19
  204. package/src/components/NSVerification.module.css +22 -22
  205. package/src/components/NSVerification.tsx +41 -41
  206. package/src/index.tsx +7 -7
  207. package/src/main.ts +77 -77
  208. package/src/pages/NSLoginPage.module.css +19 -19
  209. package/src/pages/NSLoginPage.tsx +30 -30
  210. package/src/pages/NSNotFoundPage.module.css +18 -18
  211. package/src/pages/NSNotFoundPage.tsx +11 -11
  212. package/src/props/IBaseComponentProps.ts +8 -8
  213. package/src/props/IHeaderIconProps.ts +9 -9
  214. package/src/props/IHeaderProps.ts +6 -6
  215. package/src/props/IImageProps.ts +4 -4
  216. package/src/props/ILinkProps.ts +5 -5
  217. package/src/props/IValidationNumberProps.ts +4 -4
  218. package/src/props/IValidationProps.ts +7 -7
  219. package/src/props/IValidationRegexProps.ts +4 -4
  220. package/src/props/IValidationStringProps.ts +4 -4
  221. package/src/routing/INSRouterMaker.ts +6 -6
  222. package/src/routing/INSRouterProps.ts +5 -5
  223. package/src/routing/INSRouterState.ts +5 -5
  224. package/src/routing/NSRouterMaker.tsx +33 -33
  225. package/src/routing/Notifier.ts +79 -79
  226. package/tsconfig.json +43 -43
  227. package/dist/App.css +0 -17
  228. package/dist/assets/images/icon-export.svg +0 -3
  229. package/dist/assets/images/icon-input-id.svg +0 -9
  230. package/dist/assets/images/icon-refresh.svg +0 -3
  231. package/dist/components/NSAccess.d.ts +0 -2
  232. package/dist/components/NSAccess.js +0 -8
  233. package/dist/components/NSAccess.js.map +0 -1
  234. package/dist/components/NSAccess.module.css +0 -39
  235. package/dist/components/NSBoxSearch.d.ts +0 -22
  236. package/dist/components/NSBoxSearch.js +0 -54
  237. package/dist/components/NSBoxSearch.js.map +0 -1
  238. package/dist/components/NSBoxText.d.ts +0 -25
  239. package/dist/components/NSBoxText.js +0 -56
  240. package/dist/components/NSBoxText.js.map +0 -1
  241. package/dist/components/NSInput.module.css +0 -74
  242. package/dist/components/NSInputDate.d.ts +0 -21
  243. package/dist/components/NSInputDate.js +0 -41
  244. package/dist/components/NSInputDate.js.map +0 -1
  245. package/dist/components/NSInputDate.module.css +0 -42
  246. package/dist/components/NSInputDuration.d.ts +0 -23
  247. package/dist/components/NSInputDuration.js +0 -42
  248. package/dist/components/NSInputDuration.js.map +0 -1
  249. package/dist/components/NSInputEmail.d.ts +0 -22
  250. package/dist/components/NSInputEmail.js +0 -43
  251. package/dist/components/NSInputEmail.js.map +0 -1
  252. package/dist/components/NSInputErrorNotifier.d.ts +0 -5
  253. package/dist/components/NSInputErrorNotifier.js +0 -7
  254. package/dist/components/NSInputErrorNotifier.js.map +0 -1
  255. package/dist/components/NSInputErrorNotifier.module.css +0 -3
  256. package/dist/components/NSInputFloat.d.ts +0 -22
  257. package/dist/components/NSInputFloat.js +0 -41
  258. package/dist/components/NSInputFloat.js.map +0 -1
  259. package/dist/components/NSInputIP.d.ts +0 -22
  260. package/dist/components/NSInputIP.js +0 -43
  261. package/dist/components/NSInputIP.js.map +0 -1
  262. package/dist/components/NSInputInteger.d.ts +0 -22
  263. package/dist/components/NSInputInteger.js +0 -41
  264. package/dist/components/NSInputInteger.js.map +0 -1
  265. package/dist/components/NSInputPassword.d.ts +0 -22
  266. package/dist/components/NSInputPassword.js +0 -42
  267. package/dist/components/NSInputPassword.js.map +0 -1
  268. package/dist/components/NSInputPhone.d.ts +0 -22
  269. package/dist/components/NSInputPhone.js +0 -38
  270. package/dist/components/NSInputPhone.js.map +0 -1
  271. package/dist/components/NSInputPrice.d.ts +0 -22
  272. package/dist/components/NSInputPrice.js +0 -41
  273. package/dist/components/NSInputPrice.js.map +0 -1
  274. package/dist/components/NSInputSearch.d.ts +0 -22
  275. package/dist/components/NSInputSearch.js +0 -41
  276. package/dist/components/NSInputSearch.js.map +0 -1
  277. package/dist/components/NSInputString.d.ts +0 -22
  278. package/dist/components/NSInputString.js +0 -42
  279. package/dist/components/NSInputString.js.map +0 -1
  280. package/dist/components/NSInputText.d.ts +0 -22
  281. package/dist/components/NSInputText.js +0 -42
  282. package/dist/components/NSInputText.js.map +0 -1
  283. package/dist/components/NSInputTime.d.ts +0 -22
  284. package/dist/components/NSInputTime.js +0 -43
  285. package/dist/components/NSInputTime.js.map +0 -1
  286. package/dist/components/NSLayoutAction.d.ts +0 -5
  287. package/dist/components/NSLayoutAction.js +0 -20
  288. package/dist/components/NSLayoutAction.js.map +0 -1
  289. package/dist/components/NSLayoutAction.module.css +0 -88
  290. package/dist/components/NSLayoutHeroBanner.d.ts +0 -2
  291. package/dist/components/NSLayoutHeroBanner.js +0 -8
  292. package/dist/components/NSLayoutHeroBanner.js.map +0 -1
  293. package/dist/components/NSLayoutHeroBanner.module.css +0 -43
  294. package/dist/components/NSLayoutTitle.d.ts +0 -2
  295. package/dist/components/NSLayoutTitle.js +0 -11
  296. package/dist/components/NSLayoutTitle.js.map +0 -1
  297. package/dist/components/NSLayoutTitle.module.css +0 -10
  298. package/dist/components/NSNotification.d.ts +0 -21
  299. package/dist/components/NSNotification.js +0 -37
  300. package/dist/components/NSNotification.js.map +0 -1
  301. package/dist/components/NSNotification.module.css +0 -32
  302. package/dist/components/NSSelectBox.d.ts +0 -24
  303. package/dist/components/NSSelectBox.js +0 -61
  304. package/dist/components/NSSelectBox.js.map +0 -1
  305. package/dist/components/NSSelectBox.module.css +0 -42
  306. package/dist/index.css +0 -6
  307. package/dist/props/BaseComponentProps.d.ts +0 -6
  308. package/dist/props/BaseComponentProps.js +0 -2
  309. package/dist/props/BaseComponentProps.js.map +0 -10
  310. package/dist/props/INamirasoftProps.d.ts +0 -4
  311. package/dist/props/INamirasoftProps.js +0 -2
  312. package/dist/props/INamirasoftProps.js.map +0 -1
  313. package/dist/props/ImageProps.d.ts +0 -4
  314. package/dist/props/ImageProps.js +0 -2
  315. package/dist/props/ImageProps.js.map +0 -10
  316. package/dist/props/LinkProps.d.ts +0 -5
  317. package/dist/props/LinkProps.js +0 -2
  318. package/dist/props/LinkProps.js.map +0 -10
  319. package/dist/props/ValidationNumberProps.d.ts +0 -4
  320. package/dist/props/ValidationNumberProps.js +0 -2
  321. package/dist/props/ValidationNumberProps.js.map +0 -10
  322. package/dist/props/ValidationProps.d.ts +0 -6
  323. package/dist/props/ValidationProps.js +0 -2
  324. package/dist/props/ValidationProps.js.map +0 -10
  325. package/dist/props/ValidationRegexProps.d.ts +0 -4
  326. package/dist/props/ValidationRegexProps.js +0 -2
  327. package/dist/props/ValidationRegexProps.js.map +0 -1
  328. package/dist/props/ValidationStringProps.d.ts +0 -4
  329. package/dist/props/ValidationStringProps.js +0 -2
  330. package/dist/props/ValidationStringProps.js.map +0 -10
@@ -1,130 +1,130 @@
1
- "use client";
2
- import React from "react";
3
- import Styles from "./NSBoxEnum.module.css";
4
- import { Select, Space } from 'antd';
5
- import IconSelectBox from '../assets/images/icon-select-box.svg';
6
- import { IBaseComponentProps } from "../props/IBaseComponentProps";
7
- import { IValidationProps } from "../props/IValidationProps";
8
- import { Validator } from "../Validator";
9
- import { NSBoxErrorNotifier } from "./NSBoxErrorNotifier";
10
- import { BaseOptionType } from "antd/es/select";
11
-
12
- export interface INSBoxEntitOption extends BaseOptionType
13
- {
14
- desc: string;
15
- value: string;
16
- }
17
-
18
- export interface INSBoxEntityProps extends IBaseComponentProps, IValidationProps
19
- {
20
- title: string;
21
- placeholder?: string;
22
- defaultValue?: string;
23
- onChanged?: (e: NSBoxEntity) => void;
24
- onClicked?: (e: NSBoxEntity) => void;
25
- multiple: boolean;
26
- options: INSBoxEntitOption[];
27
- }
28
-
29
- export interface INSBoxEntityState
30
- {
31
- value: string | null;
32
- values: string[];
33
- error?: string;
34
- }
35
-
36
- export class NSBoxEntity extends React.Component<INSBoxEntityProps, INSBoxEntityState>
37
- {
38
- constructor(props: INSBoxEntityProps)
39
- {
40
- super(props);
41
- this.state = {
42
- value: null,
43
- values: [],
44
- };
45
- this.getValues = this.getValues.bind(this);
46
- this.setValues = this.setValues.bind(this);
47
- this.setValue = this.setValue.bind(this);
48
- this.getValue = this.getValue.bind(this);
49
- this.onChanged = this.onChanged.bind(this);
50
- }
51
- getError(value: string): string | null
52
- {
53
- return (
54
- Validator.getError(this.props.title, value, this.props)
55
- );
56
- }
57
- getValue(): string | null
58
- {
59
- let error = this.getError(this.state.value || "");
60
- if (error)
61
- {
62
- this.setState({ error });
63
- throw new Error(error);
64
- }
65
- return this.state.value;
66
- }
67
- getValues(): string[]
68
- {
69
- this.state.values.forEach(value =>
70
- {
71
- let error = this.getError(value || "");
72
- if (error)
73
- {
74
- this.setState({ error });
75
- throw new Error(error);
76
- }
77
- });
78
- return this.state.values;
79
- }
80
- setValue(value: string | null): void
81
- {
82
- this.setState({ value }, () =>
83
- {
84
- if (this.props.onChanged)
85
- this.props.onChanged(this);
86
- });
87
- }
88
- setValues(values: string[]): void
89
- {
90
- this.setState({ values }, () =>
91
- {
92
- if (this.props.onChanged)
93
- this.props.onChanged(this);
94
- });
95
- }
96
- onChanged(value: string | null | string[]): void
97
- {
98
- if (this.props.multiple)
99
- this.setValues(value as string[]);
100
- else
101
- this.setValue(value as string | null);
102
- }
103
- override render()
104
- {
105
- return (
106
- <>
107
- <div id={this.props.id} className={`${Styles.ns_input_parent}`}>
108
- <span className={Styles.ns_input_title}> {this.props.required && <span style={{ color: "red" }} >*</span>} {this.props.title} </span>
109
- <Select
110
- mode={this.props.multiple ? "multiple" : undefined}
111
- style={{ width: '100%' }}
112
- className={Styles.ns_input_select}
113
- placeholder={this.props.placeholder}
114
- onChange={this.onChanged}
115
- onClick={() => this.props.onClicked}
116
- optionLabelProp="label"
117
- options={this.props.options}
118
- optionRender={(option) => (
119
- <Space className={Styles.ns_input_select_option}>
120
- {option.data.desc}
121
- </Space>
122
- )}
123
- suffixIcon={<img src={IconSelectBox} alt="SelectBox Icon" />}
124
- />
125
- </div>
126
- <NSBoxErrorNotifier error={this.state.error} clearError={() => this.setState({ error: "" })} />
127
- </>
128
- );
129
- }
1
+ "use client";
2
+ import React from "react";
3
+ import Styles from "./NSBoxEnum.module.css";
4
+ import { Select, Space } from 'antd';
5
+ import IconSelectBox from '../assets/images/icon-select-box.svg';
6
+ import { IBaseComponentProps } from "../props/IBaseComponentProps";
7
+ import { IValidationProps } from "../props/IValidationProps";
8
+ import { Validator } from "../Validator";
9
+ import { NSBoxErrorNotifier } from "./NSBoxErrorNotifier";
10
+ import { BaseOptionType } from "antd/es/select";
11
+
12
+ export interface INSBoxEntitOption extends BaseOptionType
13
+ {
14
+ desc: string;
15
+ value: string;
16
+ }
17
+
18
+ export interface INSBoxEntityProps extends IBaseComponentProps, IValidationProps
19
+ {
20
+ title: string;
21
+ placeholder?: string;
22
+ defaultValue?: string;
23
+ onChanged?: (e: NSBoxEntity) => void;
24
+ onClicked?: (e: NSBoxEntity) => void;
25
+ multiple: boolean;
26
+ options: INSBoxEntitOption[];
27
+ }
28
+
29
+ export interface INSBoxEntityState
30
+ {
31
+ value: string | null;
32
+ values: string[];
33
+ error?: string;
34
+ }
35
+
36
+ export class NSBoxEntity extends React.Component<INSBoxEntityProps, INSBoxEntityState>
37
+ {
38
+ constructor(props: INSBoxEntityProps)
39
+ {
40
+ super(props);
41
+ this.state = {
42
+ value: null,
43
+ values: [],
44
+ };
45
+ this.getValues = this.getValues.bind(this);
46
+ this.setValues = this.setValues.bind(this);
47
+ this.setValue = this.setValue.bind(this);
48
+ this.getValue = this.getValue.bind(this);
49
+ this.onChanged = this.onChanged.bind(this);
50
+ }
51
+ getError(value: string): string | null
52
+ {
53
+ return (
54
+ Validator.getError(this.props.title, value, this.props)
55
+ );
56
+ }
57
+ getValue(): string | null
58
+ {
59
+ let error = this.getError(this.state.value || "");
60
+ if (error)
61
+ {
62
+ this.setState({ error });
63
+ throw new Error(error);
64
+ }
65
+ return this.state.value;
66
+ }
67
+ getValues(): string[]
68
+ {
69
+ this.state.values.forEach(value =>
70
+ {
71
+ let error = this.getError(value || "");
72
+ if (error)
73
+ {
74
+ this.setState({ error });
75
+ throw new Error(error);
76
+ }
77
+ });
78
+ return this.state.values;
79
+ }
80
+ setValue(value: string | null): void
81
+ {
82
+ this.setState({ value }, () =>
83
+ {
84
+ if (this.props.onChanged)
85
+ this.props.onChanged(this);
86
+ });
87
+ }
88
+ setValues(values: string[]): void
89
+ {
90
+ this.setState({ values }, () =>
91
+ {
92
+ if (this.props.onChanged)
93
+ this.props.onChanged(this);
94
+ });
95
+ }
96
+ onChanged(value: string | null | string[]): void
97
+ {
98
+ if (this.props.multiple)
99
+ this.setValues(value as string[]);
100
+ else
101
+ this.setValue(value as string | null);
102
+ }
103
+ override render()
104
+ {
105
+ return (
106
+ <>
107
+ <div id={this.props.id} className={`${Styles.ns_input_parent}`}>
108
+ <span className={Styles.ns_input_title}> {this.props.required && <span style={{ color: "red" }} >*</span>} {this.props.title} </span>
109
+ <Select
110
+ mode={this.props.multiple ? "multiple" : undefined}
111
+ style={{ width: '100%' }}
112
+ className={Styles.ns_input_select}
113
+ placeholder={this.props.placeholder}
114
+ onChange={this.onChanged}
115
+ onClick={() => this.props.onClicked}
116
+ optionLabelProp="label"
117
+ options={this.props.options}
118
+ optionRender={(option) => (
119
+ <Space className={Styles.ns_input_select_option}>
120
+ {option.data.desc}
121
+ </Space>
122
+ )}
123
+ suffixIcon={<img src={IconSelectBox} alt="SelectBox Icon" />}
124
+ />
125
+ </div>
126
+ <NSBoxErrorNotifier error={this.state.error} clearError={() => this.setState({ error: "" })} />
127
+ </>
128
+ );
129
+ }
130
130
  }
@@ -1,57 +1,57 @@
1
- "use client";
2
-
3
- import React, { createRef } from "react";
4
- import { ObjectService } from "namirasoft-core";
5
- import { INSBoxComboOption, INSBoxComboProps, NSBoxCombo } from "./NSBoxCombo";
6
-
7
- export interface INSBoxEnumProps extends INSBoxComboProps
8
- {
9
- options: any;
10
- }
11
-
12
- export class NSBoxEnum extends React.Component<INSBoxEnumProps>
13
- {
14
- public NSBoxCombo = createRef<NSBoxCombo>();
15
- constructor(props: INSBoxEnumProps)
16
- {
17
- super(props);
18
- this.getValues = this.getValues.bind(this);
19
- this.setValues = this.setValues.bind(this);
20
- this.setValue = this.setValue.bind(this);
21
- this.getValue = this.getValue.bind(this);
22
- }
23
- getError(value: string): string | null
24
- {
25
- return this.NSBoxCombo.current?.getError(value) ?? null;
26
- }
27
- getValue<T>(enumObj: { [s: string]: T }, _default: T): T | null
28
- {
29
- return new ObjectService(this.NSBoxCombo.current?.getValue()).getEnum(enumObj, _default);
30
- }
31
- getValues<T>(enumObj: { [s: string]: T }, _default: T): T[]
32
- {
33
- let values = this.NSBoxCombo.current?.getValues() ?? [];
34
- return values.map(value => new ObjectService(value).getEnum(enumObj, _default));
35
- }
36
- setValue(value: string | null): void
37
- {
38
- this.NSBoxCombo.current?.setValue(value);
39
- }
40
- setValues(values: string[]): void
41
- {
42
- this.NSBoxCombo.current?.setValues(values);
43
- }
44
- override render()
45
- {
46
- let options: INSBoxComboOption[] = Object.keys(this.props.options).map(key =>
47
- {
48
- return {
49
- desc: key,
50
- value: key,
51
- };
52
- });
53
- return (
54
- <NSBoxCombo ref={this.NSBoxCombo} {...this.props} options={options}></NSBoxCombo>
55
- );
56
- }
1
+ "use client";
2
+
3
+ import React, { createRef } from "react";
4
+ import { ObjectService } from "namirasoft-core";
5
+ import { INSBoxComboOption, INSBoxComboProps, NSBoxCombo } from "./NSBoxCombo";
6
+
7
+ export interface INSBoxEnumProps extends INSBoxComboProps
8
+ {
9
+ options: any;
10
+ }
11
+
12
+ export class NSBoxEnum extends React.Component<INSBoxEnumProps>
13
+ {
14
+ public NSBoxCombo = createRef<NSBoxCombo>();
15
+ constructor(props: INSBoxEnumProps)
16
+ {
17
+ super(props);
18
+ this.getValues = this.getValues.bind(this);
19
+ this.setValues = this.setValues.bind(this);
20
+ this.setValue = this.setValue.bind(this);
21
+ this.getValue = this.getValue.bind(this);
22
+ }
23
+ getError(value: string): string | null
24
+ {
25
+ return this.NSBoxCombo.current?.getError(value) ?? null;
26
+ }
27
+ getValue<T>(enumObj: { [s: string]: T }, _default: T): T | null
28
+ {
29
+ return new ObjectService(this.NSBoxCombo.current?.getValue()).getEnum(enumObj, _default);
30
+ }
31
+ getValues<T>(enumObj: { [s: string]: T }, _default: T): T[]
32
+ {
33
+ let values = this.NSBoxCombo.current?.getValues() ?? [];
34
+ return values.map(value => new ObjectService(value).getEnum(enumObj, _default));
35
+ }
36
+ setValue(value: string | null): void
37
+ {
38
+ this.NSBoxCombo.current?.setValue(value);
39
+ }
40
+ setValues(values: string[]): void
41
+ {
42
+ this.NSBoxCombo.current?.setValues(values);
43
+ }
44
+ override render()
45
+ {
46
+ let options: INSBoxComboOption[] = Object.keys(this.props.options).map(key =>
47
+ {
48
+ return {
49
+ desc: key,
50
+ value: key,
51
+ };
52
+ });
53
+ return (
54
+ <NSBoxCombo ref={this.NSBoxCombo} {...this.props} options={options}></NSBoxCombo>
55
+ );
56
+ }
57
57
  }
@@ -1,3 +1,3 @@
1
- .ns_input_error {
2
- color: #FF3F3F !important;
1
+ .ns_input_error {
2
+ color: #FF3F3F !important;
3
3
  }
@@ -1,34 +1,34 @@
1
- import Styles from "./NSBoxErrorNotifier.module.css";
2
- import Danger from '../assets/images/danger.svg';
3
- import { IBaseComponentProps } from "../props/IBaseComponentProps";
4
-
5
- export interface INSBoxErrorNotifierProps extends IBaseComponentProps
6
- {
7
- error?: string;
8
- clearError: () => void;
9
- }
10
-
11
- export function NSBoxErrorNotifier(props: INSBoxErrorNotifierProps)
12
- {
13
- if (props.error)
14
- setTimeout(() =>
15
- {
16
- props.clearError();
17
- }, 5000);
18
- return <>
19
- {
20
- props.error && (
21
- <div id={props.id} className="d-flex justify-content-start align-items-center gap-2 ms-2">
22
- <img
23
- className={""}
24
- src={Danger}
25
- alt="Error Icon"
26
- width={13}
27
- height={13}
28
- />
29
- <span className={Styles.ns_input_error}>{props.error}</span>
30
- </div >
31
- )
32
- }
33
- </>;
1
+ import Styles from "./NSBoxErrorNotifier.module.css";
2
+ import Danger from '../assets/images/danger.svg';
3
+ import { IBaseComponentProps } from "../props/IBaseComponentProps";
4
+
5
+ export interface INSBoxErrorNotifierProps extends IBaseComponentProps
6
+ {
7
+ error?: string;
8
+ clearError: () => void;
9
+ }
10
+
11
+ export function NSBoxErrorNotifier(props: INSBoxErrorNotifierProps)
12
+ {
13
+ if (props.error)
14
+ setTimeout(() =>
15
+ {
16
+ props.clearError();
17
+ }, 5000);
18
+ return <>
19
+ {
20
+ props.error && (
21
+ <div id={props.id} className="d-flex justify-content-start align-items-center gap-2 ms-2">
22
+ <img
23
+ className={""}
24
+ src={Danger}
25
+ alt="Error Icon"
26
+ width={13}
27
+ height={13}
28
+ />
29
+ <span className={Styles.ns_input_error}>{props.error}</span>
30
+ </div >
31
+ )
32
+ }
33
+ </>;
34
34
  }
@@ -1,94 +1,94 @@
1
- "use client";
2
-
3
- import React from "react";
4
- import Styles from "./NSBox.module.css";
5
- import IconInputIP from '../assets/images/icon-input-ip.svg';
6
- import { IBaseComponentProps } from "../props/IBaseComponentProps";
7
- import { IValidationProps } from "../props/IValidationProps";
8
- import { IValidationStringProps } from "../props/IValidationStringProps";
9
- import { Validator } from "../Validator";
10
- import { NSBoxErrorNotifier } from "./NSBoxErrorNotifier";
11
-
12
- //todo: check pattern
13
- const IPV4_PATTERN: string = "^((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$"
14
- export interface INSBoxIPV4Props extends IBaseComponentProps, IValidationProps, IValidationStringProps
15
- {
16
- title: string;
17
- placeholder?: string;
18
- defaultValue?: string;
19
- onChanged?: (e: NSBoxIPV4) => void;
20
- onClicked?: (e: NSBoxIPV4) => void;
21
- }
22
-
23
- export interface INSBoxIPV4State
24
- {
25
- value: string;
26
- error?: string;
27
- }
28
-
29
- export class NSBoxIPV4 extends React.Component<INSBoxIPV4Props, INSBoxIPV4State>
30
- {
31
- constructor(props: INSBoxIPV4Props)
32
- {
33
- super(props);
34
- this.state = { value: props.defaultValue ?? "" };
35
- this.getValue = this.getValue.bind(this);
36
- this.setValue = this.setValue.bind(this);
37
- this.onChanged = this.onChanged.bind(this);
38
- }
39
- getError(): string | null
40
- {
41
- return (
42
- Validator.getError(this.props.title, this.state.value, this.props) ||
43
- Validator.getErrorString(this.props.title, this.state.value, this.props) ||
44
- Validator.getErrorIP(this.props.title, this.state.value)
45
- );
46
- }
47
- getValue(): string
48
- {
49
- let error = this.getError();
50
- if (error)
51
- {
52
- this.setState({ error });
53
- throw new Error(error);
54
- }
55
- return this.state.value;
56
- }
57
- setValue(value: string): void
58
- {
59
- this.setState({ value }, () =>
60
- {
61
- if (this.props.onChanged)
62
- this.props.onChanged(this);
63
- });
64
- }
65
- private onChanged(e: React.ChangeEvent<HTMLInputElement>): void
66
- {
67
- this.setValue(e.target.value);
68
- }
69
- override render()
70
- {
71
- return (
72
- <>
73
- <div id={this.props.id} className={`${Styles.ns_input_parent} ${this.props.classList?.join(" ")}`} style={this.props.style}>
74
- <span className={Styles.ns_input_title}> {this.props.required && <span style={{ color: "red" }} >*</span>} {this.props.title} </span>
75
- <input
76
- type="text"
77
- name={this.props.name}
78
- className={Styles.ns_input}
79
- placeholder={this.props.placeholder}
80
- value={this.state.value}
81
- onChange={this.onChanged}
82
- onClick={() => this.props.onClicked}
83
- minLength={7}
84
- maxLength={15}
85
- size={15}
86
- pattern={IPV4_PATTERN}
87
- style={{ background: `url(${IconInputIP}) white no-repeat scroll center right 16px` }}
88
- />
89
- </div>
90
- <NSBoxErrorNotifier error={this.state.error} clearError={() => this.setState({ error: "" })} />
91
- </>
92
- );
93
- }
1
+ "use client";
2
+
3
+ import React from "react";
4
+ import Styles from "./NSBox.module.css";
5
+ import IconInputIP from '../assets/images/icon-input-ip.svg';
6
+ import { IBaseComponentProps } from "../props/IBaseComponentProps";
7
+ import { IValidationProps } from "../props/IValidationProps";
8
+ import { IValidationStringProps } from "../props/IValidationStringProps";
9
+ import { Validator } from "../Validator";
10
+ import { NSBoxErrorNotifier } from "./NSBoxErrorNotifier";
11
+
12
+ //todo: check pattern
13
+ const IPV4_PATTERN: string = "^((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$"
14
+ export interface INSBoxIPV4Props extends IBaseComponentProps, IValidationProps, IValidationStringProps
15
+ {
16
+ title: string;
17
+ placeholder?: string;
18
+ defaultValue?: string;
19
+ onChanged?: (e: NSBoxIPV4) => void;
20
+ onClicked?: (e: NSBoxIPV4) => void;
21
+ }
22
+
23
+ export interface INSBoxIPV4State
24
+ {
25
+ value: string;
26
+ error?: string;
27
+ }
28
+
29
+ export class NSBoxIPV4 extends React.Component<INSBoxIPV4Props, INSBoxIPV4State>
30
+ {
31
+ constructor(props: INSBoxIPV4Props)
32
+ {
33
+ super(props);
34
+ this.state = { value: props.defaultValue ?? "" };
35
+ this.getValue = this.getValue.bind(this);
36
+ this.setValue = this.setValue.bind(this);
37
+ this.onChanged = this.onChanged.bind(this);
38
+ }
39
+ getError(): string | null
40
+ {
41
+ return (
42
+ Validator.getError(this.props.title, this.state.value, this.props) ||
43
+ Validator.getErrorString(this.props.title, this.state.value, this.props) ||
44
+ Validator.getErrorIP(this.props.title, this.state.value)
45
+ );
46
+ }
47
+ getValue(): string
48
+ {
49
+ let error = this.getError();
50
+ if (error)
51
+ {
52
+ this.setState({ error });
53
+ throw new Error(error);
54
+ }
55
+ return this.state.value;
56
+ }
57
+ setValue(value: string): void
58
+ {
59
+ this.setState({ value }, () =>
60
+ {
61
+ if (this.props.onChanged)
62
+ this.props.onChanged(this);
63
+ });
64
+ }
65
+ private onChanged(e: React.ChangeEvent<HTMLInputElement>): void
66
+ {
67
+ this.setValue(e.target.value);
68
+ }
69
+ override render()
70
+ {
71
+ return (
72
+ <>
73
+ <div id={this.props.id} className={`${Styles.ns_input_parent} ${this.props.classList?.join(" ")}`} style={this.props.style}>
74
+ <span className={Styles.ns_input_title}> {this.props.required && <span style={{ color: "red" }} >*</span>} {this.props.title} </span>
75
+ <input
76
+ type="text"
77
+ name={this.props.name}
78
+ className={Styles.ns_input}
79
+ placeholder={this.props.placeholder}
80
+ value={this.state.value}
81
+ onChange={this.onChanged}
82
+ onClick={() => this.props.onClicked}
83
+ minLength={7}
84
+ maxLength={15}
85
+ size={15}
86
+ pattern={IPV4_PATTERN}
87
+ style={{ background: `url(${IconInputIP}) white no-repeat scroll center right 16px` }}
88
+ />
89
+ </div>
90
+ <NSBoxErrorNotifier error={this.state.error} clearError={() => this.setState({ error: "" })} />
91
+ </>
92
+ );
93
+ }
94
94
  }