namirasoft-site-react 1.3.202 → 1.3.204

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