namirasoft-site-react 1.5.25 → 1.5.27

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 (363) hide show
  1. package/.dockerignore +86 -86
  2. package/.env.template +10 -10
  3. package/Dockerfile +18 -18
  4. package/SKILL.md +307 -307
  5. package/config-overrides.js +72 -72
  6. package/dist/App.css +33 -33
  7. package/dist/App.d.ts +5 -2
  8. package/dist/App.js +37 -5
  9. package/dist/App.js.map +1 -1
  10. package/dist/components/NSBanner.module.css +47 -47
  11. package/dist/components/NSBarAction.module.css +91 -91
  12. package/dist/components/NSBarAlert.module.css +79 -79
  13. package/dist/components/NSBarNotification.module.css +34 -34
  14. package/dist/components/NSBarTitle.module.css +9 -9
  15. package/dist/components/NSBox.module.css +87 -87
  16. package/dist/components/NSBoxBaseCombo.module.css +24 -24
  17. package/dist/components/NSBoxBoolean.module.css +73 -73
  18. package/dist/components/NSBoxDate.module.css +4 -4
  19. package/dist/components/NSBoxDateRangeBase.module.css +73 -73
  20. package/dist/components/NSBoxDateTime.module.css +4 -4
  21. package/dist/components/NSBoxDuration.module.css +4 -4
  22. package/dist/components/NSBoxFile.module.css +10 -10
  23. package/dist/components/NSBoxInteger.module.css +16 -16
  24. package/dist/components/NSBoxOptions.module.css +53 -53
  25. package/dist/components/NSBoxPhone.module.css +35 -35
  26. package/dist/components/NSBoxRadio.module.css +33 -33
  27. package/dist/components/NSBoxSchemaBase.js +1 -1
  28. package/dist/components/NSBoxSchemaBase.js.map +1 -1
  29. package/dist/components/NSBoxSchemaBase.module.css +17 -17
  30. package/dist/components/NSBoxSchemaVariable.module.css +16 -16
  31. package/dist/components/NSBoxTextArea.module.css +12 -12
  32. package/dist/components/NSBoxTime.module.css +4 -4
  33. package/dist/components/NSButton.module.css +57 -57
  34. package/dist/components/NSButtonBlue.module.css +4 -4
  35. package/dist/components/NSButtonGreen.module.css +4 -4
  36. package/dist/components/NSButtonRed.module.css +4 -4
  37. package/dist/components/NSCard.module.css +113 -113
  38. package/dist/components/NSCardScreenshot.module.css +41 -41
  39. package/dist/components/NSColumn.module.css +16 -16
  40. package/dist/components/NSCopyBox.module.css +39 -39
  41. package/dist/components/NSDialog.module.css +105 -105
  42. package/dist/components/NSDialogPageSelection.module.css +103 -103
  43. package/dist/components/NSDownTimer.module.css +55 -55
  44. package/dist/components/NSDownload.module.css +46 -46
  45. package/dist/components/NSElectronicCard.module.css +60 -60
  46. package/dist/components/NSEntityCardBackground.module.css +27 -27
  47. package/dist/components/NSFilterBox.module.css +27 -27
  48. package/dist/components/NSFilterBoxItems.module.css +15 -15
  49. package/dist/components/NSFilterItem.module.css +24 -24
  50. package/dist/components/NSFooter.module.css +140 -140
  51. package/dist/components/NSGauge.module.css +67 -67
  52. package/dist/components/NSGaugeDate.module.css +57 -57
  53. package/dist/components/NSGaugeNumber.module.css +66 -66
  54. package/dist/components/NSHeader.module.css +316 -316
  55. package/dist/components/NSHeaderScreenshot.module.css +35 -35
  56. package/dist/components/NSLabel.module.css +25 -25
  57. package/dist/components/NSLabelErrorNotifier.module.css +2 -2
  58. package/dist/components/NSLabelSensitive.module.css +9 -9
  59. package/dist/components/NSLayout.module.css +22 -22
  60. package/dist/components/NSLine.module.css +15 -15
  61. package/dist/components/NSLineText.module.css +38 -38
  62. package/dist/components/NSLink.module.css +36 -36
  63. package/dist/components/NSListGrouped.module.css +69 -69
  64. package/dist/components/NSListMenu.d.ts +9 -0
  65. package/dist/components/NSListMenu.js +135 -0
  66. package/dist/components/NSListMenu.js.map +1 -0
  67. package/dist/components/NSLoading.module.css +10 -10
  68. package/dist/components/NSMegaMenu.module.css +133 -133
  69. package/dist/components/NSMenuAction.module.css +88 -88
  70. package/dist/components/NSMenuButton.module.css +44 -44
  71. package/dist/components/NSNoData.module.css +11 -11
  72. package/dist/components/NSPagination.js +1 -2
  73. package/dist/components/NSPagination.js.map +1 -1
  74. package/dist/components/NSPagination.module.css +94 -87
  75. package/dist/components/NSPanel.module.css +28 -28
  76. package/dist/components/NSPanelAccordion.module.css +4 -4
  77. package/dist/components/NSProductSearch.module.css +73 -73
  78. package/dist/components/NSProgressBar.module.css +38 -38
  79. package/dist/components/NSRange.module.css +66 -66
  80. package/dist/components/NSReorderDialog.module.css +49 -49
  81. package/dist/components/NSRow.module.css +17 -17
  82. package/dist/components/NSSection.module.css +4 -4
  83. package/dist/components/NSSectionCards.module.css +38 -38
  84. package/dist/components/NSSectionTiles.module.css +10 -10
  85. package/dist/components/NSSplitter.module.css +59 -59
  86. package/dist/components/NSTabPage.module.css +59 -59
  87. package/dist/components/NSTable.js +26 -26
  88. package/dist/components/NSTable.js.map +1 -1
  89. package/dist/components/NSTable.module.css +374 -368
  90. package/dist/components/NSTableChart.module.css +119 -119
  91. package/dist/components/NSTile.module.css +76 -76
  92. package/dist/components/NSTimelineMonthly.module.css +71 -71
  93. package/dist/components/NSTitle.module.css +15 -15
  94. package/dist/index.css +5 -5
  95. package/dist/pages/NSImplementing.module.css +35 -35
  96. package/dist/pages/NSNotFoundPage.module.css +18 -18
  97. package/dist/pages/NSUpdating.module.css +35 -35
  98. package/package.json +86 -86
  99. package/public/index.html +38 -38
  100. package/src/App.css +33 -33
  101. package/src/App.tsx +870 -176
  102. package/src/BrowserDetector.ts +109 -109
  103. package/src/Color.tsx +10 -10
  104. package/src/CopyToClipboard.ts +6 -6
  105. package/src/EncryptionOperation.ts +98 -98
  106. package/src/KeyOperation.ts +109 -109
  107. package/src/LinkOperation.ts +101 -101
  108. package/src/NSBoxBuilder.tsx +922 -922
  109. package/src/ProductCacheService.ts +36 -36
  110. package/src/Validator.ts +199 -199
  111. package/src/components/INSBox.tsx +7 -7
  112. package/src/components/NSBanner.module.css +47 -47
  113. package/src/components/NSBanner.tsx +80 -80
  114. package/src/components/NSBarAction.module.css +91 -91
  115. package/src/components/NSBarAction.tsx +95 -95
  116. package/src/components/NSBarAlert.module.css +79 -79
  117. package/src/components/NSBarAlert.tsx +35 -35
  118. package/src/components/NSBarNotification.module.css +34 -34
  119. package/src/components/NSBarNotification.tsx +89 -89
  120. package/src/components/NSBarTitle.module.css +9 -9
  121. package/src/components/NSBarTitle.tsx +23 -23
  122. package/src/components/NSBox.module.css +87 -87
  123. package/src/components/NSBox.tsx +19 -19
  124. package/src/components/NSBoxBaseCombo.module.css +24 -24
  125. package/src/components/NSBoxBaseCombo.tsx +501 -501
  126. package/src/components/NSBoxBaseLayout.tsx +163 -163
  127. package/src/components/NSBoxBaseLayoutRecursive.tsx +59 -59
  128. package/src/components/NSBoxBoolean.module.css +73 -73
  129. package/src/components/NSBoxBoolean.tsx +152 -152
  130. package/src/components/NSBoxBooleans.tsx +181 -181
  131. package/src/components/NSBoxColor.tsx +107 -107
  132. package/src/components/NSBoxCombo.tsx +95 -95
  133. package/src/components/NSBoxDate.module.css +4 -4
  134. package/src/components/NSBoxDate.tsx +144 -144
  135. package/src/components/NSBoxDateRange.tsx +88 -88
  136. package/src/components/NSBoxDateRangeBase.module.css +73 -73
  137. package/src/components/NSBoxDateRangeBase.tsx +236 -236
  138. package/src/components/NSBoxDateTime.module.css +4 -4
  139. package/src/components/NSBoxDateTime.tsx +136 -136
  140. package/src/components/NSBoxDateTimeRange.tsx +66 -66
  141. package/src/components/NSBoxDouble.tsx +110 -110
  142. package/src/components/NSBoxDuration.module.css +4 -4
  143. package/src/components/NSBoxDuration.tsx +107 -107
  144. package/src/components/NSBoxDynamic.tsx +73 -73
  145. package/src/components/NSBoxDynamics.tsx +68 -68
  146. package/src/components/NSBoxEmail.tsx +117 -117
  147. package/src/components/NSBoxEntity.tsx +180 -180
  148. package/src/components/NSBoxEnum.tsx +113 -113
  149. package/src/components/NSBoxFile.module.css +10 -10
  150. package/src/components/NSBoxFile.tsx +106 -106
  151. package/src/components/NSBoxFilePath.tsx +106 -106
  152. package/src/components/NSBoxFont.tsx +107 -107
  153. package/src/components/NSBoxIPV4.tsx +107 -107
  154. package/src/components/NSBoxIPV4Range.tsx +107 -107
  155. package/src/components/NSBoxIPV6.tsx +104 -104
  156. package/src/components/NSBoxIPV6Range.tsx +107 -107
  157. package/src/components/NSBoxInteger.module.css +16 -16
  158. package/src/components/NSBoxInteger.tsx +126 -126
  159. package/src/components/NSBoxMoney.tsx +115 -115
  160. package/src/components/NSBoxOptions.module.css +53 -53
  161. package/src/components/NSBoxOptions.tsx +182 -182
  162. package/src/components/NSBoxPhone.module.css +35 -35
  163. package/src/components/NSBoxPhone.tsx +120 -120
  164. package/src/components/NSBoxRadio.module.css +33 -33
  165. package/src/components/NSBoxRadio.tsx +104 -104
  166. package/src/components/NSBoxSchemaBase.module.css +17 -17
  167. package/src/components/NSBoxSchemaBase.tsx +562 -561
  168. package/src/components/NSBoxSchemaVariable.module.css +16 -16
  169. package/src/components/NSBoxSchemaVariable.tsx +262 -262
  170. package/src/components/NSBoxSearch.tsx +112 -112
  171. package/src/components/NSBoxSensitive.tsx +133 -133
  172. package/src/components/NSBoxString.tsx +106 -106
  173. package/src/components/NSBoxTextArea.module.css +12 -12
  174. package/src/components/NSBoxTextArea.tsx +136 -136
  175. package/src/components/NSBoxTime.module.css +4 -4
  176. package/src/components/NSBoxTime.tsx +106 -106
  177. package/src/components/NSBoxTimeRange.tsx +220 -220
  178. package/src/components/NSBoxTimeZone.tsx +122 -122
  179. package/src/components/NSBoxURL.tsx +117 -117
  180. package/src/components/NSBoxVersion.tsx +107 -107
  181. package/src/components/NSButton.module.css +57 -57
  182. package/src/components/NSButton.tsx +74 -74
  183. package/src/components/NSButtonBlue.module.css +4 -4
  184. package/src/components/NSButtonBlue.tsx +29 -29
  185. package/src/components/NSButtonGreen.module.css +4 -4
  186. package/src/components/NSButtonGreen.tsx +29 -29
  187. package/src/components/NSButtonRed.module.css +4 -4
  188. package/src/components/NSButtonRed.tsx +29 -29
  189. package/src/components/NSCard.module.css +113 -113
  190. package/src/components/NSCard.tsx +67 -67
  191. package/src/components/NSCardScreenshot.module.css +41 -41
  192. package/src/components/NSCardScreenshot.tsx +31 -31
  193. package/src/components/NSChartBar.tsx +134 -134
  194. package/src/components/NSChartDoughnut.tsx +114 -114
  195. package/src/components/NSChartLine.tsx +110 -110
  196. package/src/components/NSChartPie.tsx +105 -105
  197. package/src/components/NSChartRange.tsx +14 -14
  198. package/src/components/NSColumn.module.css +16 -16
  199. package/src/components/NSColumn.tsx +24 -24
  200. package/src/components/NSCopy.tsx +95 -95
  201. package/src/components/NSCopyBox.module.css +39 -39
  202. package/src/components/NSCopyBox.tsx +53 -53
  203. package/src/components/NSDialog.module.css +105 -105
  204. package/src/components/NSDialog.tsx +72 -72
  205. package/src/components/NSDialogBox.tsx +38 -38
  206. package/src/components/NSDialogBoxDate.tsx +28 -28
  207. package/src/components/NSDialogBoxDateTime.tsx +28 -28
  208. package/src/components/NSDialogBoxPhone.tsx +28 -28
  209. package/src/components/NSDialogBoxString.tsx +28 -28
  210. package/src/components/NSDialogDelete.tsx +36 -36
  211. package/src/components/NSDialogInfo.tsx +49 -49
  212. package/src/components/NSDialogPageSelection.module.css +103 -103
  213. package/src/components/NSDialogPageSelection.tsx +233 -233
  214. package/src/components/NSDownTimer.module.css +55 -55
  215. package/src/components/NSDownTimer.tsx +91 -91
  216. package/src/components/NSDownload.module.css +46 -46
  217. package/src/components/NSDownload.tsx +69 -69
  218. package/src/components/NSElectronicCard.module.css +60 -60
  219. package/src/components/NSElectronicCard.tsx +46 -46
  220. package/src/components/NSEntityCardBackground.module.css +27 -27
  221. package/src/components/NSEntityCardBackground.tsx +36 -36
  222. package/src/components/NSFilterBox.module.css +27 -27
  223. package/src/components/NSFilterBox.tsx +477 -477
  224. package/src/components/NSFilterBoxItems.module.css +15 -15
  225. package/src/components/NSFilterBoxItems.tsx +52 -52
  226. package/src/components/NSFilterItem.module.css +24 -24
  227. package/src/components/NSFilterItem.tsx +27 -27
  228. package/src/components/NSFooter.module.css +140 -140
  229. package/src/components/NSFooter.tsx +321 -321
  230. package/src/components/NSGauge.module.css +67 -67
  231. package/src/components/NSGauge.tsx +52 -52
  232. package/src/components/NSGaugeDate.module.css +57 -57
  233. package/src/components/NSGaugeDate.tsx +125 -125
  234. package/src/components/NSGaugeNumber.module.css +66 -66
  235. package/src/components/NSGaugeNumber.tsx +93 -93
  236. package/src/components/NSHeader.module.css +316 -316
  237. package/src/components/NSHeader.tsx +337 -337
  238. package/src/components/NSHeaderScreenshot.module.css +35 -35
  239. package/src/components/NSHeaderScreenshot.tsx +39 -39
  240. package/src/components/NSID.tsx +178 -178
  241. package/src/components/NSInfo.tsx +50 -50
  242. package/src/components/NSLabel.module.css +25 -25
  243. package/src/components/NSLabel.tsx +47 -47
  244. package/src/components/NSLabelErrorNotifier.module.css +2 -2
  245. package/src/components/NSLabelErrorNotifier.tsx +35 -35
  246. package/src/components/NSLabelSensitive.module.css +9 -9
  247. package/src/components/NSLabelSensitive.tsx +101 -101
  248. package/src/components/NSLayout.module.css +22 -22
  249. package/src/components/NSLayout.tsx +143 -143
  250. package/src/components/NSLine.module.css +15 -15
  251. package/src/components/NSLine.tsx +13 -13
  252. package/src/components/NSLineText.module.css +38 -38
  253. package/src/components/NSLineText.tsx +17 -17
  254. package/src/components/NSLink.module.css +36 -36
  255. package/src/components/NSLink.tsx +26 -26
  256. package/src/components/NSLinkBlue.tsx +22 -22
  257. package/src/components/NSLinkGreen.tsx +13 -13
  258. package/src/components/NSLinkRed.tsx +13 -13
  259. package/src/components/NSListGrouped.module.css +69 -69
  260. package/src/components/NSListGrouped.tsx +106 -106
  261. package/src/components/NSListProduct.tsx +78 -78
  262. package/src/components/NSLoading.module.css +10 -10
  263. package/src/components/NSLoading.tsx +43 -43
  264. package/src/components/NSMegaMenu.module.css +133 -133
  265. package/src/components/NSMegaMenu.tsx +188 -188
  266. package/src/components/NSMenuAction.module.css +88 -88
  267. package/src/components/NSMenuAction.tsx +106 -106
  268. package/src/components/NSMenuButton.module.css +44 -44
  269. package/src/components/NSMenuButton.tsx +198 -198
  270. package/src/components/NSNoData.module.css +11 -11
  271. package/src/components/NSNoData.tsx +24 -24
  272. package/src/components/NSPagination.module.css +94 -87
  273. package/src/components/NSPagination.tsx +182 -183
  274. package/src/components/NSPanel.module.css +28 -28
  275. package/src/components/NSPanel.tsx +26 -26
  276. package/src/components/NSPanelAccordion.module.css +4 -4
  277. package/src/components/NSPanelAccordion.tsx +51 -51
  278. package/src/components/NSProductSearch.module.css +73 -73
  279. package/src/components/NSProductSearch.tsx +193 -193
  280. package/src/components/NSProgressBar.module.css +38 -38
  281. package/src/components/NSProgressBar.tsx +29 -29
  282. package/src/components/NSRange.module.css +66 -66
  283. package/src/components/NSRange.tsx +83 -83
  284. package/src/components/NSReorderDialog.module.css +49 -49
  285. package/src/components/NSReorderDialog.tsx +184 -184
  286. package/src/components/NSRepeater.tsx +327 -327
  287. package/src/components/NSRepeaterNSBoxSchemaVariable.tsx +96 -96
  288. package/src/components/NSRepeaterNSTag.tsx +86 -86
  289. package/src/components/NSRow.module.css +17 -17
  290. package/src/components/NSRow.tsx +24 -24
  291. package/src/components/NSSection.module.css +4 -4
  292. package/src/components/NSSection.tsx +26 -26
  293. package/src/components/NSSectionCards.module.css +38 -38
  294. package/src/components/NSSectionCards.tsx +51 -51
  295. package/src/components/NSSectionTiles.module.css +10 -10
  296. package/src/components/NSSectionTiles.tsx +25 -25
  297. package/src/components/NSSectionTitle.tsx +19 -19
  298. package/src/components/NSSortDialog.tsx +124 -124
  299. package/src/components/NSSpace.tsx +28 -28
  300. package/src/components/NSSplitter.module.css +59 -59
  301. package/src/components/NSSplitter.tsx +211 -211
  302. package/src/components/NSTabPage.module.css +59 -59
  303. package/src/components/NSTabPage.tsx +122 -122
  304. package/src/components/NSTable.module.css +374 -368
  305. package/src/components/NSTable.tsx +1451 -1445
  306. package/src/components/NSTableChart.module.css +119 -119
  307. package/src/components/NSTableChart.tsx +732 -732
  308. package/src/components/NSTag.tsx +74 -74
  309. package/src/components/NSTile.module.css +76 -76
  310. package/src/components/NSTile.tsx +27 -27
  311. package/src/components/NSTimelineMonthly.module.css +71 -71
  312. package/src/components/NSTimelineMonthly.tsx +44 -44
  313. package/src/components/NSTitle.module.css +15 -15
  314. package/src/components/NSTitle.tsx +19 -19
  315. package/src/css.d.ts +13 -13
  316. package/src/formatter/BackColorFormatter.tsx +23 -23
  317. package/src/formatter/BaseColumnFormatter.ts +86 -86
  318. package/src/formatter/BaseURLImageFormatter.tsx +37 -37
  319. package/src/formatter/BooleanFormatter.ts +26 -26
  320. package/src/formatter/BytesFormatter.tsx +19 -19
  321. package/src/formatter/DateFormatter.ts +26 -26
  322. package/src/formatter/DateTimeFormatter.ts +26 -26
  323. package/src/formatter/DurationFormatter.ts +17 -17
  324. package/src/formatter/EmailFormatter.tsx +25 -25
  325. package/src/formatter/EnumFormatter.ts +17 -17
  326. package/src/formatter/FloatFormatter.ts +27 -27
  327. package/src/formatter/ForeColorFormatter.tsx +24 -24
  328. package/src/formatter/IDFormatter.tsx +58 -58
  329. package/src/formatter/IPFormatter.ts +39 -39
  330. package/src/formatter/IntegerFormatter.ts +27 -27
  331. package/src/formatter/JsonFormatter.tsx +75 -75
  332. package/src/formatter/MoneyFormatter.ts +39 -39
  333. package/src/formatter/PercentFormatter.tsx +43 -43
  334. package/src/formatter/PhoneFormatter.tsx +25 -25
  335. package/src/formatter/SensitiveFormatter.tsx +40 -40
  336. package/src/formatter/StringFormatter.tsx +49 -49
  337. package/src/formatter/TimeFormatter.ts +25 -25
  338. package/src/formatter/URLFormatter.tsx +28 -28
  339. package/src/formatter/UnknowFormatter.ts +22 -22
  340. package/src/index.css +5 -5
  341. package/src/index.tsx +7 -7
  342. package/src/main.ts +263 -263
  343. package/src/pages/NSImplementing.module.css +35 -35
  344. package/src/pages/NSImplementing.tsx +32 -32
  345. package/src/pages/NSNotFoundPage.module.css +18 -18
  346. package/src/pages/NSNotFoundPage.tsx +14 -14
  347. package/src/pages/NSUpdating.module.css +35 -35
  348. package/src/pages/NSUpdating.tsx +32 -32
  349. package/src/props/IBackgroundProps.ts +5 -5
  350. package/src/props/IBaseComponentProps.ts +8 -8
  351. package/src/props/IHeaderIconProps.ts +10 -10
  352. package/src/props/IHeaderLeftProps.ts +6 -6
  353. package/src/props/IHeaderRightProps.ts +8 -8
  354. package/src/props/IImageProps.ts +4 -4
  355. package/src/props/ILinkProps.ts +4 -4
  356. package/src/props/IValidationNumberProps.ts +4 -4
  357. package/src/props/IValidationPrecisionProps.ts +3 -3
  358. package/src/props/IValidationProps.ts +9 -9
  359. package/src/props/IValidationRegexProps.ts +4 -4
  360. package/src/props/IValidationStringProps.ts +4 -4
  361. package/src/routing/NSNotifier.ts +114 -114
  362. package/src/routing/NSRouterMaker.tsx +28 -28
  363. package/tsconfig.json +43 -43
