namirasoft-site-react 1.3.195 → 1.3.196

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