namirasoft-site-react 1.3.211 → 1.3.213

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