namirasoft-site-react 1.5.27 → 1.5.29

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 (365) 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.js +3 -25
  8. package/dist/App.js.map +1 -1
  9. package/dist/components/NSBanner.module.css +47 -47
  10. package/dist/components/NSBarAction.module.css +91 -91
  11. package/dist/components/NSBarAlert.module.css +79 -79
  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 +24 -24
  16. package/dist/components/NSBoxBoolean.js +1 -1
  17. package/dist/components/NSBoxBoolean.js.map +1 -1
  18. package/dist/components/NSBoxBoolean.module.css +73 -73
  19. package/dist/components/NSBoxDate.module.css +4 -4
  20. package/dist/components/NSBoxDateRangeBase.module.css +73 -73
  21. package/dist/components/NSBoxDateTime.module.css +4 -4
  22. package/dist/components/NSBoxDuration.module.css +4 -4
  23. package/dist/components/NSBoxFile.module.css +10 -10
  24. package/dist/components/NSBoxInteger.module.css +16 -16
  25. package/dist/components/NSBoxOptions.module.css +53 -53
  26. package/dist/components/NSBoxPhone.module.css +35 -35
  27. package/dist/components/NSBoxRadio.module.css +33 -33
  28. package/dist/components/NSBoxSchemaBase.module.css +17 -17
  29. package/dist/components/NSBoxSchemaVariable.module.css +16 -16
  30. package/dist/components/NSBoxTextArea.module.css +12 -12
  31. package/dist/components/NSBoxTime.module.css +4 -4
  32. package/dist/components/NSButton.module.css +57 -57
  33. package/dist/components/NSButtonBlue.module.css +4 -4
  34. package/dist/components/NSButtonGreen.module.css +4 -4
  35. package/dist/components/NSButtonRed.module.css +4 -4
  36. package/dist/components/NSCard.module.css +113 -113
  37. package/dist/components/NSCardScreenshot.module.css +41 -41
  38. package/dist/components/NSColumn.module.css +16 -16
  39. package/dist/components/NSCopyBox.module.css +39 -39
  40. package/dist/components/NSDialog.module.css +105 -105
  41. package/dist/components/NSDialogPageSelection.module.css +103 -103
  42. package/dist/components/NSDownTimer.module.css +55 -55
  43. package/dist/components/NSDownload.module.css +46 -46
  44. package/dist/components/NSElectronicCard.module.css +60 -60
  45. package/dist/components/NSEntityCardBackground.module.css +27 -27
  46. package/dist/components/NSFilterBox.module.css +27 -27
  47. package/dist/components/NSFilterBoxItems.module.css +15 -15
  48. package/dist/components/NSFilterItem.module.css +24 -24
  49. package/dist/components/NSFooter.module.css +140 -140
  50. package/dist/components/NSGauge.module.css +67 -67
  51. package/dist/components/NSGaugeDate.module.css +57 -57
  52. package/dist/components/NSGaugeNumber.module.css +66 -66
  53. package/dist/components/NSHeader.module.css +316 -316
  54. package/dist/components/NSHeaderScreenshot.module.css +35 -35
  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 +94 -94
  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.d.ts +3 -0
  75. package/dist/components/NSReorderDialog.js +10 -4
  76. package/dist/components/NSReorderDialog.js.map +1 -1
  77. package/dist/components/NSReorderDialog.module.css +53 -49
  78. package/dist/components/NSRow.module.css +17 -17
  79. package/dist/components/NSSection.module.css +4 -4
  80. package/dist/components/NSSectionCards.module.css +38 -38
  81. package/dist/components/NSSectionTiles.module.css +10 -10
  82. package/dist/components/NSSplitter.d.ts +3 -0
  83. package/dist/components/NSSplitter.js +25 -2
  84. package/dist/components/NSSplitter.js.map +1 -1
  85. package/dist/components/NSSplitter.module.css +59 -59
  86. package/dist/components/NSTabPage.module.css +59 -59
  87. package/dist/components/NSTable.js +23 -23
  88. package/dist/components/NSTable.module.css +376 -374
  89. package/dist/components/NSTableChart.module.css +119 -119
  90. package/dist/components/NSTile.module.css +76 -76
  91. package/dist/components/NSTimelineMonthly.module.css +71 -71
  92. package/dist/components/NSTitle.module.css +15 -15
  93. package/dist/index.css +5 -5
  94. package/dist/pages/NSImplementing.module.css +35 -35
  95. package/dist/pages/NSNotFoundPage.module.css +18 -18
  96. package/dist/pages/NSUpdating.module.css +35 -35
  97. package/package.json +86 -86
  98. package/public/index.html +38 -38
  99. package/src/App.css +33 -33
  100. package/src/App.tsx +850 -870
  101. package/src/BrowserDetector.ts +109 -109
  102. package/src/Color.tsx +10 -10
  103. package/src/CopyToClipboard.ts +6 -6
  104. package/src/EncryptionOperation.ts +98 -98
  105. package/src/KeyOperation.ts +109 -109
  106. package/src/LinkOperation.ts +101 -101
  107. package/src/NSBoxBuilder.tsx +922 -922
  108. package/src/ProductCacheService.ts +36 -36
  109. package/src/Validator.ts +199 -199
  110. package/src/components/INSBox.tsx +7 -7
  111. package/src/components/NSBanner.module.css +47 -47
  112. package/src/components/NSBanner.tsx +80 -80
  113. package/src/components/NSBarAction.module.css +91 -91
  114. package/src/components/NSBarAction.tsx +95 -95
  115. package/src/components/NSBarAlert.module.css +79 -79
  116. package/src/components/NSBarAlert.tsx +35 -35
  117. package/src/components/NSBarNotification.module.css +34 -34
  118. package/src/components/NSBarNotification.tsx +89 -89
  119. package/src/components/NSBarTitle.module.css +9 -9
  120. package/src/components/NSBarTitle.tsx +23 -23
  121. package/src/components/NSBox.module.css +87 -87
  122. package/src/components/NSBox.tsx +19 -19
  123. package/src/components/NSBoxBaseCombo.module.css +24 -24
  124. package/src/components/NSBoxBaseCombo.tsx +501 -501
  125. package/src/components/NSBoxBaseLayout.tsx +163 -163
  126. package/src/components/NSBoxBaseLayoutRecursive.tsx +59 -59
  127. package/src/components/NSBoxBoolean.module.css +73 -73
  128. package/src/components/NSBoxBoolean.tsx +151 -152
  129. package/src/components/NSBoxBooleans.tsx +181 -181
  130. package/src/components/NSBoxColor.tsx +107 -107
  131. package/src/components/NSBoxCombo.tsx +95 -95
  132. package/src/components/NSBoxDate.module.css +4 -4
  133. package/src/components/NSBoxDate.tsx +144 -144
  134. package/src/components/NSBoxDateRange.tsx +88 -88
  135. package/src/components/NSBoxDateRangeBase.module.css +73 -73
  136. package/src/components/NSBoxDateRangeBase.tsx +236 -236
  137. package/src/components/NSBoxDateTime.module.css +4 -4
  138. package/src/components/NSBoxDateTime.tsx +136 -136
  139. package/src/components/NSBoxDateTimeRange.tsx +66 -66
  140. package/src/components/NSBoxDouble.tsx +110 -110
  141. package/src/components/NSBoxDuration.module.css +4 -4
  142. package/src/components/NSBoxDuration.tsx +107 -107
  143. package/src/components/NSBoxDynamic.tsx +73 -73
  144. package/src/components/NSBoxDynamics.tsx +68 -68
  145. package/src/components/NSBoxEmail.tsx +117 -117
  146. package/src/components/NSBoxEntity.tsx +180 -180
  147. package/src/components/NSBoxEnum.tsx +113 -113
  148. package/src/components/NSBoxFile.module.css +10 -10
  149. package/src/components/NSBoxFile.tsx +106 -106
  150. package/src/components/NSBoxFilePath.tsx +106 -106
  151. package/src/components/NSBoxFont.tsx +107 -107
  152. package/src/components/NSBoxIPV4.tsx +107 -107
  153. package/src/components/NSBoxIPV4Range.tsx +107 -107
  154. package/src/components/NSBoxIPV6.tsx +104 -104
  155. package/src/components/NSBoxIPV6Range.tsx +107 -107
  156. package/src/components/NSBoxInteger.module.css +16 -16
  157. package/src/components/NSBoxInteger.tsx +126 -126
  158. package/src/components/NSBoxMoney.tsx +115 -115
  159. package/src/components/NSBoxOptions.module.css +53 -53
  160. package/src/components/NSBoxOptions.tsx +182 -182
  161. package/src/components/NSBoxPhone.module.css +35 -35
  162. package/src/components/NSBoxPhone.tsx +120 -120
  163. package/src/components/NSBoxRadio.module.css +33 -33
  164. package/src/components/NSBoxRadio.tsx +104 -104
  165. package/src/components/NSBoxSchemaBase.module.css +17 -17
  166. package/src/components/NSBoxSchemaBase.tsx +562 -562
  167. package/src/components/NSBoxSchemaVariable.module.css +16 -16
  168. package/src/components/NSBoxSchemaVariable.tsx +262 -262
  169. package/src/components/NSBoxSearch.tsx +112 -112
  170. package/src/components/NSBoxSensitive.tsx +133 -133
  171. package/src/components/NSBoxString.tsx +106 -106
  172. package/src/components/NSBoxTextArea.module.css +12 -12
  173. package/src/components/NSBoxTextArea.tsx +136 -136
  174. package/src/components/NSBoxTime.module.css +4 -4
  175. package/src/components/NSBoxTime.tsx +106 -106
  176. package/src/components/NSBoxTimeRange.tsx +220 -220
  177. package/src/components/NSBoxTimeZone.tsx +122 -122
  178. package/src/components/NSBoxURL.tsx +117 -117
  179. package/src/components/NSBoxVersion.tsx +107 -107
  180. package/src/components/NSButton.module.css +57 -57
  181. package/src/components/NSButton.tsx +74 -74
  182. package/src/components/NSButtonBlue.module.css +4 -4
  183. package/src/components/NSButtonBlue.tsx +29 -29
  184. package/src/components/NSButtonGreen.module.css +4 -4
  185. package/src/components/NSButtonGreen.tsx +29 -29
  186. package/src/components/NSButtonRed.module.css +4 -4
  187. package/src/components/NSButtonRed.tsx +29 -29
  188. package/src/components/NSCard.module.css +113 -113
  189. package/src/components/NSCard.tsx +67 -67
  190. package/src/components/NSCardScreenshot.module.css +41 -41
  191. package/src/components/NSCardScreenshot.tsx +31 -31
  192. package/src/components/NSChartBar.tsx +134 -134
  193. package/src/components/NSChartDoughnut.tsx +114 -114
  194. package/src/components/NSChartLine.tsx +110 -110
  195. package/src/components/NSChartPie.tsx +105 -105
  196. package/src/components/NSChartRange.tsx +14 -14
  197. package/src/components/NSColumn.module.css +16 -16
  198. package/src/components/NSColumn.tsx +24 -24
  199. package/src/components/NSCopy.tsx +95 -95
  200. package/src/components/NSCopyBox.module.css +39 -39
  201. package/src/components/NSCopyBox.tsx +53 -53
  202. package/src/components/NSDialog.module.css +105 -105
  203. package/src/components/NSDialog.tsx +72 -72
  204. package/src/components/NSDialogBox.tsx +38 -38
  205. package/src/components/NSDialogBoxDate.tsx +28 -28
  206. package/src/components/NSDialogBoxDateTime.tsx +28 -28
  207. package/src/components/NSDialogBoxPhone.tsx +28 -28
  208. package/src/components/NSDialogBoxString.tsx +28 -28
  209. package/src/components/NSDialogDelete.tsx +36 -36
  210. package/src/components/NSDialogInfo.tsx +49 -49
  211. package/src/components/NSDialogPageSelection.module.css +103 -103
  212. package/src/components/NSDialogPageSelection.tsx +233 -233
  213. package/src/components/NSDownTimer.module.css +55 -55
  214. package/src/components/NSDownTimer.tsx +91 -91
  215. package/src/components/NSDownload.module.css +46 -46
  216. package/src/components/NSDownload.tsx +69 -69
  217. package/src/components/NSElectronicCard.module.css +60 -60
  218. package/src/components/NSElectronicCard.tsx +46 -46
  219. package/src/components/NSEntityCardBackground.module.css +27 -27
  220. package/src/components/NSEntityCardBackground.tsx +36 -36
  221. package/src/components/NSFilterBox.module.css +27 -27
  222. package/src/components/NSFilterBox.tsx +477 -477
  223. package/src/components/NSFilterBoxItems.module.css +15 -15
  224. package/src/components/NSFilterBoxItems.tsx +52 -52
  225. package/src/components/NSFilterItem.module.css +24 -24
  226. package/src/components/NSFilterItem.tsx +27 -27
  227. package/src/components/NSFooter.module.css +140 -140
  228. package/src/components/NSFooter.tsx +321 -321
  229. package/src/components/NSGauge.module.css +67 -67
  230. package/src/components/NSGauge.tsx +52 -52
  231. package/src/components/NSGaugeDate.module.css +57 -57
  232. package/src/components/NSGaugeDate.tsx +125 -125
  233. package/src/components/NSGaugeNumber.module.css +66 -66
  234. package/src/components/NSGaugeNumber.tsx +93 -93
  235. package/src/components/NSHeader.module.css +316 -316
  236. package/src/components/NSHeader.tsx +337 -337
  237. package/src/components/NSHeaderScreenshot.module.css +35 -35
  238. package/src/components/NSHeaderScreenshot.tsx +39 -39
  239. package/src/components/NSID.tsx +178 -178
  240. package/src/components/NSInfo.tsx +50 -50
  241. package/src/components/NSLabel.module.css +25 -25
  242. package/src/components/NSLabel.tsx +47 -47
  243. package/src/components/NSLabelErrorNotifier.module.css +2 -2
  244. package/src/components/NSLabelErrorNotifier.tsx +35 -35
  245. package/src/components/NSLabelSensitive.module.css +9 -9
  246. package/src/components/NSLabelSensitive.tsx +101 -101
  247. package/src/components/NSLayout.module.css +22 -22
  248. package/src/components/NSLayout.tsx +143 -143
  249. package/src/components/NSLine.module.css +15 -15
  250. package/src/components/NSLine.tsx +13 -13
  251. package/src/components/NSLineText.module.css +38 -38
  252. package/src/components/NSLineText.tsx +17 -17
  253. package/src/components/NSLink.module.css +36 -36
  254. package/src/components/NSLink.tsx +26 -26
  255. package/src/components/NSLinkBlue.tsx +22 -22
  256. package/src/components/NSLinkGreen.tsx +13 -13
  257. package/src/components/NSLinkRed.tsx +13 -13
  258. package/src/components/NSListGrouped.module.css +69 -69
  259. package/src/components/NSListGrouped.tsx +106 -106
  260. package/src/components/NSListProduct.tsx +78 -78
  261. package/src/components/NSLoading.module.css +10 -10
  262. package/src/components/NSLoading.tsx +43 -43
  263. package/src/components/NSMegaMenu.module.css +133 -133
  264. package/src/components/NSMegaMenu.tsx +188 -188
  265. package/src/components/NSMenuAction.module.css +88 -88
  266. package/src/components/NSMenuAction.tsx +106 -106
  267. package/src/components/NSMenuButton.module.css +44 -44
  268. package/src/components/NSMenuButton.tsx +198 -198
  269. package/src/components/NSNoData.module.css +11 -11
  270. package/src/components/NSNoData.tsx +24 -24
  271. package/src/components/NSPagination.module.css +94 -94
  272. package/src/components/NSPagination.tsx +182 -182
  273. package/src/components/NSPanel.module.css +28 -28
  274. package/src/components/NSPanel.tsx +26 -26
  275. package/src/components/NSPanelAccordion.module.css +4 -4
  276. package/src/components/NSPanelAccordion.tsx +51 -51
  277. package/src/components/NSProductSearch.module.css +73 -73
  278. package/src/components/NSProductSearch.tsx +193 -193
  279. package/src/components/NSProgressBar.module.css +38 -38
  280. package/src/components/NSProgressBar.tsx +29 -29
  281. package/src/components/NSRange.module.css +66 -66
  282. package/src/components/NSRange.tsx +83 -83
  283. package/src/components/NSReorderDialog.module.css +53 -49
  284. package/src/components/NSReorderDialog.tsx +203 -184
  285. package/src/components/NSRepeater.tsx +327 -327
  286. package/src/components/NSRepeaterNSBoxSchemaVariable.tsx +96 -96
  287. package/src/components/NSRepeaterNSTag.tsx +86 -86
  288. package/src/components/NSRow.module.css +17 -17
  289. package/src/components/NSRow.tsx +24 -24
  290. package/src/components/NSSection.module.css +4 -4
  291. package/src/components/NSSection.tsx +26 -26
  292. package/src/components/NSSectionCards.module.css +38 -38
  293. package/src/components/NSSectionCards.tsx +51 -51
  294. package/src/components/NSSectionTiles.module.css +10 -10
  295. package/src/components/NSSectionTiles.tsx +25 -25
  296. package/src/components/NSSectionTitle.tsx +19 -19
  297. package/src/components/NSSortDialog.tsx +124 -124
  298. package/src/components/NSSpace.tsx +28 -28
  299. package/src/components/NSSplitter.module.css +59 -59
  300. package/src/components/NSSplitter.tsx +244 -211
  301. package/src/components/NSTabPage.module.css +59 -59
  302. package/src/components/NSTabPage.tsx +122 -122
  303. package/src/components/NSTable.module.css +376 -374
  304. package/src/components/NSTable.tsx +1451 -1451
  305. package/src/components/NSTableChart.module.css +119 -119
  306. package/src/components/NSTableChart.tsx +732 -732
  307. package/src/components/NSTag.tsx +74 -74
  308. package/src/components/NSTile.module.css +76 -76
  309. package/src/components/NSTile.tsx +27 -27
  310. package/src/components/NSTimelineMonthly.module.css +71 -71
  311. package/src/components/NSTimelineMonthly.tsx +44 -44
  312. package/src/components/NSTitle.module.css +15 -15
  313. package/src/components/NSTitle.tsx +19 -19
  314. package/src/css.d.ts +13 -13
  315. package/src/formatter/BackColorFormatter.tsx +23 -23
  316. package/src/formatter/BaseColumnFormatter.ts +86 -86
  317. package/src/formatter/BaseURLImageFormatter.tsx +37 -37
  318. package/src/formatter/BooleanFormatter.ts +26 -26
  319. package/src/formatter/BytesFormatter.tsx +19 -19
  320. package/src/formatter/DateFormatter.ts +26 -26
  321. package/src/formatter/DateTimeFormatter.ts +26 -26
  322. package/src/formatter/DurationFormatter.ts +17 -17
  323. package/src/formatter/EmailFormatter.tsx +25 -25
  324. package/src/formatter/EnumFormatter.ts +17 -17
  325. package/src/formatter/FloatFormatter.ts +27 -27
  326. package/src/formatter/ForeColorFormatter.tsx +24 -24
  327. package/src/formatter/IDFormatter.tsx +58 -58
  328. package/src/formatter/IPFormatter.ts +39 -39
  329. package/src/formatter/IntegerFormatter.ts +27 -27
  330. package/src/formatter/JsonFormatter.tsx +75 -75
  331. package/src/formatter/MoneyFormatter.ts +39 -39
  332. package/src/formatter/PercentFormatter.tsx +43 -43
  333. package/src/formatter/PhoneFormatter.tsx +25 -25
  334. package/src/formatter/SensitiveFormatter.tsx +40 -40
  335. package/src/formatter/StringFormatter.tsx +49 -49
  336. package/src/formatter/TimeFormatter.ts +25 -25
  337. package/src/formatter/URLFormatter.tsx +28 -28
  338. package/src/formatter/UnknowFormatter.ts +22 -22
  339. package/src/index.css +5 -5
  340. package/src/index.tsx +7 -7
  341. package/src/main.ts +263 -263
  342. package/src/pages/NSImplementing.module.css +35 -35
  343. package/src/pages/NSImplementing.tsx +32 -32
  344. package/src/pages/NSNotFoundPage.module.css +18 -18
  345. package/src/pages/NSNotFoundPage.tsx +14 -14
  346. package/src/pages/NSUpdating.module.css +35 -35
  347. package/src/pages/NSUpdating.tsx +32 -32
  348. package/src/props/IBackgroundProps.ts +5 -5
  349. package/src/props/IBaseComponentProps.ts +8 -8
  350. package/src/props/IHeaderIconProps.ts +10 -10
  351. package/src/props/IHeaderLeftProps.ts +6 -6
  352. package/src/props/IHeaderRightProps.ts +8 -8
  353. package/src/props/IImageProps.ts +4 -4
  354. package/src/props/ILinkProps.ts +4 -4
  355. package/src/props/IValidationNumberProps.ts +4 -4
  356. package/src/props/IValidationPrecisionProps.ts +3 -3
  357. package/src/props/IValidationProps.ts +9 -9
  358. package/src/props/IValidationRegexProps.ts +4 -4
  359. package/src/props/IValidationStringProps.ts +4 -4
  360. package/src/routing/NSNotifier.ts +114 -114
  361. package/src/routing/NSRouterMaker.tsx +28 -28
  362. package/tsconfig.json +43 -43
  363. package/dist/components/NSListMenu.d.ts +0 -9
  364. package/dist/components/NSListMenu.js +0 -135
  365. package/dist/components/NSListMenu.js.map +0 -1
