namirasoft-site-react 1.4.337 → 1.4.339

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 (337) 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.js +1 -1
  6. package/dist/App.js.map +1 -1
  7. package/dist/NSBoxBuilder.js +2 -2
  8. package/dist/NSBoxBuilder.js.map +1 -1
  9. package/dist/Validator.d.ts +1 -0
  10. package/dist/Validator.js +20 -6
  11. package/dist/Validator.js.map +1 -1
  12. package/dist/components/NSBanner.module.css +47 -47
  13. package/dist/components/NSBarAction.module.css +84 -84
  14. package/dist/components/NSBarAlert.module.css +79 -79
  15. package/dist/components/NSBarNotification.module.css +34 -34
  16. package/dist/components/NSBarTitle.module.css +9 -9
  17. package/dist/components/NSBox.module.css +50 -50
  18. package/dist/components/NSBoxBaseCombo.d.ts +1 -1
  19. package/dist/components/NSBoxBaseCombo.module.css +6 -6
  20. package/dist/components/NSBoxBaseLayout.d.ts +1 -1
  21. package/dist/components/NSBoxBoolean.d.ts +1 -1
  22. package/dist/components/NSBoxBoolean.module.css +67 -67
  23. package/dist/components/NSBoxColor.d.ts +1 -1
  24. package/dist/components/NSBoxDate.d.ts +1 -1
  25. package/dist/components/NSBoxDate.module.css +4 -4
  26. package/dist/components/NSBoxDateTime.d.ts +1 -1
  27. package/dist/components/NSBoxDateTime.module.css +4 -4
  28. package/dist/components/NSBoxDouble.d.ts +1 -1
  29. package/dist/components/NSBoxDuration.d.ts +1 -1
  30. package/dist/components/NSBoxDuration.module.css +4 -4
  31. package/dist/components/NSBoxDynamic.d.ts +1 -1
  32. package/dist/components/NSBoxEmail.d.ts +1 -1
  33. package/dist/components/NSBoxFile.d.ts +1 -1
  34. package/dist/components/NSBoxFile.module.css +10 -10
  35. package/dist/components/NSBoxFilePath.d.ts +1 -1
  36. package/dist/components/NSBoxFont.d.ts +1 -1
  37. package/dist/components/NSBoxIPV4.d.ts +1 -1
  38. package/dist/components/NSBoxIPV4Range.d.ts +1 -1
  39. package/dist/components/NSBoxIPV6.d.ts +1 -1
  40. package/dist/components/NSBoxIPV6Range.d.ts +1 -1
  41. package/dist/components/NSBoxInteger.d.ts +1 -1
  42. package/dist/components/NSBoxMoney.d.ts +1 -1
  43. package/dist/components/NSBoxPassword.d.ts +1 -1
  44. package/dist/components/NSBoxPhone.d.ts +1 -1
  45. package/dist/components/NSBoxPhone.module.css +35 -35
  46. package/dist/components/NSBoxRadio.d.ts +1 -1
  47. package/dist/components/NSBoxRadio.module.css +33 -33
  48. package/dist/components/NSBoxSchemaBase.d.ts +1 -1
  49. package/dist/components/NSBoxSchemaBase.js +17 -2
  50. package/dist/components/NSBoxSchemaBase.js.map +1 -1
  51. package/dist/components/NSBoxSchemaBase.module.css +17 -17
  52. package/dist/components/NSBoxSchemaVariable.d.ts +1 -1
  53. package/dist/components/NSBoxSchemaVariable.js +5 -1
  54. package/dist/components/NSBoxSchemaVariable.js.map +1 -1
  55. package/dist/components/NSBoxSchemaVariable.module.css +16 -16
  56. package/dist/components/NSBoxSearch.d.ts +1 -1
  57. package/dist/components/NSBoxString.d.ts +1 -1
  58. package/dist/components/NSBoxTextArea.d.ts +1 -1
  59. package/dist/components/NSBoxTextArea.module.css +12 -12
  60. package/dist/components/NSBoxTime.d.ts +1 -1
  61. package/dist/components/NSBoxTime.module.css +4 -4
  62. package/dist/components/NSBoxTimeZone.d.ts +1 -1
  63. package/dist/components/NSBoxURL.d.ts +1 -1
  64. package/dist/components/NSBoxVersion.d.ts +1 -1
  65. package/dist/components/NSButton.module.css +57 -57
  66. package/dist/components/NSButtonBlue.module.css +4 -4
  67. package/dist/components/NSButtonGreen.module.css +4 -4
  68. package/dist/components/NSButtonRed.module.css +4 -4
  69. package/dist/components/NSCard.module.css +114 -114
  70. package/dist/components/NSCardScreenshot.module.css +41 -41
  71. package/dist/components/NSChartColumn.module.css +7 -7
  72. package/dist/components/NSChartTable.module.css +21 -21
  73. package/dist/components/NSColumn.module.css +16 -16
  74. package/dist/components/NSCopyBox.module.css +39 -39
  75. package/dist/components/NSDialog.module.css +112 -112
  76. package/dist/components/NSDialogPageSelection.module.css +103 -103
  77. package/dist/components/NSDownTimer.module.css +55 -55
  78. package/dist/components/NSDownload.module.css +46 -46
  79. package/dist/components/NSElectronicCard.module.css +60 -60
  80. package/dist/components/NSEntityCardBackground.module.css +27 -27
  81. package/dist/components/NSFilterBox.module.css +56 -56
  82. package/dist/components/NSFilterItem.module.css +24 -24
  83. package/dist/components/NSFooter.module.css +134 -134
  84. package/dist/components/NSHeader.module.css +291 -291
  85. package/dist/components/NSHeaderScreenshot.module.css +35 -35
  86. package/dist/components/NSLabel.module.css +25 -25
  87. package/dist/components/NSLabelErrorNotifier.module.css +2 -2
  88. package/dist/components/NSLayout.module.css +14 -14
  89. package/dist/components/NSLine.module.css +15 -15
  90. package/dist/components/NSLink.module.css +36 -36
  91. package/dist/components/NSListGrouped.module.css +69 -69
  92. package/dist/components/NSLoading.module.css +30 -30
  93. package/dist/components/NSMenuAction.js +2 -2
  94. package/dist/components/NSMenuAction.module.css +88 -88
  95. package/dist/components/NSMenuButton.module.css +44 -44
  96. package/dist/components/NSNoData.module.css +9 -9
  97. package/dist/components/NSPagination.module.css +85 -85
  98. package/dist/components/NSPanel.module.css +19 -19
  99. package/dist/components/NSPanelAccordion.module.css +4 -4
  100. package/dist/components/NSRange.module.css +66 -66
  101. package/dist/components/NSRepeater.d.ts +5 -1
  102. package/dist/components/NSRepeater.js +13 -5
  103. package/dist/components/NSRepeater.js.map +1 -1
  104. package/dist/components/NSRepeaterNSBoxSchemaVariable.d.ts +4 -1
  105. package/dist/components/NSRepeaterNSBoxSchemaVariable.js.map +1 -1
  106. package/dist/components/NSRepeaterNSTag.d.ts +4 -2
  107. package/dist/components/NSRepeaterNSTag.js.map +1 -1
  108. package/dist/components/NSRow.module.css +17 -17
  109. package/dist/components/NSSection.module.css +4 -4
  110. package/dist/components/NSSectionCards.module.css +38 -38
  111. package/dist/components/NSSectionTiles.module.css +10 -10
  112. package/dist/components/NSTabPage.module.css +59 -59
  113. package/dist/components/NSTable.module.css +263 -263
  114. package/dist/components/NSTile.module.css +76 -76
  115. package/dist/components/NSTimelineMonthly.module.css +71 -71
  116. package/dist/components/NSTitle.module.css +15 -15
  117. package/dist/pages/NSNotFoundPage.module.css +18 -18
  118. package/dist/pages/NSUpdating.module.css +35 -35
  119. package/package.json +80 -80
  120. package/public/index.html +38 -38
  121. package/src/App.css +33 -33
  122. package/src/App.tsx +131 -129
  123. package/src/Color.tsx +10 -10
  124. package/src/CopyToClipboard.ts +6 -6
  125. package/src/NSBoxBuilder.tsx +914 -912
  126. package/src/Validator.ts +163 -147
  127. package/src/components/INSBox.tsx +6 -6
  128. package/src/components/NSBanner.module.css +47 -47
  129. package/src/components/NSBanner.tsx +80 -80
  130. package/src/components/NSBarAction.module.css +84 -84
  131. package/src/components/NSBarAction.tsx +90 -90
  132. package/src/components/NSBarAlert.module.css +79 -79
  133. package/src/components/NSBarAlert.tsx +35 -35
  134. package/src/components/NSBarNotification.module.css +34 -34
  135. package/src/components/NSBarNotification.tsx +85 -85
  136. package/src/components/NSBarTitle.module.css +9 -9
  137. package/src/components/NSBarTitle.tsx +23 -23
  138. package/src/components/NSBox.module.css +50 -50
  139. package/src/components/NSBox.tsx +19 -19
  140. package/src/components/NSBoxBaseCombo.module.css +6 -6
  141. package/src/components/NSBoxBaseCombo.tsx +314 -314
  142. package/src/components/NSBoxBaseLayout.tsx +88 -88
  143. package/src/components/NSBoxBaseLayoutRecursive.tsx +54 -54
  144. package/src/components/NSBoxBoolean.module.css +67 -67
  145. package/src/components/NSBoxBoolean.tsx +119 -119
  146. package/src/components/NSBoxBooleans.tsx +161 -161
  147. package/src/components/NSBoxColor.tsx +95 -95
  148. package/src/components/NSBoxCombo.tsx +91 -91
  149. package/src/components/NSBoxDate.module.css +4 -4
  150. package/src/components/NSBoxDate.tsx +90 -90
  151. package/src/components/NSBoxDateTime.module.css +4 -4
  152. package/src/components/NSBoxDateTime.tsx +105 -105
  153. package/src/components/NSBoxDouble.tsx +94 -94
  154. package/src/components/NSBoxDuration.module.css +4 -4
  155. package/src/components/NSBoxDuration.tsx +95 -95
  156. package/src/components/NSBoxDynamic.tsx +67 -67
  157. package/src/components/NSBoxDynamics.tsx +68 -68
  158. package/src/components/NSBoxEmail.tsx +98 -98
  159. package/src/components/NSBoxEntity.tsx +101 -101
  160. package/src/components/NSBoxEnum.tsx +108 -108
  161. package/src/components/NSBoxFile.module.css +10 -10
  162. package/src/components/NSBoxFile.tsx +101 -101
  163. package/src/components/NSBoxFilePath.tsx +95 -95
  164. package/src/components/NSBoxFont.tsx +95 -95
  165. package/src/components/NSBoxIPV4.tsx +95 -95
  166. package/src/components/NSBoxIPV4Range.tsx +95 -95
  167. package/src/components/NSBoxIPV6.tsx +92 -92
  168. package/src/components/NSBoxIPV6Range.tsx +95 -95
  169. package/src/components/NSBoxInteger.tsx +91 -91
  170. package/src/components/NSBoxMoney.tsx +95 -95
  171. package/src/components/NSBoxPassword.tsx +106 -106
  172. package/src/components/NSBoxPhone.module.css +35 -35
  173. package/src/components/NSBoxPhone.tsx +107 -107
  174. package/src/components/NSBoxRadio.module.css +33 -33
  175. package/src/components/NSBoxRadio.tsx +91 -91
  176. package/src/components/NSBoxSchemaBase.module.css +17 -17
  177. package/src/components/NSBoxSchemaBase.tsx +540 -539
  178. package/src/components/NSBoxSchemaVariable.module.css +16 -16
  179. package/src/components/NSBoxSchemaVariable.tsx +250 -251
  180. package/src/components/NSBoxSearch.tsx +97 -97
  181. package/src/components/NSBoxString.tsx +91 -91
  182. package/src/components/NSBoxTextArea.module.css +12 -12
  183. package/src/components/NSBoxTextArea.tsx +98 -98
  184. package/src/components/NSBoxTime.module.css +4 -4
  185. package/src/components/NSBoxTime.tsx +93 -93
  186. package/src/components/NSBoxTimeZone.tsx +95 -95
  187. package/src/components/NSBoxURL.tsx +104 -104
  188. package/src/components/NSBoxVersion.tsx +95 -95
  189. package/src/components/NSButton.module.css +57 -57
  190. package/src/components/NSButton.tsx +25 -25
  191. package/src/components/NSButtonBlue.module.css +4 -4
  192. package/src/components/NSButtonBlue.tsx +19 -19
  193. package/src/components/NSButtonGreen.module.css +4 -4
  194. package/src/components/NSButtonGreen.tsx +19 -19
  195. package/src/components/NSButtonRed.module.css +4 -4
  196. package/src/components/NSButtonRed.tsx +19 -19
  197. package/src/components/NSCard.module.css +114 -114
  198. package/src/components/NSCard.tsx +63 -63
  199. package/src/components/NSCardScreenshot.module.css +41 -41
  200. package/src/components/NSCardScreenshot.tsx +31 -31
  201. package/src/components/NSChartColumn.module.css +7 -7
  202. package/src/components/NSChartColumn.tsx +106 -106
  203. package/src/components/NSChartDoughnut.tsx +112 -112
  204. package/src/components/NSChartPie.tsx +105 -105
  205. package/src/components/NSChartRange.tsx +14 -14
  206. package/src/components/NSChartTable.module.css +21 -21
  207. package/src/components/NSChartTable.tsx +94 -94
  208. package/src/components/NSColumn.module.css +16 -16
  209. package/src/components/NSColumn.tsx +24 -24
  210. package/src/components/NSCopy.tsx +58 -58
  211. package/src/components/NSCopyBox.module.css +39 -39
  212. package/src/components/NSCopyBox.tsx +53 -53
  213. package/src/components/NSDialog.module.css +112 -112
  214. package/src/components/NSDialog.tsx +61 -61
  215. package/src/components/NSDialogDelete.tsx +26 -26
  216. package/src/components/NSDialogInfo.tsx +32 -32
  217. package/src/components/NSDialogPageSelection.module.css +103 -103
  218. package/src/components/NSDialogPageSelection.tsx +227 -227
  219. package/src/components/NSDownTimer.module.css +55 -55
  220. package/src/components/NSDownTimer.tsx +91 -91
  221. package/src/components/NSDownload.module.css +46 -46
  222. package/src/components/NSDownload.tsx +66 -66
  223. package/src/components/NSElectronicCard.module.css +60 -60
  224. package/src/components/NSElectronicCard.tsx +46 -46
  225. package/src/components/NSEntityCardBackground.module.css +27 -27
  226. package/src/components/NSEntityCardBackground.tsx +36 -36
  227. package/src/components/NSFilterBox.module.css +56 -56
  228. package/src/components/NSFilterBox.tsx +506 -506
  229. package/src/components/NSFilterItem.module.css +24 -24
  230. package/src/components/NSFilterItem.tsx +27 -27
  231. package/src/components/NSFooter.module.css +134 -134
  232. package/src/components/NSFooter.tsx +321 -321
  233. package/src/components/NSHeader.module.css +291 -291
  234. package/src/components/NSHeader.tsx +261 -261
  235. package/src/components/NSHeaderScreenshot.module.css +35 -35
  236. package/src/components/NSHeaderScreenshot.tsx +39 -39
  237. package/src/components/NSID.tsx +131 -131
  238. package/src/components/NSLabel.module.css +25 -25
  239. package/src/components/NSLabel.tsx +46 -46
  240. package/src/components/NSLabelErrorNotifier.module.css +2 -2
  241. package/src/components/NSLabelErrorNotifier.tsx +35 -35
  242. package/src/components/NSLayout.module.css +14 -14
  243. package/src/components/NSLayout.tsx +126 -126
  244. package/src/components/NSLine.module.css +15 -15
  245. package/src/components/NSLine.tsx +13 -13
  246. package/src/components/NSLink.module.css +36 -36
  247. package/src/components/NSLink.tsx +25 -25
  248. package/src/components/NSLinkBlue.tsx +21 -21
  249. package/src/components/NSLinkGreen.tsx +12 -12
  250. package/src/components/NSLinkRed.tsx +12 -12
  251. package/src/components/NSListGrouped.module.css +69 -69
  252. package/src/components/NSListGrouped.tsx +106 -106
  253. package/src/components/NSListProduct.tsx +44 -44
  254. package/src/components/NSLoading.module.css +30 -30
  255. package/src/components/NSLoading.tsx +21 -21
  256. package/src/components/NSMenuAction.module.css +88 -88
  257. package/src/components/NSMenuAction.tsx +90 -90
  258. package/src/components/NSMenuButton.module.css +44 -44
  259. package/src/components/NSMenuButton.tsx +206 -206
  260. package/src/components/NSNoData.module.css +9 -9
  261. package/src/components/NSNoData.tsx +24 -24
  262. package/src/components/NSPagination.module.css +85 -85
  263. package/src/components/NSPagination.tsx +182 -182
  264. package/src/components/NSPanel.module.css +19 -19
  265. package/src/components/NSPanel.tsx +24 -24
  266. package/src/components/NSPanelAccordion.module.css +4 -4
  267. package/src/components/NSPanelAccordion.tsx +51 -51
  268. package/src/components/NSRange.module.css +66 -66
  269. package/src/components/NSRange.tsx +83 -83
  270. package/src/components/NSRepeater.tsx +256 -240
  271. package/src/components/NSRepeaterNSBoxSchemaVariable.tsx +90 -88
  272. package/src/components/NSRepeaterNSTag.tsx +81 -79
  273. package/src/components/NSRow.module.css +17 -17
  274. package/src/components/NSRow.tsx +24 -24
  275. package/src/components/NSSection.module.css +4 -4
  276. package/src/components/NSSection.tsx +26 -26
  277. package/src/components/NSSectionCards.module.css +38 -38
  278. package/src/components/NSSectionCards.tsx +51 -51
  279. package/src/components/NSSectionTiles.module.css +10 -10
  280. package/src/components/NSSectionTiles.tsx +25 -25
  281. package/src/components/NSSectionTitle.tsx +21 -21
  282. package/src/components/NSSpace.tsx +28 -28
  283. package/src/components/NSTabPage.module.css +59 -59
  284. package/src/components/NSTabPage.tsx +91 -91
  285. package/src/components/NSTable.module.css +263 -263
  286. package/src/components/NSTable.tsx +482 -482
  287. package/src/components/NSTag.tsx +74 -74
  288. package/src/components/NSTile.module.css +76 -76
  289. package/src/components/NSTile.tsx +27 -27
  290. package/src/components/NSTimelineMonthly.module.css +71 -71
  291. package/src/components/NSTimelineMonthly.tsx +44 -44
  292. package/src/components/NSTitle.module.css +15 -15
  293. package/src/components/NSTitle.tsx +19 -19
  294. package/src/formatter/BackColorFormatter.tsx +23 -23
  295. package/src/formatter/BaseColumnFormatter.ts +16 -16
  296. package/src/formatter/BaseURLImageFormatter.tsx +33 -33
  297. package/src/formatter/BooleanFormatter.ts +22 -22
  298. package/src/formatter/DateFormatter.ts +21 -21
  299. package/src/formatter/DateTimeFormatter.ts +21 -21
  300. package/src/formatter/DurationFormatter.ts +13 -13
  301. package/src/formatter/EmailFormatter.tsx +21 -21
  302. package/src/formatter/EnumFormatter.ts +13 -13
  303. package/src/formatter/FloatFormatter.ts +23 -23
  304. package/src/formatter/ForeColorFormatter.tsx +24 -24
  305. package/src/formatter/IDFormatter.tsx +30 -30
  306. package/src/formatter/IPFormatter.ts +13 -13
  307. package/src/formatter/IntegerFormatter.ts +23 -23
  308. package/src/formatter/JsonFormatter.ts +21 -21
  309. package/src/formatter/MoneyFormatter.ts +30 -30
  310. package/src/formatter/PhoneFormatter.tsx +21 -21
  311. package/src/formatter/StringFormatter.tsx +43 -43
  312. package/src/formatter/TimeFormatter.ts +21 -21
  313. package/src/formatter/URLFormatter.tsx +21 -21
  314. package/src/formatter/UnknowFormatter.ts +18 -18
  315. package/src/index.tsx +7 -7
  316. package/src/main.ts +222 -222
  317. package/src/pages/NSNotFoundPage.module.css +18 -18
  318. package/src/pages/NSNotFoundPage.tsx +11 -11
  319. package/src/pages/NSUpdating.module.css +35 -35
  320. package/src/pages/NSUpdating.tsx +32 -32
  321. package/src/props/IBackgroundPropps.ts +5 -5
  322. package/src/props/IBaseComponentProps.ts +8 -8
  323. package/src/props/IHeaderIconProps.ts +10 -10
  324. package/src/props/IHeaderProps.ts +7 -7
  325. package/src/props/IImageProps.ts +4 -4
  326. package/src/props/ILinkProps.ts +5 -5
  327. package/src/props/IValidationNumberProps.ts +4 -4
  328. package/src/props/IValidationPrecisionProps.ts +3 -3
  329. package/src/props/IValidationProps.ts +9 -9
  330. package/src/props/IValidationRegexProps.ts +4 -4
  331. package/src/props/IValidationStringProps.ts +4 -4
  332. package/src/routing/NSNotifier.ts +114 -114
  333. package/src/routing/NSRouterMaker.tsx +20 -20
  334. package/src/routing/NSRouterMakerComponent.ts +5 -5
  335. package/src/routing/NSRouterMakerProps.ts +5 -5
  336. package/dist/App.css +0 -34
  337. package/dist/index.css +0 -6
