namirasoft-site-react 1.4.403 → 1.4.404

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 (299) hide show
  1. package/.dockerignore +86 -86
  2. package/.env.template +10 -10
  3. package/Dockerfile +18 -18
  4. package/config-overrides.js +72 -72
  5. package/dist/App.css +34 -0
  6. package/dist/components/NSBanner.module.css +47 -47
  7. package/dist/components/NSBarAction.module.css +84 -84
  8. package/dist/components/NSBarAlert.module.css +79 -79
  9. package/dist/components/NSBarNotification.module.css +34 -34
  10. package/dist/components/NSBarTitle.module.css +9 -9
  11. package/dist/components/NSBox.module.css +54 -54
  12. package/dist/components/NSBoxBaseCombo.module.css +6 -6
  13. package/dist/components/NSBoxBoolean.module.css +73 -73
  14. package/dist/components/NSBoxDate.module.css +4 -4
  15. package/dist/components/NSBoxDateTime.module.css +4 -4
  16. package/dist/components/NSBoxDuration.module.css +4 -4
  17. package/dist/components/NSBoxFile.module.css +10 -10
  18. package/dist/components/NSBoxPhone.module.css +35 -35
  19. package/dist/components/NSBoxRadio.module.css +33 -33
  20. package/dist/components/NSBoxSchemaBase.module.css +17 -17
  21. package/dist/components/NSBoxSchemaVariable.module.css +16 -16
  22. package/dist/components/NSBoxTextArea.module.css +12 -12
  23. package/dist/components/NSBoxTime.module.css +4 -4
  24. package/dist/components/NSButton.module.css +57 -57
  25. package/dist/components/NSButtonBlue.module.css +4 -4
  26. package/dist/components/NSButtonGreen.module.css +4 -4
  27. package/dist/components/NSButtonRed.module.css +4 -4
  28. package/dist/components/NSCard.module.css +114 -114
  29. package/dist/components/NSCardScreenshot.module.css +41 -41
  30. package/dist/components/NSChartColumn.module.css +7 -7
  31. package/dist/components/NSChartTable.module.css +21 -21
  32. package/dist/components/NSColumn.module.css +16 -16
  33. package/dist/components/NSCopyBox.module.css +39 -39
  34. package/dist/components/NSDialog.module.css +112 -112
  35. package/dist/components/NSDialogPageSelection.module.css +103 -103
  36. package/dist/components/NSDownTimer.module.css +55 -55
  37. package/dist/components/NSDownload.module.css +46 -46
  38. package/dist/components/NSElectronicCard.module.css +60 -60
  39. package/dist/components/NSEntityCardBackground.module.css +27 -27
  40. package/dist/components/NSFilterBox.module.css +27 -27
  41. package/dist/components/NSFilterBoxItems.module.css +15 -15
  42. package/dist/components/NSFilterItem.module.css +24 -24
  43. package/dist/components/NSFooter.module.css +134 -134
  44. package/dist/components/NSHeader.js +11 -6
  45. package/dist/components/NSHeader.js.map +1 -1
  46. package/dist/components/NSHeader.module.css +291 -291
  47. package/dist/components/NSHeaderScreenshot.module.css +35 -35
  48. package/dist/components/NSLabel.module.css +25 -25
  49. package/dist/components/NSLabelErrorNotifier.module.css +2 -2
  50. package/dist/components/NSLayout.module.css +14 -14
  51. package/dist/components/NSLine.module.css +15 -15
  52. package/dist/components/NSLink.module.css +36 -36
  53. package/dist/components/NSListGrouped.module.css +69 -69
  54. package/dist/components/NSLoading.module.css +38 -38
  55. package/dist/components/NSMenuAction.module.css +88 -88
  56. package/dist/components/NSMenuButton.module.css +44 -44
  57. package/dist/components/NSNoData.module.css +9 -9
  58. package/dist/components/NSPagination.module.css +85 -85
  59. package/dist/components/NSPanel.module.css +19 -19
  60. package/dist/components/NSPanelAccordion.module.css +4 -4
  61. package/dist/components/NSProductSearch.js +18 -7
  62. package/dist/components/NSProductSearch.js.map +1 -1
  63. package/dist/components/NSProductSearch.module.css +73 -68
  64. package/dist/components/NSRange.module.css +66 -66
  65. package/dist/components/NSRow.module.css +17 -17
  66. package/dist/components/NSSection.module.css +4 -4
  67. package/dist/components/NSSectionCards.module.css +38 -38
  68. package/dist/components/NSSectionTiles.module.css +10 -10
  69. package/dist/components/NSTabPage.module.css +59 -59
  70. package/dist/components/NSTable.module.css +263 -263
  71. package/dist/components/NSTile.module.css +76 -76
  72. package/dist/components/NSTimelineMonthly.module.css +71 -71
  73. package/dist/components/NSTitle.module.css +15 -15
  74. package/dist/index.css +6 -0
  75. package/dist/pages/NSNotFoundPage.module.css +18 -18
  76. package/dist/pages/NSUpdating.module.css +35 -35
  77. package/package.json +82 -82
  78. package/public/index.html +38 -38
  79. package/src/App.css +33 -33
  80. package/src/App.tsx +216 -216
  81. package/src/Color.tsx +10 -10
  82. package/src/CopyToClipboard.ts +6 -6
  83. package/src/NSBoxBuilder.tsx +912 -912
  84. package/src/ProductCacheService.ts +15 -15
  85. package/src/Validator.ts +166 -166
  86. package/src/components/INSBox.tsx +6 -6
  87. package/src/components/NSBanner.module.css +47 -47
  88. package/src/components/NSBanner.tsx +80 -80
  89. package/src/components/NSBarAction.module.css +84 -84
  90. package/src/components/NSBarAction.tsx +91 -91
  91. package/src/components/NSBarAlert.module.css +79 -79
  92. package/src/components/NSBarAlert.tsx +35 -35
  93. package/src/components/NSBarNotification.module.css +34 -34
  94. package/src/components/NSBarNotification.tsx +86 -86
  95. package/src/components/NSBarTitle.module.css +9 -9
  96. package/src/components/NSBarTitle.tsx +23 -23
  97. package/src/components/NSBox.module.css +54 -54
  98. package/src/components/NSBox.tsx +19 -19
  99. package/src/components/NSBoxBaseCombo.module.css +6 -6
  100. package/src/components/NSBoxBaseCombo.tsx +428 -428
  101. package/src/components/NSBoxBaseLayout.tsx +88 -88
  102. package/src/components/NSBoxBaseLayoutRecursive.tsx +54 -54
  103. package/src/components/NSBoxBoolean.module.css +73 -73
  104. package/src/components/NSBoxBoolean.tsx +128 -128
  105. package/src/components/NSBoxBooleans.tsx +178 -178
  106. package/src/components/NSBoxColor.tsx +95 -95
  107. package/src/components/NSBoxCombo.tsx +91 -91
  108. package/src/components/NSBoxDate.module.css +4 -4
  109. package/src/components/NSBoxDate.tsx +90 -90
  110. package/src/components/NSBoxDateTime.module.css +4 -4
  111. package/src/components/NSBoxDateTime.tsx +103 -103
  112. package/src/components/NSBoxDouble.tsx +94 -94
  113. package/src/components/NSBoxDuration.module.css +4 -4
  114. package/src/components/NSBoxDuration.tsx +95 -95
  115. package/src/components/NSBoxDynamic.tsx +67 -67
  116. package/src/components/NSBoxDynamics.tsx +68 -68
  117. package/src/components/NSBoxEmail.tsx +98 -98
  118. package/src/components/NSBoxEntity.tsx +174 -174
  119. package/src/components/NSBoxEnum.tsx +108 -108
  120. package/src/components/NSBoxFile.module.css +10 -10
  121. package/src/components/NSBoxFile.tsx +101 -101
  122. package/src/components/NSBoxFilePath.tsx +95 -95
  123. package/src/components/NSBoxFont.tsx +95 -95
  124. package/src/components/NSBoxIPV4.tsx +95 -95
  125. package/src/components/NSBoxIPV4Range.tsx +95 -95
  126. package/src/components/NSBoxIPV6.tsx +92 -92
  127. package/src/components/NSBoxIPV6Range.tsx +95 -95
  128. package/src/components/NSBoxInteger.tsx +91 -91
  129. package/src/components/NSBoxMoney.tsx +95 -95
  130. package/src/components/NSBoxPassword.tsx +108 -108
  131. package/src/components/NSBoxPhone.module.css +35 -35
  132. package/src/components/NSBoxPhone.tsx +107 -107
  133. package/src/components/NSBoxRadio.module.css +33 -33
  134. package/src/components/NSBoxRadio.tsx +91 -91
  135. package/src/components/NSBoxSchemaBase.module.css +17 -17
  136. package/src/components/NSBoxSchemaBase.tsx +540 -540
  137. package/src/components/NSBoxSchemaVariable.module.css +16 -16
  138. package/src/components/NSBoxSchemaVariable.tsx +247 -247
  139. package/src/components/NSBoxSearch.tsx +97 -97
  140. package/src/components/NSBoxString.tsx +93 -93
  141. package/src/components/NSBoxTextArea.module.css +12 -12
  142. package/src/components/NSBoxTextArea.tsx +98 -98
  143. package/src/components/NSBoxTime.module.css +4 -4
  144. package/src/components/NSBoxTime.tsx +93 -93
  145. package/src/components/NSBoxTimeZone.tsx +95 -95
  146. package/src/components/NSBoxURL.tsx +104 -104
  147. package/src/components/NSBoxVersion.tsx +95 -95
  148. package/src/components/NSButton.module.css +57 -57
  149. package/src/components/NSButton.tsx +75 -75
  150. package/src/components/NSButtonBlue.module.css +4 -4
  151. package/src/components/NSButtonBlue.tsx +29 -29
  152. package/src/components/NSButtonGreen.module.css +4 -4
  153. package/src/components/NSButtonGreen.tsx +29 -29
  154. package/src/components/NSButtonRed.module.css +4 -4
  155. package/src/components/NSButtonRed.tsx +29 -29
  156. package/src/components/NSCard.module.css +114 -114
  157. package/src/components/NSCard.tsx +63 -63
  158. package/src/components/NSCardScreenshot.module.css +41 -41
  159. package/src/components/NSCardScreenshot.tsx +31 -31
  160. package/src/components/NSChartColumn.module.css +7 -7
  161. package/src/components/NSChartColumn.tsx +106 -106
  162. package/src/components/NSChartDoughnut.tsx +112 -112
  163. package/src/components/NSChartPie.tsx +105 -105
  164. package/src/components/NSChartRange.tsx +14 -14
  165. package/src/components/NSChartTable.module.css +21 -21
  166. package/src/components/NSChartTable.tsx +94 -94
  167. package/src/components/NSColumn.module.css +16 -16
  168. package/src/components/NSColumn.tsx +24 -24
  169. package/src/components/NSCopy.tsx +58 -58
  170. package/src/components/NSCopyBox.module.css +39 -39
  171. package/src/components/NSCopyBox.tsx +53 -53
  172. package/src/components/NSDialog.module.css +112 -112
  173. package/src/components/NSDialog.tsx +61 -61
  174. package/src/components/NSDialogDelete.tsx +27 -27
  175. package/src/components/NSDialogInfo.tsx +49 -49
  176. package/src/components/NSDialogPageSelection.module.css +103 -103
  177. package/src/components/NSDialogPageSelection.tsx +234 -234
  178. package/src/components/NSDownTimer.module.css +55 -55
  179. package/src/components/NSDownTimer.tsx +91 -91
  180. package/src/components/NSDownload.module.css +46 -46
  181. package/src/components/NSDownload.tsx +69 -69
  182. package/src/components/NSElectronicCard.module.css +60 -60
  183. package/src/components/NSElectronicCard.tsx +46 -46
  184. package/src/components/NSEntityCardBackground.module.css +27 -27
  185. package/src/components/NSEntityCardBackground.tsx +36 -36
  186. package/src/components/NSFilterBox.module.css +27 -27
  187. package/src/components/NSFilterBox.tsx +477 -477
  188. package/src/components/NSFilterBoxItems.module.css +15 -15
  189. package/src/components/NSFilterBoxItems.tsx +52 -52
  190. package/src/components/NSFilterItem.module.css +24 -24
  191. package/src/components/NSFilterItem.tsx +27 -27
  192. package/src/components/NSFooter.module.css +134 -134
  193. package/src/components/NSFooter.tsx +321 -321
  194. package/src/components/NSHeader.module.css +291 -291
  195. package/src/components/NSHeader.tsx +314 -309
  196. package/src/components/NSHeaderScreenshot.module.css +35 -35
  197. package/src/components/NSHeaderScreenshot.tsx +39 -39
  198. package/src/components/NSID.tsx +158 -158
  199. package/src/components/NSLabel.module.css +25 -25
  200. package/src/components/NSLabel.tsx +47 -47
  201. package/src/components/NSLabelErrorNotifier.module.css +2 -2
  202. package/src/components/NSLabelErrorNotifier.tsx +35 -35
  203. package/src/components/NSLayout.module.css +14 -14
  204. package/src/components/NSLayout.tsx +134 -134
  205. package/src/components/NSLine.module.css +15 -15
  206. package/src/components/NSLine.tsx +13 -13
  207. package/src/components/NSLink.module.css +36 -36
  208. package/src/components/NSLink.tsx +25 -25
  209. package/src/components/NSLinkBlue.tsx +21 -21
  210. package/src/components/NSLinkGreen.tsx +12 -12
  211. package/src/components/NSLinkRed.tsx +12 -12
  212. package/src/components/NSListGrouped.module.css +69 -69
  213. package/src/components/NSListGrouped.tsx +106 -106
  214. package/src/components/NSListProduct.tsx +44 -44
  215. package/src/components/NSLoading.module.css +38 -38
  216. package/src/components/NSLoading.tsx +37 -37
  217. package/src/components/NSMenuAction.module.css +88 -88
  218. package/src/components/NSMenuAction.tsx +106 -106
  219. package/src/components/NSMenuButton.module.css +44 -44
  220. package/src/components/NSMenuButton.tsx +206 -206
  221. package/src/components/NSNoData.module.css +9 -9
  222. package/src/components/NSNoData.tsx +24 -24
  223. package/src/components/NSPagination.module.css +85 -85
  224. package/src/components/NSPagination.tsx +182 -182
  225. package/src/components/NSPanel.module.css +19 -19
  226. package/src/components/NSPanel.tsx +24 -24
  227. package/src/components/NSPanelAccordion.module.css +4 -4
  228. package/src/components/NSPanelAccordion.tsx +51 -51
  229. package/src/components/NSProductSearch.module.css +73 -68
  230. package/src/components/NSProductSearch.tsx +193 -155
  231. package/src/components/NSRange.module.css +66 -66
  232. package/src/components/NSRange.tsx +83 -83
  233. package/src/components/NSRepeater.tsx +254 -254
  234. package/src/components/NSRepeaterNSBoxSchemaVariable.tsx +90 -90
  235. package/src/components/NSRepeaterNSTag.tsx +82 -82
  236. package/src/components/NSRow.module.css +17 -17
  237. package/src/components/NSRow.tsx +24 -24
  238. package/src/components/NSSection.module.css +4 -4
  239. package/src/components/NSSection.tsx +26 -26
  240. package/src/components/NSSectionCards.module.css +38 -38
  241. package/src/components/NSSectionCards.tsx +51 -51
  242. package/src/components/NSSectionTiles.module.css +10 -10
  243. package/src/components/NSSectionTiles.tsx +25 -25
  244. package/src/components/NSSectionTitle.tsx +21 -21
  245. package/src/components/NSSpace.tsx +28 -28
  246. package/src/components/NSTabPage.module.css +59 -59
  247. package/src/components/NSTabPage.tsx +91 -91
  248. package/src/components/NSTable.module.css +263 -263
  249. package/src/components/NSTable.tsx +636 -636
  250. package/src/components/NSTag.tsx +74 -74
  251. package/src/components/NSTile.module.css +76 -76
  252. package/src/components/NSTile.tsx +27 -27
  253. package/src/components/NSTimelineMonthly.module.css +71 -71
  254. package/src/components/NSTimelineMonthly.tsx +44 -44
  255. package/src/components/NSTitle.module.css +15 -15
  256. package/src/components/NSTitle.tsx +19 -19
  257. package/src/formatter/BackColorFormatter.tsx +23 -23
  258. package/src/formatter/BaseColumnFormatter.ts +16 -16
  259. package/src/formatter/BaseURLImageFormatter.tsx +33 -33
  260. package/src/formatter/BooleanFormatter.ts +22 -22
  261. package/src/formatter/DateFormatter.ts +21 -21
  262. package/src/formatter/DateTimeFormatter.ts +21 -21
  263. package/src/formatter/DurationFormatter.ts +13 -13
  264. package/src/formatter/EmailFormatter.tsx +21 -21
  265. package/src/formatter/EnumFormatter.ts +13 -13
  266. package/src/formatter/FloatFormatter.ts +23 -23
  267. package/src/formatter/ForeColorFormatter.tsx +24 -24
  268. package/src/formatter/IDFormatter.tsx +30 -30
  269. package/src/formatter/IPFormatter.ts +13 -13
  270. package/src/formatter/IntegerFormatter.ts +23 -23
  271. package/src/formatter/JsonFormatter.ts +21 -21
  272. package/src/formatter/MoneyFormatter.ts +35 -35
  273. package/src/formatter/PhoneFormatter.tsx +21 -21
  274. package/src/formatter/StringFormatter.tsx +43 -43
  275. package/src/formatter/TimeFormatter.ts +21 -21
  276. package/src/formatter/URLFormatter.tsx +21 -21
  277. package/src/formatter/UnknowFormatter.ts +18 -18
  278. package/src/index.tsx +7 -7
  279. package/src/main.ts +225 -225
  280. package/src/pages/NSNotFoundPage.module.css +18 -18
  281. package/src/pages/NSNotFoundPage.tsx +11 -11
  282. package/src/pages/NSUpdating.module.css +35 -35
  283. package/src/pages/NSUpdating.tsx +32 -32
  284. package/src/props/IBackgroundProps.ts +5 -5
  285. package/src/props/IBaseComponentProps.ts +8 -8
  286. package/src/props/IHeaderIconProps.ts +10 -10
  287. package/src/props/IHeaderLeftProps.ts +6 -6
  288. package/src/props/IHeaderRightProps.ts +6 -6
  289. package/src/props/IImageProps.ts +4 -4
  290. package/src/props/ILinkProps.ts +5 -5
  291. package/src/props/IValidationNumberProps.ts +4 -4
  292. package/src/props/IValidationPrecisionProps.ts +3 -3
  293. package/src/props/IValidationProps.ts +9 -9
  294. package/src/props/IValidationRegexProps.ts +4 -4
  295. package/src/props/IValidationStringProps.ts +4 -4
  296. package/src/routing/NSNotifier.ts +114 -114
  297. package/src/routing/NSRouterMaker.tsx +20 -20
  298. package/src/routing/NSRouterMakerComponent.ts +5 -5
  299. package/src/routing/NSRouterMakerProps.ts +5 -5
