namirasoft-site-react 1.4.553 → 1.4.554

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 (472) 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 +34 -0
  7. package/dist/App.d.ts +1 -1
  8. package/dist/NSBoxBuilder.d.ts +25 -25
  9. package/dist/components/NSBanner.d.ts +1 -1
  10. package/dist/components/NSBanner.module.css +47 -47
  11. package/dist/components/NSBarAction.d.ts +1 -1
  12. package/dist/components/NSBarAction.module.css +91 -91
  13. package/dist/components/NSBarAlert.d.ts +1 -1
  14. package/dist/components/NSBarAlert.module.css +79 -79
  15. package/dist/components/NSBarNotification.d.ts +1 -1
  16. package/dist/components/NSBarNotification.module.css +34 -34
  17. package/dist/components/NSBarTitle.d.ts +1 -1
  18. package/dist/components/NSBarTitle.module.css +9 -9
  19. package/dist/components/NSBox.module.css +87 -87
  20. package/dist/components/NSBoxBaseCombo.d.ts +1 -1
  21. package/dist/components/NSBoxBaseCombo.module.css +6 -6
  22. package/dist/components/NSBoxBaseLayout.d.ts +1 -1
  23. package/dist/components/NSBoxBaseLayoutRecursive.d.ts +1 -1
  24. package/dist/components/NSBoxBoolean.d.ts +1 -1
  25. package/dist/components/NSBoxBoolean.module.css +73 -73
  26. package/dist/components/NSBoxBooleans.d.ts +1 -1
  27. package/dist/components/NSBoxColor.d.ts +1 -1
  28. package/dist/components/NSBoxCombo.d.ts +1 -1
  29. package/dist/components/NSBoxDate.d.ts +1 -1
  30. package/dist/components/NSBoxDate.module.css +4 -4
  31. package/dist/components/NSBoxDateRange.d.ts +1 -1
  32. package/dist/components/NSBoxDateRangeBase.d.ts +1 -1
  33. package/dist/components/NSBoxDateRangeBase.module.css +73 -73
  34. package/dist/components/NSBoxDateTime.d.ts +1 -1
  35. package/dist/components/NSBoxDateTime.module.css +4 -4
  36. package/dist/components/NSBoxDateTimeRange.d.ts +1 -1
  37. package/dist/components/NSBoxDouble.d.ts +1 -1
  38. package/dist/components/NSBoxDuration.d.ts +1 -1
  39. package/dist/components/NSBoxDuration.module.css +4 -4
  40. package/dist/components/NSBoxDynamic.d.ts +1 -1
  41. package/dist/components/NSBoxDynamics.d.ts +1 -1
  42. package/dist/components/NSBoxEmail.d.ts +1 -1
  43. package/dist/components/NSBoxEntity.d.ts +1 -1
  44. package/dist/components/NSBoxEnum.d.ts +1 -1
  45. package/dist/components/NSBoxFile.d.ts +1 -1
  46. package/dist/components/NSBoxFile.module.css +10 -10
  47. package/dist/components/NSBoxFilePath.d.ts +1 -1
  48. package/dist/components/NSBoxFont.d.ts +1 -1
  49. package/dist/components/NSBoxIPV4.d.ts +1 -1
  50. package/dist/components/NSBoxIPV4Range.d.ts +1 -1
  51. package/dist/components/NSBoxIPV6.d.ts +1 -1
  52. package/dist/components/NSBoxIPV6Range.d.ts +1 -1
  53. package/dist/components/NSBoxInteger.d.ts +1 -1
  54. package/dist/components/NSBoxInteger.module.css +16 -16
  55. package/dist/components/NSBoxMoney.d.ts +1 -1
  56. package/dist/components/NSBoxPhone.d.ts +1 -1
  57. package/dist/components/NSBoxPhone.module.css +35 -35
  58. package/dist/components/NSBoxRadio.d.ts +1 -1
  59. package/dist/components/NSBoxRadio.module.css +33 -33
  60. package/dist/components/NSBoxSchemaBase.d.ts +1 -1
  61. package/dist/components/NSBoxSchemaBase.module.css +17 -17
  62. package/dist/components/NSBoxSchemaVariable.d.ts +1 -1
  63. package/dist/components/NSBoxSchemaVariable.module.css +16 -16
  64. package/dist/components/NSBoxSearch.d.ts +1 -1
  65. package/dist/components/NSBoxSensitive.d.ts +1 -1
  66. package/dist/components/NSBoxString.d.ts +1 -1
  67. package/dist/components/NSBoxTextArea.d.ts +1 -1
  68. package/dist/components/NSBoxTextArea.module.css +12 -12
  69. package/dist/components/NSBoxTime.d.ts +1 -1
  70. package/dist/components/NSBoxTime.module.css +4 -4
  71. package/dist/components/NSBoxTimeRange.d.ts +1 -1
  72. package/dist/components/NSBoxTimeZone.d.ts +1 -1
  73. package/dist/components/NSBoxURL.d.ts +1 -1
  74. package/dist/components/NSBoxVersion.d.ts +1 -1
  75. package/dist/components/NSButton.module.css +57 -57
  76. package/dist/components/NSButtonBlue.d.ts +1 -1
  77. package/dist/components/NSButtonBlue.module.css +4 -4
  78. package/dist/components/NSButtonGreen.d.ts +1 -1
  79. package/dist/components/NSButtonGreen.module.css +4 -4
  80. package/dist/components/NSButtonRed.d.ts +1 -1
  81. package/dist/components/NSButtonRed.module.css +4 -4
  82. package/dist/components/NSCard.d.ts +1 -1
  83. package/dist/components/NSCard.module.css +113 -113
  84. package/dist/components/NSCardScreenshot.d.ts +1 -1
  85. package/dist/components/NSCardScreenshot.module.css +41 -41
  86. package/dist/components/NSChartColumn.d.ts +1 -1
  87. package/dist/components/NSChartColumn.module.css +7 -7
  88. package/dist/components/NSChartDoughnut.d.ts +1 -1
  89. package/dist/components/NSChartPie.d.ts +1 -1
  90. package/dist/components/NSChartRange.d.ts +1 -1
  91. package/dist/components/NSChartTable.d.ts +1 -1
  92. package/dist/components/NSChartTable.module.css +21 -21
  93. package/dist/components/NSColumn.d.ts +1 -1
  94. package/dist/components/NSColumn.module.css +16 -16
  95. package/dist/components/NSCopy.d.ts +1 -1
  96. package/dist/components/NSCopyBox.d.ts +1 -1
  97. package/dist/components/NSCopyBox.module.css +39 -39
  98. package/dist/components/NSDialog.d.ts +1 -1
  99. package/dist/components/NSDialog.module.css +105 -105
  100. package/dist/components/NSDialogBox.d.ts +1 -1
  101. package/dist/components/NSDialogBoxDate.d.ts +1 -1
  102. package/dist/components/NSDialogBoxDateTime.d.ts +1 -1
  103. package/dist/components/NSDialogBoxPhone.d.ts +1 -1
  104. package/dist/components/NSDialogBoxString.d.ts +1 -1
  105. package/dist/components/NSDialogDelete.d.ts +1 -1
  106. package/dist/components/NSDialogInfo.d.ts +1 -1
  107. package/dist/components/NSDialogPageSelection.d.ts +2 -2
  108. package/dist/components/NSDialogPageSelection.module.css +103 -103
  109. package/dist/components/NSDownTimer.d.ts +1 -1
  110. package/dist/components/NSDownTimer.module.css +55 -55
  111. package/dist/components/NSDownload.d.ts +1 -1
  112. package/dist/components/NSDownload.module.css +46 -46
  113. package/dist/components/NSElectronicCard.d.ts +1 -1
  114. package/dist/components/NSElectronicCard.module.css +60 -60
  115. package/dist/components/NSEntityCardBackground.d.ts +1 -1
  116. package/dist/components/NSEntityCardBackground.module.css +27 -27
  117. package/dist/components/NSFilterBox.d.ts +2 -2
  118. package/dist/components/NSFilterBox.module.css +27 -27
  119. package/dist/components/NSFilterBoxItems.d.ts +1 -1
  120. package/dist/components/NSFilterBoxItems.module.css +15 -15
  121. package/dist/components/NSFilterItem.d.ts +1 -1
  122. package/dist/components/NSFilterItem.module.css +24 -24
  123. package/dist/components/NSFooter.d.ts +1 -1
  124. package/dist/components/NSFooter.module.css +140 -140
  125. package/dist/components/NSGauge.d.ts +1 -1
  126. package/dist/components/NSGauge.module.css +67 -67
  127. package/dist/components/NSGaugeDate.d.ts +1 -1
  128. package/dist/components/NSGaugeDate.module.css +57 -57
  129. package/dist/components/NSGaugeNumber.d.ts +1 -1
  130. package/dist/components/NSGaugeNumber.module.css +66 -66
  131. package/dist/components/NSHeader.d.ts +1 -1
  132. package/dist/components/NSHeader.module.css +316 -316
  133. package/dist/components/NSHeaderScreenshot.d.ts +1 -1
  134. package/dist/components/NSHeaderScreenshot.module.css +35 -35
  135. package/dist/components/NSID.d.ts +1 -1
  136. package/dist/components/NSInfo.d.ts +1 -1
  137. package/dist/components/NSLabel.d.ts +1 -1
  138. package/dist/components/NSLabel.module.css +25 -25
  139. package/dist/components/NSLabelErrorNotifier.d.ts +1 -1
  140. package/dist/components/NSLabelErrorNotifier.module.css +2 -2
  141. package/dist/components/NSLabelSensitive.d.ts +1 -1
  142. package/dist/components/NSLabelSensitive.module.css +9 -9
  143. package/dist/components/NSLayout.d.ts +1 -1
  144. package/dist/components/NSLayout.module.css +23 -23
  145. package/dist/components/NSLine.d.ts +1 -1
  146. package/dist/components/NSLine.module.css +15 -15
  147. package/dist/components/NSLineText.d.ts +1 -1
  148. package/dist/components/NSLineText.module.css +38 -38
  149. package/dist/components/NSLink.d.ts +1 -1
  150. package/dist/components/NSLink.module.css +36 -36
  151. package/dist/components/NSLinkBlue.d.ts +1 -1
  152. package/dist/components/NSLinkGreen.d.ts +1 -1
  153. package/dist/components/NSLinkRed.d.ts +1 -1
  154. package/dist/components/NSListGrouped.d.ts +1 -1
  155. package/dist/components/NSListGrouped.module.css +69 -69
  156. package/dist/components/NSListProduct.d.ts +1 -1
  157. package/dist/components/NSLoading.d.ts +1 -1
  158. package/dist/components/NSLoading.module.css +10 -10
  159. package/dist/components/NSMegaMenu.d.ts +1 -1
  160. package/dist/components/NSMegaMenu.module.css +133 -133
  161. package/dist/components/NSMenuAction.d.ts +1 -1
  162. package/dist/components/NSMenuAction.module.css +88 -88
  163. package/dist/components/NSMenuButton.d.ts +1 -1
  164. package/dist/components/NSMenuButton.module.css +44 -44
  165. package/dist/components/NSNoData.d.ts +1 -1
  166. package/dist/components/NSNoData.module.css +11 -11
  167. package/dist/components/NSPagination.d.ts +1 -1
  168. package/dist/components/NSPagination.module.css +86 -86
  169. package/dist/components/NSPanel.d.ts +1 -1
  170. package/dist/components/NSPanel.module.css +19 -19
  171. package/dist/components/NSPanelAccordion.d.ts +1 -1
  172. package/dist/components/NSPanelAccordion.module.css +4 -4
  173. package/dist/components/NSProductSearch.d.ts +1 -1
  174. package/dist/components/NSProductSearch.module.css +73 -73
  175. package/dist/components/NSProgressBar.d.ts +1 -1
  176. package/dist/components/NSProgressBar.module.css +38 -38
  177. package/dist/components/NSRange.d.ts +1 -1
  178. package/dist/components/NSRange.module.css +66 -66
  179. package/dist/components/NSRepeater.d.ts +1 -1
  180. package/dist/components/NSRepeaterNSBoxSchemaVariable.d.ts +1 -1
  181. package/dist/components/NSRepeaterNSTag.d.ts +1 -1
  182. package/dist/components/NSRow.d.ts +1 -1
  183. package/dist/components/NSRow.module.css +17 -17
  184. package/dist/components/NSSection.d.ts +1 -1
  185. package/dist/components/NSSection.module.css +4 -4
  186. package/dist/components/NSSectionCards.d.ts +1 -1
  187. package/dist/components/NSSectionCards.module.css +38 -38
  188. package/dist/components/NSSectionTiles.d.ts +1 -1
  189. package/dist/components/NSSectionTiles.module.css +10 -10
  190. package/dist/components/NSSectionTitle.d.ts +1 -1
  191. package/dist/components/NSSpace.d.ts +1 -1
  192. package/dist/components/NSSplitter.d.ts +1 -1
  193. package/dist/components/NSSplitter.module.css +58 -58
  194. package/dist/components/NSTabPage.d.ts +1 -1
  195. package/dist/components/NSTabPage.module.css +59 -59
  196. package/dist/components/NSTable.d.ts +1 -1
  197. package/dist/components/NSTable.js +1 -1
  198. package/dist/components/NSTable.js.map +1 -1
  199. package/dist/components/NSTable.module.css +411 -411
  200. package/dist/components/NSTag.d.ts +1 -1
  201. package/dist/components/NSTile.d.ts +1 -1
  202. package/dist/components/NSTile.module.css +76 -76
  203. package/dist/components/NSTimelineMonthly.d.ts +1 -1
  204. package/dist/components/NSTimelineMonthly.module.css +71 -71
  205. package/dist/components/NSTitle.d.ts +1 -1
  206. package/dist/components/NSTitle.module.css +15 -15
  207. package/dist/formatter/StringFormatter.d.ts +1 -1
  208. package/dist/index.css +6 -0
  209. package/dist/pages/NSImplementing.d.ts +1 -1
  210. package/dist/pages/NSImplementing.module.css +35 -35
  211. package/dist/pages/NSNotFoundPage.d.ts +1 -1
  212. package/dist/pages/NSNotFoundPage.module.css +18 -18
  213. package/dist/pages/NSUpdating.d.ts +1 -1
  214. package/dist/pages/NSUpdating.module.css +35 -35
  215. package/package.json +86 -86
  216. package/public/index.html +38 -38
  217. package/src/App.css +33 -33
  218. package/src/App.tsx +198 -198
  219. package/src/Color.tsx +10 -10
  220. package/src/CopyToClipboard.ts +6 -6
  221. package/src/EncryptionOperation.ts +98 -98
  222. package/src/NSBoxBuilder.tsx +922 -922
  223. package/src/ProductCacheService.ts +15 -15
  224. package/src/Validator.ts +199 -199
  225. package/src/components/INSBox.tsx +7 -7
  226. package/src/components/NSBanner.module.css +47 -47
  227. package/src/components/NSBanner.tsx +80 -80
  228. package/src/components/NSBarAction.module.css +91 -91
  229. package/src/components/NSBarAction.tsx +95 -95
  230. package/src/components/NSBarAlert.module.css +79 -79
  231. package/src/components/NSBarAlert.tsx +35 -35
  232. package/src/components/NSBarNotification.module.css +34 -34
  233. package/src/components/NSBarNotification.tsx +86 -86
  234. package/src/components/NSBarTitle.module.css +9 -9
  235. package/src/components/NSBarTitle.tsx +23 -23
  236. package/src/components/NSBox.module.css +87 -87
  237. package/src/components/NSBox.tsx +19 -19
  238. package/src/components/NSBoxBaseCombo.module.css +6 -6
  239. package/src/components/NSBoxBaseCombo.tsx +479 -479
  240. package/src/components/NSBoxBaseLayout.tsx +163 -163
  241. package/src/components/NSBoxBaseLayoutRecursive.tsx +59 -59
  242. package/src/components/NSBoxBoolean.module.css +73 -73
  243. package/src/components/NSBoxBoolean.tsx +152 -152
  244. package/src/components/NSBoxBooleans.tsx +181 -181
  245. package/src/components/NSBoxColor.tsx +107 -107
  246. package/src/components/NSBoxCombo.tsx +95 -95
  247. package/src/components/NSBoxDate.module.css +4 -4
  248. package/src/components/NSBoxDate.tsx +119 -119
  249. package/src/components/NSBoxDateRange.tsx +88 -88
  250. package/src/components/NSBoxDateRangeBase.module.css +73 -73
  251. package/src/components/NSBoxDateRangeBase.tsx +198 -198
  252. package/src/components/NSBoxDateTime.module.css +4 -4
  253. package/src/components/NSBoxDateTime.tsx +116 -116
  254. package/src/components/NSBoxDateTimeRange.tsx +65 -65
  255. package/src/components/NSBoxDouble.tsx +110 -110
  256. package/src/components/NSBoxDuration.module.css +4 -4
  257. package/src/components/NSBoxDuration.tsx +107 -107
  258. package/src/components/NSBoxDynamic.tsx +77 -77
  259. package/src/components/NSBoxDynamics.tsx +68 -68
  260. package/src/components/NSBoxEmail.tsx +117 -117
  261. package/src/components/NSBoxEntity.tsx +181 -181
  262. package/src/components/NSBoxEnum.tsx +113 -113
  263. package/src/components/NSBoxFile.module.css +10 -10
  264. package/src/components/NSBoxFile.tsx +106 -106
  265. package/src/components/NSBoxFilePath.tsx +106 -106
  266. package/src/components/NSBoxFont.tsx +107 -107
  267. package/src/components/NSBoxIPV4.tsx +107 -107
  268. package/src/components/NSBoxIPV4Range.tsx +107 -107
  269. package/src/components/NSBoxIPV6.tsx +104 -104
  270. package/src/components/NSBoxIPV6Range.tsx +107 -107
  271. package/src/components/NSBoxInteger.module.css +16 -16
  272. package/src/components/NSBoxInteger.tsx +126 -126
  273. package/src/components/NSBoxMoney.tsx +115 -115
  274. package/src/components/NSBoxPhone.module.css +35 -35
  275. package/src/components/NSBoxPhone.tsx +120 -120
  276. package/src/components/NSBoxRadio.module.css +33 -33
  277. package/src/components/NSBoxRadio.tsx +104 -104
  278. package/src/components/NSBoxSchemaBase.module.css +17 -17
  279. package/src/components/NSBoxSchemaBase.tsx +562 -562
  280. package/src/components/NSBoxSchemaVariable.module.css +16 -16
  281. package/src/components/NSBoxSchemaVariable.tsx +263 -263
  282. package/src/components/NSBoxSearch.tsx +112 -112
  283. package/src/components/NSBoxSensitive.tsx +133 -133
  284. package/src/components/NSBoxString.tsx +106 -106
  285. package/src/components/NSBoxTextArea.module.css +12 -12
  286. package/src/components/NSBoxTextArea.tsx +136 -136
  287. package/src/components/NSBoxTime.module.css +4 -4
  288. package/src/components/NSBoxTime.tsx +106 -106
  289. package/src/components/NSBoxTimeRange.tsx +220 -220
  290. package/src/components/NSBoxTimeZone.tsx +122 -122
  291. package/src/components/NSBoxURL.tsx +117 -117
  292. package/src/components/NSBoxVersion.tsx +107 -107
  293. package/src/components/NSButton.module.css +57 -57
  294. package/src/components/NSButton.tsx +74 -74
  295. package/src/components/NSButtonBlue.module.css +4 -4
  296. package/src/components/NSButtonBlue.tsx +29 -29
  297. package/src/components/NSButtonGreen.module.css +4 -4
  298. package/src/components/NSButtonGreen.tsx +29 -29
  299. package/src/components/NSButtonRed.module.css +4 -4
  300. package/src/components/NSButtonRed.tsx +29 -29
  301. package/src/components/NSCard.module.css +113 -113
  302. package/src/components/NSCard.tsx +67 -67
  303. package/src/components/NSCardScreenshot.module.css +41 -41
  304. package/src/components/NSCardScreenshot.tsx +31 -31
  305. package/src/components/NSChartColumn.module.css +7 -7
  306. package/src/components/NSChartColumn.tsx +130 -130
  307. package/src/components/NSChartDoughnut.tsx +112 -112
  308. package/src/components/NSChartPie.tsx +105 -105
  309. package/src/components/NSChartRange.tsx +14 -14
  310. package/src/components/NSChartTable.module.css +21 -21
  311. package/src/components/NSChartTable.tsx +94 -94
  312. package/src/components/NSColumn.module.css +16 -16
  313. package/src/components/NSColumn.tsx +24 -24
  314. package/src/components/NSCopy.tsx +58 -58
  315. package/src/components/NSCopyBox.module.css +39 -39
  316. package/src/components/NSCopyBox.tsx +53 -53
  317. package/src/components/NSDialog.module.css +105 -105
  318. package/src/components/NSDialog.tsx +72 -72
  319. package/src/components/NSDialogBox.tsx +38 -38
  320. package/src/components/NSDialogBoxDate.tsx +28 -28
  321. package/src/components/NSDialogBoxDateTime.tsx +28 -28
  322. package/src/components/NSDialogBoxPhone.tsx +28 -28
  323. package/src/components/NSDialogBoxString.tsx +28 -28
  324. package/src/components/NSDialogDelete.tsx +36 -36
  325. package/src/components/NSDialogInfo.tsx +49 -49
  326. package/src/components/NSDialogPageSelection.module.css +103 -103
  327. package/src/components/NSDialogPageSelection.tsx +219 -219
  328. package/src/components/NSDownTimer.module.css +55 -55
  329. package/src/components/NSDownTimer.tsx +91 -91
  330. package/src/components/NSDownload.module.css +46 -46
  331. package/src/components/NSDownload.tsx +69 -69
  332. package/src/components/NSElectronicCard.module.css +60 -60
  333. package/src/components/NSElectronicCard.tsx +46 -46
  334. package/src/components/NSEntityCardBackground.module.css +27 -27
  335. package/src/components/NSEntityCardBackground.tsx +36 -36
  336. package/src/components/NSFilterBox.module.css +27 -27
  337. package/src/components/NSFilterBox.tsx +477 -477
  338. package/src/components/NSFilterBoxItems.module.css +15 -15
  339. package/src/components/NSFilterBoxItems.tsx +52 -52
  340. package/src/components/NSFilterItem.module.css +24 -24
  341. package/src/components/NSFilterItem.tsx +27 -27
  342. package/src/components/NSFooter.module.css +140 -140
  343. package/src/components/NSFooter.tsx +321 -321
  344. package/src/components/NSGauge.module.css +67 -67
  345. package/src/components/NSGauge.tsx +52 -52
  346. package/src/components/NSGaugeDate.module.css +57 -57
  347. package/src/components/NSGaugeDate.tsx +125 -125
  348. package/src/components/NSGaugeNumber.module.css +66 -66
  349. package/src/components/NSGaugeNumber.tsx +90 -90
  350. package/src/components/NSHeader.module.css +316 -316
  351. package/src/components/NSHeader.tsx +334 -334
  352. package/src/components/NSHeaderScreenshot.module.css +35 -35
  353. package/src/components/NSHeaderScreenshot.tsx +39 -39
  354. package/src/components/NSID.tsx +159 -159
  355. package/src/components/NSInfo.tsx +50 -50
  356. package/src/components/NSLabel.module.css +25 -25
  357. package/src/components/NSLabel.tsx +47 -47
  358. package/src/components/NSLabelErrorNotifier.module.css +2 -2
  359. package/src/components/NSLabelErrorNotifier.tsx +35 -35
  360. package/src/components/NSLabelSensitive.module.css +9 -9
  361. package/src/components/NSLabelSensitive.tsx +85 -85
  362. package/src/components/NSLayout.module.css +23 -23
  363. package/src/components/NSLayout.tsx +140 -140
  364. package/src/components/NSLine.module.css +15 -15
  365. package/src/components/NSLine.tsx +13 -13
  366. package/src/components/NSLineText.module.css +38 -38
  367. package/src/components/NSLineText.tsx +17 -17
  368. package/src/components/NSLink.module.css +36 -36
  369. package/src/components/NSLink.tsx +26 -26
  370. package/src/components/NSLinkBlue.tsx +22 -22
  371. package/src/components/NSLinkGreen.tsx +13 -13
  372. package/src/components/NSLinkRed.tsx +13 -13
  373. package/src/components/NSListGrouped.module.css +69 -69
  374. package/src/components/NSListGrouped.tsx +106 -106
  375. package/src/components/NSListProduct.tsx +78 -78
  376. package/src/components/NSLoading.module.css +10 -10
  377. package/src/components/NSLoading.tsx +43 -43
  378. package/src/components/NSMegaMenu.module.css +133 -133
  379. package/src/components/NSMegaMenu.tsx +188 -188
  380. package/src/components/NSMenuAction.module.css +88 -88
  381. package/src/components/NSMenuAction.tsx +106 -106
  382. package/src/components/NSMenuButton.module.css +44 -44
  383. package/src/components/NSMenuButton.tsx +197 -197
  384. package/src/components/NSNoData.module.css +11 -11
  385. package/src/components/NSNoData.tsx +24 -24
  386. package/src/components/NSPagination.module.css +86 -86
  387. package/src/components/NSPagination.tsx +182 -182
  388. package/src/components/NSPanel.module.css +19 -19
  389. package/src/components/NSPanel.tsx +24 -24
  390. package/src/components/NSPanelAccordion.module.css +4 -4
  391. package/src/components/NSPanelAccordion.tsx +51 -51
  392. package/src/components/NSProductSearch.module.css +73 -73
  393. package/src/components/NSProductSearch.tsx +193 -193
  394. package/src/components/NSProgressBar.module.css +38 -38
  395. package/src/components/NSProgressBar.tsx +29 -29
  396. package/src/components/NSRange.module.css +66 -66
  397. package/src/components/NSRange.tsx +83 -83
  398. package/src/components/NSRepeater.tsx +328 -328
  399. package/src/components/NSRepeaterNSBoxSchemaVariable.tsx +94 -94
  400. package/src/components/NSRepeaterNSTag.tsx +86 -86
  401. package/src/components/NSRow.module.css +17 -17
  402. package/src/components/NSRow.tsx +24 -24
  403. package/src/components/NSSection.module.css +4 -4
  404. package/src/components/NSSection.tsx +26 -26
  405. package/src/components/NSSectionCards.module.css +38 -38
  406. package/src/components/NSSectionCards.tsx +51 -51
  407. package/src/components/NSSectionTiles.module.css +10 -10
  408. package/src/components/NSSectionTiles.tsx +25 -25
  409. package/src/components/NSSectionTitle.tsx +19 -19
  410. package/src/components/NSSpace.tsx +28 -28
  411. package/src/components/NSSplitter.module.css +58 -58
  412. package/src/components/NSSplitter.tsx +95 -95
  413. package/src/components/NSTabPage.module.css +59 -59
  414. package/src/components/NSTabPage.tsx +122 -122
  415. package/src/components/NSTable.module.css +411 -411
  416. package/src/components/NSTable.tsx +1120 -1118
  417. package/src/components/NSTag.tsx +74 -74
  418. package/src/components/NSTile.module.css +76 -76
  419. package/src/components/NSTile.tsx +27 -27
  420. package/src/components/NSTimelineMonthly.module.css +71 -71
  421. package/src/components/NSTimelineMonthly.tsx +44 -44
  422. package/src/components/NSTitle.module.css +15 -15
  423. package/src/components/NSTitle.tsx +19 -19
  424. package/src/formatter/BackColorFormatter.tsx +23 -23
  425. package/src/formatter/BaseColumnFormatter.ts +18 -18
  426. package/src/formatter/BaseURLImageFormatter.tsx +33 -33
  427. package/src/formatter/BooleanFormatter.ts +22 -22
  428. package/src/formatter/BytesFormatter.tsx +15 -15
  429. package/src/formatter/DateFormatter.ts +22 -22
  430. package/src/formatter/DateTimeFormatter.ts +22 -22
  431. package/src/formatter/DurationFormatter.ts +13 -13
  432. package/src/formatter/EmailFormatter.tsx +21 -21
  433. package/src/formatter/EnumFormatter.ts +13 -13
  434. package/src/formatter/FloatFormatter.ts +23 -23
  435. package/src/formatter/ForeColorFormatter.tsx +24 -24
  436. package/src/formatter/IDFormatter.tsx +53 -53
  437. package/src/formatter/IPFormatter.ts +13 -13
  438. package/src/formatter/IntegerFormatter.ts +23 -23
  439. package/src/formatter/JsonFormatter.tsx +58 -58
  440. package/src/formatter/MoneyFormatter.ts +35 -35
  441. package/src/formatter/PercentFormatter.tsx +39 -39
  442. package/src/formatter/PhoneFormatter.tsx +21 -21
  443. package/src/formatter/SensitiveFormatter.tsx +33 -33
  444. package/src/formatter/StringFormatter.tsx +43 -43
  445. package/src/formatter/TimeFormatter.ts +21 -21
  446. package/src/formatter/URLFormatter.tsx +24 -24
  447. package/src/formatter/UnknowFormatter.ts +18 -18
  448. package/src/index.tsx +7 -7
  449. package/src/main.ts +258 -258
  450. package/src/pages/NSImplementing.module.css +35 -35
  451. package/src/pages/NSImplementing.tsx +32 -32
  452. package/src/pages/NSNotFoundPage.module.css +18 -18
  453. package/src/pages/NSNotFoundPage.tsx +14 -14
  454. package/src/pages/NSUpdating.module.css +35 -35
  455. package/src/pages/NSUpdating.tsx +32 -32
  456. package/src/props/IBackgroundProps.ts +5 -5
  457. package/src/props/IBaseComponentProps.ts +8 -8
  458. package/src/props/IHeaderIconProps.ts +10 -10
  459. package/src/props/IHeaderLeftProps.ts +6 -6
  460. package/src/props/IHeaderRightProps.ts +8 -8
  461. package/src/props/IImageProps.ts +4 -4
  462. package/src/props/ILinkProps.ts +4 -4
  463. package/src/props/IValidationNumberProps.ts +4 -4
  464. package/src/props/IValidationPrecisionProps.ts +3 -3
  465. package/src/props/IValidationProps.ts +9 -9
  466. package/src/props/IValidationRegexProps.ts +4 -4
  467. package/src/props/IValidationStringProps.ts +4 -4
  468. package/src/routing/NSNotifier.ts +114 -114
  469. package/src/routing/NSRouterMaker.tsx +20 -20
  470. package/src/routing/NSRouterMakerComponent.ts +5 -5
  471. package/src/routing/NSRouterMakerProps.ts +5 -5
  472. package/tsconfig.json +43 -43
