namirasoft-site-react 1.4.147 → 1.4.148

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 (262) hide show
  1. package/.dockerignore +86 -86
  2. package/.env.template +10 -10
  3. package/Dockerfile +18 -18
  4. package/config-overrides.js +72 -72
  5. package/dist/App.css +34 -0
  6. package/dist/components/NSBarAction.module.css +97 -97
  7. package/dist/components/NSBarAlert.module.css +79 -79
  8. package/dist/components/NSBarNotification.module.css +34 -34
  9. package/dist/components/NSBarTitle.module.css +9 -9
  10. package/dist/components/NSBox.module.css +50 -50
  11. package/dist/components/NSBoxBaseCombo.module.css +6 -6
  12. package/dist/components/NSBoxBoolean.module.css +67 -67
  13. package/dist/components/NSBoxDate.module.css +4 -4
  14. package/dist/components/NSBoxDateTime.module.css +4 -4
  15. package/dist/components/NSBoxDuration.module.css +4 -4
  16. package/dist/components/NSBoxFile.module.css +10 -10
  17. package/dist/components/NSBoxPhone.module.css +35 -35
  18. package/dist/components/NSBoxRadio.module.css +33 -33
  19. package/dist/components/NSBoxTextArea.module.css +12 -12
  20. package/dist/components/NSBoxTime.module.css +4 -4
  21. package/dist/components/NSButton.module.css +41 -41
  22. package/dist/components/NSButtonBlue.module.css +4 -4
  23. package/dist/components/NSButtonGreen.module.css +4 -4
  24. package/dist/components/NSButtonRed.module.css +4 -4
  25. package/dist/components/NSCard.module.css +114 -114
  26. package/dist/components/NSCardScreenshot.module.css +41 -41
  27. package/dist/components/NSChartColumn.module.css +7 -7
  28. package/dist/components/NSChartTable.module.css +21 -21
  29. package/dist/components/NSColumn.module.css +16 -16
  30. package/dist/components/NSCopyBox.module.css +43 -43
  31. package/dist/components/NSDialog.module.css +110 -110
  32. package/dist/components/NSDialogPageSelection.module.css +103 -103
  33. package/dist/components/NSDownTimer.module.css +55 -55
  34. package/dist/components/NSDownload.module.css +46 -46
  35. package/dist/components/NSElectronicCard.module.css +60 -60
  36. package/dist/components/NSEntityCardBackground.module.css +27 -27
  37. package/dist/components/NSFilterBox.module.css +53 -55
  38. package/dist/components/NSFilterItem.module.css +23 -23
  39. package/dist/components/NSFooter.module.css +123 -123
  40. package/dist/components/NSHeader.module.css +291 -291
  41. package/dist/components/NSHeaderScreenshot.module.css +35 -35
  42. package/dist/components/NSLabel.module.css +15 -15
  43. package/dist/components/NSLabelErrorNotifier.module.css +2 -2
  44. package/dist/components/NSLayout.module.css +14 -14
  45. package/dist/components/NSLine.module.css +12 -12
  46. package/dist/components/NSLink.module.css +36 -36
  47. package/dist/components/NSListGrouped.module.css +72 -72
  48. package/dist/components/NSLoading.module.css +30 -30
  49. package/dist/components/NSMenuAction.js +2 -2
  50. package/dist/components/NSMenuAction.module.css +78 -78
  51. package/dist/components/NSMenuButton.module.css +44 -44
  52. package/dist/components/NSNoData.module.css +9 -9
  53. package/dist/components/NSPagination.module.css +85 -85
  54. package/dist/components/NSPanel.module.css +18 -18
  55. package/dist/components/NSPanelAccordion.module.css +4 -4
  56. package/dist/components/NSRange.module.css +66 -66
  57. package/dist/components/NSRow.module.css +17 -17
  58. package/dist/components/NSSection.module.css +4 -4
  59. package/dist/components/NSSectionCards.module.css +38 -38
  60. package/dist/components/NSSectionTiles.module.css +10 -10
  61. package/dist/components/NSTabPage.module.css +59 -59
  62. package/dist/components/NSTable.module.css +260 -261
  63. package/dist/components/NSTag.module.css +52 -52
  64. package/dist/components/NSTile.module.css +77 -77
  65. package/dist/components/NSTimelineMonthly.module.css +71 -71
  66. package/dist/components/NSTitle.module.css +15 -15
  67. package/dist/index.css +6 -0
  68. package/dist/pages/NSNotFoundPage.module.css +17 -17
  69. package/dist/pages/NSUpdating.module.css +35 -35
  70. package/package.json +76 -76
  71. package/public/index.html +38 -38
  72. package/src/App.css +33 -33
  73. package/src/App.tsx +94 -94
  74. package/src/Color.tsx +10 -10
  75. package/src/CopyToClipboard.ts +6 -6
  76. package/src/Validator.ts +125 -125
  77. package/src/components/NSBarAction.module.css +97 -97
  78. package/src/components/NSBarAction.tsx +91 -91
  79. package/src/components/NSBarAlert.module.css +79 -79
  80. package/src/components/NSBarAlert.tsx +31 -31
  81. package/src/components/NSBarNotification.module.css +34 -34
  82. package/src/components/NSBarNotification.tsx +89 -89
  83. package/src/components/NSBarTitle.module.css +9 -9
  84. package/src/components/NSBarTitle.tsx +29 -29
  85. package/src/components/NSBox.module.css +50 -50
  86. package/src/components/NSBoxBaseCombo.module.css +6 -6
  87. package/src/components/NSBoxBaseCombo.tsx +252 -252
  88. package/src/components/NSBoxBaseLayout.tsx +82 -82
  89. package/src/components/NSBoxBoolean.module.css +67 -67
  90. package/src/components/NSBoxBoolean.tsx +113 -113
  91. package/src/components/NSBoxBooleans.tsx +163 -163
  92. package/src/components/NSBoxCombo.tsx +63 -63
  93. package/src/components/NSBoxDate.module.css +4 -4
  94. package/src/components/NSBoxDate.tsx +87 -87
  95. package/src/components/NSBoxDateTime.module.css +4 -4
  96. package/src/components/NSBoxDateTime.tsx +87 -87
  97. package/src/components/NSBoxDouble.tsx +90 -90
  98. package/src/components/NSBoxDuration.module.css +4 -4
  99. package/src/components/NSBoxDuration.tsx +92 -92
  100. package/src/components/NSBoxEmail.tsx +97 -97
  101. package/src/components/NSBoxEntity.tsx +52 -52
  102. package/src/components/NSBoxEnum.tsx +66 -66
  103. package/src/components/NSBoxFile.module.css +10 -10
  104. package/src/components/NSBoxFile.tsx +111 -111
  105. package/src/components/NSBoxIPV4.tsx +92 -92
  106. package/src/components/NSBoxIPV6.tsx +89 -89
  107. package/src/components/NSBoxInteger.tsx +89 -89
  108. package/src/components/NSBoxMoney.tsx +88 -88
  109. package/src/components/NSBoxPassword.tsx +98 -98
  110. package/src/components/NSBoxPhone.module.css +35 -35
  111. package/src/components/NSBoxPhone.tsx +104 -104
  112. package/src/components/NSBoxRadio.module.css +33 -33
  113. package/src/components/NSBoxRadio.tsx +98 -98
  114. package/src/components/NSBoxSearch.tsx +87 -87
  115. package/src/components/NSBoxString.tsx +80 -80
  116. package/src/components/NSBoxTextArea.module.css +12 -12
  117. package/src/components/NSBoxTextArea.tsx +90 -90
  118. package/src/components/NSBoxTime.module.css +4 -4
  119. package/src/components/NSBoxTime.tsx +84 -84
  120. package/src/components/NSButton.module.css +41 -41
  121. package/src/components/NSButton.tsx +25 -25
  122. package/src/components/NSButtonBlue.module.css +4 -4
  123. package/src/components/NSButtonBlue.tsx +19 -19
  124. package/src/components/NSButtonGreen.module.css +4 -4
  125. package/src/components/NSButtonGreen.tsx +19 -19
  126. package/src/components/NSButtonRed.module.css +4 -4
  127. package/src/components/NSButtonRed.tsx +19 -19
  128. package/src/components/NSCard.module.css +114 -114
  129. package/src/components/NSCard.tsx +63 -63
  130. package/src/components/NSCardScreenshot.module.css +41 -41
  131. package/src/components/NSCardScreenshot.tsx +31 -31
  132. package/src/components/NSChartColumn.module.css +7 -7
  133. package/src/components/NSChartColumn.tsx +106 -106
  134. package/src/components/NSChartDoughnut.tsx +108 -108
  135. package/src/components/NSChartPie.tsx +105 -105
  136. package/src/components/NSChartRange.tsx +14 -14
  137. package/src/components/NSChartTable.module.css +21 -21
  138. package/src/components/NSChartTable.tsx +94 -94
  139. package/src/components/NSColumn.module.css +16 -16
  140. package/src/components/NSColumn.tsx +18 -18
  141. package/src/components/NSCopy.tsx +67 -67
  142. package/src/components/NSCopyBox.module.css +43 -43
  143. package/src/components/NSCopyBox.tsx +41 -41
  144. package/src/components/NSDialog.module.css +110 -110
  145. package/src/components/NSDialog.tsx +57 -57
  146. package/src/components/NSDialogDelete.tsx +26 -26
  147. package/src/components/NSDialogInfo.tsx +36 -36
  148. package/src/components/NSDialogPageSelection.module.css +103 -103
  149. package/src/components/NSDialogPageSelection.tsx +223 -223
  150. package/src/components/NSDownTimer.module.css +55 -55
  151. package/src/components/NSDownTimer.tsx +77 -77
  152. package/src/components/NSDownload.module.css +46 -46
  153. package/src/components/NSDownload.tsx +63 -63
  154. package/src/components/NSElectronicCard.module.css +60 -60
  155. package/src/components/NSElectronicCard.tsx +46 -46
  156. package/src/components/NSEntityCardBackground.module.css +27 -27
  157. package/src/components/NSEntityCardBackground.tsx +36 -36
  158. package/src/components/NSFilterBox.module.css +53 -55
  159. package/src/components/NSFilterBox.tsx +360 -360
  160. package/src/components/NSFilterItem.module.css +23 -23
  161. package/src/components/NSFilterItem.tsx +72 -72
  162. package/src/components/NSFooter.module.css +123 -123
  163. package/src/components/NSFooter.tsx +316 -316
  164. package/src/components/NSHeader.module.css +291 -291
  165. package/src/components/NSHeader.tsx +250 -250
  166. package/src/components/NSHeaderScreenshot.module.css +35 -35
  167. package/src/components/NSHeaderScreenshot.tsx +39 -39
  168. package/src/components/NSLabel.module.css +15 -15
  169. package/src/components/NSLabel.tsx +29 -29
  170. package/src/components/NSLabelErrorNotifier.module.css +2 -2
  171. package/src/components/NSLabelErrorNotifier.tsx +32 -32
  172. package/src/components/NSLayout.module.css +14 -14
  173. package/src/components/NSLayout.tsx +99 -99
  174. package/src/components/NSLine.module.css +12 -12
  175. package/src/components/NSLine.tsx +15 -15
  176. package/src/components/NSLink.module.css +36 -36
  177. package/src/components/NSLink.tsx +25 -25
  178. package/src/components/NSLinkBlue.tsx +20 -20
  179. package/src/components/NSLinkGreen.tsx +5 -5
  180. package/src/components/NSLinkRed.tsx +5 -5
  181. package/src/components/NSListGrouped.module.css +72 -72
  182. package/src/components/NSListGrouped.tsx +112 -112
  183. package/src/components/NSListProduct.tsx +44 -44
  184. package/src/components/NSLoading.module.css +30 -30
  185. package/src/components/NSLoading.tsx +19 -19
  186. package/src/components/NSMenuAction.module.css +78 -78
  187. package/src/components/NSMenuAction.tsx +89 -89
  188. package/src/components/NSMenuButton.module.css +44 -44
  189. package/src/components/NSMenuButton.tsx +148 -148
  190. package/src/components/NSNoData.module.css +9 -9
  191. package/src/components/NSNoData.tsx +24 -24
  192. package/src/components/NSPagination.module.css +85 -85
  193. package/src/components/NSPagination.tsx +183 -183
  194. package/src/components/NSPanel.module.css +18 -18
  195. package/src/components/NSPanel.tsx +18 -18
  196. package/src/components/NSPanelAccordion.module.css +4 -4
  197. package/src/components/NSPanelAccordion.tsx +51 -51
  198. package/src/components/NSRange.module.css +66 -66
  199. package/src/components/NSRange.tsx +83 -83
  200. package/src/components/NSRepeater.tsx +179 -179
  201. package/src/components/NSRow.module.css +17 -17
  202. package/src/components/NSRow.tsx +18 -18
  203. package/src/components/NSSection.module.css +4 -4
  204. package/src/components/NSSection.tsx +20 -20
  205. package/src/components/NSSectionCards.module.css +38 -38
  206. package/src/components/NSSectionCards.tsx +51 -51
  207. package/src/components/NSSectionTiles.module.css +10 -10
  208. package/src/components/NSSectionTiles.tsx +25 -25
  209. package/src/components/NSSectionTitle.tsx +21 -21
  210. package/src/components/NSSpace.tsx +28 -28
  211. package/src/components/NSTabPage.module.css +59 -59
  212. package/src/components/NSTabPage.tsx +77 -77
  213. package/src/components/NSTable.module.css +260 -261
  214. package/src/components/NSTable.tsx +477 -477
  215. package/src/components/NSTag.module.css +52 -52
  216. package/src/components/NSTag.tsx +78 -78
  217. package/src/components/NSTile.module.css +77 -77
  218. package/src/components/NSTile.tsx +27 -27
  219. package/src/components/NSTimelineMonthly.module.css +71 -71
  220. package/src/components/NSTimelineMonthly.tsx +44 -44
  221. package/src/components/NSTitle.module.css +15 -15
  222. package/src/components/NSTitle.tsx +19 -19
  223. package/src/formatter/BackColorFormatter.tsx +23 -23
  224. package/src/formatter/BaseColumnFormatter.ts +16 -16
  225. package/src/formatter/BooleanFormatter.ts +22 -22
  226. package/src/formatter/DateFormatter.ts +20 -20
  227. package/src/formatter/DateTimeFormatter.ts +20 -20
  228. package/src/formatter/DurationFormatter.ts +13 -13
  229. package/src/formatter/EmailFormatter.ts +13 -13
  230. package/src/formatter/EnumFormatter.ts +13 -13
  231. package/src/formatter/FloatFormatter.ts +16 -16
  232. package/src/formatter/ForeColorFormatter.tsx +24 -24
  233. package/src/formatter/IDFormatter.tsx +30 -30
  234. package/src/formatter/IPFormatter.ts +13 -13
  235. package/src/formatter/IntegerFormatter.ts +16 -16
  236. package/src/formatter/JsonFormatter.ts +14 -14
  237. package/src/formatter/MoneyFormatter.ts +16 -16
  238. package/src/formatter/PhoneFormatter.ts +13 -13
  239. package/src/formatter/StringFormatter.ts +22 -22
  240. package/src/formatter/TimeFormatter.ts +21 -21
  241. package/src/formatter/UnknowFormatter.ts +18 -18
  242. package/src/index.tsx +7 -7
  243. package/src/main.ts +191 -191
  244. package/src/pages/NSNotFoundPage.module.css +17 -17
  245. package/src/pages/NSNotFoundPage.tsx +11 -11
  246. package/src/pages/NSUpdating.module.css +35 -35
  247. package/src/pages/NSUpdating.tsx +32 -32
  248. package/src/props/IBaseComponentProps.ts +8 -8
  249. package/src/props/IHeaderIconProps.ts +10 -10
  250. package/src/props/IHeaderProps.ts +7 -7
  251. package/src/props/IImageProps.ts +4 -4
  252. package/src/props/ILinkProps.ts +5 -5
  253. package/src/props/IValidationNumberProps.ts +4 -4
  254. package/src/props/IValidationProps.ts +7 -7
  255. package/src/props/IValidationRegexProps.ts +4 -4
  256. package/src/props/IValidationStringProps.ts +4 -4
  257. package/src/routing/INSRouterMaker.ts +6 -6
  258. package/src/routing/INSRouterProps.ts +5 -5
  259. package/src/routing/INSRouterState.ts +5 -5
  260. package/src/routing/NSRouterMaker.tsx +33 -33
  261. package/src/routing/Notifier.ts +79 -79
  262. package/tsconfig.json +43 -43
