namirasoft-site-react 1.3.201 → 1.3.202

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 (320) hide show
  1. package/config-overrides.js +70 -70
  2. package/dist/App.css +13 -0
  3. package/dist/assets/images/404 image.svg +9 -9
  4. package/dist/assets/images/404 image_mobile.svg +9 -9
  5. package/dist/assets/images/arrow.svg +3 -3
  6. package/dist/assets/images/danger.svg +3 -3
  7. package/dist/assets/images/exit.svg +3 -3
  8. package/dist/assets/images/icon-export.svg +3 -0
  9. package/dist/assets/images/icon-input-copy.svg +3 -3
  10. package/dist/assets/images/icon-input-date.svg +9 -9
  11. package/dist/assets/images/icon-input-duration.svg +9 -9
  12. package/dist/assets/images/icon-input-email.svg +9 -9
  13. package/dist/assets/images/icon-input-float.svg +9 -9
  14. package/dist/assets/images/icon-input-id.svg +9 -0
  15. package/dist/assets/images/icon-input-integer.svg +9 -9
  16. package/dist/assets/images/icon-input-ip.svg +9 -9
  17. package/dist/assets/images/icon-input-phone.svg +9 -9
  18. package/dist/assets/images/icon-input-price.svg +9 -9
  19. package/dist/assets/images/icon-input-search.svg +3 -3
  20. package/dist/assets/images/icon-input-string.svg +9 -9
  21. package/dist/assets/images/icon-input-text.svg +9 -9
  22. package/dist/assets/images/icon-input-time.svg +9 -9
  23. package/dist/assets/images/icon-refresh.svg +3 -0
  24. package/dist/assets/images/icon-select-box.svg +3 -3
  25. package/dist/assets/images/logo.svg +9 -9
  26. package/dist/assets/images/menu.svg +3 -3
  27. package/dist/assets/images/namira.svg +9 -9
  28. package/dist/assets/images/rectangle.svg +3 -3
  29. package/dist/components/NSActionMenu.js +2 -2
  30. package/dist/components/NSActionMenu.module.css +75 -75
  31. package/dist/components/NSBarAction.module.css +87 -87
  32. package/dist/components/NSBarHeroBanner.module.css +42 -42
  33. package/dist/components/NSBarNotification.module.css +31 -31
  34. package/dist/components/NSBarTitle.module.css +9 -9
  35. package/dist/components/NSBox.module.css +112 -85
  36. package/dist/components/NSBoxBoolean.module.css +54 -54
  37. package/dist/components/NSBoxDate.module.css +39 -39
  38. package/dist/components/NSBoxEnum.module.css +38 -38
  39. package/dist/components/NSBoxErrorNotifier.module.css +2 -2
  40. package/dist/components/NSBoxOTP.module.css +10 -10
  41. package/dist/components/NSBoxTextArea.module.css +72 -76
  42. package/dist/components/NSButton.module.css +27 -27
  43. package/dist/components/NSButtonBlue.module.css +4 -4
  44. package/dist/components/NSButtonGreen.module.css +4 -4
  45. package/dist/components/NSButtonRed.module.css +4 -4
  46. package/dist/components/NSCard.module.css +110 -110
  47. package/dist/components/NSCopyToClipboard.module.css +39 -39
  48. package/dist/components/NSElectronicCard.module.css +60 -60
  49. package/dist/components/NSEntityBar.module.css +77 -77
  50. package/dist/components/NSEntityCardBackground.module.css +27 -27
  51. package/dist/components/NSFilterBox.module.css +38 -38
  52. package/dist/components/NSFilterBoxDialog.module.css +36 -36
  53. package/dist/components/NSFilterItem.module.css +23 -23
  54. package/dist/components/NSFooter.module.css +126 -126
  55. package/dist/components/NSGroupedList.module.css +70 -70
  56. package/dist/components/NSHeader.module.css +254 -254
  57. package/dist/components/NSInput.module.css +74 -0
  58. package/dist/components/NSInputDate.d.ts +21 -0
  59. package/dist/components/NSInputDate.js +41 -0
  60. package/dist/components/NSInputDate.js.map +1 -0
  61. package/dist/components/NSInputDate.module.css +42 -0
  62. package/dist/components/NSInputDuration.d.ts +23 -0
  63. package/dist/components/NSInputDuration.js +42 -0
  64. package/dist/components/NSInputDuration.js.map +1 -0
  65. package/dist/components/NSInputEmail.d.ts +22 -0
  66. package/dist/components/NSInputEmail.js +43 -0
  67. package/dist/components/NSInputEmail.js.map +1 -0
  68. package/dist/components/NSInputErrorNotifier.d.ts +5 -0
  69. package/dist/components/NSInputErrorNotifier.js +7 -0
  70. package/dist/components/NSInputErrorNotifier.js.map +1 -0
  71. package/dist/components/NSInputErrorNotifier.module.css +3 -0
  72. package/dist/components/NSInputFloat.d.ts +22 -0
  73. package/dist/components/NSInputFloat.js +41 -0
  74. package/dist/components/NSInputFloat.js.map +1 -0
  75. package/dist/components/NSInputIP.d.ts +22 -0
  76. package/dist/components/NSInputIP.js +43 -0
  77. package/dist/components/NSInputIP.js.map +1 -0
  78. package/dist/components/NSInputInteger.d.ts +22 -0
  79. package/dist/components/NSInputInteger.js +41 -0
  80. package/dist/components/NSInputInteger.js.map +1 -0
  81. package/dist/components/NSInputPassword.d.ts +22 -0
  82. package/dist/components/NSInputPassword.js +42 -0
  83. package/dist/components/NSInputPassword.js.map +1 -0
  84. package/dist/components/NSInputPhone.d.ts +22 -0
  85. package/dist/components/NSInputPhone.js +38 -0
  86. package/dist/components/NSInputPhone.js.map +1 -0
  87. package/dist/components/NSInputPrice.d.ts +22 -0
  88. package/dist/components/NSInputPrice.js +41 -0
  89. package/dist/components/NSInputPrice.js.map +1 -0
  90. package/dist/components/NSInputSearch.d.ts +22 -0
  91. package/dist/components/NSInputSearch.js +41 -0
  92. package/dist/components/NSInputSearch.js.map +1 -0
  93. package/dist/components/NSInputString.d.ts +22 -0
  94. package/dist/components/NSInputString.js +42 -0
  95. package/dist/components/NSInputString.js.map +1 -0
  96. package/dist/components/NSInputText.d.ts +22 -0
  97. package/dist/components/NSInputText.js +42 -0
  98. package/dist/components/NSInputText.js.map +1 -0
  99. package/dist/components/NSInputTime.d.ts +22 -0
  100. package/dist/components/NSInputTime.js +43 -0
  101. package/dist/components/NSInputTime.js.map +1 -0
  102. package/dist/components/NSLayout.module.css +13 -13
  103. package/dist/components/NSLayoutAction.d.ts +5 -0
  104. package/dist/components/NSLayoutAction.js +20 -0
  105. package/dist/components/NSLayoutAction.js.map +1 -0
  106. package/dist/components/NSLayoutAction.module.css +88 -0
  107. package/dist/components/NSLayoutHeroBanner.d.ts +2 -0
  108. package/dist/components/NSLayoutHeroBanner.js +8 -0
  109. package/dist/components/NSLayoutHeroBanner.js.map +1 -0
  110. package/dist/components/NSLayoutHeroBanner.module.css +43 -0
  111. package/dist/components/NSLayoutTitle.d.ts +2 -0
  112. package/dist/components/NSLayoutTitle.js +11 -0
  113. package/dist/components/NSLayoutTitle.js.map +1 -0
  114. package/dist/components/NSLayoutTitle.module.css +10 -0
  115. package/dist/components/NSLink.module.css +36 -36
  116. package/dist/components/NSLoading.module.css +26 -26
  117. package/dist/components/NSModal.js +2 -2
  118. package/dist/components/NSModal.module.css +70 -70
  119. package/dist/components/NSNotification.d.ts +21 -0
  120. package/dist/components/NSNotification.js +37 -0
  121. package/dist/components/NSNotification.js.map +1 -0
  122. package/dist/components/NSNotification.module.css +32 -0
  123. package/dist/components/NSPagination.module.css +37 -37
  124. package/dist/components/NSPanel.module.css +45 -45
  125. package/dist/components/NSSection.module.css +10 -10
  126. package/dist/components/NSSectionBars.module.css +10 -10
  127. package/dist/components/NSSectionCards.module.css +38 -38
  128. package/dist/components/NSSelectBox.d.ts +24 -0
  129. package/dist/components/NSSelectBox.js +61 -0
  130. package/dist/components/NSSelectBox.js.map +1 -0
  131. package/dist/components/NSSelectBox.module.css +42 -0
  132. package/dist/components/NSTabPage.module.css +44 -48
  133. package/dist/components/NSTable.d.ts +1 -2
  134. package/dist/components/NSTable.js +11 -3
  135. package/dist/components/NSTable.js.map +1 -1
  136. package/dist/components/NSTable.module.css +165 -165
  137. package/dist/components/NSTitle.module.css +15 -15
  138. package/dist/components/NSVerification.module.css +22 -22
  139. package/dist/index.css +6 -0
  140. package/dist/pages/NSLoginPage.module.css +19 -19
  141. package/dist/pages/NSNotFoundPage.module.css +18 -18
  142. package/dist/props/BaseComponentProps.d.ts +6 -0
  143. package/dist/props/BaseComponentProps.js +2 -0
  144. package/dist/props/BaseComponentProps.js.map +10 -0
  145. package/dist/props/INamirasoftProps.d.ts +4 -0
  146. package/dist/props/INamirasoftProps.js +2 -0
  147. package/dist/props/INamirasoftProps.js.map +1 -0
  148. package/dist/props/ImageProps.d.ts +4 -0
  149. package/dist/props/ImageProps.js +2 -0
  150. package/dist/props/ImageProps.js.map +10 -0
  151. package/dist/props/LinkProps.d.ts +5 -0
  152. package/dist/props/LinkProps.js +2 -0
  153. package/dist/props/LinkProps.js.map +10 -0
  154. package/dist/props/ValidationNumberProps.d.ts +4 -0
  155. package/dist/props/ValidationNumberProps.js +2 -0
  156. package/dist/props/ValidationNumberProps.js.map +10 -0
  157. package/dist/props/ValidationProps.d.ts +6 -0
  158. package/dist/props/ValidationProps.js +2 -0
  159. package/dist/props/ValidationProps.js.map +10 -0
  160. package/dist/props/ValidationRegexProps.d.ts +4 -0
  161. package/dist/props/ValidationRegexProps.js +2 -0
  162. package/dist/props/ValidationRegexProps.js.map +1 -0
  163. package/dist/props/ValidationStringProps.d.ts +4 -0
  164. package/dist/props/ValidationStringProps.js +2 -0
  165. package/dist/props/ValidationStringProps.js.map +10 -0
  166. package/package.json +65 -65
  167. package/public/index.html +38 -38
  168. package/public/manifest.json +24 -24
  169. package/public/robots.txt +3 -3
  170. package/src/App.css +16 -16
  171. package/src/App.tsx +68 -68
  172. package/src/CopyToClipboard.ts +6 -6
  173. package/src/Validator.ts +110 -110
  174. package/src/assets/images/404 image.svg +9 -9
  175. package/src/assets/images/404 image_mobile.svg +9 -9
  176. package/src/assets/images/arrow.svg +3 -3
  177. package/src/assets/images/danger.svg +3 -3
  178. package/src/assets/images/exit.svg +3 -3
  179. package/src/assets/images/icon-input-copy.svg +3 -3
  180. package/src/assets/images/icon-input-date.svg +9 -9
  181. package/src/assets/images/icon-input-duration.svg +9 -9
  182. package/src/assets/images/icon-input-email.svg +9 -9
  183. package/src/assets/images/icon-input-float.svg +9 -9
  184. package/src/assets/images/icon-input-integer.svg +9 -9
  185. package/src/assets/images/icon-input-ip.svg +9 -9
  186. package/src/assets/images/icon-input-phone.svg +9 -9
  187. package/src/assets/images/icon-input-price.svg +9 -9
  188. package/src/assets/images/icon-input-search.svg +3 -3
  189. package/src/assets/images/icon-input-string.svg +9 -9
  190. package/src/assets/images/icon-input-text.svg +9 -9
  191. package/src/assets/images/icon-input-time.svg +9 -9
  192. package/src/assets/images/icon-select-box.svg +3 -3
  193. package/src/assets/images/logo.svg +9 -9
  194. package/src/assets/images/menu.svg +3 -3
  195. package/src/assets/images/namira.svg +9 -9
  196. package/src/assets/images/rectangle.svg +3 -3
  197. package/src/components/NSActionMenu.module.css +75 -75
  198. package/src/components/NSActionMenu.tsx +78 -78
  199. package/src/components/NSBarAction.module.css +87 -87
  200. package/src/components/NSBarAction.tsx +87 -87
  201. package/src/components/NSBarHeroBanner.module.css +42 -42
  202. package/src/components/NSBarHeroBanner.tsx +61 -61
  203. package/src/components/NSBarNotification.module.css +31 -31
  204. package/src/components/NSBarNotification.tsx +63 -63
  205. package/src/components/NSBarTitle.module.css +9 -9
  206. package/src/components/NSBarTitle.tsx +28 -28
  207. package/src/components/NSBox.module.css +85 -85
  208. package/src/components/NSBoxBoolean.module.css +54 -54
  209. package/src/components/NSBoxBoolean.tsx +87 -87
  210. package/src/components/NSBoxDate.module.css +39 -39
  211. package/src/components/NSBoxDate.tsx +80 -80
  212. package/src/components/NSBoxDateTime.tsx +80 -80
  213. package/src/components/NSBoxDouble.tsx +86 -86
  214. package/src/components/NSBoxDuration.tsx +84 -84
  215. package/src/components/NSBoxEmail.tsx +125 -125
  216. package/src/components/NSBoxEntity.tsx +120 -120
  217. package/src/components/NSBoxEnum.module.css +38 -38
  218. package/src/components/NSBoxEnum.tsx +123 -123
  219. package/src/components/NSBoxErrorNotifier.module.css +2 -2
  220. package/src/components/NSBoxErrorNotifier.tsx +27 -27
  221. package/src/components/NSBoxIPV4.tsx +89 -89
  222. package/src/components/NSBoxIPV6.tsx +86 -86
  223. package/src/components/NSBoxInteger.tsx +82 -82
  224. package/src/components/NSBoxLabel.module.css +12 -12
  225. package/src/components/NSBoxLabel.tsx +28 -28
  226. package/src/components/NSBoxOTP.module.css +10 -10
  227. package/src/components/NSBoxOTP.tsx +61 -61
  228. package/src/components/NSBoxPassword.tsx +82 -82
  229. package/src/components/NSBoxPhone.tsx +110 -110
  230. package/src/components/NSBoxPrice.tsx +84 -84
  231. package/src/components/NSBoxSearch.tsx +85 -85
  232. package/src/components/NSBoxString.tsx +114 -114
  233. package/src/components/NSBoxText.tsx +127 -127
  234. package/src/components/NSBoxTextArea.module.css +76 -76
  235. package/src/components/NSBoxTextArea.tsx +127 -127
  236. package/src/components/NSBoxTime.tsx +84 -84
  237. package/src/components/NSButton.module.css +27 -27
  238. package/src/components/NSButton.tsx +23 -23
  239. package/src/components/NSButtonBlue.module.css +4 -4
  240. package/src/components/NSButtonBlue.tsx +12 -12
  241. package/src/components/NSButtonGreen.module.css +4 -4
  242. package/src/components/NSButtonGreen.tsx +11 -11
  243. package/src/components/NSButtonRed.module.css +4 -4
  244. package/src/components/NSButtonRed.tsx +11 -11
  245. package/src/components/NSCard.module.css +110 -110
  246. package/src/components/NSCard.tsx +69 -69
  247. package/src/components/NSCopyToClipboard.module.css +39 -39
  248. package/src/components/NSCopyToClipboard.tsx +35 -35
  249. package/src/components/NSElectronicCard.module.css +60 -60
  250. package/src/components/NSElectronicCard.tsx +47 -47
  251. package/src/components/NSEntityBar.module.css +77 -77
  252. package/src/components/NSEntityBar.tsx +27 -27
  253. package/src/components/NSEntityCardBackground.module.css +27 -27
  254. package/src/components/NSEntityCardBackground.tsx +34 -34
  255. package/src/components/NSFilterBox.module.css +38 -38
  256. package/src/components/NSFilterBox.tsx +277 -277
  257. package/src/components/NSFilterBoxDialog.module.css +36 -36
  258. package/src/components/NSFilterBoxDialog.tsx +74 -74
  259. package/src/components/NSFilterItem.module.css +23 -23
  260. package/src/components/NSFilterItem.tsx +71 -71
  261. package/src/components/NSFooter.module.css +126 -126
  262. package/src/components/NSFooter.tsx +153 -153
  263. package/src/components/NSGroupedList.module.css +70 -70
  264. package/src/components/NSGroupedList.tsx +56 -56
  265. package/src/components/NSHeader.module.css +254 -254
  266. package/src/components/NSHeader.tsx +184 -184
  267. package/src/components/NSLayout.module.css +13 -13
  268. package/src/components/NSLayout.tsx +75 -75
  269. package/src/components/NSLine.tsx +18 -18
  270. package/src/components/NSLink.module.css +36 -36
  271. package/src/components/NSLink.tsx +25 -25
  272. package/src/components/NSLinkBlue.tsx +20 -20
  273. package/src/components/NSLinkGreen.tsx +5 -5
  274. package/src/components/NSLinkRed.tsx +5 -5
  275. package/src/components/NSLoading.module.css +26 -26
  276. package/src/components/NSLoading.tsx +17 -17
  277. package/src/components/NSModal.module.css +70 -70
  278. package/src/components/NSModal.tsx +62 -62
  279. package/src/components/NSPagination.module.css +37 -37
  280. package/src/components/NSPagination.tsx +116 -116
  281. package/src/components/NSPanel.module.css +45 -45
  282. package/src/components/NSPanel.tsx +19 -19
  283. package/src/components/NSSection.module.css +10 -10
  284. package/src/components/NSSection.tsx +23 -23
  285. package/src/components/NSSectionBars.module.css +10 -10
  286. package/src/components/NSSectionBars.tsx +25 -25
  287. package/src/components/NSSectionCards.module.css +38 -38
  288. package/src/components/NSSectionCards.tsx +51 -51
  289. package/src/components/NSSectionTitle.tsx +21 -21
  290. package/src/components/NSSpace.tsx +28 -28
  291. package/src/components/NSTabPage.module.css +48 -48
  292. package/src/components/NSTabPage.tsx +45 -45
  293. package/src/components/NSTable.module.css +165 -165
  294. package/src/components/NSTable.tsx +179 -171
  295. package/src/components/NSTitle.module.css +15 -15
  296. package/src/components/NSTitle.tsx +19 -19
  297. package/src/components/NSVerification.module.css +22 -22
  298. package/src/components/NSVerification.tsx +41 -41
  299. package/src/index.tsx +7 -7
  300. package/src/main.ts +73 -73
  301. package/src/pages/NSLoginPage.module.css +19 -19
  302. package/src/pages/NSLoginPage.tsx +45 -45
  303. package/src/pages/NSNotFoundPage.module.css +18 -18
  304. package/src/pages/NSNotFoundPage.tsx +11 -11
  305. package/src/props/IBaseComponentProps.ts +7 -7
  306. package/src/props/IHeaderIconProps.ts +6 -6
  307. package/src/props/IHeaderProps.ts +6 -6
  308. package/src/props/IImageProps.ts +4 -4
  309. package/src/props/ILinkProps.ts +5 -5
  310. package/src/props/IValidationNumberProps.ts +4 -4
  311. package/src/props/IValidationProps.ts +7 -7
  312. package/src/props/IValidationRegexProps.ts +4 -4
  313. package/src/props/IValidationStringProps.ts +4 -4
  314. package/src/routing/INSRouterMaker.ts +6 -6
  315. package/src/routing/INSRouterProps.ts +5 -5
  316. package/src/routing/INSRouterState.ts +5 -5
  317. package/src/routing/NSRouterMaker.tsx +33 -33
  318. package/src/routing/Notifier.ts +79 -79
  319. package/tsconfig.json +43 -43
  320. package/dist/components/NSBoxLabel.module.css +0 -13
@@ -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
  }