namirasoft-site-react 1.5.16 → 1.5.18

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