@@ -1,36 +1,36 @@
1
- .ns_header_screenshot {
2
- background-color: hsla(91, 100%, 31%, 1);
3
- width: 100%;
4
- min-height: 48px;
5
- border-radius: 8px;
6
- padding: 14px 16px;
7
- color: #fff;
8
- font-size: 16px;
9
- display: flex;
10
- justify-content: flex-end;
11
- flex-wrap: wrap;
12
- }
13
-
14
- .ns_header_screenshot_left {
15
- display: flex;
16
- gap: 32px;
17
- flex-direction: row;
18
- flex-wrap: wrap;
19
- justify-content: space-between;
20
- }
21
-
22
- .ns_header_screenshot_item {
23
- gap: 4px;
24
- display: flex;
25
- align-items: center;
26
- }
27
-
28
- @media only screen and (min-width: 580px) {
29
- .ns_header_screenshot {
30
- justify-content: space-between;
31
- }
32
-
33
- .ns_header_screenshot_left {
34
- justify-content: left
35
- }
1
+ .ns_header_screenshot {
2
+ background-color: hsla(91, 100%, 31%, 1);
3
+ width: 100%;
4
+ min-height: 48px;
5
+ border-radius: 8px;
6
+ padding: 14px 16px;
7
+ color: #fff;
8
+ font-size: 16px;
9
+ display: flex;
10
+ justify-content: flex-end;
11
+ flex-wrap: wrap;
12
+ }
13
+
14
+ .ns_header_screenshot_left {
15
+ display: flex;
16
+ gap: 32px;
17
+ flex-direction: row;
18
+ flex-wrap: wrap;
19
+ justify-content: space-between;
20
+ }
21
+
22
+ .ns_header_screenshot_item {
23
+ gap: 4px;
24
+ display: flex;
25
+ align-items: center;
26
+ }
27
+
28
+ @media only screen and (min-width: 580px) {
29
+ .ns_header_screenshot {
30
+ justify-content: space-between;
31
+ }
32
+
33
+ .ns_header_screenshot_left {
34
+ justify-content: left
35
+ }
36
36
  }
@@ -1,40 +1,40 @@
1
- // todo move to its own probject: this is Timify
2
- import { IBaseComponentProps } from "../props/IBaseComponentProps";
3
- import Styles from "./NSHeaderScreenshot.module.css"
4
-
5
- export interface NSHeaderScreenshotProps extends IBaseComponentProps
6
- {
7
- project: string;
8
- task: string;
9
- time: string;
10
- Countdown: string;
11
- }
12
-
13
- export function NSHeaderScreenshot(props: NSHeaderScreenshotProps)
14
- {
15
- return (
16
- <section className={Styles.ns_header_screenshot}>
17
- <div className={Styles.ns_header_screenshot_left}>
18
- <div className={Styles.ns_header_screenshot_item}>
19
- <img src="https://static.namirasoft.com/image/concept/project/white.svg" alt='' width={20} height={20} />
20
- <span>{props.project}</span>
21
- </div>
22
- <div className={Styles.ns_header_screenshot_item}>
23
- <img src="https://static.namirasoft.com/image/concept/gear/white.svg" alt='' width={20} height={20} />
24
- <span>{props.task}</span>
25
- </div>
26
- <div className={Styles.ns_header_screenshot_item}>
27
- <img src="https://static.namirasoft.com/image/concept/time/white.svg" alt='' width={20} height={20} />
28
- <span>{props.time}</span>
29
- </div>
30
- <div className={Styles.ns_header_screenshot_item}>
31
- <img src="https://static.namirasoft.com/image/concept/countdown/white.svg" alt='' width={20} height={20} />
32
- <span>{props.Countdown}</span>
33
- </div>
34
- </div>
35
- <div>
36
- <img src="https://static.namirasoft.com/image/concept/delete/blue.svg" alt='' width={20} height={20} />
37
- </div>
38
- </section >
39
- );
1
+ // todo move to its own probject: this is Timify
2
+ import { IBaseComponentProps } from "../props/IBaseComponentProps";
3
+ import Styles from "./NSHeaderScreenshot.module.css"
4
+
5
+ export interface NSHeaderScreenshotProps extends IBaseComponentProps
6
+ {
7
+ project: string;
8
+ task: string;
9
+ time: string;
10
+ Countdown: string;
11
+ }
12
+
13
+ export function NSHeaderScreenshot(props: NSHeaderScreenshotProps)
14
+ {
15
+ return (
16
+ <section className={Styles.ns_header_screenshot}>
17
+ <div className={Styles.ns_header_screenshot_left}>
18
+ <div className={Styles.ns_header_screenshot_item}>
19
+ <img src="https://static.namirasoft.com/image/concept/project/white.svg" alt='' width={20} height={20} />
20
+ <span>{props.project}</span>
21
+ </div>
22
+ <div className={Styles.ns_header_screenshot_item}>
23
+ <img src="https://static.namirasoft.com/image/concept/gear/white.svg" alt='' width={20} height={20} />
24
+ <span>{props.task}</span>
25
+ </div>
26
+ <div className={Styles.ns_header_screenshot_item}>
27
+ <img src="https://static.namirasoft.com/image/concept/time/white.svg" alt='' width={20} height={20} />
28
+ <span>{props.time}</span>
29
+ </div>
30
+ <div className={Styles.ns_header_screenshot_item}>
31
+ <img src="https://static.namirasoft.com/image/concept/countdown/white.svg" alt='' width={20} height={20} />
32
+ <span>{props.Countdown}</span>
33
+ </div>
34
+ </div>
35
+ <div>
36
+ <img src="https://static.namirasoft.com/image/concept/delete/blue.svg" alt='' width={20} height={20} />
37
+ </div>
38
+ </section >
39
+ );
40
40
  }
@@ -1,159 +1,159 @@
1
- import React from 'react';
2
- import { BaseURLImageFormatter, IBaseComponentProps, NSCopy } from '../main';
3
- import { BaseUUID, CacheService, IStorage } from 'namirasoft-core';
4
- import { NamirasoftMap } from 'namirasoft-site-map';
5
- import { NSBaseMetaTable, NSBaseServer } from 'namirasoft-site';
6
- import { Mutex } from 'async-mutex';
7
-
8
- export interface NSIDProps extends IBaseComponentProps
9
- {
10
- id: string;
11
- map: NamirasoftMap | null;
12
- storage: IStorage | null;
13
- }
14
-
15
- export interface NSIDState
16
- {
17
- text?: string;
18
- }
19
- export interface NSIDInfo
20
- {
21
- product: {
22
- id: string;
23
- name: string;
24
- headline: string;
25
- description: string;
26
- logo: string;
27
- link: string;
28
- };
29
- table: NSBaseMetaTable<NSBaseServer, any>;
30
- }
31
-
32
- export class NSID extends React.Component<NSIDProps, NSIDState>
33
- {
34
- private static mutex: Mutex = new Mutex();
35
- private static mutexes: { [product_id: string]: Mutex } = {};
36
- private info: NSIDInfo | null;
37
- public static getKey(info: NSIDInfo, id: string)
38
- {
39
- return `${info.product.id}:${info.table.name}:${id}`
40
- }
41
- public static getInfo(id: string, map?: NamirasoftMap | null)
42
- {
43
- try
44
- {
45
- let short = BaseUUID.getShort(id);
46
- let namriasoft = map ?? new NamirasoftMap();
47
- return namriasoft.getByShortName(short);
48
- } catch (error)
49
- {
50
- }
51
- return null;
52
- }
53
- public static getCache(info: NSIDInfo, storage: IStorage, id: string)
54
- {
55
- let key = NSID.getKey(info, id);
56
- return new CacheService<string>(key, storage, 60, async () => "0.0.0", async () =>
57
- {
58
- if (info.table.back_end.get)
59
- {
60
- try
61
- {
62
- let columns: string[] = [];
63
- info.table.forEachColumn(column =>
64
- {
65
- if (column.name.includes("name"))
66
- columns.push(column.name);
67
- });
68
- let row = await info.table.back_end.get(id);
69
- let values = columns.map(column => row[column]).filter(x => x);
70
- if (values.length > 0)
71
- return values.join(" ");
72
- return row.name ?? row.description ?? "";
73
- } catch (error)
74
- {
75
- console.error(error);
76
- }
77
- }
78
- return "";
79
- });
80
- }
81
- public static clearID(storage: IStorage, id: string, map?: NamirasoftMap | null)
82
- {
83
- let info = NSID.getInfo(id, map);
84
- if (info)
85
- {
86
- let cache = NSID.getCache(info, storage, id);
87
- cache.del();
88
- }
89
- }
90
- constructor(props: NSIDProps)
91
- {
92
- super(props);
93
- this.state = {};
94
- this.info = NSID.getInfo(this.props.id, this.props.map);
95
- }
96
- override componentDidMount(): void
97
- {
98
- this.reload();
99
- }
100
- async reload()
101
- {
102
- if (!this.info)
103
- return;
104
- if (!this.props.id)
105
- return;
106
- let info = this.info;
107
- let cache = null;
108
- if (this.props.storage)
109
- {
110
- cache = NSID.getCache(info, this.props.storage, this.props.id);
111
- cache.runGetOn = await NSID.mutex.runExclusive(async () =>
112
- {
113
- if (!NSID.mutexes[info.product.id])
114
- NSID.mutexes[info.product.id] = new Mutex();
115
- return NSID.mutexes[info.product.id];
116
- });
117
- }
118
- if (cache)
119
- cache.get().then(text =>
120
- {
121
- this.setState({ text });
122
- });
123
- }
124
-
125
- override render()
126
- {
127
- if (!this.props.id)
128
- return <></>;
129
- if (!this.info)
130
- return this.props.id;
131
-
132
- let text = this.state.text;
133
- if (!text)
134
- text = this.props.id;
135
-
136
- let href = "";
137
- try
138
- {
139
- href = this.info.table.front_end.getViewLink(this.props.id + "");
140
- } catch (error)
141
- {
142
- }
143
- let formatter = new BaseURLImageFormatter();
144
- return (
145
- <NSCopy
146
- value={this.props.id}
147
- classList={["justify-content-start"]}
148
- >
149
- {
150
- formatter.format({
151
- text,
152
- href,
153
- image: { url: this.info.product.logo, alt: this.info?.product.logo }
154
- })
155
- }
156
- </NSCopy>
157
- );
158
- }
1
+ import React from 'react';
2
+ import { BaseURLImageFormatter, IBaseComponentProps, NSCopy } from '../main';
3
+ import { BaseUUID, CacheService, IStorage } from 'namirasoft-core';
4
+ import { NamirasoftMap } from 'namirasoft-site-map';
5
+ import { NSBaseMetaTable, NSBaseServer } from 'namirasoft-site';
6
+ import { Mutex } from 'async-mutex';
7
+
8
+ export interface NSIDProps extends IBaseComponentProps
9
+ {
10
+ id: string;
11
+ map: NamirasoftMap | null;
12
+ storage: IStorage | null;
13
+ }
14
+
15
+ export interface NSIDState
16
+ {
17
+ text?: string;
18
+ }
19
+ export interface NSIDInfo
20
+ {
21
+ product: {
22
+ id: string;
23
+ name: string;
24
+ headline: string;
25
+ description: string;
26
+ logo: string;
27
+ link: string;
28
+ };
29
+ table: NSBaseMetaTable<NSBaseServer, any>;
30
+ }
31
+
32
+ export class NSID extends React.Component<NSIDProps, NSIDState>
33
+ {
34
+ private static mutex: Mutex = new Mutex();
35
+ private static mutexes: { [product_id: string]: Mutex } = {};
36
+ private info: NSIDInfo | null;
37
+ public static getKey(info: NSIDInfo, id: string)
38
+ {
39
+ return `${info.product.id}:${info.table.name}:${id}`
40
+ }
41
+ public static getInfo(id: string, map?: NamirasoftMap | null)
42
+ {
43
+ try
44
+ {
45
+ let short = BaseUUID.getShort(id);
46
+ let namriasoft = map ?? new NamirasoftMap();
47
+ return namriasoft.getByShortName(short);
48
+ } catch (error)
49
+ {
50
+ }
51
+ return null;
52
+ }
53
+ public static getCache(info: NSIDInfo, storage: IStorage, id: string)
54
+ {
55
+ let key = NSID.getKey(info, id);
56
+ return new CacheService<string>(key, storage, 60, async () => "0.0.0", async () =>
57
+ {
58
+ if (info.table.back_end.get)
59
+ {
60
+ try
61
+ {
62
+ let columns: string[] = [];
63
+ info.table.forEachColumn(column =>
64
+ {
65
+ if (column.name.includes("name"))
66
+ columns.push(column.name);
67
+ });
68
+ let row = await info.table.back_end.get(id);
69
+ let values = columns.map(column => row[column]).filter(x => x);
70
+ if (values.length > 0)
71
+ return values.join(" ");
72
+ return row.name ?? row.description ?? "";
73
+ } catch (error)
74
+ {
75
+ console.error(error);
76
+ }
77
+ }
78
+ return "";
79
+ });
80
+ }
81
+ public static clearID(storage: IStorage, id: string, map?: NamirasoftMap | null)
82
+ {
83
+ let info = NSID.getInfo(id, map);
84
+ if (info)
85
+ {
86
+ let cache = NSID.getCache(info, storage, id);
87
+ cache.del();
88
+ }
89
+ }
90
+ constructor(props: NSIDProps)
91
+ {
92
+ super(props);
93
+ this.state = {};
94
+ this.info = NSID.getInfo(this.props.id, this.props.map);
95
+ }
96
+ override componentDidMount(): void
97
+ {
98
+ this.reload();
99
+ }
100
+ async reload()
101
+ {
102
+ if (!this.info)
103
+ return;
104
+ if (!this.props.id)
105
+ return;
106
+ let info = this.info;
107
+ let cache = null;
108
+ if (this.props.storage)
109
+ {
110
+ cache = NSID.getCache(info, this.props.storage, this.props.id);
111
+ cache.runGetOn = await NSID.mutex.runExclusive(async () =>
112
+ {
113
+ if (!NSID.mutexes[info.product.id])
114
+ NSID.mutexes[info.product.id] = new Mutex();
115
+ return NSID.mutexes[info.product.id];
116
+ });
117
+ }
118
+ if (cache)
119
+ cache.get().then(text =>
120
+ {
121
+ this.setState({ text });
122
+ });
123
+ }
124
+
125
+ override render()
126
+ {
127
+ if (!this.props.id)
128
+ return <></>;
129
+ if (!this.info)
130
+ return this.props.id;
131
+
132
+ let text = this.state.text;
133
+ if (!text)
134
+ text = this.props.id;
135
+
136
+ let href = "";
137
+ try
138
+ {
139
+ href = this.info.table.front_end.getViewLink(this.props.id + "");
140
+ } catch (error)
141
+ {
142
+ }
143
+ let formatter = new BaseURLImageFormatter();
144
+ return (
145
+ <NSCopy
146
+ value={this.props.id}
147
+ classList={["justify-content-start"]}
148
+ >
149
+ {
150
+ formatter.format({
151
+ text,
152
+ href,
153
+ image: { url: this.info.product.logo, alt: this.info?.product.logo }
154
+ })
155
+ }
156
+ </NSCopy>
157
+ );
158
+ }
159
159
  }
@@ -1,26 +1,26 @@
1
- .ns_label_title {
2
- color: hsla(234, 64%, 22%, 1);
3
- margin-bottom: 8px;
4
- font-size: 16px;
5
- font-weight: bold;
6
- padding: 0px;
7
- margin: 0px;
8
- align-content: center;
9
- }
10
-
11
- .ns_label_desciption {
12
- color: hsla(234, 64%, 22%, 1);
13
- font-size: 16px;
14
- padding: 0px;
15
- margin: 0px;
16
- }
17
-
18
- .ns_label_item {
19
- padding: 8px;
20
- border-right: none !important;
21
- align-content: center;
22
- }
23
-
24
- .ns_label_item:not(:last-child) {
25
- border-right: 1px solid #ccc;
1
+ .ns_label_title {
2
+ color: hsla(234, 64%, 22%, 1);
3
+ margin-bottom: 8px;
4
+ font-size: 16px;
5
+ font-weight: bold;
6
+ padding: 0px;
7
+ margin: 0px;
8
+ align-content: center;
9
+ }
10
+
11
+ .ns_label_desciption {
12
+ color: hsla(234, 64%, 22%, 1);
13
+ font-size: 16px;
14
+ padding: 0px;
15
+ margin: 0px;
16
+ }
17
+
18
+ .ns_label_item {
19
+ padding: 8px;
20
+ border-right: none !important;
21
+ align-content: center;
22
+ }
23
+
24
+ .ns_label_item:not(:last-child) {
25
+ border-right: 1px solid #ccc;
26
26
  }
@@ -1,48 +1,48 @@
1
- "use client";
2
-
3
- import Styles from './NSLabel.module.css'
4
- import React from "react";
5
- import { ReactNode } from "react";
6
- import { IBaseComponentProps } from '../props/IBaseComponentProps';
7
- import { StringFormatter } from '../main';
8
-
9
- export interface NSLabelProps extends IBaseComponentProps
10
- {
11
- title: string;
12
- desciption?: string;
13
- children?: ReactNode;
14
- }
15
-
16
- export interface NSLabelState
17
- { }
18
-
19
- export class NSLabel extends React.Component<NSLabelProps, NSLabelState>
20
- {
21
- override render()
22
- {
23
- return (
24
- <div id={this.props.id} className={`${Styles.ns_label_item} ${this.props.classList?.join(" ") ?? ""}`} style={this.props.style}>
25
- <span className={`${Styles.ns_label_title} ns_font_16_bold`}>
26
- {this.props.title}
27
- </span>
28
- {
29
- this.props.desciption &&
30
- <div>
31
- <span className={`${Styles.ns_label_desciption}`}>
32
- {StringFormatter.toHTML(this.props.desciption)}
33
- </span>
34
- </div>
35
- }
36
- {
37
-
38
- this.props.children &&
39
- <>
40
- <div>
41
- {this.props.children}
42
- </div>
43
- </>
44
- }
45
- </div >
46
- );
47
- }
1
+ "use client";
2
+
3
+ import Styles from './NSLabel.module.css'
4
+ import React from "react";
5
+ import { ReactNode } from "react";
6
+ import { IBaseComponentProps } from '../props/IBaseComponentProps';
7
+ import { StringFormatter } from '../main';
8
+
9
+ export interface NSLabelProps extends IBaseComponentProps
10
+ {
11
+ title: string;
12
+ desciption?: string;
13
+ children?: ReactNode;
14
+ }
15
+
16
+ export interface NSLabelState
17
+ { }
18
+
19
+ export class NSLabel extends React.Component<NSLabelProps, NSLabelState>
20
+ {
21
+ override render()
22
+ {
23
+ return (
24
+ <div id={this.props.id} className={`${Styles.ns_label_item} ${this.props.classList?.join(" ") ?? ""}`} style={this.props.style}>
25
+ <span className={`${Styles.ns_label_title} ns_font_16_bold`}>
26
+ {this.props.title}
27
+ </span>
28
+ {
29
+ this.props.desciption &&
30
+ <div>
31
+ <span className={`${Styles.ns_label_desciption}`}>
32
+ {StringFormatter.toHTML(this.props.desciption)}
33
+ </span>
34
+ </div>
35
+ }
36
+ {
37
+
38
+ this.props.children &&
39
+ <>
40
+ <div>
41
+ {this.props.children}
42
+ </div>
43
+ </>
44
+ }
45
+ </div >
46
+ );
47
+ }
48
48
  }
@@ -1,3 +1,3 @@
1
- .ns_label_error_notifier_text {
2
- color: #FF3F3F !important;
1
+ .ns_label_error_notifier_text {
2
+ color: #FF3F3F !important;
3
3
  }