namirasoft-site-react 1.3.355 → 1.3.357

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 (398) hide show
  1. package/.dockerignore +86 -86
  2. package/Dockerfile +18 -18
  3. package/config-overrides.js +70 -70
  4. package/dist/App.css +17 -0
  5. package/dist/App.js +3 -51
  6. package/dist/App.js.map +1 -1
  7. package/dist/assets/images/1.png +0 -0
  8. package/dist/assets/images/2.png +0 -0
  9. package/dist/assets/images/3.png +0 -0
  10. package/dist/assets/images/4.png +0 -0
  11. package/dist/assets/images/404 image.svg +9 -9
  12. package/dist/assets/images/404 image_mobile.svg +9 -9
  13. package/dist/assets/images/5.jpg +0 -0
  14. package/dist/assets/images/arrow.svg +3 -3
  15. package/dist/assets/images/danger.svg +3 -3
  16. package/dist/assets/images/exit.svg +3 -3
  17. package/dist/assets/images/icon-export.svg +3 -0
  18. package/dist/assets/images/icon-input-copy.svg +3 -3
  19. package/dist/assets/images/icon-input-date.svg +9 -9
  20. package/dist/assets/images/icon-input-duration.svg +9 -9
  21. package/dist/assets/images/icon-input-email.svg +9 -9
  22. package/dist/assets/images/icon-input-float.svg +9 -9
  23. package/dist/assets/images/icon-input-id.svg +9 -0
  24. package/dist/assets/images/icon-input-integer.svg +9 -9
  25. package/dist/assets/images/icon-input-ip.svg +9 -9
  26. package/dist/assets/images/icon-input-phone.svg +9 -9
  27. package/dist/assets/images/icon-input-price.svg +9 -9
  28. package/dist/assets/images/icon-input-search.svg +3 -3
  29. package/dist/assets/images/icon-input-string.svg +9 -9
  30. package/dist/assets/images/icon-input-text.svg +9 -9
  31. package/dist/assets/images/icon-input-time.svg +9 -9
  32. package/dist/assets/images/icon-refresh.svg +3 -0
  33. package/dist/assets/images/icon-select-box.svg +3 -3
  34. package/dist/assets/images/logo.svg +9 -9
  35. package/dist/assets/images/menu.svg +3 -3
  36. package/dist/assets/images/namira.svg +9 -9
  37. package/dist/assets/images/rectangle.svg +3 -3
  38. package/dist/components/NSAccess.d.ts +2 -0
  39. package/dist/components/NSAccess.js +8 -0
  40. package/dist/components/NSAccess.js.map +1 -0
  41. package/dist/components/NSAccess.module.css +39 -0
  42. package/dist/components/NSActionMenu.js +2 -2
  43. package/dist/components/NSActionMenu.module.css +75 -75
  44. package/dist/components/NSAssistantButton.module.css +133 -133
  45. package/dist/components/NSBarAction.module.css +87 -87
  46. package/dist/components/NSBarHeroBanner.module.css +42 -42
  47. package/dist/components/NSBarNotification.d.ts +0 -1
  48. package/dist/components/NSBarNotification.js +10 -10
  49. package/dist/components/NSBarNotification.js.map +1 -1
  50. package/dist/components/NSBarNotification.module.css +34 -34
  51. package/dist/components/NSBarTitle.module.css +9 -9
  52. package/dist/components/NSBox.module.css +123 -123
  53. package/dist/components/NSBoxBoolean.module.css +53 -53
  54. package/dist/components/NSBoxCombo.module.css +17 -17
  55. package/dist/components/NSBoxDate.module.css +39 -39
  56. package/dist/components/NSBoxEntity.module.css +25 -25
  57. package/dist/components/NSBoxErrorNotifier.module.css +2 -2
  58. package/dist/components/NSBoxLabel.module.css +12 -12
  59. package/dist/components/NSBoxOTP.module.css +10 -10
  60. package/dist/components/NSBoxText.d.ts +25 -0
  61. package/dist/components/NSBoxText.js +56 -0
  62. package/dist/components/NSBoxText.js.map +1 -0
  63. package/dist/components/NSBoxTextArea.module.css +76 -76
  64. package/dist/components/NSButton.module.css +27 -27
  65. package/dist/components/NSButtonBlue.module.css +4 -4
  66. package/dist/components/NSButtonGreen.module.css +4 -4
  67. package/dist/components/NSButtonRed.module.css +4 -4
  68. package/dist/components/NSCard.module.css +108 -108
  69. package/dist/components/NSCopyToClipboard.module.css +39 -39
  70. package/dist/components/NSDialog.module.css +39 -39
  71. package/dist/components/NSElectronicCard.module.css +60 -60
  72. package/dist/components/NSEntityBar.module.css +77 -77
  73. package/dist/components/NSEntityCardBackground.module.css +27 -27
  74. package/dist/components/NSFilterBox.module.css +47 -47
  75. package/dist/components/NSFilterBoxDialog.module.css +36 -36
  76. package/dist/components/NSFilterItem.module.css +23 -23
  77. package/dist/components/NSFooter.module.css +123 -123
  78. package/dist/components/NSGroupedList.module.css +72 -72
  79. package/dist/components/NSHeader.module.css +271 -271
  80. package/dist/components/NSInput.module.css +74 -0
  81. package/dist/components/NSInputDate.d.ts +21 -0
  82. package/dist/components/NSInputDate.js +41 -0
  83. package/dist/components/NSInputDate.js.map +1 -0
  84. package/dist/components/NSInputDate.module.css +42 -0
  85. package/dist/components/NSInputDuration.d.ts +23 -0
  86. package/dist/components/NSInputDuration.js +42 -0
  87. package/dist/components/NSInputDuration.js.map +1 -0
  88. package/dist/components/NSInputEmail.d.ts +22 -0
  89. package/dist/components/NSInputEmail.js +43 -0
  90. package/dist/components/NSInputEmail.js.map +1 -0
  91. package/dist/components/NSInputErrorNotifier.d.ts +5 -0
  92. package/dist/components/NSInputErrorNotifier.js +7 -0
  93. package/dist/components/NSInputErrorNotifier.js.map +1 -0
  94. package/dist/components/NSInputErrorNotifier.module.css +3 -0
  95. package/dist/components/NSInputFloat.d.ts +22 -0
  96. package/dist/components/NSInputFloat.js +41 -0
  97. package/dist/components/NSInputFloat.js.map +1 -0
  98. package/dist/components/NSInputIP.d.ts +22 -0
  99. package/dist/components/NSInputIP.js +43 -0
  100. package/dist/components/NSInputIP.js.map +1 -0
  101. package/dist/components/NSInputInteger.d.ts +22 -0
  102. package/dist/components/NSInputInteger.js +41 -0
  103. package/dist/components/NSInputInteger.js.map +1 -0
  104. package/dist/components/NSInputPassword.d.ts +22 -0
  105. package/dist/components/NSInputPassword.js +42 -0
  106. package/dist/components/NSInputPassword.js.map +1 -0
  107. package/dist/components/NSInputPhone.d.ts +22 -0
  108. package/dist/components/NSInputPhone.js +38 -0
  109. package/dist/components/NSInputPhone.js.map +1 -0
  110. package/dist/components/NSInputPrice.d.ts +22 -0
  111. package/dist/components/NSInputPrice.js +41 -0
  112. package/dist/components/NSInputPrice.js.map +1 -0
  113. package/dist/components/NSInputSearch.d.ts +22 -0
  114. package/dist/components/NSInputSearch.js +41 -0
  115. package/dist/components/NSInputSearch.js.map +1 -0
  116. package/dist/components/NSInputString.d.ts +22 -0
  117. package/dist/components/NSInputString.js +42 -0
  118. package/dist/components/NSInputString.js.map +1 -0
  119. package/dist/components/NSInputText.d.ts +22 -0
  120. package/dist/components/NSInputText.js +42 -0
  121. package/dist/components/NSInputText.js.map +1 -0
  122. package/dist/components/NSInputTime.d.ts +22 -0
  123. package/dist/components/NSInputTime.js +43 -0
  124. package/dist/components/NSInputTime.js.map +1 -0
  125. package/dist/components/NSLayout.module.css +13 -13
  126. package/dist/components/NSLayoutAction.d.ts +5 -0
  127. package/dist/components/NSLayoutAction.js +20 -0
  128. package/dist/components/NSLayoutAction.js.map +1 -0
  129. package/dist/components/NSLayoutAction.module.css +88 -0
  130. package/dist/components/NSLayoutHeroBanner.d.ts +2 -0
  131. package/dist/components/NSLayoutHeroBanner.js +8 -0
  132. package/dist/components/NSLayoutHeroBanner.js.map +1 -0
  133. package/dist/components/NSLayoutHeroBanner.module.css +43 -0
  134. package/dist/components/NSLayoutTitle.d.ts +2 -0
  135. package/dist/components/NSLayoutTitle.js +11 -0
  136. package/dist/components/NSLayoutTitle.js.map +1 -0
  137. package/dist/components/NSLayoutTitle.module.css +10 -0
  138. package/dist/components/NSLink.module.css +36 -36
  139. package/dist/components/NSLoading.module.css +29 -29
  140. package/dist/components/NSModal.js +2 -2
  141. package/dist/components/NSModal.module.css +70 -70
  142. package/dist/components/NSNoData.module.css +8 -8
  143. package/dist/components/NSNotification.d.ts +21 -0
  144. package/dist/components/NSNotification.js +37 -0
  145. package/dist/components/NSNotification.js.map +1 -0
  146. package/dist/components/NSNotification.module.css +32 -0
  147. package/dist/components/NSPageSelectionModal.module.css +102 -102
  148. package/dist/components/NSPagination.module.css +101 -101
  149. package/dist/components/NSPanel.module.css +46 -46
  150. package/dist/components/NSPrintModal.d.ts +15 -0
  151. package/dist/components/NSPrintModal.js +35 -0
  152. package/dist/components/NSPrintModal.js.map +1 -0
  153. package/dist/components/NSPrintModal.module.css +82 -0
  154. package/dist/components/NSRadioButton.module.css +61 -61
  155. package/dist/components/NSSection.module.css +10 -10
  156. package/dist/components/NSSectionBars.module.css +10 -10
  157. package/dist/components/NSSectionCards.module.css +38 -38
  158. package/dist/components/NSSelectBox.d.ts +24 -0
  159. package/dist/components/NSSelectBox.js +61 -0
  160. package/dist/components/NSSelectBox.js.map +1 -0
  161. package/dist/components/NSSelectBox.module.css +42 -0
  162. package/dist/components/NSTabPage.module.css +57 -57
  163. package/dist/components/NSTable.d.ts +26 -14
  164. package/dist/components/NSTable.js +49 -32
  165. package/dist/components/NSTable.js.map +1 -1
  166. package/dist/components/NSTable.module.css +253 -253
  167. package/dist/components/NSTag.module.css +44 -44
  168. package/dist/components/NSTitle.module.css +15 -15
  169. package/dist/components/NSVerification.module.css +22 -22
  170. package/dist/formatter/AnyFormatter.d.ts +5 -0
  171. package/dist/formatter/AnyFormatter.js +10 -0
  172. package/dist/formatter/AnyFormatter.js.map +1 -0
  173. package/dist/formatter/BaseColumnFormatter.d.ts +4 -0
  174. package/dist/formatter/BaseColumnFormatter.js +3 -0
  175. package/dist/formatter/BaseColumnFormatter.js.map +1 -0
  176. package/dist/formatter/BooleanFormatter.d.ts +7 -0
  177. package/dist/formatter/BooleanFormatter.js +16 -0
  178. package/dist/formatter/BooleanFormatter.js.map +1 -0
  179. package/dist/formatter/DateFormatter.d.ts +5 -0
  180. package/dist/formatter/DateFormatter.js +16 -0
  181. package/dist/formatter/DateFormatter.js.map +1 -0
  182. package/dist/formatter/DateTimeFormatter.d.ts +7 -0
  183. package/dist/formatter/DateTimeFormatter.js +16 -0
  184. package/dist/formatter/DateTimeFormatter.js.map +1 -0
  185. package/dist/formatter/IDFormatter.d.ts +5 -0
  186. package/dist/formatter/IDFormatter.js +10 -0
  187. package/dist/formatter/IDFormatter.js.map +1 -0
  188. package/dist/formatter/PresentFormatter.d.ts +7 -0
  189. package/dist/formatter/PresentFormatter.js +17 -0
  190. package/dist/formatter/PresentFormatter.js.map +1 -0
  191. package/dist/formatter/StringFormatter.d.ts +5 -0
  192. package/dist/formatter/StringFormatter.js +10 -0
  193. package/dist/formatter/StringFormatter.js.map +1 -0
  194. package/dist/formatter/TimeFormatter.d.ts +5 -0
  195. package/dist/formatter/TimeFormatter.js +16 -0
  196. package/dist/formatter/TimeFormatter.js.map +1 -0
  197. package/dist/index.css +6 -0
  198. package/dist/pages/NSLoginPage.d.ts +6 -0
  199. package/dist/pages/NSLoginPage.js +8 -0
  200. package/dist/pages/NSLoginPage.js.map +1 -0
  201. package/dist/pages/NSLoginPage.module.css +20 -0
  202. package/dist/pages/NSNotFoundPage.module.css +18 -18
  203. package/dist/props/BaseComponentProps.d.ts +6 -0
  204. package/dist/props/BaseComponentProps.js +2 -0
  205. package/dist/props/BaseComponentProps.js.map +10 -0
  206. package/dist/props/INamirasoftProps.d.ts +4 -0
  207. package/dist/props/INamirasoftProps.js +2 -0
  208. package/dist/props/INamirasoftProps.js.map +1 -0
  209. package/dist/props/ImageProps.d.ts +4 -0
  210. package/dist/props/ImageProps.js +2 -0
  211. package/dist/props/ImageProps.js.map +10 -0
  212. package/dist/props/LinkProps.d.ts +5 -0
  213. package/dist/props/LinkProps.js +2 -0
  214. package/dist/props/LinkProps.js.map +10 -0
  215. package/dist/props/ValidationNumberProps.d.ts +4 -0
  216. package/dist/props/ValidationNumberProps.js +2 -0
  217. package/dist/props/ValidationNumberProps.js.map +10 -0
  218. package/dist/props/ValidationProps.d.ts +6 -0
  219. package/dist/props/ValidationProps.js +2 -0
  220. package/dist/props/ValidationProps.js.map +10 -0
  221. package/dist/props/ValidationRegexProps.d.ts +4 -0
  222. package/dist/props/ValidationRegexProps.js +2 -0
  223. package/dist/props/ValidationRegexProps.js.map +1 -0
  224. package/dist/props/ValidationStringProps.d.ts +4 -0
  225. package/dist/props/ValidationStringProps.js +2 -0
  226. package/dist/props/ValidationStringProps.js.map +10 -0
  227. package/package.json +67 -67
  228. package/public/index.html +38 -38
  229. package/src/App.css +16 -16
  230. package/src/App.tsx +124 -178
  231. package/src/CopyToClipboard.ts +6 -6
  232. package/src/Validator.ts +110 -110
  233. package/src/assets/images/404 image.svg +9 -9
  234. package/src/assets/images/404 image_mobile.svg +9 -9
  235. package/src/assets/images/arrow.svg +3 -3
  236. package/src/assets/images/danger.svg +3 -3
  237. package/src/assets/images/exit.svg +3 -3
  238. package/src/assets/images/icon-input-copy.svg +3 -3
  239. package/src/assets/images/icon-input-date.svg +9 -9
  240. package/src/assets/images/icon-input-duration.svg +9 -9
  241. package/src/assets/images/icon-input-email.svg +9 -9
  242. package/src/assets/images/icon-input-float.svg +9 -9
  243. package/src/assets/images/icon-input-integer.svg +9 -9
  244. package/src/assets/images/icon-input-ip.svg +9 -9
  245. package/src/assets/images/icon-input-phone.svg +9 -9
  246. package/src/assets/images/icon-input-price.svg +9 -9
  247. package/src/assets/images/icon-input-search.svg +3 -3
  248. package/src/assets/images/icon-input-string.svg +9 -9
  249. package/src/assets/images/icon-input-text.svg +9 -9
  250. package/src/assets/images/icon-input-time.svg +9 -9
  251. package/src/assets/images/icon-select-box.svg +3 -3
  252. package/src/assets/images/logo.svg +9 -9
  253. package/src/assets/images/menu.svg +3 -3
  254. package/src/assets/images/namira.svg +9 -9
  255. package/src/assets/images/rectangle.svg +3 -3
  256. package/src/components/NSActionMenu.module.css +75 -75
  257. package/src/components/NSActionMenu.tsx +88 -88
  258. package/src/components/NSAssistantButton.module.css +133 -133
  259. package/src/components/NSAssistantButton.tsx +74 -74
  260. package/src/components/NSBarAction.module.css +87 -87
  261. package/src/components/NSBarAction.tsx +86 -86
  262. package/src/components/NSBarHeroBanner.module.css +42 -42
  263. package/src/components/NSBarHeroBanner.tsx +61 -61
  264. package/src/components/NSBarNotification.module.css +34 -34
  265. package/src/components/NSBarNotification.tsx +76 -78
  266. package/src/components/NSBarTitle.module.css +9 -9
  267. package/src/components/NSBarTitle.tsx +28 -28
  268. package/src/components/NSBox.module.css +123 -123
  269. package/src/components/NSBoxBoolean.module.css +53 -53
  270. package/src/components/NSBoxBoolean.tsx +84 -84
  271. package/src/components/NSBoxCombo.module.css +17 -17
  272. package/src/components/NSBoxCombo.tsx +132 -132
  273. package/src/components/NSBoxDate.module.css +39 -39
  274. package/src/components/NSBoxDate.tsx +83 -83
  275. package/src/components/NSBoxDateTime.tsx +83 -83
  276. package/src/components/NSBoxDouble.tsx +88 -88
  277. package/src/components/NSBoxDuration.tsx +88 -88
  278. package/src/components/NSBoxEmail.tsx +104 -104
  279. package/src/components/NSBoxEntity.module.css +25 -25
  280. package/src/components/NSBoxEntity.tsx +178 -178
  281. package/src/components/NSBoxEnum.tsx +56 -56
  282. package/src/components/NSBoxErrorNotifier.module.css +2 -2
  283. package/src/components/NSBoxErrorNotifier.tsx +33 -33
  284. package/src/components/NSBoxIPV4.tsx +93 -93
  285. package/src/components/NSBoxIPV6.tsx +90 -90
  286. package/src/components/NSBoxInteger.tsx +86 -86
  287. package/src/components/NSBoxLabel.module.css +12 -12
  288. package/src/components/NSBoxLabel.tsx +29 -29
  289. package/src/components/NSBoxOTP.module.css +10 -10
  290. package/src/components/NSBoxOTP.tsx +65 -65
  291. package/src/components/NSBoxPassword.tsx +86 -86
  292. package/src/components/NSBoxPhone.tsx +88 -88
  293. package/src/components/NSBoxPrice.tsx +88 -88
  294. package/src/components/NSBoxSearch.tsx +103 -103
  295. package/src/components/NSBoxString.tsx +103 -103
  296. package/src/components/NSBoxTextArea.module.css +76 -76
  297. package/src/components/NSBoxTextArea.tsx +106 -106
  298. package/src/components/NSBoxTime.tsx +88 -88
  299. package/src/components/NSButton.module.css +27 -27
  300. package/src/components/NSButton.tsx +23 -23
  301. package/src/components/NSButtonBlue.module.css +4 -4
  302. package/src/components/NSButtonBlue.tsx +12 -12
  303. package/src/components/NSButtonGreen.module.css +4 -4
  304. package/src/components/NSButtonGreen.tsx +11 -11
  305. package/src/components/NSButtonRed.module.css +4 -4
  306. package/src/components/NSButtonRed.tsx +11 -11
  307. package/src/components/NSCard.module.css +108 -108
  308. package/src/components/NSCard.tsx +70 -70
  309. package/src/components/NSCopyToClipboard.module.css +39 -39
  310. package/src/components/NSCopyToClipboard.tsx +35 -35
  311. package/src/components/NSDialog.module.css +39 -39
  312. package/src/components/NSDialog.tsx +33 -33
  313. package/src/components/NSElectronicCard.module.css +60 -60
  314. package/src/components/NSElectronicCard.tsx +47 -47
  315. package/src/components/NSEntityBar.module.css +77 -77
  316. package/src/components/NSEntityBar.tsx +27 -27
  317. package/src/components/NSEntityCardBackground.module.css +27 -27
  318. package/src/components/NSEntityCardBackground.tsx +34 -34
  319. package/src/components/NSFilterBox.module.css +47 -47
  320. package/src/components/NSFilterBox.tsx +373 -373
  321. package/src/components/NSFilterBoxDialog.module.css +36 -36
  322. package/src/components/NSFilterBoxDialog.tsx +74 -74
  323. package/src/components/NSFilterItem.module.css +23 -23
  324. package/src/components/NSFilterItem.tsx +72 -72
  325. package/src/components/NSFooter.module.css +123 -123
  326. package/src/components/NSFooter.tsx +194 -194
  327. package/src/components/NSGroupedList.module.css +72 -72
  328. package/src/components/NSGroupedList.tsx +107 -107
  329. package/src/components/NSHeader.module.css +271 -271
  330. package/src/components/NSHeader.tsx +234 -234
  331. package/src/components/NSLayout.module.css +13 -13
  332. package/src/components/NSLayout.tsx +82 -82
  333. package/src/components/NSLine.tsx +18 -18
  334. package/src/components/NSLink.module.css +36 -36
  335. package/src/components/NSLink.tsx +25 -25
  336. package/src/components/NSLinkBlue.tsx +20 -20
  337. package/src/components/NSLinkGreen.tsx +5 -5
  338. package/src/components/NSLinkRed.tsx +5 -5
  339. package/src/components/NSLoading.module.css +29 -29
  340. package/src/components/NSLoading.tsx +19 -19
  341. package/src/components/NSModal.module.css +70 -70
  342. package/src/components/NSModal.tsx +49 -49
  343. package/src/components/NSNoData.module.css +8 -8
  344. package/src/components/NSNoData.tsx +24 -24
  345. package/src/components/NSPageSelectionModal.module.css +102 -102
  346. package/src/components/NSPageSelectionModal.tsx +228 -228
  347. package/src/components/NSPagination.module.css +101 -101
  348. package/src/components/NSPagination.tsx +190 -190
  349. package/src/components/NSPanel.module.css +46 -46
  350. package/src/components/NSPanel.tsx +19 -19
  351. package/src/components/NSRadioButton.module.css +61 -61
  352. package/src/components/NSRadioButton.tsx +100 -100
  353. package/src/components/NSSection.module.css +10 -10
  354. package/src/components/NSSection.tsx +23 -23
  355. package/src/components/NSSectionBars.module.css +10 -10
  356. package/src/components/NSSectionBars.tsx +25 -25
  357. package/src/components/NSSectionCards.module.css +38 -38
  358. package/src/components/NSSectionCards.tsx +51 -51
  359. package/src/components/NSSectionTitle.tsx +21 -21
  360. package/src/components/NSSpace.tsx +28 -28
  361. package/src/components/NSTabPage.module.css +57 -57
  362. package/src/components/NSTabPage.tsx +53 -53
  363. package/src/components/NSTable.module.css +253 -253
  364. package/src/components/NSTable.tsx +407 -361
  365. package/src/components/NSTag.module.css +44 -44
  366. package/src/components/NSTag.tsx +49 -49
  367. package/src/components/NSTitle.module.css +15 -15
  368. package/src/components/NSTitle.tsx +19 -19
  369. package/src/components/NSVerification.module.css +22 -22
  370. package/src/components/NSVerification.tsx +41 -41
  371. package/src/formatter/AnyFormatter.ts +13 -0
  372. package/src/formatter/BaseColumnFormatter.ts +6 -0
  373. package/src/formatter/BooleanFormatter.ts +21 -0
  374. package/src/formatter/DateFormatter.ts +21 -0
  375. package/src/formatter/DateTimeFormatter.ts +21 -0
  376. package/src/formatter/IDFormatter.ts +13 -0
  377. package/src/formatter/PresentFormatter.tsx +21 -0
  378. package/src/formatter/StringFormatter.ts +13 -0
  379. package/src/formatter/TimeFormatter.ts +21 -0
  380. package/src/index.tsx +7 -7
  381. package/src/main.ts +79 -79
  382. package/src/pages/NSNotFoundPage.module.css +18 -18
  383. package/src/pages/NSNotFoundPage.tsx +11 -11
  384. package/src/props/IBaseComponentProps.ts +8 -8
  385. package/src/props/IHeaderIconProps.ts +10 -10
  386. package/src/props/IHeaderProps.ts +6 -6
  387. package/src/props/IImageProps.ts +4 -4
  388. package/src/props/ILinkProps.ts +5 -5
  389. package/src/props/IValidationNumberProps.ts +4 -4
  390. package/src/props/IValidationProps.ts +7 -7
  391. package/src/props/IValidationRegexProps.ts +4 -4
  392. package/src/props/IValidationStringProps.ts +4 -4
  393. package/src/routing/INSRouterMaker.ts +6 -6
  394. package/src/routing/INSRouterProps.ts +5 -5
  395. package/src/routing/INSRouterState.ts +5 -5
  396. package/src/routing/NSRouterMaker.tsx +33 -33
  397. package/src/routing/Notifier.ts +79 -79
  398. package/tsconfig.json +43 -43