@@ -1,92 +1,92 @@
1
- import { useEffect, useState } from 'react';
2
- import { IBaseComponentProps } from '../props/IBaseComponentProps';
3
- import Styles from './NSDownTimer.module.css';
4
-
5
- export interface NSDownTimerProps extends IBaseComponentProps
6
- {
7
- date: Date;
8
- text: string;
9
- expire_text?: string
10
- }
11
-
12
- interface NSDownTimerState
13
- {
14
- days: number;
15
- hours: number;
16
- minutes: number;
17
- seconds: number;
18
- }
19
-
20
- export function NSDownTimer(props: NSDownTimerProps)
21
- {
22
- const [timeLeft, setTimeLeft] = useState<NSDownTimerState>(calculateTimeLeft(props.date));
23
-
24
- useEffect(() =>
25
- {
26
- const timer = setInterval(() =>
27
- {
28
- setTimeLeft(calculateTimeLeft(props.date));
29
- }, 1000);
30
- return () => clearInterval(timer);
31
- }, [props.date]);
32
-
33
- function calculateTimeLeft(date: Date): NSDownTimerState
34
- {
35
- const now = new Date();
36
- const difference = date.getTime() - now.getTime();
37
-
38
- let timeLeft: NSDownTimerState = {
39
- days: 0,
40
- hours: 0,
41
- minutes: 0,
42
- seconds: 0,
43
- };
44
- if (difference > 0)
45
- {
46
- timeLeft = {
47
- days: Math.floor(difference / (1000 * 60 * 60 * 24)),
48
- hours: Math.floor((difference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)),
49
- minutes: Math.floor((difference % (1000 * 60 * 60)) / (1000 * 60)),
50
- seconds: Math.floor((difference % (1000 * 60)) / 1000),
51
- };
52
- }
53
- return timeLeft;
54
- }
55
- return (
56
- <div
57
- id={props.id}
58
- className={`${Styles.ns_down_timer_container} ${props.classList?.join(" ") ?? ""}`}
59
- style={props.style}
60
- >
61
- <figure className={Styles.ns_figure}>
62
- <img
63
- src='https://static.namirasoft.com/image/concept/countdown/grey.svg'
64
- alt='CountDown'
65
- width={48}
66
- height={48} />
67
- <figcaption>{props.text}</figcaption>
68
- </figure>
69
- <div className={Styles.ns_down_timer_time_container}>
70
- <div className='d-flex flex-column justify-content-center align-items-center'>
71
- <span className={Styles.ns_down_timer_time_left}>{`${timeLeft.days}`}</span>
72
- <span className={Styles.ns_down_timer_time_left_unit}>DAY</span>
73
- </div>
74
- <span className={`${Styles.ns_semi_colon}`}>:</span>
75
- <div className='d-flex flex-column justify-content-center align-items-center'>
76
- <span className={Styles.ns_down_timer_time_left}>{`${timeLeft.hours}`}</span>
77
- <span className={Styles.ns_down_timer_time_left_unit}>HOUR</span>
78
- </div>
79
- <span className={`${Styles.ns_semi_colon}`}>:</span>
80
- <div className='d-flex flex-column justify-content-center align-items-center'>
81
- <span className={Styles.ns_down_timer_time_left}>{`${timeLeft.minutes}`}</span>
82
- <span className={Styles.ns_down_timer_time_left_unit}>MIN</span>
83
- </div>
84
- <span className={`${Styles.ns_semi_colon}`}>:</span>
85
- <div className='d-flex flex-column justify-content-center align-items-center'>
86
- <span className={Styles.ns_down_timer_time_left}>{`${timeLeft.seconds}`}</span>
87
- <span className={Styles.ns_down_timer_time_left_unit}>SEC</span>
88
- </div>
89
- </div>
90
- </div>
91
- );
1
+ import { useEffect, useState } from 'react';
2
+ import { IBaseComponentProps } from '../props/IBaseComponentProps';
3
+ import Styles from './NSDownTimer.module.css';
4
+
5
+ export interface NSDownTimerProps extends IBaseComponentProps
6
+ {
7
+ date: Date;
8
+ text: string;
9
+ expire_text?: string
10
+ }
11
+
12
+ interface NSDownTimerState
13
+ {
14
+ days: number;
15
+ hours: number;
16
+ minutes: number;
17
+ seconds: number;
18
+ }
19
+
20
+ export function NSDownTimer(props: NSDownTimerProps)
21
+ {
22
+ const [timeLeft, setTimeLeft] = useState<NSDownTimerState>(calculateTimeLeft(props.date));
23
+
24
+ useEffect(() =>
25
+ {
26
+ const timer = setInterval(() =>
27
+ {
28
+ setTimeLeft(calculateTimeLeft(props.date));
29
+ }, 1000);
30
+ return () => clearInterval(timer);
31
+ }, [props.date]);
32
+
33
+ function calculateTimeLeft(date: Date): NSDownTimerState
34
+ {
35
+ const now = new Date();
36
+ const difference = date.getTime() - now.getTime();
37
+
38
+ let timeLeft: NSDownTimerState = {
39
+ days: 0,
40
+ hours: 0,
41
+ minutes: 0,
42
+ seconds: 0,
43
+ };
44
+ if (difference > 0)
45
+ {
46
+ timeLeft = {
47
+ days: Math.floor(difference / (1000 * 60 * 60 * 24)),
48
+ hours: Math.floor((difference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)),
49
+ minutes: Math.floor((difference % (1000 * 60 * 60)) / (1000 * 60)),
50
+ seconds: Math.floor((difference % (1000 * 60)) / 1000),
51
+ };
52
+ }
53
+ return timeLeft;
54
+ }
55
+ return (
56
+ <div
57
+ id={props.id}
58
+ className={`${Styles.ns_down_timer_container} ${props.classList?.join(" ") ?? ""}`}
59
+ style={props.style}
60
+ >
61
+ <figure className={Styles.ns_figure}>
62
+ <img
63
+ src='https://static.namirasoft.com/image/concept/countdown/grey.svg'
64
+ alt='CountDown'
65
+ width={48}
66
+ height={48} />
67
+ <figcaption>{props.text}</figcaption>
68
+ </figure>
69
+ <div className={Styles.ns_down_timer_time_container}>
70
+ <div className='d-flex flex-column justify-content-center align-items-center'>
71
+ <span className={Styles.ns_down_timer_time_left}>{`${timeLeft.days}`}</span>
72
+ <span className={Styles.ns_down_timer_time_left_unit}>DAY</span>
73
+ </div>
74
+ <span className={`${Styles.ns_semi_colon}`}>:</span>
75
+ <div className='d-flex flex-column justify-content-center align-items-center'>
76
+ <span className={Styles.ns_down_timer_time_left}>{`${timeLeft.hours}`}</span>
77
+ <span className={Styles.ns_down_timer_time_left_unit}>HOUR</span>
78
+ </div>
79
+ <span className={`${Styles.ns_semi_colon}`}>:</span>
80
+ <div className='d-flex flex-column justify-content-center align-items-center'>
81
+ <span className={Styles.ns_down_timer_time_left}>{`${timeLeft.minutes}`}</span>
82
+ <span className={Styles.ns_down_timer_time_left_unit}>MIN</span>
83
+ </div>
84
+ <span className={`${Styles.ns_semi_colon}`}>:</span>
85
+ <div className='d-flex flex-column justify-content-center align-items-center'>
86
+ <span className={Styles.ns_down_timer_time_left}>{`${timeLeft.seconds}`}</span>
87
+ <span className={Styles.ns_down_timer_time_left_unit}>SEC</span>
88
+ </div>
89
+ </div>
90
+ </div>
91
+ );
92
92
  };
@@ -1,47 +1,47 @@
1
- .download_parent {
2
- padding: 32px 16px;
3
- }
4
-
5
- .download_header {
6
- display: flex;
7
- justify-content: flex-start;
8
- flex-wrap: wrap;
9
- align-items: center;
10
- gap: 16px;
11
- }
12
-
13
- .radio_group {
14
- display: flex;
15
- justify-content: flex-start;
16
- align-items: center;
17
- }
18
-
19
- .radio_button {
20
- background-color: transparent !important;
21
- border: none !important;
22
- max-width: 97px !important;
23
- }
24
-
25
- .download_detail {
26
- display: flex;
27
- flex-direction: column;
28
- align-items: flex-start;
29
- justify-content: flex-start;
30
- gap: 24px;
31
- }
32
-
33
- .download_button {
34
- max-width: unset !important;
35
- width: 100% !important;
36
- }
37
-
38
- @media screen and (min-width: 554px) {
39
- .download_header {
40
- gap: 64px;
41
- }
42
-
43
- .download_button {
44
- max-width: 272px !important;
45
- width: 272px !important;
46
- }
1
+ .download_parent {
2
+ padding: 32px 16px;
3
+ }
4
+
5
+ .download_header {
6
+ display: flex;
7
+ justify-content: flex-start;
8
+ flex-wrap: wrap;
9
+ align-items: center;
10
+ gap: 16px;
11
+ }
12
+
13
+ .radio_group {
14
+ display: flex;
15
+ justify-content: flex-start;
16
+ align-items: center;
17
+ }
18
+
19
+ .radio_button {
20
+ background-color: transparent !important;
21
+ border: none !important;
22
+ max-width: 97px !important;
23
+ }
24
+
25
+ .download_detail {
26
+ display: flex;
27
+ flex-direction: column;
28
+ align-items: flex-start;
29
+ justify-content: flex-start;
30
+ gap: 24px;
31
+ }
32
+
33
+ .download_button {
34
+ max-width: unset !important;
35
+ width: 100% !important;
36
+ }
37
+
38
+ @media screen and (min-width: 554px) {
39
+ .download_header {
40
+ gap: 64px;
41
+ }
42
+
43
+ .download_button {
44
+ max-width: 272px !important;
45
+ width: 272px !important;
46
+ }
47
47
  }
@@ -1,67 +1,67 @@
1
- // todo move to its own probject: I guess this is Timify
2
- import { useState } from "react";
3
- import { IBaseComponentProps } from "../props/IBaseComponentProps";
4
- import { NSBoxRadio } from "./NSBoxRadio";
5
- import { NSLine } from "./NSLine";
6
- import { NSButtonBlue } from "./NSButtonBlue";
7
- import Styles from "./NSDownload.module.css"
8
- import { NSSpace, NSSpaceSizeType } from "./NSSpace";
9
-
10
- export interface NSDownloadProps extends IBaseComponentProps
11
- {
12
- releaseDate: string;
13
- }
14
-
15
- export function NSDownload(props: NSDownloadProps)
16
- {
17
- const [state, setState] = useState("32-bit");
18
-
19
- return (
20
- <div className={`${Styles.download_parent} ${props.classList?.join(' ')}`}>
21
- <div className={Styles.download_header}>
22
- <h3 style={{ color: "#141B5C" }}>Choose Your Windows Architecture</h3>
23
- <div className={Styles.radio_group}>
24
- <NSBoxRadio
25
- title={"32-bit"}
26
- required={false}
27
- checked={state === "32-bit"}
28
- onChanged={(event) =>
29
- {
30
- let value = event.getValue();
31
- if (value)
32
- {
33
- setState("32-bit");
34
- }
35
- }}
36
- classList={[Styles.radio_button]}
37
- />
38
- <NSBoxRadio
39
- title={"64-bit"}
40
- required={false}
41
- checked={state === "64-bit"}
42
- onChanged={(event) =>
43
- {
44
- let value = event.getValue();
45
- if (value)
46
- {
47
- setState("64-bit");
48
- }
49
- }}
50
- classList={[Styles.radio_button]}
51
- />
52
- </div>
53
- </div>
54
- <NSSpace size={NSSpaceSizeType.SMALL} />
55
- <NSLine />
56
- <NSSpace size={NSSpaceSizeType.SMALL} />
57
- <div className={Styles.download_detail}>
58
- <h4 style={{ color: "#141B5C" }}>For Windows 7 and higher, Windows Server 2008 R2 and higher.</h4>
59
- <div style={{ color: "#141B5C" }}>
60
- <p style={{ marginBottom: "0" }}>Latest Version</p>
61
- <p style={{ marginBottom: "0" }}>Release Date: {props.releaseDate}</p>
62
- </div>
63
- <NSButtonBlue title="Download" onClick={() => { }} classList={[Styles.download_button]} />
64
- </div>
65
- </div>
66
- );
1
+ // todo move to its own probject: I guess this is Timify
2
+ import { useState } from "react";
3
+ import { IBaseComponentProps } from "../props/IBaseComponentProps";
4
+ import { NSBoxRadio } from "./NSBoxRadio";
5
+ import { NSLine } from "./NSLine";
6
+ import { NSButtonBlue } from "./NSButtonBlue";
7
+ import Styles from "./NSDownload.module.css"
8
+ import { NSSpace, NSSpaceSizeType } from "./NSSpace";
9
+
10
+ export interface NSDownloadProps extends IBaseComponentProps
11
+ {
12
+ releaseDate: string;
13
+ }
14
+
15
+ export function NSDownload(props: NSDownloadProps)
16
+ {
17
+ const [state, setState] = useState("32-bit");
18
+
19
+ return (
20
+ <div className={`${Styles.download_parent} ${props.classList?.join(' ')}`}>
21
+ <div className={Styles.download_header}>
22
+ <h3 style={{ color: "#141B5C" }}>Choose Your Windows Architecture</h3>
23
+ <div className={Styles.radio_group}>
24
+ <NSBoxRadio
25
+ title={"32-bit"}
26
+ required={false}
27
+ checked={state === "32-bit"}
28
+ onChanged={(event) =>
29
+ {
30
+ let value = event.getValue();
31
+ if (value)
32
+ {
33
+ setState("32-bit");
34
+ }
35
+ }}
36
+ classList={[Styles.radio_button]}
37
+ />
38
+ <NSBoxRadio
39
+ title={"64-bit"}
40
+ required={false}
41
+ checked={state === "64-bit"}
42
+ onChanged={(event) =>
43
+ {
44
+ let value = event.getValue();
45
+ if (value)
46
+ {
47
+ setState("64-bit");
48
+ }
49
+ }}
50
+ classList={[Styles.radio_button]}
51
+ />
52
+ </div>
53
+ </div>
54
+ <NSSpace size={NSSpaceSizeType.SMALL} />
55
+ <NSLine />
56
+ <NSSpace size={NSSpaceSizeType.SMALL} />
57
+ <div className={Styles.download_detail}>
58
+ <h4 style={{ color: "#141B5C" }}>For Windows 7 and higher, Windows Server 2008 R2 and higher.</h4>
59
+ <div style={{ color: "#141B5C" }}>
60
+ <p style={{ marginBottom: "0" }}>Latest Version</p>
61
+ <p style={{ marginBottom: "0" }}>Release Date: {props.releaseDate}</p>
62
+ </div>
63
+ <NSButtonBlue title="Download" onClick={() => { }} classList={[Styles.download_button]} />
64
+ </div>
65
+ </div>
66
+ );
67
67
  };
@@ -1,61 +1,61 @@
1
- .ns_border {
2
- width: 358px;
3
- height: fit-content;
4
- border: 1px solid rgba(161, 164, 176, 1);
5
- border-radius: 8px;
6
- background-color: rgba(255, 255, 255, 1);
7
- }
8
-
9
- .ns_image_text {
10
- padding: 16px;
11
- display: flex;
12
- flex-direction: row;
13
- align-items: center;
14
- }
15
-
16
- .ns_information {
17
- display: flex;
18
- flex-direction: column;
19
- padding-left: 16px;
20
- gap: 8px;
21
- }
22
-
23
- .ns_card_items {
24
- display: flex;
25
- flex-direction: row;
26
- justify-content: space-between;
27
- padding: 16px;
28
- }
29
-
30
- .ns_right_card_items {
31
- display: flex;
32
- flex-direction: row;
33
- gap: 16px;
34
- }
35
-
36
- .ns_electronic_card h4 {
37
- color: rgba(20, 27, 92, 1);
38
- font-size: 16px;
39
- font-weight: 600;
40
- margin: 0;
41
- }
42
-
43
- .ns_electronic_card h5 {
44
- color: rgba(20, 27, 92, 1);
45
- font-size: 12px;
46
- font-weight: 700;
47
- margin: 0;
48
- }
49
-
50
- .ns_electronic_card a {
51
- text-decoration: none;
52
- cursor: pointer;
53
- color: rgba(20, 27, 92, 1);
54
- }
55
-
56
- .ns_line {
57
- margin: 0 16px;
58
- border: 1px solid linear-gradient(to right, rgba(47, 0, 236, 0.6), rgba(118, 255, 181, 0.42));
59
- background: linear-gradient(to right, rgba(47, 0, 236, 0.6), rgba(118, 255, 181, 0.42));
60
- height: 2px;
1
+ .ns_border {
2
+ width: 358px;
3
+ height: fit-content;
4
+ border: 1px solid rgba(161, 164, 176, 1);
5
+ border-radius: 8px;
6
+ background-color: rgba(255, 255, 255, 1);
7
+ }
8
+
9
+ .ns_image_text {
10
+ padding: 16px;
11
+ display: flex;
12
+ flex-direction: row;
13
+ align-items: center;
14
+ }
15
+
16
+ .ns_information {
17
+ display: flex;
18
+ flex-direction: column;
19
+ padding-left: 16px;
20
+ gap: 8px;
21
+ }
22
+
23
+ .ns_card_items {
24
+ display: flex;
25
+ flex-direction: row;
26
+ justify-content: space-between;
27
+ padding: 16px;
28
+ }
29
+
30
+ .ns_right_card_items {
31
+ display: flex;
32
+ flex-direction: row;
33
+ gap: 16px;
34
+ }
35
+
36
+ .ns_electronic_card h4 {
37
+ color: rgba(20, 27, 92, 1);
38
+ font-size: 16px;
39
+ font-weight: 600;
40
+ margin: 0;
41
+ }
42
+
43
+ .ns_electronic_card h5 {
44
+ color: rgba(20, 27, 92, 1);
45
+ font-size: 12px;
46
+ font-weight: 700;
47
+ margin: 0;
48
+ }
49
+
50
+ .ns_electronic_card a {
51
+ text-decoration: none;
52
+ cursor: pointer;
53
+ color: rgba(20, 27, 92, 1);
54
+ }
55
+
56
+ .ns_line {
57
+ margin: 0 16px;
58
+ border: 1px solid linear-gradient(to right, rgba(47, 0, 236, 0.6), rgba(118, 255, 181, 0.42));
59
+ background: linear-gradient(to right, rgba(47, 0, 236, 0.6), rgba(118, 255, 181, 0.42));
60
+ height: 2px;
61
61
  }
@@ -1,47 +1,47 @@
1
- // todo move to its own probject: It's for Payment to add credit card
2
- import { useState } from 'react';
3
- import Styles from './NSElectronicCard.module.css';
4
- export interface NSElectronicCardProps
5
- {
6
- src: string;
7
- title: string | number;
8
- cardNumber: string;
9
- info?: string;
10
- alt?: string;
11
- }
12
- export function NSElectronicCard(props: NSElectronicCardProps)
13
- {
14
- if (props.cardNumber.length < 15)
15
- {
16
- alert("Please enter 16 number at least")
17
- }
18
- let last4Number = props.cardNumber.substr(-4);
19
- let [cardNumber, setCardNumber] = useState("");
20
- return (
21
- <section className={Styles.ns_electronic_card}>
22
- <div className={Styles.ns_border}>
23
- <div className={Styles.ns_image_text}>
24
- <img
25
- src={props.src}
26
- width={68}
27
- height={48}
28
- alt={props.alt ? props.alt : "E-Card Image"}
29
- />
30
- <div className={Styles.ns_information}>
31
- <h4>{props.title}</h4>
32
- <h5>{`0000 0000 0000 ${props.cardNumber ? last4Number : cardNumber}`}</h5>
33
- </div>
34
- </div>
35
- <hr className={Styles.ns_line}></hr>
36
- <div className={Styles.ns_card_items}>
37
- <a href='#'><h4 style={{ color: "rgba(3, 119, 255, 1)" }}>{props.info}</h4></a>
38
- <div className={Styles.ns_right_card_items}>
39
- <a href='#'><h4 onClick={() => setCardNumber("0000")}>Default</h4></a>
40
- <a href='#'><h4 onClick={() => setCardNumber("0000")}>Remove</h4></a>
41
- <a href='#'><h4>Edit</h4></a>
42
- </div>
43
- </div>
44
- </div>
45
- </section >
46
- );
1
+ // todo move to its own probject: It's for Payment to add credit card
2
+ import { useState } from 'react';
3
+ import Styles from './NSElectronicCard.module.css';
4
+ export interface NSElectronicCardProps
5
+ {
6
+ src: string;
7
+ title: string | number;
8
+ cardNumber: string;
9
+ info?: string;
10
+ alt?: string;
11
+ }
12
+ export function NSElectronicCard(props: NSElectronicCardProps)
13
+ {
14
+ if (props.cardNumber.length < 15)
15
+ {
16
+ alert("Please enter 16 number at least")
17
+ }
18
+ let last4Number = props.cardNumber.substr(-4);
19
+ let [cardNumber, setCardNumber] = useState("");
20
+ return (
21
+ <section className={Styles.ns_electronic_card}>
22
+ <div className={Styles.ns_border}>
23
+ <div className={Styles.ns_image_text}>
24
+ <img
25
+ src={props.src}
26
+ width={68}
27
+ height={48}
28
+ alt={props.alt ? props.alt : "E-Card Image"}
29
+ />
30
+ <div className={Styles.ns_information}>
31
+ <h4>{props.title}</h4>
32
+ <h5>{`0000 0000 0000 ${props.cardNumber ? last4Number : cardNumber}`}</h5>
33
+ </div>
34
+ </div>
35
+ <hr className={Styles.ns_line}></hr>
36
+ <div className={Styles.ns_card_items}>
37
+ <a href='#'><h4 style={{ color: "rgba(3, 119, 255, 1)" }}>{props.info}</h4></a>
38
+ <div className={Styles.ns_right_card_items}>
39
+ <a href='#'><h4 onClick={() => setCardNumber("0000")}>Default</h4></a>
40
+ <a href='#'><h4 onClick={() => setCardNumber("0000")}>Remove</h4></a>
41
+ <a href='#'><h4>Edit</h4></a>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ </section >
46
+ );
47
47
  }