namirasoft-site-react 1.5.25 → 1.5.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (363) hide show
  1. package/.dockerignore +86 -86
  2. package/.env.template +10 -10
  3. package/Dockerfile +18 -18
  4. package/SKILL.md +307 -307
  5. package/config-overrides.js +72 -72
  6. package/dist/App.css +33 -33
  7. package/dist/App.d.ts +5 -2
  8. package/dist/App.js +37 -5
  9. package/dist/App.js.map +1 -1
  10. package/dist/components/NSBanner.module.css +47 -47
  11. package/dist/components/NSBarAction.module.css +91 -91
  12. package/dist/components/NSBarAlert.module.css +79 -79
  13. package/dist/components/NSBarNotification.module.css +34 -34
  14. package/dist/components/NSBarTitle.module.css +9 -9
  15. package/dist/components/NSBox.module.css +87 -87
  16. package/dist/components/NSBoxBaseCombo.module.css +24 -24
  17. package/dist/components/NSBoxBoolean.module.css +73 -73
  18. package/dist/components/NSBoxDate.module.css +4 -4
  19. package/dist/components/NSBoxDateRangeBase.module.css +73 -73
  20. package/dist/components/NSBoxDateTime.module.css +4 -4
  21. package/dist/components/NSBoxDuration.module.css +4 -4
  22. package/dist/components/NSBoxFile.module.css +10 -10
  23. package/dist/components/NSBoxInteger.module.css +16 -16
  24. package/dist/components/NSBoxOptions.module.css +53 -53
  25. package/dist/components/NSBoxPhone.module.css +35 -35
  26. package/dist/components/NSBoxRadio.module.css +33 -33
  27. package/dist/components/NSBoxSchemaBase.js +1 -1
  28. package/dist/components/NSBoxSchemaBase.js.map +1 -1
  29. package/dist/components/NSBoxSchemaBase.module.css +17 -17
  30. package/dist/components/NSBoxSchemaVariable.module.css +16 -16
  31. package/dist/components/NSBoxTextArea.module.css +12 -12
  32. package/dist/components/NSBoxTime.module.css +4 -4
  33. package/dist/components/NSButton.module.css +57 -57
  34. package/dist/components/NSButtonBlue.module.css +4 -4
  35. package/dist/components/NSButtonGreen.module.css +4 -4
  36. package/dist/components/NSButtonRed.module.css +4 -4
  37. package/dist/components/NSCard.module.css +113 -113
  38. package/dist/components/NSCardScreenshot.module.css +41 -41
  39. package/dist/components/NSColumn.module.css +16 -16
  40. package/dist/components/NSCopyBox.module.css +39 -39
  41. package/dist/components/NSDialog.module.css +105 -105
  42. package/dist/components/NSDialogPageSelection.module.css +103 -103
  43. package/dist/components/NSDownTimer.module.css +55 -55
  44. package/dist/components/NSDownload.module.css +46 -46
  45. package/dist/components/NSElectronicCard.module.css +60 -60
  46. package/dist/components/NSEntityCardBackground.module.css +27 -27
  47. package/dist/components/NSFilterBox.module.css +27 -27
  48. package/dist/components/NSFilterBoxItems.module.css +15 -15
  49. package/dist/components/NSFilterItem.module.css +24 -24
  50. package/dist/components/NSFooter.module.css +140 -140
  51. package/dist/components/NSGauge.module.css +67 -67
  52. package/dist/components/NSGaugeDate.module.css +57 -57
  53. package/dist/components/NSGaugeNumber.module.css +66 -66
  54. package/dist/components/NSHeader.module.css +316 -316
  55. package/dist/components/NSHeaderScreenshot.module.css +35 -35
  56. package/dist/components/NSLabel.module.css +25 -25
  57. package/dist/components/NSLabelErrorNotifier.module.css +2 -2
  58. package/dist/components/NSLabelSensitive.module.css +9 -9
  59. package/dist/components/NSLayout.module.css +22 -22
  60. package/dist/components/NSLine.module.css +15 -15
  61. package/dist/components/NSLineText.module.css +38 -38
  62. package/dist/components/NSLink.module.css +36 -36
  63. package/dist/components/NSListGrouped.module.css +69 -69
  64. package/dist/components/NSListMenu.d.ts +9 -0
  65. package/dist/components/NSListMenu.js +135 -0
  66. package/dist/components/NSListMenu.js.map +1 -0
  67. package/dist/components/NSLoading.module.css +10 -10
  68. package/dist/components/NSMegaMenu.module.css +133 -133
  69. package/dist/components/NSMenuAction.module.css +88 -88
  70. package/dist/components/NSMenuButton.module.css +44 -44
  71. package/dist/components/NSNoData.module.css +11 -11
  72. package/dist/components/NSPagination.js +1 -2
  73. package/dist/components/NSPagination.js.map +1 -1
  74. package/dist/components/NSPagination.module.css +94 -87
  75. package/dist/components/NSPanel.module.css +28 -28
  76. package/dist/components/NSPanelAccordion.module.css +4 -4
  77. package/dist/components/NSProductSearch.module.css +73 -73
  78. package/dist/components/NSProgressBar.module.css +38 -38
  79. package/dist/components/NSRange.module.css +66 -66
  80. package/dist/components/NSReorderDialog.module.css +49 -49
  81. package/dist/components/NSRow.module.css +17 -17
  82. package/dist/components/NSSection.module.css +4 -4
  83. package/dist/components/NSSectionCards.module.css +38 -38
  84. package/dist/components/NSSectionTiles.module.css +10 -10
  85. package/dist/components/NSSplitter.module.css +59 -59
  86. package/dist/components/NSTabPage.module.css +59 -59
  87. package/dist/components/NSTable.js +26 -26
  88. package/dist/components/NSTable.js.map +1 -1
  89. package/dist/components/NSTable.module.css +374 -368
  90. package/dist/components/NSTableChart.module.css +119 -119
  91. package/dist/components/NSTile.module.css +76 -76
  92. package/dist/components/NSTimelineMonthly.module.css +71 -71
  93. package/dist/components/NSTitle.module.css +15 -15
  94. package/dist/index.css +5 -5
  95. package/dist/pages/NSImplementing.module.css +35 -35
  96. package/dist/pages/NSNotFoundPage.module.css +18 -18
  97. package/dist/pages/NSUpdating.module.css +35 -35
  98. package/package.json +86 -86
  99. package/public/index.html +38 -38
  100. package/src/App.css +33 -33
  101. package/src/App.tsx +870 -176
  102. package/src/BrowserDetector.ts +109 -109
  103. package/src/Color.tsx +10 -10
  104. package/src/CopyToClipboard.ts +6 -6
  105. package/src/EncryptionOperation.ts +98 -98
  106. package/src/KeyOperation.ts +109 -109
  107. package/src/LinkOperation.ts +101 -101
  108. package/src/NSBoxBuilder.tsx +922 -922
  109. package/src/ProductCacheService.ts +36 -36
  110. package/src/Validator.ts +199 -199
  111. package/src/components/INSBox.tsx +7 -7
  112. package/src/components/NSBanner.module.css +47 -47
  113. package/src/components/NSBanner.tsx +80 -80
  114. package/src/components/NSBarAction.module.css +91 -91
  115. package/src/components/NSBarAction.tsx +95 -95
  116. package/src/components/NSBarAlert.module.css +79 -79
  117. package/src/components/NSBarAlert.tsx +35 -35
  118. package/src/components/NSBarNotification.module.css +34 -34
  119. package/src/components/NSBarNotification.tsx +89 -89
  120. package/src/components/NSBarTitle.module.css +9 -9
  121. package/src/components/NSBarTitle.tsx +23 -23
  122. package/src/components/NSBox.module.css +87 -87
  123. package/src/components/NSBox.tsx +19 -19
  124. package/src/components/NSBoxBaseCombo.module.css +24 -24
  125. package/src/components/NSBoxBaseCombo.tsx +501 -501
  126. package/src/components/NSBoxBaseLayout.tsx +163 -163
  127. package/src/components/NSBoxBaseLayoutRecursive.tsx +59 -59
  128. package/src/components/NSBoxBoolean.module.css +73 -73
  129. package/src/components/NSBoxBoolean.tsx +152 -152
  130. package/src/components/NSBoxBooleans.tsx +181 -181
  131. package/src/components/NSBoxColor.tsx +107 -107
  132. package/src/components/NSBoxCombo.tsx +95 -95
  133. package/src/components/NSBoxDate.module.css +4 -4
  134. package/src/components/NSBoxDate.tsx +144 -144
  135. package/src/components/NSBoxDateRange.tsx +88 -88
  136. package/src/components/NSBoxDateRangeBase.module.css +73 -73
  137. package/src/components/NSBoxDateRangeBase.tsx +236 -236
  138. package/src/components/NSBoxDateTime.module.css +4 -4
  139. package/src/components/NSBoxDateTime.tsx +136 -136
  140. package/src/components/NSBoxDateTimeRange.tsx +66 -66
  141. package/src/components/NSBoxDouble.tsx +110 -110
  142. package/src/components/NSBoxDuration.module.css +4 -4
  143. package/src/components/NSBoxDuration.tsx +107 -107
  144. package/src/components/NSBoxDynamic.tsx +73 -73
  145. package/src/components/NSBoxDynamics.tsx +68 -68
  146. package/src/components/NSBoxEmail.tsx +117 -117
  147. package/src/components/NSBoxEntity.tsx +180 -180
  148. package/src/components/NSBoxEnum.tsx +113 -113
  149. package/src/components/NSBoxFile.module.css +10 -10
  150. package/src/components/NSBoxFile.tsx +106 -106
  151. package/src/components/NSBoxFilePath.tsx +106 -106
  152. package/src/components/NSBoxFont.tsx +107 -107
  153. package/src/components/NSBoxIPV4.tsx +107 -107
  154. package/src/components/NSBoxIPV4Range.tsx +107 -107
  155. package/src/components/NSBoxIPV6.tsx +104 -104
  156. package/src/components/NSBoxIPV6Range.tsx +107 -107
  157. package/src/components/NSBoxInteger.module.css +16 -16
  158. package/src/components/NSBoxInteger.tsx +126 -126
  159. package/src/components/NSBoxMoney.tsx +115 -115
  160. package/src/components/NSBoxOptions.module.css +53 -53
  161. package/src/components/NSBoxOptions.tsx +182 -182
  162. package/src/components/NSBoxPhone.module.css +35 -35
  163. package/src/components/NSBoxPhone.tsx +120 -120
  164. package/src/components/NSBoxRadio.module.css +33 -33
  165. package/src/components/NSBoxRadio.tsx +104 -104
  166. package/src/components/NSBoxSchemaBase.module.css +17 -17
  167. package/src/components/NSBoxSchemaBase.tsx +562 -561
  168. package/src/components/NSBoxSchemaVariable.module.css +16 -16
  169. package/src/components/NSBoxSchemaVariable.tsx +262 -262
  170. package/src/components/NSBoxSearch.tsx +112 -112
  171. package/src/components/NSBoxSensitive.tsx +133 -133
  172. package/src/components/NSBoxString.tsx +106 -106
  173. package/src/components/NSBoxTextArea.module.css +12 -12
  174. package/src/components/NSBoxTextArea.tsx +136 -136
  175. package/src/components/NSBoxTime.module.css +4 -4
  176. package/src/components/NSBoxTime.tsx +106 -106
  177. package/src/components/NSBoxTimeRange.tsx +220 -220
  178. package/src/components/NSBoxTimeZone.tsx +122 -122
  179. package/src/components/NSBoxURL.tsx +117 -117
  180. package/src/components/NSBoxVersion.tsx +107 -107
  181. package/src/components/NSButton.module.css +57 -57
  182. package/src/components/NSButton.tsx +74 -74
  183. package/src/components/NSButtonBlue.module.css +4 -4
  184. package/src/components/NSButtonBlue.tsx +29 -29
  185. package/src/components/NSButtonGreen.module.css +4 -4
  186. package/src/components/NSButtonGreen.tsx +29 -29
  187. package/src/components/NSButtonRed.module.css +4 -4
  188. package/src/components/NSButtonRed.tsx +29 -29
  189. package/src/components/NSCard.module.css +113 -113
  190. package/src/components/NSCard.tsx +67 -67
  191. package/src/components/NSCardScreenshot.module.css +41 -41
  192. package/src/components/NSCardScreenshot.tsx +31 -31
  193. package/src/components/NSChartBar.tsx +134 -134
  194. package/src/components/NSChartDoughnut.tsx +114 -114
  195. package/src/components/NSChartLine.tsx +110 -110
  196. package/src/components/NSChartPie.tsx +105 -105
  197. package/src/components/NSChartRange.tsx +14 -14
  198. package/src/components/NSColumn.module.css +16 -16
  199. package/src/components/NSColumn.tsx +24 -24
  200. package/src/components/NSCopy.tsx +95 -95
  201. package/src/components/NSCopyBox.module.css +39 -39
  202. package/src/components/NSCopyBox.tsx +53 -53
  203. package/src/components/NSDialog.module.css +105 -105
  204. package/src/components/NSDialog.tsx +72 -72
  205. package/src/components/NSDialogBox.tsx +38 -38
  206. package/src/components/NSDialogBoxDate.tsx +28 -28
  207. package/src/components/NSDialogBoxDateTime.tsx +28 -28
  208. package/src/components/NSDialogBoxPhone.tsx +28 -28
  209. package/src/components/NSDialogBoxString.tsx +28 -28
  210. package/src/components/NSDialogDelete.tsx +36 -36
  211. package/src/components/NSDialogInfo.tsx +49 -49
  212. package/src/components/NSDialogPageSelection.module.css +103 -103
  213. package/src/components/NSDialogPageSelection.tsx +233 -233
  214. package/src/components/NSDownTimer.module.css +55 -55
  215. package/src/components/NSDownTimer.tsx +91 -91
  216. package/src/components/NSDownload.module.css +46 -46
  217. package/src/components/NSDownload.tsx +69 -69
  218. package/src/components/NSElectronicCard.module.css +60 -60
  219. package/src/components/NSElectronicCard.tsx +46 -46
  220. package/src/components/NSEntityCardBackground.module.css +27 -27
  221. package/src/components/NSEntityCardBackground.tsx +36 -36
  222. package/src/components/NSFilterBox.module.css +27 -27
  223. package/src/components/NSFilterBox.tsx +477 -477
  224. package/src/components/NSFilterBoxItems.module.css +15 -15
  225. package/src/components/NSFilterBoxItems.tsx +52 -52
  226. package/src/components/NSFilterItem.module.css +24 -24
  227. package/src/components/NSFilterItem.tsx +27 -27
  228. package/src/components/NSFooter.module.css +140 -140
  229. package/src/components/NSFooter.tsx +321 -321
  230. package/src/components/NSGauge.module.css +67 -67
  231. package/src/components/NSGauge.tsx +52 -52
  232. package/src/components/NSGaugeDate.module.css +57 -57
  233. package/src/components/NSGaugeDate.tsx +125 -125
  234. package/src/components/NSGaugeNumber.module.css +66 -66
  235. package/src/components/NSGaugeNumber.tsx +93 -93
  236. package/src/components/NSHeader.module.css +316 -316
  237. package/src/components/NSHeader.tsx +337 -337
  238. package/src/components/NSHeaderScreenshot.module.css +35 -35
  239. package/src/components/NSHeaderScreenshot.tsx +39 -39
  240. package/src/components/NSID.tsx +178 -178
  241. package/src/components/NSInfo.tsx +50 -50
  242. package/src/components/NSLabel.module.css +25 -25
  243. package/src/components/NSLabel.tsx +47 -47
  244. package/src/components/NSLabelErrorNotifier.module.css +2 -2
  245. package/src/components/NSLabelErrorNotifier.tsx +35 -35
  246. package/src/components/NSLabelSensitive.module.css +9 -9
  247. package/src/components/NSLabelSensitive.tsx +101 -101
  248. package/src/components/NSLayout.module.css +22 -22
  249. package/src/components/NSLayout.tsx +143 -143
  250. package/src/components/NSLine.module.css +15 -15
  251. package/src/components/NSLine.tsx +13 -13
  252. package/src/components/NSLineText.module.css +38 -38
  253. package/src/components/NSLineText.tsx +17 -17
  254. package/src/components/NSLink.module.css +36 -36
  255. package/src/components/NSLink.tsx +26 -26
  256. package/src/components/NSLinkBlue.tsx +22 -22
  257. package/src/components/NSLinkGreen.tsx +13 -13
  258. package/src/components/NSLinkRed.tsx +13 -13
  259. package/src/components/NSListGrouped.module.css +69 -69
  260. package/src/components/NSListGrouped.tsx +106 -106
  261. package/src/components/NSListProduct.tsx +78 -78
  262. package/src/components/NSLoading.module.css +10 -10
  263. package/src/components/NSLoading.tsx +43 -43
  264. package/src/components/NSMegaMenu.module.css +133 -133
  265. package/src/components/NSMegaMenu.tsx +188 -188
  266. package/src/components/NSMenuAction.module.css +88 -88
  267. package/src/components/NSMenuAction.tsx +106 -106
  268. package/src/components/NSMenuButton.module.css +44 -44
  269. package/src/components/NSMenuButton.tsx +198 -198
  270. package/src/components/NSNoData.module.css +11 -11
  271. package/src/components/NSNoData.tsx +24 -24
  272. package/src/components/NSPagination.module.css +94 -87
  273. package/src/components/NSPagination.tsx +182 -183
  274. package/src/components/NSPanel.module.css +28 -28
  275. package/src/components/NSPanel.tsx +26 -26
  276. package/src/components/NSPanelAccordion.module.css +4 -4
  277. package/src/components/NSPanelAccordion.tsx +51 -51
  278. package/src/components/NSProductSearch.module.css +73 -73
  279. package/src/components/NSProductSearch.tsx +193 -193
  280. package/src/components/NSProgressBar.module.css +38 -38
  281. package/src/components/NSProgressBar.tsx +29 -29
  282. package/src/components/NSRange.module.css +66 -66
  283. package/src/components/NSRange.tsx +83 -83
  284. package/src/components/NSReorderDialog.module.css +49 -49
  285. package/src/components/NSReorderDialog.tsx +184 -184
  286. package/src/components/NSRepeater.tsx +327 -327
  287. package/src/components/NSRepeaterNSBoxSchemaVariable.tsx +96 -96
  288. package/src/components/NSRepeaterNSTag.tsx +86 -86
  289. package/src/components/NSRow.module.css +17 -17
  290. package/src/components/NSRow.tsx +24 -24
  291. package/src/components/NSSection.module.css +4 -4
  292. package/src/components/NSSection.tsx +26 -26
  293. package/src/components/NSSectionCards.module.css +38 -38
  294. package/src/components/NSSectionCards.tsx +51 -51
  295. package/src/components/NSSectionTiles.module.css +10 -10
  296. package/src/components/NSSectionTiles.tsx +25 -25
  297. package/src/components/NSSectionTitle.tsx +19 -19
  298. package/src/components/NSSortDialog.tsx +124 -124
  299. package/src/components/NSSpace.tsx +28 -28
  300. package/src/components/NSSplitter.module.css +59 -59
  301. package/src/components/NSSplitter.tsx +211 -211
  302. package/src/components/NSTabPage.module.css +59 -59
  303. package/src/components/NSTabPage.tsx +122 -122
  304. package/src/components/NSTable.module.css +374 -368
  305. package/src/components/NSTable.tsx +1451 -1445
  306. package/src/components/NSTableChart.module.css +119 -119
  307. package/src/components/NSTableChart.tsx +732 -732
  308. package/src/components/NSTag.tsx +74 -74
  309. package/src/components/NSTile.module.css +76 -76
  310. package/src/components/NSTile.tsx +27 -27
  311. package/src/components/NSTimelineMonthly.module.css +71 -71
  312. package/src/components/NSTimelineMonthly.tsx +44 -44
  313. package/src/components/NSTitle.module.css +15 -15
  314. package/src/components/NSTitle.tsx +19 -19
  315. package/src/css.d.ts +13 -13
  316. package/src/formatter/BackColorFormatter.tsx +23 -23
  317. package/src/formatter/BaseColumnFormatter.ts +86 -86
  318. package/src/formatter/BaseURLImageFormatter.tsx +37 -37
  319. package/src/formatter/BooleanFormatter.ts +26 -26
  320. package/src/formatter/BytesFormatter.tsx +19 -19
  321. package/src/formatter/DateFormatter.ts +26 -26
  322. package/src/formatter/DateTimeFormatter.ts +26 -26
  323. package/src/formatter/DurationFormatter.ts +17 -17
  324. package/src/formatter/EmailFormatter.tsx +25 -25
  325. package/src/formatter/EnumFormatter.ts +17 -17
  326. package/src/formatter/FloatFormatter.ts +27 -27
  327. package/src/formatter/ForeColorFormatter.tsx +24 -24
  328. package/src/formatter/IDFormatter.tsx +58 -58
  329. package/src/formatter/IPFormatter.ts +39 -39
  330. package/src/formatter/IntegerFormatter.ts +27 -27
  331. package/src/formatter/JsonFormatter.tsx +75 -75
  332. package/src/formatter/MoneyFormatter.ts +39 -39
  333. package/src/formatter/PercentFormatter.tsx +43 -43
  334. package/src/formatter/PhoneFormatter.tsx +25 -25
  335. package/src/formatter/SensitiveFormatter.tsx +40 -40
  336. package/src/formatter/StringFormatter.tsx +49 -49
  337. package/src/formatter/TimeFormatter.ts +25 -25
  338. package/src/formatter/URLFormatter.tsx +28 -28
  339. package/src/formatter/UnknowFormatter.ts +22 -22
  340. package/src/index.css +5 -5
  341. package/src/index.tsx +7 -7
  342. package/src/main.ts +263 -263
  343. package/src/pages/NSImplementing.module.css +35 -35
  344. package/src/pages/NSImplementing.tsx +32 -32
  345. package/src/pages/NSNotFoundPage.module.css +18 -18
  346. package/src/pages/NSNotFoundPage.tsx +14 -14
  347. package/src/pages/NSUpdating.module.css +35 -35
  348. package/src/pages/NSUpdating.tsx +32 -32
  349. package/src/props/IBackgroundProps.ts +5 -5
  350. package/src/props/IBaseComponentProps.ts +8 -8
  351. package/src/props/IHeaderIconProps.ts +10 -10
  352. package/src/props/IHeaderLeftProps.ts +6 -6
  353. package/src/props/IHeaderRightProps.ts +8 -8
  354. package/src/props/IImageProps.ts +4 -4
  355. package/src/props/ILinkProps.ts +4 -4
  356. package/src/props/IValidationNumberProps.ts +4 -4
  357. package/src/props/IValidationPrecisionProps.ts +3 -3
  358. package/src/props/IValidationProps.ts +9 -9
  359. package/src/props/IValidationRegexProps.ts +4 -4
  360. package/src/props/IValidationStringProps.ts +4 -4
  361. package/src/routing/NSNotifier.ts +114 -114
  362. package/src/routing/NSRouterMaker.tsx +28 -28
  363. package/tsconfig.json +43 -43
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
  }