package/public/index.html CHANGED
@@ -1,39 +1,39 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
-
4
- <head>
5
- <meta charset="utf-8" />
6
- <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
7
- <meta name="viewport" content="width=device-width, initial-scale=1" />
8
- <meta name="theme-color" content="#000000" />
9
- <meta name="description" content="Web site created using create-react-app" />
10
- <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
11
- <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
12
- <!--
13
- Notice the use of %PUBLIC_URL% in the tags above.
14
- It will be replaced with the URL of the `public` folder during the build.
15
- Only files inside the `public` folder can be referenced from the HTML.
16
-
17
- Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
18
- work correctly both with client-side routing and a non-root public URL.
19
- Learn how to configure a non-root public URL by running `npm run build`.
20
- -->
21
- <title>React App</title>
22
- </head>
23
-
24
- <body>
25
- <noscript>You need to enable JavaScript to run this app.</noscript>
26
- <div id="root"></div>
27
-
28
- <!-- <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"
29
- integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
30
- crossorigin="anonymous"></script>
31
- <script src="https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js"
32
- integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
33
- crossorigin="anonymous"></script>
34
- <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js"
35
- integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
36
- crossorigin="anonymous"></script> -->
37
- </body>
38
-
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="utf-8" />
6
+ <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
7
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
8
+ <meta name="theme-color" content="#000000" />
9
+ <meta name="description" content="Web site created using create-react-app" />
10
+ <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
11
+ <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
12
+ <!--
13
+ Notice the use of %PUBLIC_URL% in the tags above.
14
+ It will be replaced with the URL of the `public` folder during the build.
15
+ Only files inside the `public` folder can be referenced from the HTML.
16
+
17
+ Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
18
+ work correctly both with client-side routing and a non-root public URL.
19
+ Learn how to configure a non-root public URL by running `npm run build`.
20
+ -->
21
+ <title>React App</title>
22
+ </head>
23
+
24
+ <body>
25
+ <noscript>You need to enable JavaScript to run this app.</noscript>
26
+ <div id="root"></div>
27
+
28
+ <!-- <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"
29
+ integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
30
+ crossorigin="anonymous"></script>
31
+ <script src="https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js"
32
+ integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
33
+ crossorigin="anonymous"></script>
34
+ <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js"
35
+ integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
36
+ crossorigin="anonymous"></script> -->
37
+ </body>
38
+
39
39
  </html>