package/src/css.d.ts CHANGED
@@ -1,14 +1,14 @@
1
- let css_d = "";
2
-
3
- declare module "*.module.css" {
4
- const classes: { readonly [key: string]: string };
5
- export default classes;
6
- }
7
-
8
- declare module "*.module.scss" {
9
- const classes: { readonly [key: string]: string };
10
- export default classes;
11
- }
12
-
13
- declare module "*.css";
1
+ let css_d = "";
2
+
3
+ declare module "*.module.css" {
4
+ const classes: { readonly [key: string]: string };
5
+ export default classes;
6
+ }
7
+
8
+ declare module "*.module.scss" {
9
+ const classes: { readonly [key: string]: string };
10
+ export default classes;
11
+ }
12
+
13
+ declare module "*.css";
14
14
  declare module "*.scss";
@@ -1,24 +1,24 @@
1
- import { TableColumnInfo, TableRowInfo } from "../components/NSTable";
2
- import { BaseColumnFormatter } from "./BaseColumnFormatter";
3
-
4
- export class BackColorFormatter extends BaseColumnFormatter
5
- {
6
- private formatter: BaseColumnFormatter;
7
- private colors: { [value: string]: string }
8
- constructor(formatter: BaseColumnFormatter, colors: { [value: string]: string }, width?: string)
9
- {
10
- super();
11
- this.formatter = formatter;
12
- this.colors = colors;
13
- if (width)
14
- this.width = width;
15
- }
16
- override format(value: any, column: TableColumnInfo, row: TableRowInfo<any>, printable: boolean)
17
- {
18
- let formatted = this.formatter.format(value, column, row, printable);
19
- if (!printable)
20
- if (this.colors[value])
21
- return <span style={{ background: this.colors[value], borderRadius: "16px", width: "100px", textAlign: "center" }}> {formatted} </span>;
22
- return formatted;
23
- }
1
+ import { TableColumnInfo, TableRowInfo } from "../components/NSTable";
2
+ import { BaseColumnFormatter } from "./BaseColumnFormatter";
3
+
4
+ export class BackColorFormatter extends BaseColumnFormatter
5
+ {
6
+ private formatter: BaseColumnFormatter;
7
+ private colors: { [value: string]: string }
8
+ constructor(formatter: BaseColumnFormatter, colors: { [value: string]: string }, width?: string)
9
+ {
10
+ super();
11
+ this.formatter = formatter;
12
+ this.colors = colors;
13
+ if (width)
14
+ this.width = width;
15
+ }
16
+ override format(value: any, column: TableColumnInfo, row: TableRowInfo<any>, printable: boolean)
17
+ {
18
+ let formatted = this.formatter.format(value, column, row, printable);
19
+ if (!printable)
20
+ if (this.colors[value])
21
+ return <span style={{ background: this.colors[value], borderRadius: "16px", width: "100px", textAlign: "center" }}> {formatted} </span>;
22
+ return formatted;
23
+ }
24
24
  }
@@ -1,87 +1,87 @@
1
- import { BaseMetaColumn } from "namirasoft-core";
2
- import { TableColumnInfo, TableRowInfo } from "../components/NSTable";
3
-
4
- export abstract class BaseColumnFormatter
5
- {
6
- public width: string = "100px";
7
- public onclick_overrided: boolean = false;
8
- abstract format(value: any, column: TableColumnInfo, row: TableRowInfo<any>, printable: boolean): any;
9
-
10
- compare(a: any, b: any): number
11
- {
12
- return BaseColumnFormatter.smartCompare(a, b);
13
- }
14
-
15
- static isEmpty(v: any): boolean
16
- {
17
- return v === null || v === undefined || v === "";
18
- }
19
-
20
- static compareEmpty(a: any, b: any): number | null
21
- {
22
- const ae = BaseColumnFormatter.isEmpty(a);
23
- const be = BaseColumnFormatter.isEmpty(b);
24
- if (ae && be)
25
- return 0;
26
- if (ae)
27
- return 1;
28
- if (be)
29
- return -1;
30
- return null;
31
- }
32
-
33
- static numberCompare(a: any, b: any): number
34
- {
35
- const e = BaseColumnFormatter.compareEmpty(a, b);
36
- if (e !== null)
37
- return e;
38
- const na = Number(a);
39
- const nb = Number(b);
40
- if (isNaN(na) || isNaN(nb))
41
- return BaseColumnFormatter.stringCompare(a, b);
42
- return na - nb;
43
- }
44
-
45
- static dateCompare(a: any, b: any): number
46
- {
47
- const e = BaseColumnFormatter.compareEmpty(a, b);
48
- if (e !== null)
49
- return e;
50
- const ta = new Date(a).getTime();
51
- const tb = new Date(b).getTime();
52
- if (isNaN(ta) || isNaN(tb))
53
- return BaseColumnFormatter.stringCompare(a, b);
54
- return ta - tb;
55
- }
56
-
57
- static stringCompare(a: any, b: any): number
58
- {
59
- const e = BaseColumnFormatter.compareEmpty(a, b);
60
- if (e !== null)
61
- return e;
62
- return String(a).localeCompare(String(b));
63
- }
64
-
65
- static smartCompare(a: any, b: any): number
66
- {
67
- const e = BaseColumnFormatter.compareEmpty(a, b);
68
- if (e !== null)
69
- return e;
70
- const na = Number(a);
71
- const nb = Number(b);
72
- if (!isNaN(na) && !isNaN(nb))
73
- return na - nb;
74
- return String(a).localeCompare(String(b));
75
- }
76
-
77
- static getColumn(column: BaseMetaColumn, formatter: BaseColumnFormatter, group?: string, defaults?: { hidden?: boolean }): TableColumnInfo
78
- {
79
- return {
80
- index: 0,
81
- ...column,
82
- formatter,
83
- group,
84
- defaults
85
- };
86
- }
1
+ import { BaseMetaColumn } from "namirasoft-core";
2
+ import { TableColumnInfo, TableRowInfo } from "../components/NSTable";
3
+
4
+ export abstract class BaseColumnFormatter
5
+ {
6
+ public width: string = "100px";
7
+ public onclick_overrided: boolean = false;
8
+ abstract format(value: any, column: TableColumnInfo, row: TableRowInfo<any>, printable: boolean): any;
9
+
10
+ compare(a: any, b: any): number
11
+ {
12
+ return BaseColumnFormatter.smartCompare(a, b);
13
+ }
14
+
15
+ static isEmpty(v: any): boolean
16
+ {
17
+ return v === null || v === undefined || v === "";
18
+ }
19
+
20
+ static compareEmpty(a: any, b: any): number | null
21
+ {
22
+ const ae = BaseColumnFormatter.isEmpty(a);
23
+ const be = BaseColumnFormatter.isEmpty(b);
24
+ if (ae && be)
25
+ return 0;
26
+ if (ae)
27
+ return 1;
28
+ if (be)
29
+ return -1;
30
+ return null;
31
+ }
32
+
33
+ static numberCompare(a: any, b: any): number
34
+ {
35
+ const e = BaseColumnFormatter.compareEmpty(a, b);
36
+ if (e !== null)
37
+ return e;
38
+ const na = Number(a);
39
+ const nb = Number(b);
40
+ if (isNaN(na) || isNaN(nb))
41
+ return BaseColumnFormatter.stringCompare(a, b);
42
+ return na - nb;
43
+ }
44
+
45
+ static dateCompare(a: any, b: any): number
46
+ {
47
+ const e = BaseColumnFormatter.compareEmpty(a, b);
48
+ if (e !== null)
49
+ return e;
50
+ const ta = new Date(a).getTime();
51
+ const tb = new Date(b).getTime();
52
+ if (isNaN(ta) || isNaN(tb))
53
+ return BaseColumnFormatter.stringCompare(a, b);
54
+ return ta - tb;
55
+ }
56
+
57
+ static stringCompare(a: any, b: any): number
58
+ {
59
+ const e = BaseColumnFormatter.compareEmpty(a, b);
60
+ if (e !== null)
61
+ return e;
62
+ return String(a).localeCompare(String(b));
63
+ }
64
+
65
+ static smartCompare(a: any, b: any): number
66
+ {
67
+ const e = BaseColumnFormatter.compareEmpty(a, b);
68
+ if (e !== null)
69
+ return e;
70
+ const na = Number(a);
71
+ const nb = Number(b);
72
+ if (!isNaN(na) && !isNaN(nb))
73
+ return na - nb;
74
+ return String(a).localeCompare(String(b));
75
+ }
76
+
77
+ static getColumn(column: BaseMetaColumn, formatter: BaseColumnFormatter, group?: string, defaults?: { hidden?: boolean }): TableColumnInfo
78
+ {
79
+ return {
80
+ index: 0,
81
+ ...column,
82
+ formatter,
83
+ group,
84
+ defaults
85
+ };
86
+ }
87
87
  }
@@ -1,38 +1,38 @@
1
- import { HTMLAttributeAnchorTarget } from "react";
2
- import { TableColumnInfo, TableRowInfo } from "../main";
3
- import { BaseColumnFormatter } from "./BaseColumnFormatter";
4
-
5
- export class BaseURLImageFormatter extends BaseColumnFormatter
6
- {
7
- private target: HTMLAttributeAnchorTarget;
8
- constructor(target: HTMLAttributeAnchorTarget = "_blank", width: string = "250px")
9
- {
10
- super();
11
- this.target = target;
12
- this.width = width;
13
- }
14
- override format(value: {
15
- text: any,
16
- image: { url: string, alt: string },
17
- href: string
18
- }, _?: TableColumnInfo, __?: TableRowInfo<any>, printable?: boolean): any
19
- {
20
- if (!printable)
21
- {
22
- return (
23
- <div style={{ display: "flex", alignItems: "center", gap: "4px" }}>
24
- {
25
- value.image.url &&
26
- <img src={value.image.url} alt={value.image.alt} style={{ width: "20px", height: "20px" }} />
27
- }
28
- <a href={value.href} target={this.target} rel="noreferrer" style={{ overflow: "hidden", textOverflow: "ellipsis" }}>{value.text}</a>
29
- </div >
30
- );
31
- }
32
- return value.text;
33
- }
34
- override compare(a: any, b: any): number
35
- {
36
- return BaseColumnFormatter.stringCompare(a?.text, b?.text);
37
- }
1
+ import { HTMLAttributeAnchorTarget } from "react";
2
+ import { TableColumnInfo, TableRowInfo } from "../main";
3
+ import { BaseColumnFormatter } from "./BaseColumnFormatter";
4
+
5
+ export class BaseURLImageFormatter extends BaseColumnFormatter
6
+ {
7
+ private target: HTMLAttributeAnchorTarget;
8
+ constructor(target: HTMLAttributeAnchorTarget = "_blank", width: string = "250px")
9
+ {
10
+ super();
11
+ this.target = target;
12
+ this.width = width;
13
+ }
14
+ override format(value: {
15
+ text: any,
16
+ image: { url: string, alt: string },
17
+ href: string
18
+ }, _?: TableColumnInfo, __?: TableRowInfo<any>, printable?: boolean): any
19
+ {
20
+ if (!printable)
21
+ {
22
+ return (
23
+ <div style={{ display: "flex", alignItems: "center", gap: "4px" }}>
24
+ {
25
+ value.image.url &&
26
+ <img src={value.image.url} alt={value.image.alt} style={{ width: "20px", height: "20px" }} />
27
+ }
28
+ <a href={value.href} target={this.target} rel="noreferrer" style={{ overflow: "hidden", textOverflow: "ellipsis" }}>{value.text}</a>
29
+ </div >
30
+ );
31
+ }
32
+ return value.text;
33
+ }
34
+ override compare(a: any, b: any): number
35
+ {
36
+ return BaseColumnFormatter.stringCompare(a?.text, b?.text);
37
+ }
38
38
  }
@@ -1,27 +1,27 @@
1
- import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
-
3
- export class BooleanFormatter extends BaseColumnFormatter
4
- {
5
- private true_value: string;
6
- private false_value: string;
7
- constructor(true_value: string, false_value: string, width: string = "80px")
8
- {
9
- super();
10
- this.true_value = true_value;
11
- this.false_value = false_value;
12
- if (width)
13
- this.width = width;
14
- }
15
- override format(value: any): any
16
- {
17
- if (value === true)
18
- return this.true_value;
19
- if (value === false)
20
- return this.false_value;
21
- return value;
22
- }
23
- override compare(a: any, b: any): number
24
- {
25
- return BaseColumnFormatter.numberCompare(a, b);
26
- }
1
+ import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
+
3
+ export class BooleanFormatter extends BaseColumnFormatter
4
+ {
5
+ private true_value: string;
6
+ private false_value: string;
7
+ constructor(true_value: string, false_value: string, width: string = "80px")
8
+ {
9
+ super();
10
+ this.true_value = true_value;
11
+ this.false_value = false_value;
12
+ if (width)
13
+ this.width = width;
14
+ }
15
+ override format(value: any): any
16
+ {
17
+ if (value === true)
18
+ return this.true_value;
19
+ if (value === false)
20
+ return this.false_value;
21
+ return value;
22
+ }
23
+ override compare(a: any, b: any): number
24
+ {
25
+ return BaseColumnFormatter.numberCompare(a, b);
26
+ }
27
27
  }
@@ -1,20 +1,20 @@
1
- import { ByteOperation, ByteUnit } from "namirasoft-core";
2
- import { BaseColumnFormatter } from "./BaseColumnFormatter";
3
-
4
- export class BytesFormatter extends BaseColumnFormatter
5
- {
6
- constructor(width: string = "120px")
7
- {
8
- super();
9
- this.width = width;
10
- }
11
-
12
- override format(bytes: number): string
13
- {
14
- return ByteOperation.format(bytes, ByteUnit.B);
15
- }
16
- override compare(a: any, b: any): number
17
- {
18
- return BaseColumnFormatter.numberCompare(a, b);
19
- }
1
+ import { ByteOperation, ByteUnit } from "namirasoft-core";
2
+ import { BaseColumnFormatter } from "./BaseColumnFormatter";
3
+
4
+ export class BytesFormatter extends BaseColumnFormatter
5
+ {
6
+ constructor(width: string = "120px")
7
+ {
8
+ super();
9
+ this.width = width;
10
+ }
11
+
12
+ override format(bytes: number): string
13
+ {
14
+ return ByteOperation.format(bytes, ByteUnit.B);
15
+ }
16
+ override compare(a: any, b: any): number
17
+ {
18
+ return BaseColumnFormatter.numberCompare(a, b);
19
+ }
20
20
  }
@@ -1,27 +1,27 @@
1
- import { TimeOperation } from "namirasoft-core";
2
- import { BaseColumnFormatter } from "./BaseColumnFormatter";
3
-
4
- export class DateFormatter extends BaseColumnFormatter
5
- {
6
- constructor(width: string = "130px")
7
- {
8
- super();
9
- this.width = width;
10
- }
11
- override format(value: any): any
12
- {
13
- if (value)
14
- try
15
- {
16
- let date = new Date(value);
17
- return TimeOperation.format(date, "YYYY/MM/DD");
18
- } catch (e)
19
- {
20
- }
21
- return value;
22
- }
23
- override compare(a: any, b: any): number
24
- {
25
- return BaseColumnFormatter.dateCompare(a, b);
26
- }
1
+ import { TimeOperation } from "namirasoft-core";
2
+ import { BaseColumnFormatter } from "./BaseColumnFormatter";
3
+
4
+ export class DateFormatter extends BaseColumnFormatter
5
+ {
6
+ constructor(width: string = "130px")
7
+ {
8
+ super();
9
+ this.width = width;
10
+ }
11
+ override format(value: any): any
12
+ {
13
+ if (value)
14
+ try
15
+ {
16
+ let date = new Date(value);
17
+ return TimeOperation.format(date, "YYYY/MM/DD");
18
+ } catch (e)
19
+ {
20
+ }
21
+ return value;
22
+ }
23
+ override compare(a: any, b: any): number
24
+ {
25
+ return BaseColumnFormatter.dateCompare(a, b);
26
+ }
27
27
  }
@@ -1,27 +1,27 @@
1
- import { TimeOperation } from "namirasoft-core";
2
- import { BaseColumnFormatter } from "./BaseColumnFormatter";
3
-
4
- export class DateTimeFormatter extends BaseColumnFormatter
5
- {
6
- constructor(width: string = "185px")
7
- {
8
- super();
9
- this.width = width;
10
- }
11
- override format(value: any): any
12
- {
13
- if (value)
14
- try
15
- {
16
- let date = new Date(value);
17
- return TimeOperation.format(date, "YYYY/MM/DD HH:mm:ss");
18
- } catch (e)
19
- {
20
- }
21
- return value;
22
- }
23
- override compare(a: any, b: any): number
24
- {
25
- return BaseColumnFormatter.dateCompare(a, b);
26
- }
1
+ import { TimeOperation } from "namirasoft-core";
2
+ import { BaseColumnFormatter } from "./BaseColumnFormatter";
3
+
4
+ export class DateTimeFormatter extends BaseColumnFormatter
5
+ {
6
+ constructor(width: string = "185px")
7
+ {
8
+ super();
9
+ this.width = width;
10
+ }
11
+ override format(value: any): any
12
+ {
13
+ if (value)
14
+ try
15
+ {
16
+ let date = new Date(value);
17
+ return TimeOperation.format(date, "YYYY/MM/DD HH:mm:ss");
18
+ } catch (e)
19
+ {
20
+ }
21
+ return value;
22
+ }
23
+ override compare(a: any, b: any): number
24
+ {
25
+ return BaseColumnFormatter.dateCompare(a, b);
26
+ }
27
27
  }
@@ -1,18 +1,18 @@
1
- import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
-
3
- export class DurationFormatter extends BaseColumnFormatter
4
- {
5
- constructor(width: string = "200px")
6
- {
7
- super();
8
- this.width = width;
9
- }
10
- override format(value: any): any
11
- {
12
- return value;
13
- }
14
- override compare(a: any, b: any): number
15
- {
16
- return BaseColumnFormatter.numberCompare(a, b);
17
- }
1
+ import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
+
3
+ export class DurationFormatter extends BaseColumnFormatter
4
+ {
5
+ constructor(width: string = "200px")
6
+ {
7
+ super();
8
+ this.width = width;
9
+ }
10
+ override format(value: any): any
11
+ {
12
+ return value;
13
+ }
14
+ override compare(a: any, b: any): number
15
+ {
16
+ return BaseColumnFormatter.numberCompare(a, b);
17
+ }
18
18
  }
@@ -1,26 +1,26 @@
1
- import { TableColumnInfo, TableRowInfo } from "../main";
2
- import { BaseColumnFormatter } from "./BaseColumnFormatter";
3
- import { BaseURLImageFormatter } from "./BaseURLImageFormatter";
4
-
5
- export class EmailFormatter extends BaseColumnFormatter
6
- {
7
- private formatter: BaseURLImageFormatter = new BaseURLImageFormatter();
8
- constructor(width: string = "250px")
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: `mailto:${value}`,
19
- image: { url: "https://static.namirasoft.com/image/concept/type/email.png", alt: "phone" }
20
- }, column, row, printable);
21
- }
22
- override compare(a: any, b: any): number
23
- {
24
- return BaseColumnFormatter.stringCompare(a, b);
25
- }
1
+ import { TableColumnInfo, TableRowInfo } from "../main";
2
+ import { BaseColumnFormatter } from "./BaseColumnFormatter";
3
+ import { BaseURLImageFormatter } from "./BaseURLImageFormatter";
4
+
5
+ export class EmailFormatter extends BaseColumnFormatter
6
+ {
7
+ private formatter: BaseURLImageFormatter = new BaseURLImageFormatter();
8
+ constructor(width: string = "250px")
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: `mailto:${value}`,
19
+ image: { url: "https://static.namirasoft.com/image/concept/type/email.png", alt: "phone" }
20
+ }, column, row, printable);
21
+ }
22
+ override compare(a: any, b: any): number
23
+ {
24
+ return BaseColumnFormatter.stringCompare(a, b);
25
+ }
26
26
  }
@@ -1,18 +1,18 @@
1
- import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
-
3
- export class EnumFormatter extends BaseColumnFormatter
4
- {
5
- constructor(width: string = "125px")
6
- {
7
- super();
8
- this.width = width;
9
- }
10
- override format(value: any): any
11
- {
12
- return value;
13
- }
14
- override compare(a: any, b: any): number
15
- {
16
- return BaseColumnFormatter.smartCompare(a, b);
17
- }
1
+ import { BaseColumnFormatter } from "./BaseColumnFormatter";
2
+
3
+ export class EnumFormatter extends BaseColumnFormatter
4
+ {
5
+ constructor(width: string = "125px")
6
+ {
7
+ super();
8
+ this.width = width;
9
+ }
10
+ override format(value: any): any
11
+ {
12
+ return value;
13
+ }
14
+ override compare(a: any, b: any): number
15
+ {
16
+ return BaseColumnFormatter.smartCompare(a, b);
17
+ }
18
18
  }