package/src/App.css CHANGED
@@ -1,34 +1,34 @@
1
- .ns_font_16_bold {
2
- font-size: 16px;
3
- font-weight: 600;
4
- }
5
-
6
- .out {
7
- width: 24px;
8
- height: 24px;
9
- background-color: red;
10
- margin: auto;
11
- display: flex;
12
- justify-content: center;
13
- align-items: center;
14
- }
15
-
16
- .middle {
17
- width: 19px;
18
- height: 19px;
19
- background-color: #fff;
20
- margin: auto;
21
- display: flex;
22
- justify-content: center;
23
- align-items: center;
24
- }
25
-
26
- .in {
27
- width: 14px;
28
- height: 14px;
29
- background-color: red;
30
- margin: auto;
31
- display: flex;
32
- justify-content: center;
33
- align-items: center;
1
+ .ns_font_16_bold {
2
+ font-size: 16px;
3
+ font-weight: 600;
4
+ }
5
+
6
+ .out {
7
+ width: 24px;
8
+ height: 24px;
9
+ background-color: red;
10
+ margin: auto;
11
+ display: flex;
12
+ justify-content: center;
13
+ align-items: center;
14
+ }
15
+
16
+ .middle {
17
+ width: 19px;
18
+ height: 19px;
19
+ background-color: #fff;
20
+ margin: auto;
21
+ display: flex;
22
+ justify-content: center;
23
+ align-items: center;
24
+ }
25
+
26
+ .in {
27
+ width: 14px;
28
+ height: 14px;
29
+ background-color: red;
30
+ margin: auto;
31
+ display: flex;
32
+ justify-content: center;
33
+ align-items: center;
34
34
  }
package/src/App.tsx CHANGED
@@ -1,95 +1,95 @@
1
- import './App.css';
2
- import 'bootstrap/dist/css/bootstrap.min.css';
3
- import { NSPanel, NSBoxDate, NSSection, NSBoxFile, NSLayout, NSBoxCombo, } from './main';
4
- import { NSRow } from './components/NSRow';
5
-
6
- export function App()
7
- {
8
- return (
9
- <>
10
- <NSLayout
11
- header={{
12
- icons: [],
13
- title: "",
14
- }}
15
- isLoggedIn={() => true}
16
- logo='https://img.freepik.com/free-photo/colorful-abstract-textured-background-design_53876-108265.jpg'
17
- notifications={[]}
18
- notifier={{} as any}
19
- scope=''
20
- background='url("https://img.freepik.com/free-photo/colorful-abstract-textured-background-design_53876-108265.jpg")'
21
- alerts={[
22
- {
23
- isVisible: () => true,
24
- title: { title: "Verify your email", description: "Please login to your profile and fill out your email address to continue. This does not take more than 2 minutes to finish." },
25
- },
26
- {
27
- isVisible: () => true,
28
- title: { title: "Verify", description: "Please login to your profile" },
29
- }
30
- ]}
31
- >
32
- <NSSection>
33
- <NSPanel >
34
- <NSBoxCombo
35
- getOptions={() =>
36
- {
37
- return [{ title: "Amir", value: "1" }, { title: "Ilia", value: "2" }];
38
- }}
39
- multiple={false}
40
- required
41
- title='s'
42
- ></NSBoxCombo>
43
- <NSBoxDate
44
- title='Date'
45
- required
46
- />
47
- <NSRow>
48
- <NSBoxDate
49
- title='Date'
50
- required
51
- />
52
- <NSBoxDate
53
- title='Date'
54
- required
55
- />
56
- </NSRow>
57
- <NSBoxDate
58
- title='Date'
59
- required
60
- />
61
- <NSBoxDate
62
- title='Date'
63
- required
64
- />
65
- <NSRow>
66
- <NSBoxFile
67
- title='Date'
68
- required
69
- style={{ width: "100%" }}
70
- />
71
- </NSRow>
72
- <NSRow>
73
- <NSBoxDate
74
- title='Date'
75
- required
76
- />
77
- <NSBoxDate
78
- title='Date'
79
- required
80
- />
81
- <NSBoxDate
82
- title='Date'
83
- required
84
- />
85
- <NSBoxDate
86
- title='Date'
87
- required
88
- />
89
- </NSRow>
90
- </NSPanel>
91
- </NSSection>
92
- </NSLayout >
93
- </>
94
- );
1
+ import './App.css';
2
+ import 'bootstrap/dist/css/bootstrap.min.css';
3
+ import { NSPanel, NSBoxDate, NSSection, NSBoxFile, NSLayout, NSBoxCombo, } from './main';
4
+ import { NSRow } from './components/NSRow';
5
+
6
+ export function App()
7
+ {
8
+ return (
9
+ <>
10
+ <NSLayout
11
+ header={{
12
+ icons: [],
13
+ title: "",
14
+ }}
15
+ isLoggedIn={() => true}
16
+ logo='https://img.freepik.com/free-photo/colorful-abstract-textured-background-design_53876-108265.jpg'
17
+ notifications={[]}
18
+ notifier={{} as any}
19
+ scope=''
20
+ background='url("https://img.freepik.com/free-photo/colorful-abstract-textured-background-design_53876-108265.jpg")'
21
+ alerts={[
22
+ {
23
+ isVisible: () => true,
24
+ title: { title: "Verify your email", description: "Please login to your profile and fill out your email address to continue. This does not take more than 2 minutes to finish." },
25
+ },
26
+ {
27
+ isVisible: () => true,
28
+ title: { title: "Verify", description: "Please login to your profile" },
29
+ }
30
+ ]}
31
+ >
32
+ <NSSection>
33
+ <NSPanel >
34
+ <NSBoxCombo
35
+ getOptions={() =>
36
+ {
37
+ return [{ title: "Amir", value: "1" }, { title: "Ilia", value: "2" }];
38
+ }}
39
+ multiple={false}
40
+ required
41
+ title='s'
42
+ ></NSBoxCombo>
43
+ <NSBoxDate
44
+ title='Date'
45
+ required
46
+ />
47
+ <NSRow>
48
+ <NSBoxDate
49
+ title='Date'
50
+ required
51
+ />
52
+ <NSBoxDate
53
+ title='Date'
54
+ required
55
+ />
56
+ </NSRow>
57
+ <NSBoxDate
58
+ title='Date'
59
+ required
60
+ />
61
+ <NSBoxDate
62
+ title='Date'
63
+ required
64
+ />
65
+ <NSRow>
66
+ <NSBoxFile
67
+ title='Date'
68
+ required
69
+ style={{ width: "100%" }}
70
+ />
71
+ </NSRow>
72
+ <NSRow>
73
+ <NSBoxDate
74
+ title='Date'
75
+ required
76
+ />
77
+ <NSBoxDate
78
+ title='Date'
79
+ required
80
+ />
81
+ <NSBoxDate
82
+ title='Date'
83
+ required
84
+ />
85
+ <NSBoxDate
86
+ title='Date'
87
+ required
88
+ />
89
+ </NSRow>
90
+ </NSPanel>
91
+ </NSSection>
92
+ </NSLayout >
93
+ </>
94
+ );
95
95
  }
package/src/Color.tsx CHANGED
@@ -1,11 +1,11 @@
1
- export class Color
2
- {
3
- static getColor(percentage: number,): string
4
- {
5
- if (percentage >= 75) return '#368F01';
6
- if (percentage >= 60) return ' #44B400';
7
- if (percentage >= 50) return '#56E500';
8
- if (percentage >= 25) return '#FAFF00';
9
- return 'red';
10
- }
1
+ export class Color
2
+ {
3
+ static getColor(percentage: number,): string
4
+ {
5
+ if (percentage >= 75) return '#368F01';
6
+ if (percentage >= 60) return ' #44B400';
7
+ if (percentage >= 50) return '#56E500';
8
+ if (percentage >= 25) return '#FAFF00';
9
+ return 'red';
10
+ }
11
11
  }
@@ -1,7 +1,7 @@
1
- export class CopyToClipboard
2
- {
3
- static copyToClipboard(value: string): void
4
- {
5
- navigator.clipboard.writeText(value);
6
- }
1
+ export class CopyToClipboard
2
+ {
3
+ static copyToClipboard(value: string): void
4
+ {
5
+ navigator.clipboard.writeText(value);
6
+ }
7
7
  };
package/src/Validator.ts CHANGED
@@ -1,126 +1,126 @@
1
- import { PhoneOperation } from "namirasoft-core";
2
- import { IValidationNumberProps } from "./props/IValidationNumberProps";
3
- import { IValidationProps } from "./props/IValidationProps";
4
- import { IValidationStringProps } from "./props/IValidationStringProps";
5
- import { DateSchema, DurationSchema, EmailSchema, IPV4Schema, IPV6Schema, TimeSchema } from "namirasoft-schema";
6
-
7
- export class Validator
8
- {
9
- static getError(name: string, value: string | number | null | undefined, validator: IValidationProps): string | null
10
- {
11
- if (validator.required)
12
- if (!value)
13
- return `${name} is required.`;
14
- if (value != null)
15
- if (validator.regex)
16
- {
17
- if (!new RegExp(validator.regex.regex).test(value + ""))
18
- return `${name} is not a valid ${validator.regex.name}.`;
19
- }
20
- if (value != null)
21
- if (validator.validator)
22
- {
23
- let error = validator.validator(name, value);
24
- if (error)
25
- return error;
26
- }
27
- return null;
28
- }
29
- static getErrorString(name: string, value: string | null | undefined, validator: IValidationStringProps): string | null
30
- {
31
- if (value != null)
32
- {
33
- if (validator.max_length != null)
34
- if (validator.max_length < value.length)
35
- return `Max length of ${name} should be ${validator.max_length} characters.`;
36
- if (validator.min_length != null)
37
- if (validator.min_length > value.length)
38
- return `Minlength of ${name} should be ${validator.min_length} characters.`;
39
- }
40
- return null;
41
- }
42
- static getErrorNumber(name: string, value: number | null | undefined, validator: IValidationNumberProps): string | null
43
- {
44
- if (value != null)
45
- {
46
- if (isNaN(value))
47
- return `${name} is not a number.`;
48
- if (validator.max != null)
49
- if (validator.max < value)
50
- return `Max value of ${name} should be ${validator.max} characters.`;
51
- if (validator.min != null)
52
- if (validator.min > value)
53
- return `Min value of ${name} should be ${validator.min} characters.`;
54
- }
55
- return null;
56
- }
57
- static getErrorEmail(name: string, value: string | null | undefined, validator: IValidationProps): string | null
58
- {
59
- if (!validator.required)
60
- if (!value)
61
- return null;
62
- return Validator.getError(name, value, {
63
- required: true, regex: {
64
- name: "Email",
65
- regex: EmailSchema.REGEX
66
- }
67
- });
68
- }
69
- static getErrorDate(name: string, value: string | null | undefined): string | null
70
- {
71
- return Validator.getError(name, value, {
72
- required: true, regex: {
73
- name: "Date",
74
- regex: DateSchema.REGEX
75
- }
76
- });
77
- }
78
- static getErrorTime(name: string, value: string | null | undefined): string | null
79
- {
80
- return Validator.getError(name, value, {
81
- required: true, regex: {
82
- name: "Time",
83
- regex: TimeSchema.REGEX
84
- }
85
- });
86
- }
87
- static getErrorDuration(name: string, value: string | null | undefined): string | null
88
- {
89
- return Validator.getError(name, value, {
90
- required: true, regex: {
91
- name: "Duration",
92
- regex: DurationSchema.REGEX
93
- }
94
- });
95
- }
96
- static getErrorIPV4(name: string, value: string | null | undefined): string | null
97
- {
98
- return Validator.getError(name, value, {
99
- required: true, regex: {
100
- name: "IP",
101
- regex: IPV4Schema.REGEX
102
- }
103
- });
104
- }
105
- static getErrorIPV6(name: string, value: string | null | undefined): string | null
106
- {
107
- return Validator.getError(name, value, {
108
- required: true, regex: {
109
- name: "IP",
110
- regex: IPV6Schema.REGEX
111
- }
112
- });
113
- }
114
- static getErrorPhone(name: string, value: string | null | undefined): string | null
115
- {
116
- return Validator.getError(name, value, {
117
- required: true, validator: () =>
118
- {
119
- if (value)
120
- if (!PhoneOperation.isValid(value))
121
- return `${name} is not a valid phone number`;
122
- return null;
123
- }
124
- });
125
- }
1
+ import { PhoneOperation } from "namirasoft-core";
2
+ import { IValidationNumberProps } from "./props/IValidationNumberProps";
3
+ import { IValidationProps } from "./props/IValidationProps";
4
+ import { IValidationStringProps } from "./props/IValidationStringProps";
5
+ import { DateSchema, DurationSchema, EmailSchema, IPV4Schema, IPV6Schema, TimeSchema } from "namirasoft-schema";
6
+
7
+ export class Validator
8
+ {
9
+ static getError(name: string, value: string | number | null | undefined, validator: IValidationProps): string | null
10
+ {
11
+ if (validator.required)
12
+ if (!value)
13
+ return `${name} is required.`;
14
+ if (value != null)
15
+ if (validator.regex)
16
+ {
17
+ if (!new RegExp(validator.regex.regex).test(value + ""))
18
+ return `${name} is not a valid ${validator.regex.name}.`;
19
+ }
20
+ if (value != null)
21
+ if (validator.validator)
22
+ {
23
+ let error = validator.validator(name, value);
24
+ if (error)
25
+ return error;
26
+ }
27
+ return null;
28
+ }
29
+ static getErrorString(name: string, value: string | null | undefined, validator: IValidationStringProps): string | null
30
+ {
31
+ if (value != null)
32
+ {
33
+ if (validator.max_length != null)
34
+ if (validator.max_length < value.length)
35
+ return `Max length of ${name} should be ${validator.max_length} characters.`;
36
+ if (validator.min_length != null)
37
+ if (validator.min_length > value.length)
38
+ return `Minlength of ${name} should be ${validator.min_length} characters.`;
39
+ }
40
+ return null;
41
+ }
42
+ static getErrorNumber(name: string, value: number | null | undefined, validator: IValidationNumberProps): string | null
43
+ {
44
+ if (value != null)
45
+ {
46
+ if (isNaN(value))
47
+ return `${name} is not a number.`;
48
+ if (validator.max != null)
49
+ if (validator.max < value)
50
+ return `Max value of ${name} should be ${validator.max} characters.`;
51
+ if (validator.min != null)
52
+ if (validator.min > value)
53
+ return `Min value of ${name} should be ${validator.min} characters.`;
54
+ }
55
+ return null;
56
+ }
57
+ static getErrorEmail(name: string, value: string | null | undefined, validator: IValidationProps): string | null
58
+ {
59
+ if (!validator.required)
60
+ if (!value)
61
+ return null;
62
+ return Validator.getError(name, value, {
63
+ required: true, regex: {
64
+ name: "Email",
65
+ regex: EmailSchema.REGEX
66
+ }
67
+ });
68
+ }
69
+ static getErrorDate(name: string, value: string | null | undefined): string | null
70
+ {
71
+ return Validator.getError(name, value, {
72
+ required: true, regex: {
73
+ name: "Date",
74
+ regex: DateSchema.REGEX
75
+ }
76
+ });
77
+ }
78
+ static getErrorTime(name: string, value: string | null | undefined): string | null
79
+ {
80
+ return Validator.getError(name, value, {
81
+ required: true, regex: {
82
+ name: "Time",
83
+ regex: TimeSchema.REGEX
84
+ }
85
+ });
86
+ }
87
+ static getErrorDuration(name: string, value: string | null | undefined): string | null
88
+ {
89
+ return Validator.getError(name, value, {
90
+ required: true, regex: {
91
+ name: "Duration",
92
+ regex: DurationSchema.REGEX
93
+ }
94
+ });
95
+ }
96
+ static getErrorIPV4(name: string, value: string | null | undefined): string | null
97
+ {
98
+ return Validator.getError(name, value, {
99
+ required: true, regex: {
100
+ name: "IP",
101
+ regex: IPV4Schema.REGEX
102
+ }
103
+ });
104
+ }
105
+ static getErrorIPV6(name: string, value: string | null | undefined): string | null
106
+ {
107
+ return Validator.getError(name, value, {
108
+ required: true, regex: {
109
+ name: "IP",
110
+ regex: IPV6Schema.REGEX
111
+ }
112
+ });
113
+ }
114
+ static getErrorPhone(name: string, value: string | null | undefined): string | null
115
+ {
116
+ return Validator.getError(name, value, {
117
+ required: true, validator: () =>
118
+ {
119
+ if (value)
120
+ if (!PhoneOperation.isValid(value))
121
+ return `${name} is not a valid phone number`;
122
+ return null;
123
+ }
124
+ });
125
+ }
126
126
  }