namirasoft-site-react 1.3.202 → 1.3.204

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