namirasoft-site-react 1.3.227 → 1.3.228

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