@@ -1,36 +1,36 @@
1
- .ns_header_screenshot {
2
- background-color: hsla(91, 100%, 31%, 1);
3
- width: 100%;
4
- min-height: 48px;
5
- border-radius: 8px;
6
- padding: 14px 16px;
7
- color: #fff;
8
- font-size: 16px;
9
- display: flex;
10
- justify-content: flex-end;
11
- flex-wrap: wrap;
12
- }
13
-
14
- .ns_header_screenshot_left {
15
- display: flex;
16
- gap: 32px;
17
- flex-direction: row;
18
- flex-wrap: wrap;
19
- justify-content: space-between;
20
- }
21
-
22
- .ns_header_screenshot_item {
23
- gap: 4px;
24
- display: flex;
25
- align-items: center;
26
- }
27
-
28
- @media only screen and (min-width: 580px) {
29
- .ns_header_screenshot {
30
- justify-content: space-between;
31
- }
32
-
33
- .ns_header_screenshot_left {
34
- justify-content: left
35
- }
1
+ .ns_header_screenshot {
2
+ background-color: hsla(91, 100%, 31%, 1);
3
+ width: 100%;
4
+ min-height: 48px;
5
+ border-radius: 8px;
6
+ padding: 14px 16px;
7
+ color: #fff;
8
+ font-size: 16px;
9
+ display: flex;
10
+ justify-content: flex-end;
11
+ flex-wrap: wrap;
12
+ }
13
+
14
+ .ns_header_screenshot_left {
15
+ display: flex;
16
+ gap: 32px;
17
+ flex-direction: row;
18
+ flex-wrap: wrap;
19
+ justify-content: space-between;
20
+ }
21
+
22
+ .ns_header_screenshot_item {
23
+ gap: 4px;
24
+ display: flex;
25
+ align-items: center;
26
+ }
27
+
28
+ @media only screen and (min-width: 580px) {
29
+ .ns_header_screenshot {
30
+ justify-content: space-between;
31
+ }
32
+
33
+ .ns_header_screenshot_left {
34
+ justify-content: left
35
+ }
36
36
  }
@@ -1,40 +1,40 @@
1
- // todo move to its own probject: this is Timify
2
- import { IBaseComponentProps } from "../props/IBaseComponentProps";
3
- import Styles from "./NSHeaderScreenshot.module.css"
4
-
5
- export interface NSHeaderScreenshotProps extends IBaseComponentProps
6
- {
7
- project: string;
8
- task: string;
9
- time: string;
10
- Countdown: string;
11
- }
12
-
13
- export function NSHeaderScreenshot(props: NSHeaderScreenshotProps)
14
- {
15
- return (
16
- <section className={Styles.ns_header_screenshot}>
17
- <div className={Styles.ns_header_screenshot_left}>
18
- <div className={Styles.ns_header_screenshot_item}>
19
- <img src="https://static.namirasoft.com/image/concept/project/white.svg" alt='' width={20} height={20} />
20
- <span>{props.project}</span>
21
- </div>
22
- <div className={Styles.ns_header_screenshot_item}>
23
- <img src="https://static.namirasoft.com/image/concept/gear/white.svg" alt='' width={20} height={20} />
24
- <span>{props.task}</span>
25
- </div>
26
- <div className={Styles.ns_header_screenshot_item}>
27
- <img src="https://static.namirasoft.com/image/concept/time/white.svg" alt='' width={20} height={20} />
28
- <span>{props.time}</span>
29
- </div>
30
- <div className={Styles.ns_header_screenshot_item}>
31
- <img src="https://static.namirasoft.com/image/concept/countdown/white.svg" alt='' width={20} height={20} />
32
- <span>{props.Countdown}</span>
33
- </div>
34
- </div>
35
- <div>
36
- <img src="https://static.namirasoft.com/image/concept/delete/blue.svg" alt='' width={20} height={20} />
37
- </div>
38
- </section >
39
- );
1
+ // todo move to its own probject: this is Timify
2
+ import { IBaseComponentProps } from "../props/IBaseComponentProps";
3
+ import Styles from "./NSHeaderScreenshot.module.css"
4
+
5
+ export interface NSHeaderScreenshotProps extends IBaseComponentProps
6
+ {
7
+ project: string;
8
+ task: string;
9
+ time: string;
10
+ Countdown: string;
11
+ }
12
+
13
+ export function NSHeaderScreenshot(props: NSHeaderScreenshotProps)
14
+ {
15
+ return (
16
+ <section className={Styles.ns_header_screenshot}>
17
+ <div className={Styles.ns_header_screenshot_left}>
18
+ <div className={Styles.ns_header_screenshot_item}>
19
+ <img src="https://static.namirasoft.com/image/concept/project/white.svg" alt='' width={20} height={20} />
20
+ <span>{props.project}</span>
21
+ </div>
22
+ <div className={Styles.ns_header_screenshot_item}>
23
+ <img src="https://static.namirasoft.com/image/concept/gear/white.svg" alt='' width={20} height={20} />
24
+ <span>{props.task}</span>
25
+ </div>
26
+ <div className={Styles.ns_header_screenshot_item}>
27
+ <img src="https://static.namirasoft.com/image/concept/time/white.svg" alt='' width={20} height={20} />
28
+ <span>{props.time}</span>
29
+ </div>
30
+ <div className={Styles.ns_header_screenshot_item}>
31
+ <img src="https://static.namirasoft.com/image/concept/countdown/white.svg" alt='' width={20} height={20} />
32
+ <span>{props.Countdown}</span>
33
+ </div>
34
+ </div>
35
+ <div>
36
+ <img src="https://static.namirasoft.com/image/concept/delete/blue.svg" alt='' width={20} height={20} />
37
+ </div>
38
+ </section >
39
+ );
40
40
  }
@@ -1,179 +1,179 @@
1
- import { BaseUUID, CacheService, EncodingOperation, EncodingOperationPartType, IStorage, IStorageLocal } from 'namirasoft-core';
2
- import { NSBaseMetaTable, NSBaseServer } from 'namirasoft-site';
3
- import { NamirasoftMap } from 'namirasoft-site-map';
4
- import React from 'react';
5
- import { BaseURLImageFormatter, IBaseComponentProps, NSCopy } from '../main';
6
-
7
- export interface NSIDProps extends IBaseComponentProps
8
- {
9
- id: string;
10
- map: NamirasoftMap | null;
11
- storage: IStorage | null;
12
- }
13
-
14
- export interface NSIDState
15
- {
16
- text?: string;
17
- }
18
- export interface NSIDInfo
19
- {
20
- product: {
21
- id: string;
22
- name: string;
23
- headline: string;
24
- description: string;
25
- logo: string;
26
- link: string;
27
- };
28
- table: NSBaseMetaTable<NSBaseServer, any>;
29
- }
30
-
31
- export class NSID extends React.Component<NSIDProps, NSIDState>
32
- {
33
- private info: NSIDInfo | null;
34
- public static decode(text: string): React.ReactNode
35
- {
36
- let parts = EncodingOperation.VariableToStringDecode("id", text);
37
- if (parts.length === 1 && parts[0].type === EncodingOperationPartType.Text)
38
- return parts[0].text;
39
- let map = new NamirasoftMap();
40
- let storage: IStorage = new IStorageLocal();
41
- return (
42
- <span style={{ display: "inline-flex", flexWrap: "wrap", alignItems: "center", gap: "4px" }}>
43
- {
44
- parts.map((part, i) =>
45
- <React.Fragment key={i}>
46
- {
47
- part.type === EncodingOperationPartType.Text
48
- ? part.text
49
- : <NSID id={part.value} map={map} storage={storage} />
50
- }
51
- </React.Fragment>
52
- )
53
- }
54
- </span>
55
- );
56
- }
57
- public static getKey(info: NSIDInfo, id: string)
58
- {
59
- return `${info.product.id}:${info.table.name}:${id}`
60
- }
61
- public static getInfo(id: string, map?: NamirasoftMap | null)
62
- {
63
- try
64
- {
65
- let short = BaseUUID.getShort(id);
66
- let namriasoft = map ?? new NamirasoftMap();
67
- if (short)
68
- return namriasoft.getByShortName(short);
69
- } catch (error)
70
- {
71
- }
72
- return null;
73
- }
74
- public static getCache(info: NSIDInfo, storage: IStorage, id: string)
75
- {
76
- let key = NSID.getKey(info, id);
77
- return new CacheService<string>(key, storage, 60, async () => "0.0.0", async () =>
78
- {
79
- if (info.table.back_end.get)
80
- {
81
- try
82
- {
83
- let numberColumns: string[] = [];
84
- let codeColumns: string[] = [];
85
- let nameColumns: string[] = [];
86
- info.table.forEachColumn(column =>
87
- {
88
- if (column.name.includes("number"))
89
- numberColumns.push(column.name);
90
- else if (column.name.includes("code"))
91
- codeColumns.push(column.name);
92
- else if (column.name.includes("name"))
93
- nameColumns.push(column.name);
94
- });
95
- let columns = [...numberColumns, ...codeColumns, ...nameColumns];
96
- let row = await info.table.back_end.get(id);
97
- let values = columns.map(column => row[column]).filter(x => x);
98
- let result = values.length > 0 ? values.join(" - ") : (row.name ?? row.description ?? "");
99
- if (result.length > 64)
100
- result = result.substring(0, 64) + "...";
101
- return result;
102
- } catch (error)
103
- {
104
- console.error(error);
105
- }
106
- }
107
- return "";
108
- });
109
- }
110
- public static clearID(storage: IStorage, id: string, map?: NamirasoftMap | null)
111
- {
112
- let info = NSID.getInfo(id, map);
113
- if (info)
114
- {
115
- let cache = NSID.getCache(info, storage, id);
116
- cache.del();
117
- }
118
- }
119
- constructor(props: NSIDProps)
120
- {
121
- super(props);
122
- this.state = {};
123
- this.info = NSID.getInfo(this.props.id, this.props.map);
124
- }
125
- override componentDidMount(): void
126
- {
127
- this.reload();
128
- }
129
- async reload()
130
- {
131
- if (!this.info)
132
- return;
133
- if (!this.props.id)
134
- return;
135
- let cache = null;
136
- if (this.props.storage)
137
- cache = NSID.getCache(this.info, this.props.storage, this.props.id);
138
- if (cache)
139
- cache.get().then(text =>
140
- {
141
- this.setState({ text });
142
- });
143
- }
144
-
145
- override render()
146
- {
147
- if (!this.props.id)
148
- return <></>;
149
- if (!this.info)
150
- return this.props.id;
151
-
152
- let text = this.state.text;
153
- if (!text)
154
- text = this.props.id;
155
-
156
- let href = "";
157
- try
158
- {
159
- href = this.info.table.front_end.getViewLink(this.props.id + "");
160
- } catch (error)
161
- {
162
- }
163
- let formatter = new BaseURLImageFormatter();
164
- return (
165
- <NSCopy
166
- value={this.props.id}
167
- classList={["justify-content-start"]}
168
- >
169
- {
170
- formatter.format({
171
- text,
172
- href,
173
- image: { url: this.info.product.logo, alt: this.info?.product.logo }
174
- })
175
- }
176
- </NSCopy>
177
- );
178
- }
1
+ import { BaseUUID, CacheService, EncodingOperation, EncodingOperationPartType, IStorage, IStorageLocal } from 'namirasoft-core';
2
+ import { NSBaseMetaTable, NSBaseServer } from 'namirasoft-site';
3
+ import { NamirasoftMap } from 'namirasoft-site-map';
4
+ import React from 'react';
5
+ import { BaseURLImageFormatter, IBaseComponentProps, NSCopy } from '../main';
6
+
7
+ export interface NSIDProps extends IBaseComponentProps
8
+ {
9
+ id: string;
10
+ map: NamirasoftMap | null;
11
+ storage: IStorage | null;
12
+ }
13
+
14
+ export interface NSIDState
15
+ {
16
+ text?: string;
17
+ }
18
+ export interface NSIDInfo
19
+ {
20
+ product: {
21
+ id: string;
22
+ name: string;
23
+ headline: string;
24
+ description: string;
25
+ logo: string;
26
+ link: string;
27
+ };
28
+ table: NSBaseMetaTable<NSBaseServer, any>;
29
+ }
30
+
31
+ export class NSID extends React.Component<NSIDProps, NSIDState>
32
+ {
33
+ private info: NSIDInfo | null;
34
+ public static decode(text: string): React.ReactNode
35
+ {
36
+ let parts = EncodingOperation.VariableToStringDecode("id", text);
37
+ if (parts.length === 1 && parts[0].type === EncodingOperationPartType.Text)
38
+ return parts[0].text;
39
+ let map = new NamirasoftMap();
40
+ let storage: IStorage = new IStorageLocal();
41
+ return (
42
+ <span style={{ display: "inline-flex", flexWrap: "wrap", alignItems: "center", gap: "4px" }}>
43
+ {
44
+ parts.map((part, i) =>
45
+ <React.Fragment key={i}>
46
+ {
47
+ part.type === EncodingOperationPartType.Text
48
+ ? part.text
49
+ : <NSID id={part.value} map={map} storage={storage} />
50
+ }
51
+ </React.Fragment>
52
+ )
53
+ }
54
+ </span>
55
+ );
56
+ }
57
+ public static getKey(info: NSIDInfo, id: string)
58
+ {
59
+ return `${info.product.id}:${info.table.name}:${id}`
60
+ }
61
+ public static getInfo(id: string, map?: NamirasoftMap | null)
62
+ {
63
+ try
64
+ {
65
+ let short = BaseUUID.getShort(id);
66
+ let namriasoft = map ?? new NamirasoftMap();
67
+ if (short)
68
+ return namriasoft.getByShortName(short);
69
+ } catch (error)
70
+ {
71
+ }
72
+ return null;
73
+ }
74
+ public static getCache(info: NSIDInfo, storage: IStorage, id: string)
75
+ {
76
+ let key = NSID.getKey(info, id);
77
+ return new CacheService<string>(key, storage, 60, async () => "0.0.0", async () =>
78
+ {
79
+ if (info.table.back_end.get)
80
+ {
81
+ try
82
+ {
83
+ let numberColumns: string[] = [];
84
+ let codeColumns: string[] = [];
85
+ let nameColumns: string[] = [];
86
+ info.table.forEachColumn(column =>
87
+ {
88
+ if (column.name.includes("number"))
89
+ numberColumns.push(column.name);
90
+ else if (column.name.includes("code"))
91
+ codeColumns.push(column.name);
92
+ else if (column.name.includes("name"))
93
+ nameColumns.push(column.name);
94
+ });
95
+ let columns = [...numberColumns, ...codeColumns, ...nameColumns];
96
+ let row = await info.table.back_end.get(id);
97
+ let values = columns.map(column => row[column]).filter(x => x);
98
+ let result = values.length > 0 ? values.join(" - ") : (row.name ?? row.description ?? "");
99
+ if (result.length > 64)
100
+ result = result.substring(0, 64) + "...";
101
+ return result;
102
+ } catch (error)
103
+ {
104
+ console.error(error);
105
+ }
106
+ }
107
+ return "";
108
+ });
109
+ }
110
+ public static clearID(storage: IStorage, id: string, map?: NamirasoftMap | null)
111
+ {
112
+ let info = NSID.getInfo(id, map);
113
+ if (info)
114
+ {
115
+ let cache = NSID.getCache(info, storage, id);
116
+ cache.del();
117
+ }
118
+ }
119
+ constructor(props: NSIDProps)
120
+ {
121
+ super(props);
122
+ this.state = {};
123
+ this.info = NSID.getInfo(this.props.id, this.props.map);
124
+ }
125
+ override componentDidMount(): void
126
+ {
127
+ this.reload();
128
+ }
129
+ async reload()
130
+ {
131
+ if (!this.info)
132
+ return;
133
+ if (!this.props.id)
134
+ return;
135
+ let cache = null;
136
+ if (this.props.storage)
137
+ cache = NSID.getCache(this.info, this.props.storage, this.props.id);
138
+ if (cache)
139
+ cache.get().then(text =>
140
+ {
141
+ this.setState({ text });
142
+ });
143
+ }
144
+
145
+ override render()
146
+ {
147
+ if (!this.props.id)
148
+ return <></>;
149
+ if (!this.info)
150
+ return this.props.id;
151
+
152
+ let text = this.state.text;
153
+ if (!text)
154
+ text = this.props.id;
155
+
156
+ let href = "";
157
+ try
158
+ {
159
+ href = this.info.table.front_end.getViewLink(this.props.id + "");
160
+ } catch (error)
161
+ {
162
+ }
163
+ let formatter = new BaseURLImageFormatter();
164
+ return (
165
+ <NSCopy
166
+ value={this.props.id}
167
+ classList={["justify-content-start"]}
168
+ >
169
+ {
170
+ formatter.format({
171
+ text,
172
+ href,
173
+ image: { url: this.info.product.logo, alt: this.info?.product.logo }
174
+ })
175
+ }
176
+ </NSCopy>
177
+ );
178
+ }
179
179
  }
@@ -1,51 +1,51 @@
1
- import React from 'react';
2
- import { NSDialog } from './NSDialog';
3
-
4
- export interface NSInfoProps
5
- {
6
- text?: string;
7
- link?: string;
8
- }
9
- export interface NSInfoState
10
- {
11
- show_info: boolean;
12
- }
13
-
14
- export class NSInfo extends React.Component<NSInfoProps, NSInfoState>
15
- {
16
- constructor(props: NSInfoProps)
17
- {
18
- super(props);
19
- this.state = { show_info: false };
20
- }
21
- onClick()
22
- {
23
- if (this.props.text && this.props.link)
24
- this.setState(prev => { return { ...prev, show_info: true } });
25
- else if (this.props.text)
26
- this.setState(prev => { return { ...prev, show_info: true } });
27
- else if (this.props.link)
28
- window.open(this.props.link, "_blank");
29
- }
30
- override render()
31
- {
32
- if (!this.state.show_info)
33
- return <></>;
34
- return <NSDialog
35
- onClose={() =>
36
- {
37
- this.setState(prev => { return { ...prev, show_info: false }; });
38
- }}
39
- center_dialog
40
- closeButton={{ out: true }}
41
- >
42
- {
43
- this.props.text
44
- }
45
- {
46
- this.props.link &&
47
- <a href={this.props.link} target='_blank' rel='noreferrer'>Learn More!</a>
48
- }
49
- </NSDialog>
50
- }
1
+ import React from 'react';
2
+ import { NSDialog } from './NSDialog';
3
+
4
+ export interface NSInfoProps
5
+ {
6
+ text?: string;
7
+ link?: string;
8
+ }
9
+ export interface NSInfoState
10
+ {
11
+ show_info: boolean;
12
+ }
13
+
14
+ export class NSInfo extends React.Component<NSInfoProps, NSInfoState>
15
+ {
16
+ constructor(props: NSInfoProps)
17
+ {
18
+ super(props);
19
+ this.state = { show_info: false };
20
+ }
21
+ onClick()
22
+ {
23
+ if (this.props.text && this.props.link)
24
+ this.setState(prev => { return { ...prev, show_info: true } });
25
+ else if (this.props.text)
26
+ this.setState(prev => { return { ...prev, show_info: true } });
27
+ else if (this.props.link)
28
+ window.open(this.props.link, "_blank");
29
+ }
30
+ override render()
31
+ {
32
+ if (!this.state.show_info)
33
+ return <></>;
34
+ return <NSDialog
35
+ onClose={() =>
36
+ {
37
+ this.setState(prev => { return { ...prev, show_info: false }; });
38
+ }}
39
+ center_dialog
40
+ closeButton={{ out: true }}
41
+ >
42
+ {
43
+ this.props.text
44
+ }
45
+ {
46
+ this.props.link &&
47
+ <a href={this.props.link} target='_blank' rel='noreferrer'>Learn More!</a>
48
+ }
49
+ </NSDialog>
50
+ }
51
51
  }
@@ -1,26 +1,26 @@
1
- .ns_label_title {
2
- color: hsla(234, 64%, 22%, 1);
3
- margin-bottom: 8px;
4
- font-size: 16px;
5
- font-weight: bold;
6
- padding: 0px;
7
- margin: 0px;
8
- align-content: center;
9
- }
10
-
11
- .ns_label_description {
12
- color: hsla(234, 64%, 22%, 1);
13
- font-size: 16px;
14
- padding: 0px;
15
- margin: 0px;
16
- }
17
-
18
- .ns_label_item {
19
- padding: 8px;
20
- border-right: none !important;
21
- align-content: center;
22
- }
23
-
24
- .ns_label_item:not(:last-child) {
25
- border-right: 1px solid #ccc;
1
+ .ns_label_title {
2
+ color: hsla(234, 64%, 22%, 1);
3
+ margin-bottom: 8px;
4
+ font-size: 16px;
5
+ font-weight: bold;
6
+ padding: 0px;
7
+ margin: 0px;
8
+ align-content: center;
9
+ }
10
+
11
+ .ns_label_description {
12
+ color: hsla(234, 64%, 22%, 1);
13
+ font-size: 16px;
14
+ padding: 0px;
15
+ margin: 0px;
16
+ }
17
+
18
+ .ns_label_item {
19
+ padding: 8px;
20
+ border-right: none !important;
21
+ align-content: center;
22
+ }
23
+
24
+ .ns_label_item:not(:last-child) {
25
+ border-right: 1px solid #ccc;
26
26
  }