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