package/src/App.css CHANGED
@@ -1,17 +1,17 @@
1
- /*Start Input Tell*/
2
- .country-name {
3
- color: #000 !important;
4
- }
5
- .country-list {
6
- max-width: 206px;
7
- }
8
- .react-tel-input .flag-dropdown {
9
- border: 1px solid #cacaca;
10
- border-radius: 5px 0 0 5px;
11
- border: 1px solid rgba(47, 0, 236, 0.6) !important;
12
- }
13
- /*End Input Tell*/
14
- .ns_font_16_bold{
15
- font-size: 16px;
16
- font-weight: 600;
1
+ /*Start Input Tell*/
2
+ .country-name {
3
+ color: #000 !important;
4
+ }
5
+ .country-list {
6
+ max-width: 206px;
7
+ }
8
+ .react-tel-input .flag-dropdown {
9
+ border: 1px solid #cacaca;
10
+ border-radius: 5px 0 0 5px;
11
+ border: 1px solid rgba(47, 0, 236, 0.6) !important;
12
+ }
13
+ /*End Input Tell*/
14
+ .ns_font_16_bold{
15
+ font-size: 16px;
16
+ font-weight: 600;
17
17
  }
package/src/App.tsx CHANGED
@@ -1,179 +1,125 @@
1
- import './App.css';
2
- import 'bootstrap/dist/css/bootstrap.min.css';
3
- import { NSBarAction, NSBoxBoolean, NSBoxEmail, NSBoxEnum, NSBoxSearch, NSBoxString, NSEntityBar, NSLayout, NSNoData, NSPagination, NSSpace, NSSpaceSizeType, NSTabPage, NSTable } from './main';
4
- import { NSBoxLabel } from './components/NSBoxLabel';
5
- import { NSRadioButton } from './components/NSRadioButton';
6
- import NSTag from './components/NSTag';
7
- import NSButton from './components/NSButton';
8
- import { useRef, useState } from 'react';
9
- import NSDialog from './components/NSDialog';
10
-
11
- export interface INSBarActionState
12
- {
13
- id: string;
14
- menu_item: string;
15
- handler: () => void;
16
- isActive: () => boolean;
17
- }
18
- export function App()
19
- {
20
- const onClicked = () =>
21
- {
22
- console.log("clicked")
23
- }
24
- let icons = [
25
- { src: "https://static.namirasoft.com/image/namirasoft/message/logo/base.png", alt: "", onClicked, count: 1 },
26
- { src: "https://static.namirasoft.com/image/concept/logout/white.svg", alt: "", onClicked },
27
- { src: "https://static.namirasoft.com/image/concept/logout/white.svg", alt: "", onClicked },
28
- { src: "https://static.namirasoft.com/image/concept/logout/white.svg", alt: "", onClicked },
29
- { src: "https://static.namirasoft.com/image/concept/logout/white.svg", alt: "", onClicked },
30
- { src: "https://static.namirasoft.com/image/concept/logout/white.svg", alt: "", onClicked },
31
- { src: "https://static.namirasoft.com/image/concept/logout/white.svg", alt: "", onClicked },
32
- ];
33
- let content1 = () => <>
34
- <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
35
- <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
36
- <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
37
- <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
38
- <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
39
- <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
40
- <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
41
- <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
42
- <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
43
- <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
44
- <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
45
- </>;
46
- let content2 = () => <div>Content for Tab2</div>;
47
- let content3 = () => <div>Content for Tab3</div>;
48
- const tabs = [
49
- { title: 'Information', getContent: content1 },
50
- { title: 'Price History', getContent: content2 },
51
- { title: 'Price Estimator', getContent: content3 }
52
- ];
53
-
54
- const getColumns = (): { [key: string]: string } =>
55
- {
56
- return {
57
- id: "ID",
58
- name: "Name",
59
- user_id: "User Id",
60
- os: "OS"
61
- };
62
- };
63
- let rows = [
64
- {
65
- id: 1,
66
- name: "Accountant",
67
- policy: "Lorem ipsum dolor sit amet, consetetur ",
68
- },
69
- {
70
- id: 2,
71
- name: "Accountant",
72
- policy: "Lorem ipsum dolor sit amet, consetetur ",
73
- },
74
- {
75
- id: 3,
76
- name: "Accountant",
77
- policy: "Lorem ipsum dolor sit amet, consetetur ",
78
- },
79
- {
80
- id: 4,
81
- name: "Accountant",
82
- policy: "Lorem ipsum dolor sit amet, consetetur ",
83
- },
84
- ]
85
- let group: any = [
86
- [
87
- {
88
- id: "1",
89
- handler: () => { },
90
- isActive: () => false,
91
- menu_item: "1"
92
- }, {
93
- id: "2",
94
- handler: () => { },
95
- isActive: () => true,
96
- menu_item: "2"
97
- },
98
- {
99
- id: "2",
100
- handler: () => { },
101
- isActive: () => true,
102
- menu_item: "3"
103
- }
104
- ]
105
- ]
106
- let table = useRef<NSTable<any>>(null);
107
- function getCell(row: any, column: string): any
108
- {
109
- if (column === "check")
110
- {
111
- return <>
112
- <input id={`checkbox_${row.id}`} type="checkbox" className="table_checkbox" />
113
- <label htmlFor={`checkbox_${row.id}`}></label>
114
- </>
115
- } else
116
- {
117
- return (row as any)[column];
118
- }
119
- }
120
- let [state, setState] = useState(false)
121
- return (
122
-
123
- <>
124
- <NSButton title='111' onClick={() => { setState(true) }} />
125
- <NSLayout
126
- header={{
127
- title: "any",
128
- icons: icons
129
- }}
130
- scope="Namirasoft Account Console"
131
- logo="exampleLogoUrl"
132
- notifications={[]}
133
- background=""
134
- isLoggedIn={() => false}
135
- >
136
- <>
137
- <NSTabPage tabs={tabs} />
138
- <NSSpace size={NSSpaceSizeType.SMALL} />
139
- <NSPagination totalItems={100} onPageChange={() => { }} />
140
- </>
141
- <NSTable
142
- ref={table}
143
- columns={getColumns()}
144
- getCell={getCell}
145
- getRowKey={row => row.id.toString()}
146
- getColumnAttributes={() => { return {} }}
147
- getRows={async () => { return { rows, count: rows.length }; }}
148
- checkbox={true}
149
- />
150
- <NSBarAction title='' menus={group} />
151
- <NSBoxEmail title='Email' required />
152
- <NSBoxString title='String' required />
153
- <NSRadioButton title={"Radio Button"} required={false} />
154
- <NSSpace size={NSSpaceSizeType.LARGE} />
155
- <NSBoxBoolean defaultValue={true} title='' required />
156
- <NSButton title='Clear Filters' onClick={() => window.location.reload()} style={{ width: "136px", border: "2px solid #001664" }} />
157
- <NSTag />
158
- <NSNoData lable="No New Message" />
159
- <div className="d-flex flex-row gap-2 w-100">
160
- <NSBoxString title="Name" required />
161
- <NSBoxEnum options={[]} required title='Notification_sender_topic_id' multiple />
162
- <NSBoxEmail title="Name" required />
163
- <NSBoxSearch title="Name" required />
164
- </div>
165
- <NSSpace size={NSSpaceSizeType.MEDUIM} />
166
- <NSBoxBoolean title='CheckBox' required />
167
- <NSEntityBar title='' description='' image={{ src: "" }} />
168
- {
169
- state &&
170
- <NSDialog onClose={() => { setState(false) }}>
171
- <div>
172
- </div>
173
- </NSDialog>
174
- }
175
-
176
- </NSLayout>
177
- </>
178
- );
1
+ import './App.css';
2
+ import 'bootstrap/dist/css/bootstrap.min.css';
3
+ import { NSBarAction, NSBoxBoolean, NSBoxEmail, NSBoxEnum, NSBoxSearch, NSBoxString, NSEntityBar, NSLayout, NSNoData, NSPagination, NSSpace, NSSpaceSizeType, NSTabPage } from './main';
4
+ import { NSBoxLabel } from './components/NSBoxLabel';
5
+ import { NSRadioButton } from './components/NSRadioButton';
6
+ import NSTag from './components/NSTag';
7
+ import NSButton from './components/NSButton';
8
+ import { useState } from 'react';
9
+ import NSDialog from './components/NSDialog';
10
+
11
+ export interface INSBarActionState
12
+ {
13
+ id: string;
14
+ menu_item: string;
15
+ handler: () => void;
16
+ isActive: () => boolean;
17
+ }
18
+ export function App()
19
+ {
20
+ const onClicked = () =>
21
+ {
22
+ console.log("clicked")
23
+ }
24
+ let icons = [
25
+ { src: "https://static.namirasoft.com/image/namirasoft/message/logo/base.png", alt: "", onClicked, count: 1 },
26
+ { src: "https://static.namirasoft.com/image/concept/logout/white.svg", alt: "", onClicked },
27
+ { src: "https://static.namirasoft.com/image/concept/logout/white.svg", alt: "", onClicked },
28
+ { src: "https://static.namirasoft.com/image/concept/logout/white.svg", alt: "", onClicked },
29
+ { src: "https://static.namirasoft.com/image/concept/logout/white.svg", alt: "", onClicked },
30
+ { src: "https://static.namirasoft.com/image/concept/logout/white.svg", alt: "", onClicked },
31
+ { src: "https://static.namirasoft.com/image/concept/logout/white.svg", alt: "", onClicked },
32
+ ];
33
+ let content1 = () => <>
34
+ <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
35
+ <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
36
+ <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
37
+ <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
38
+ <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
39
+ <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
40
+ <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
41
+ <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
42
+ <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
43
+ <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
44
+ <NSBoxLabel title="URL"><p style={{ color: "#000" }}>http://URL.com</p></NSBoxLabel>
45
+ </>;
46
+ let content2 = () => <div>Content for Tab2</div>;
47
+ let content3 = () => <div>Content for Tab3</div>;
48
+ const tabs = [
49
+ { title: 'Information', getContent: content1 },
50
+ { title: 'Price History', getContent: content2 },
51
+ { title: 'Price Estimator', getContent: content3 }
52
+ ];
53
+
54
+ let group: any = [
55
+ [
56
+ {
57
+ id: "1",
58
+ handler: () => { },
59
+ isActive: () => false,
60
+ menu_item: "1"
61
+ }, {
62
+ id: "2",
63
+ handler: () => { },
64
+ isActive: () => true,
65
+ menu_item: "2"
66
+ },
67
+ {
68
+ id: "2",
69
+ handler: () => { },
70
+ isActive: () => true,
71
+ menu_item: "3"
72
+ }
73
+ ]
74
+ ]
75
+ let [state, setState] = useState(false)
76
+ return (
77
+
78
+ <>
79
+ <NSButton title='111' onClick={() => { setState(true) }} />
80
+ <NSLayout
81
+ header={{
82
+ title: "any",
83
+ icons: icons
84
+ }}
85
+ scope="Namirasoft Account Console"
86
+ logo="exampleLogoUrl"
87
+ notifications={[]}
88
+ background=""
89
+ isLoggedIn={() => false}
90
+ >
91
+ <>
92
+ <NSTabPage tabs={tabs} />
93
+ <NSSpace size={NSSpaceSizeType.SMALL} />
94
+ <NSPagination totalItems={100} onPageChange={() => { }} />
95
+ </>
96
+ <NSBarAction title='' menus={group} />
97
+ <NSBoxEmail title='Email' required />
98
+ <NSBoxString title='String' required />
99
+ <NSRadioButton title={"Radio Button"} required={false} />
100
+ <NSSpace size={NSSpaceSizeType.LARGE} />
101
+ <NSBoxBoolean defaultValue={true} title='' required />
102
+ <NSButton title='Clear Filters' onClick={() => window.location.reload()} style={{ width: "136px", border: "2px solid #001664" }} />
103
+ <NSTag />
104
+ <NSNoData lable="No New Message" />
105
+ <div className="d-flex flex-row gap-2 w-100">
106
+ <NSBoxString title="Name" required />
107
+ <NSBoxEnum options={[]} required title='Notification_sender_topic_id' multiple />
108
+ <NSBoxEmail title="Name" required />
109
+ <NSBoxSearch title="Name" required />
110
+ </div>
111
+ <NSSpace size={NSSpaceSizeType.MEDUIM} />
112
+ <NSBoxBoolean title='CheckBox' required />
113
+ <NSEntityBar title='' description='' image={{ src: "" }} />
114
+ {
115
+ state &&
116
+ <NSDialog onClose={() => { setState(false) }}>
117
+ <div>
118
+ </div>
119
+ </NSDialog>
120
+ }
121
+
122
+ </NSLayout>
123
+ </>
124
+ );
179
125
  }
@@ -1,7 +1,7 @@
1
- export default class CopyToClipboard
2
- {
3
- static copyToClipboard(value: string): void
4
- {
5
- navigator.clipboard.writeText(value);
6
- }
1
+ export default class CopyToClipboard
2
+ {
3
+ static copyToClipboard(value: string): void
4
+ {
5
+ navigator.clipboard.writeText(value);
6
+ }
7
7
  };
package/src/Validator.ts CHANGED
@@ -1,111 +1,111 @@
1
- import { PhoneOperation, RegexTemplate } from "namirasoft-core";
2
- import { IValidationNumberProps } from "./props/IValidationNumberProps";
3
- import { IValidationProps } from "./props/IValidationProps";
4
- import { IValidationStringProps } from "./props/IValidationStringProps";
5
-
6
- export class Validator
7
- {
8
- static getError(name: string, value: string | number | null | undefined, validator: IValidationProps): string | null
9
- {
10
- if (validator.required)
11
- if (!value)
12
- return `${name} is required.`;
13
- if (value != null)
14
- if (validator.regex)
15
- if (!validator.regex.regex.test(value + ""))
16
- return `${name} is not a valid ${validator.regex.name}.`;
17
- if (value != null)
18
- if (validator.validator)
19
- {
20
- let error = validator.validator(name, value);
21
- if (error)
22
- return error;
23
- }
24
- return null;
25
- }
26
- static getErrorString(name: string, value: string | null | undefined, validator: IValidationStringProps): string | null
27
- {
28
- if (value != null)
29
- {
30
- if (validator.max_length != null)
31
- if (validator.max_length < value.length)
32
- return `Max length of ${name} should be ${validator.max_length} characters.`;
33
- if (validator.min_length != null)
34
- if (validator.min_length > value.length)
35
- return `Minlength of ${name} should be ${validator.min_length} characters.`;
36
- }
37
- return null;
38
- }
39
- static getErrorNumber(name: string, value: number | null | undefined, validator: IValidationNumberProps): string | null
40
- {
41
- if (value != null)
42
- {
43
- if (isNaN(value))
44
- return `${name} is not a number.`;
45
- if (validator.max != null)
46
- if (validator.max < value)
47
- return `Max value of ${name} should be ${validator.max} characters.`;
48
- if (validator.min != null)
49
- if (validator.min > value)
50
- return `Min value of ${name} should be ${validator.min} characters.`;
51
- }
52
- return null;
53
- }
54
- static getErrorEmail(name: string, value: string | null | undefined): string | null
55
- {
56
- return Validator.getError(name, value, {
57
- required: true, regex: {
58
- name: "Email",
59
- regex: RegexTemplate.Email
60
- }
61
- });
62
- }
63
- static getErrorDate(name: string, value: string | null | undefined): string | null
64
- {
65
- return Validator.getError(name, value, {
66
- required: true, regex: {
67
- name: "Date",
68
- regex: RegexTemplate.Date
69
- }
70
- });
71
- }
72
- static getErrorTime(name: string, value: string | null | undefined): string | null
73
- {
74
- return Validator.getError(name, value, {
75
- required: true, regex: {
76
- name: "Time",
77
- regex: RegexTemplate.Time
78
- }
79
- });
80
- }
81
- static getErrorDuration(name: string, value: string | null | undefined): string | null
82
- {
83
- return Validator.getError(name, value, {
84
- required: true, regex: {
85
- name: "Duration",
86
- regex: RegexTemplate.Duration
87
- }
88
- });
89
- }
90
- static getErrorIP(name: string, value: string | null | undefined): string | null
91
- {
92
- return Validator.getError(name, value, {
93
- required: true, regex: {
94
- name: "IP",
95
- regex: RegexTemplate.IP
96
- }
97
- });
98
- }
99
- static getErrorPhone(name: string, value: string | null | undefined): string | null
100
- {
101
- return Validator.getError(name, value, {
102
- required: true, validator: () =>
103
- {
104
- if (value)
105
- if (!PhoneOperation.isValid(value))
106
- return `${name} is not a valid phone number`;
107
- return null;
108
- }
109
- });
110
- }
1
+ import { PhoneOperation, RegexTemplate } from "namirasoft-core";
2
+ import { IValidationNumberProps } from "./props/IValidationNumberProps";
3
+ import { IValidationProps } from "./props/IValidationProps";
4
+ import { IValidationStringProps } from "./props/IValidationStringProps";
5
+
6
+ export class Validator
7
+ {
8
+ static getError(name: string, value: string | number | null | undefined, validator: IValidationProps): string | null
9
+ {
10
+ if (validator.required)
11
+ if (!value)
12
+ return `${name} is required.`;
13
+ if (value != null)
14
+ if (validator.regex)
15
+ if (!validator.regex.regex.test(value + ""))
16
+ return `${name} is not a valid ${validator.regex.name}.`;
17
+ if (value != null)
18
+ if (validator.validator)
19
+ {
20
+ let error = validator.validator(name, value);
21
+ if (error)
22
+ return error;
23
+ }
24
+ return null;
25
+ }
26
+ static getErrorString(name: string, value: string | null | undefined, validator: IValidationStringProps): string | null
27
+ {
28
+ if (value != null)
29
+ {
30
+ if (validator.max_length != null)
31
+ if (validator.max_length < value.length)
32
+ return `Max length of ${name} should be ${validator.max_length} characters.`;
33
+ if (validator.min_length != null)
34
+ if (validator.min_length > value.length)
35
+ return `Minlength of ${name} should be ${validator.min_length} characters.`;
36
+ }
37
+ return null;
38
+ }
39
+ static getErrorNumber(name: string, value: number | null | undefined, validator: IValidationNumberProps): string | null
40
+ {
41
+ if (value != null)
42
+ {
43
+ if (isNaN(value))
44
+ return `${name} is not a number.`;
45
+ if (validator.max != null)
46
+ if (validator.max < value)
47
+ return `Max value of ${name} should be ${validator.max} characters.`;
48
+ if (validator.min != null)
49
+ if (validator.min > value)
50
+ return `Min value of ${name} should be ${validator.min} characters.`;
51
+ }
52
+ return null;
53
+ }
54
+ static getErrorEmail(name: string, value: string | null | undefined): string | null
55
+ {
56
+ return Validator.getError(name, value, {
57
+ required: true, regex: {
58
+ name: "Email",
59
+ regex: RegexTemplate.Email
60
+ }
61
+ });
62
+ }
63
+ static getErrorDate(name: string, value: string | null | undefined): string | null
64
+ {
65
+ return Validator.getError(name, value, {
66
+ required: true, regex: {
67
+ name: "Date",
68
+ regex: RegexTemplate.Date
69
+ }
70
+ });
71
+ }
72
+ static getErrorTime(name: string, value: string | null | undefined): string | null
73
+ {
74
+ return Validator.getError(name, value, {
75
+ required: true, regex: {
76
+ name: "Time",
77
+ regex: RegexTemplate.Time
78
+ }
79
+ });
80
+ }
81
+ static getErrorDuration(name: string, value: string | null | undefined): string | null
82
+ {
83
+ return Validator.getError(name, value, {
84
+ required: true, regex: {
85
+ name: "Duration",
86
+ regex: RegexTemplate.Duration
87
+ }
88
+ });
89
+ }
90
+ static getErrorIP(name: string, value: string | null | undefined): string | null
91
+ {
92
+ return Validator.getError(name, value, {
93
+ required: true, regex: {
94
+ name: "IP",
95
+ regex: RegexTemplate.IP
96
+ }
97
+ });
98
+ }
99
+ static getErrorPhone(name: string, value: string | null | undefined): string | null
100
+ {
101
+ return Validator.getError(name, value, {
102
+ required: true, validator: () =>
103
+ {
104
+ if (value)
105
+ if (!PhoneOperation.isValid(value))
106
+ return `${name} is not a valid phone number`;
107
+ return null;
108
+ }
109
+ });
110
+ }
111
111
  }