@@ -1,24 +1,24 @@
1
- import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
-
3
- export class IntegerFormatter extends BaseColumnFormatter
4
- {
5
- constructor(width: string = "125px")
6
- {
7
- super();
8
- this.width = width;
9
- }
10
- override format(value: any): any
11
- {
12
- try
13
- {
14
- if (value != null)
15
- return (value as number).toLocaleString(undefined, {
16
- minimumFractionDigits: 0,
17
- maximumFractionDigits: 0
18
- });
19
- } catch (e)
20
- {
21
- }
22
- return value;
23
- }
1
+ import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
+
3
+ export class IntegerFormatter extends BaseColumnFormatter
4
+ {
5
+ constructor(width: string = "125px")
6
+ {
7
+ super();
8
+ this.width = width;
9
+ }
10
+ override format(value: any): any
11
+ {
12
+ try
13
+ {
14
+ if (value != null)
15
+ return (value as number).toLocaleString(undefined, {
16
+ minimumFractionDigits: 0,
17
+ maximumFractionDigits: 0
18
+ });
19
+ } catch (e)
20
+ {
21
+ }
22
+ return value;
23
+ }
24
24
  }
@@ -1,59 +1,59 @@
1
- import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
- import { TableColumnInfo, TableRowInfo } from "../main";
3
- import JsonView from "@uiw/react-json-view";
4
-
5
- export class JsonFormatter extends BaseColumnFormatter
6
- {
7
- constructor(width: string = "320px")
8
- {
9
- super();
10
- if (width)
11
- this.width = width;
12
- }
13
-
14
- private isJsonSerializable(v: unknown): boolean
15
- {
16
- try
17
- {
18
- JSON.stringify(v);
19
- return true;
20
- }
21
- catch
22
- {
23
- return false;
24
- }
25
- }
26
-
27
- override format(value: any, _: TableColumnInfo, __: TableRowInfo<any>, printable: boolean): any
28
- {
29
- let parsed = value;
30
-
31
- if (typeof value === "string")
32
- try
33
- {
34
- parsed = JSON.parse(value.trim());
35
- }
36
- catch
37
- {
38
- return value;
39
- }
40
-
41
- if (printable)
42
- return parsed;
43
-
44
- if (parsed === null || typeof parsed !== "object")
45
- return parsed;
46
-
47
- if (!this.isJsonSerializable(parsed))
48
- return value;
49
-
50
- try
51
- {
52
- return <JsonView value={parsed} />;
53
- }
54
- catch
55
- {
56
- return value;
57
- }
58
- }
1
+ import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
+ import { TableColumnInfo, TableRowInfo } from "../main";
3
+ import JsonView from "@uiw/react-json-view";
4
+
5
+ export class JsonFormatter extends BaseColumnFormatter
6
+ {
7
+ constructor(width: string = "320px")
8
+ {
9
+ super();
10
+ if (width)
11
+ this.width = width;
12
+ }
13
+
14
+ private isJsonSerializable(v: unknown): boolean
15
+ {
16
+ try
17
+ {
18
+ JSON.stringify(v);
19
+ return true;
20
+ }
21
+ catch
22
+ {
23
+ return false;
24
+ }
25
+ }
26
+
27
+ override format(value: any, _: TableColumnInfo, __: TableRowInfo<any>, printable: boolean): any
28
+ {
29
+ let parsed = value;
30
+
31
+ if (typeof value === "string")
32
+ try
33
+ {
34
+ parsed = JSON.parse(value.trim());
35
+ }
36
+ catch
37
+ {
38
+ return value;
39
+ }
40
+
41
+ if (printable)
42
+ return parsed;
43
+
44
+ if (parsed === null || typeof parsed !== "object")
45
+ return parsed;
46
+
47
+ if (!this.isJsonSerializable(parsed))
48
+ return value;
49
+
50
+ try
51
+ {
52
+ return <JsonView value={parsed} />;
53
+ }
54
+ catch
55
+ {
56
+ return value;
57
+ }
58
+ }
59
59
  }
@@ -1,36 +1,36 @@
1
- import { PriceOperation } from "namirasoft-core";
2
- import { BaseColumnFormatter } from "./BaseColumnFormatter";
3
-
4
- export class MoneyFormatter extends BaseColumnFormatter
5
- {
6
- private currency: string;
7
- private minimumFractionDigits: number;
8
- private maximumFractionDigits: number;
9
- constructor(width: string = "160px", currency: string = "$", minimumFractionDigits: number = 0, maximumFractionDigits: number = 2)
10
- {
11
- super();
12
- this.width = width;
13
- this.currency = currency;
14
- this.minimumFractionDigits = minimumFractionDigits;
15
- this.maximumFractionDigits = maximumFractionDigits;
16
- }
17
- override format(value: any): any
18
- {
19
- try
20
- {
21
- if (value != null)
22
- {
23
- return [
24
- this.currency?.trim() ?? "",
25
- PriceOperation.millicent_to_fiat(value as number, this.maximumFractionDigits).toLocaleString(undefined, {
26
- minimumFractionDigits: this.minimumFractionDigits,
27
- maximumFractionDigits: this.maximumFractionDigits
28
- })
29
- ].join(" ");
30
- }
31
- } catch (e)
32
- {
33
- }
34
- return value;
35
- }
1
+ import { PriceOperation } from "namirasoft-core";
2
+ import { BaseColumnFormatter } from "./BaseColumnFormatter";
3
+
4
+ export class MoneyFormatter extends BaseColumnFormatter
5
+ {
6
+ private currency: string;
7
+ private minimumFractionDigits: number;
8
+ private maximumFractionDigits: number;
9
+ constructor(width: string = "160px", currency: string = "$", minimumFractionDigits: number = 0, maximumFractionDigits: number = 2)
10
+ {
11
+ super();
12
+ this.width = width;
13
+ this.currency = currency;
14
+ this.minimumFractionDigits = minimumFractionDigits;
15
+ this.maximumFractionDigits = maximumFractionDigits;
16
+ }
17
+ override format(value: any): any
18
+ {
19
+ try
20
+ {
21
+ if (value != null)
22
+ {
23
+ return [
24
+ this.currency?.trim() ?? "",
25
+ PriceOperation.millicent_to_fiat(value as number, this.maximumFractionDigits).toLocaleString(undefined, {
26
+ minimumFractionDigits: this.minimumFractionDigits,
27
+ maximumFractionDigits: this.maximumFractionDigits
28
+ })
29
+ ].join(" ");
30
+ }
31
+ } catch (e)
32
+ {
33
+ }
34
+ return value;
35
+ }
36
36
  }
@@ -1,40 +1,40 @@
1
- import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
-
3
- export class PercentFormatter extends BaseColumnFormatter
4
- {
5
- private from_value?: number;
6
- private symbol: string = "%";
7
-
8
- constructor(from_value?: number, width: string = "120px")
9
- {
10
- super();
11
- this.from_value = from_value;
12
- this.width = width;
13
- }
14
-
15
- override format(value: any): any
16
- {
17
- try
18
- {
19
- if (value != null && !isNaN(Number(value)))
20
- {
21
- let percentage: number;
22
-
23
- if (this.from_value && this.from_value !== 0)
24
- percentage = (Number(value) / this.from_value) * 100;
25
- else
26
- percentage = Number(value);
27
-
28
- const formatted = percentage.toLocaleString(undefined, { minimumFractionDigits: 0, maximumFractionDigits: 2 });
29
-
30
- return formatted + this.symbol;
31
- }
32
- }
33
- catch (error)
34
- {
35
- console.error("Error in PercentFormatter:", error);
36
- }
37
-
38
- return value;
39
- }
1
+ import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
+
3
+ export class PercentFormatter extends BaseColumnFormatter
4
+ {
5
+ private from_value?: number;
6
+ private symbol: string = "%";
7
+
8
+ constructor(from_value?: number, width: string = "120px")
9
+ {
10
+ super();
11
+ this.from_value = from_value;
12
+ this.width = width;
13
+ }
14
+
15
+ override format(value: any): any
16
+ {
17
+ try
18
+ {
19
+ if (value != null && !isNaN(Number(value)))
20
+ {
21
+ let percentage: number;
22
+
23
+ if (this.from_value && this.from_value !== 0)
24
+ percentage = (Number(value) / this.from_value) * 100;
25
+ else
26
+ percentage = Number(value);
27
+
28
+ const formatted = percentage.toLocaleString(undefined, { minimumFractionDigits: 0, maximumFractionDigits: 2 });
29
+
30
+ return formatted + this.symbol;
31
+ }
32
+ }
33
+ catch (error)
34
+ {
35
+ console.error("Error in PercentFormatter:", error);
36
+ }
37
+
38
+ return value;
39
+ }
40
40
  }
@@ -1,22 +1,22 @@
1
- import { TableColumnInfo, TableRowInfo } from "../main";
2
- import { BaseColumnFormatter } from "./BaseColumnFormatter";
3
- import { BaseURLImageFormatter } from "./BaseURLImageFormatter";
4
-
5
- export class PhoneFormatter extends BaseColumnFormatter
6
- {
7
- private formatter: BaseURLImageFormatter = new BaseURLImageFormatter();
8
- constructor(width: string = "150px")
9
- {
10
- super();
11
- this.onclick_overrided = true;
12
- this.width = width;
13
- }
14
- override format(value: any, column: TableColumnInfo, row: TableRowInfo<any>, printable: boolean): any
15
- {
16
- return this.formatter.format({
17
- text: value,
18
- href: `tel:${value}`,
19
- image: { url: "https://static.namirasoft.com/image/concept/type/phone.png", alt: "phone" }
20
- }, column, row, printable);
21
- }
1
+ import { TableColumnInfo, TableRowInfo } from "../main";
2
+ import { BaseColumnFormatter } from "./BaseColumnFormatter";
3
+ import { BaseURLImageFormatter } from "./BaseURLImageFormatter";
4
+
5
+ export class PhoneFormatter extends BaseColumnFormatter
6
+ {
7
+ private formatter: BaseURLImageFormatter = new BaseURLImageFormatter();
8
+ constructor(width: string = "150px")
9
+ {
10
+ super();
11
+ this.onclick_overrided = true;
12
+ this.width = width;
13
+ }
14
+ override format(value: any, column: TableColumnInfo, row: TableRowInfo<any>, printable: boolean): any
15
+ {
16
+ return this.formatter.format({
17
+ text: value,
18
+ href: `tel:${value}`,
19
+ image: { url: "https://static.namirasoft.com/image/concept/type/phone.png", alt: "phone" }
20
+ }, column, row, printable);
21
+ }
22
22
  }
@@ -1,34 +1,34 @@
1
- import NSLabelSensitive from "../components/NSLabelSensitive";
2
- import { TableColumnInfo, TableRowInfo } from "../main";
3
- import { BaseColumnFormatter } from "./BaseColumnFormatter";
4
-
5
- export class SensitiveFormatter<RowType = any> extends BaseColumnFormatter
6
- {
7
- decryptor: (value: string) => Promise<string>;
8
- isSensitive: (col: TableColumnInfo, row: TableRowInfo<RowType>) => boolean;
9
-
10
- constructor(decryptor: (value: string) => Promise<string>, isSensitive: (col: TableColumnInfo, row: TableRowInfo<RowType>) => boolean, width: string = "240px")
11
- {
12
- super();
13
- this.decryptor = decryptor;
14
- this.isSensitive = isSensitive;
15
- this.width = width;
16
- }
17
- override format(value: any, col: TableColumnInfo, row: TableRowInfo<RowType>, printable: boolean): any
18
- {
19
- try
20
- {
21
- if (!printable)
22
- return (
23
- <NSLabelSensitive
24
- value={value}
25
- sensitive={this.isSensitive(col, row)}
26
- decryptor={this.decryptor}
27
- />
28
- );
29
- }
30
- catch (error) { }
31
-
32
- return value;
33
- }
1
+ import NSLabelSensitive from "../components/NSLabelSensitive";
2
+ import { TableColumnInfo, TableRowInfo } from "../main";
3
+ import { BaseColumnFormatter } from "./BaseColumnFormatter";
4
+
5
+ export class SensitiveFormatter<RowType = any> extends BaseColumnFormatter
6
+ {
7
+ decryptor: (value: string) => Promise<string>;
8
+ isSensitive: (col: TableColumnInfo, row: TableRowInfo<RowType>) => boolean;
9
+
10
+ constructor(decryptor: (value: string) => Promise<string>, isSensitive: (col: TableColumnInfo, row: TableRowInfo<RowType>) => boolean, width: string = "240px")
11
+ {
12
+ super();
13
+ this.decryptor = decryptor;
14
+ this.isSensitive = isSensitive;
15
+ this.width = width;
16
+ }
17
+ override format(value: any, col: TableColumnInfo, row: TableRowInfo<RowType>, printable: boolean): any
18
+ {
19
+ try
20
+ {
21
+ if (!printable)
22
+ return (
23
+ <NSLabelSensitive
24
+ value={value}
25
+ sensitive={this.isSensitive(col, row)}
26
+ decryptor={this.decryptor}
27
+ />
28
+ );
29
+ }
30
+ catch (error) { }
31
+
32
+ return value;
33
+ }
34
34
  }
@@ -1,44 +1,44 @@
1
- import { NamingConvention } from "namirasoft-core";
2
- import { BaseColumnFormatter } from "./BaseColumnFormatter";
3
-
4
- export enum StringFormatterSizeType
5
- {
6
- Word = "75px",
7
- TwoWords = "150px",
8
- FullName = "225px",
9
- Sentence = "350px",
10
- Description = "500px",
11
- }
12
-
13
- export class StringFormatter extends BaseColumnFormatter
14
- {
15
- static toHTML(value: string | null | undefined)
16
- {
17
- value = value?.trim() ?? "";
18
- let toks = value.split(/(\n|\\n|<br>|<br\s*\/>)/gm);
19
- toks = toks.filter(x => x.replace(/(\n|\\n|<br>|<br\s*\/>)/gm, "").trim().length > 0);
20
- if (toks.length === 1)
21
- return value;
22
- let ans = [];
23
- for (let i = 0; i < toks.length; i++)
24
- {
25
- if (i > 0)
26
- ans.push(<br key={i} />);
27
- ans.push(toks[i].trim());
28
- }
29
- return ans;
30
- }
31
- private naming: NamingConvention | null;
32
- constructor(width: string = StringFormatterSizeType.Sentence, naming: NamingConvention | null = null)
33
- {
34
- super();
35
- this.width = width;
36
- this.naming = naming;
37
- }
38
- override format(value: any): any
39
- {
40
- if (this.naming)
41
- value = NamingConvention.auto.convert(value, this.naming);
42
- return value;
43
- }
1
+ import { NamingConvention } from "namirasoft-core";
2
+ import { BaseColumnFormatter } from "./BaseColumnFormatter";
3
+
4
+ export enum StringFormatterSizeType
5
+ {
6
+ Word = "75px",
7
+ TwoWords = "150px",
8
+ FullName = "225px",
9
+ Sentence = "350px",
10
+ Description = "500px",
11
+ }
12
+
13
+ export class StringFormatter extends BaseColumnFormatter
14
+ {
15
+ static toHTML(value: string | null | undefined)
16
+ {
17
+ value = value?.trim() ?? "";
18
+ let toks = value.split(/(\n|\\n|<br>|<br\s*\/>)/gm);
19
+ toks = toks.filter(x => x.replace(/(\n|\\n|<br>|<br\s*\/>)/gm, "").trim().length > 0);
20
+ if (toks.length === 1)
21
+ return value;
22
+ let ans = [];
23
+ for (let i = 0; i < toks.length; i++)
24
+ {
25
+ if (i > 0)
26
+ ans.push(<br key={i} />);
27
+ ans.push(toks[i].trim());
28
+ }
29
+ return ans;
30
+ }
31
+ private naming: NamingConvention | null;
32
+ constructor(width: string = StringFormatterSizeType.Sentence, naming: NamingConvention | null = null)
33
+ {
34
+ super();
35
+ this.width = width;
36
+ this.naming = naming;
37
+ }
38
+ override format(value: any): any
39
+ {
40
+ if (this.naming)
41
+ value = NamingConvention.auto.convert(value, this.naming);
42
+ return value;
43
+ }
44
44
  }
@@ -1,22 +1,22 @@
1
- import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
-
3
- export class TimeFormatter extends BaseColumnFormatter
4
- {
5
- constructor(width: string = "95px")
6
- {
7
- super();
8
- this.width = width;
9
- }
10
- override format(value: any): any
11
- {
12
- if (value)
13
- try
14
- {
15
- let date = new Date(value);
16
- return date.toLocaleTimeString();
17
- } catch (e)
18
- {
19
- }
20
- return value;
21
- }
1
+ import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
+
3
+ export class TimeFormatter extends BaseColumnFormatter
4
+ {
5
+ constructor(width: string = "95px")
6
+ {
7
+ super();
8
+ this.width = width;
9
+ }
10
+ override format(value: any): any
11
+ {
12
+ if (value)
13
+ try
14
+ {
15
+ let date = new Date(value);
16
+ return date.toLocaleTimeString();
17
+ } catch (e)
18
+ {
19
+ }
20
+ return value;
21
+ }
22
22
  }
@@ -1,25 +1,25 @@
1
- import { HTMLAttributeAnchorTarget } from "react";
2
- import { TableColumnInfo, TableRowInfo } from "../main";
3
- import { BaseColumnFormatter } from "./BaseColumnFormatter";
4
- import { BaseURLImageFormatter } from "./BaseURLImageFormatter";
5
-
6
- export class URLFormatter extends BaseColumnFormatter
7
- {
8
- private formatter: BaseURLImageFormatter;
9
- constructor(target: HTMLAttributeAnchorTarget = "_blank", width: string = "250px")
10
- {
11
- super();
12
- this.onclick_overrided = true;
13
- this.width = width;
14
- this.formatter = new BaseURLImageFormatter(target, width);
15
- }
16
- override format(value: any, column: TableColumnInfo, row: TableRowInfo<any>, printable: boolean): any
17
- {
18
- const href = value && !/^https?:\/\//i.test(value) ? `https://${value}` : value;
19
- return this.formatter.format({
20
- text: value,
21
- href: href,
22
- image: { url: "https://static.namirasoft.com/image/concept/type/url.png", alt: "url" }
23
- }, column, row, printable);
24
- }
1
+ import { HTMLAttributeAnchorTarget } from "react";
2
+ import { TableColumnInfo, TableRowInfo } from "../main";
3
+ import { BaseColumnFormatter } from "./BaseColumnFormatter";
4
+ import { BaseURLImageFormatter } from "./BaseURLImageFormatter";
5
+
6
+ export class URLFormatter extends BaseColumnFormatter
7
+ {
8
+ private formatter: BaseURLImageFormatter;
9
+ constructor(target: HTMLAttributeAnchorTarget = "_blank", width: string = "250px")
10
+ {
11
+ super();
12
+ this.onclick_overrided = true;
13
+ this.width = width;
14
+ this.formatter = new BaseURLImageFormatter(target, width);
15
+ }
16
+ override format(value: any, column: TableColumnInfo, row: TableRowInfo<any>, printable: boolean): any
17
+ {
18
+ const href = value && !/^https?:\/\//i.test(value) ? `https://${value}` : value;
19
+ return this.formatter.format({
20
+ text: value,
21
+ href: href,
22
+ image: { url: "https://static.namirasoft.com/image/concept/type/url.png", alt: "url" }
23
+ }, column, row, printable);
24
+ }
25
25
  }
@@ -1,19 +1,19 @@
1
- import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
-
3
- export class UnknowFormatter extends BaseColumnFormatter
4
- {
5
- private formatter: (value: any) => any;
6
- constructor(formatter: (value: any) => any, width?: string)
7
- {
8
- super();
9
- this.formatter = formatter;
10
- if (width)
11
- this.width = width;
12
- }
13
- override format(value: any): any
14
- {
15
- if (this.formatter)
16
- value = this.formatter(value);
17
- return value;
18
- }
1
+ import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
+
3
+ export class UnknowFormatter extends BaseColumnFormatter
4
+ {
5
+ private formatter: (value: any) => any;
6
+ constructor(formatter: (value: any) => any, width?: string)
7
+ {
8
+ super();
9
+ this.formatter = formatter;
10
+ if (width)
11
+ this.width = width;
12
+ }
13
+ override format(value: any): any
14
+ {
15
+ if (this.formatter)
16
+ value = this.formatter(value);
17
+ return value;
18
+ }
19
19
  }
package/src/index.tsx CHANGED
@@ -1,8 +1,8 @@
1
- import ReactDOM from 'react-dom/client';
2
- import './index.css';
3
- import { App } from './App';
4
-
5
- const root = ReactDOM.createRoot(
6
- document.getElementById('root') as HTMLElement
7
- );
1
+ import ReactDOM from 'react-dom/client';
2
+ import './index.css';
3
+ import { App } from './App';
4
+
5
+ const root = ReactDOM.createRoot(
6
+ document.getElementById('root') as HTMLElement
7
+ );
8
8
  root.render(<App />);