namirasoft-site-react 1.4.339 → 1.4.341

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 (297) 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.js +1 -1
  8. package/dist/components/NSBarAction.js.map +1 -1
  9. package/dist/components/NSBarAction.module.css +84 -84
  10. package/dist/components/NSBarAlert.module.css +79 -79
  11. package/dist/components/NSBarNotification.module.css +34 -34
  12. package/dist/components/NSBarTitle.module.css +9 -9
  13. package/dist/components/NSBox.module.css +50 -50
  14. package/dist/components/NSBoxBaseCombo.module.css +6 -6
  15. package/dist/components/NSBoxBoolean.module.css +67 -67
  16. package/dist/components/NSBoxDate.module.css +4 -4
  17. package/dist/components/NSBoxDateTime.module.css +4 -4
  18. package/dist/components/NSBoxDuration.module.css +4 -4
  19. package/dist/components/NSBoxFile.module.css +10 -10
  20. package/dist/components/NSBoxPhone.module.css +35 -35
  21. package/dist/components/NSBoxRadio.module.css +33 -33
  22. package/dist/components/NSBoxSchemaBase.module.css +17 -17
  23. package/dist/components/NSBoxSchemaVariable.module.css +16 -16
  24. package/dist/components/NSBoxTextArea.module.css +12 -12
  25. package/dist/components/NSBoxTime.module.css +4 -4
  26. package/dist/components/NSButton.module.css +57 -57
  27. package/dist/components/NSButtonBlue.module.css +4 -4
  28. package/dist/components/NSButtonGreen.module.css +4 -4
  29. package/dist/components/NSButtonRed.module.css +4 -4
  30. package/dist/components/NSCard.module.css +114 -114
  31. package/dist/components/NSCardScreenshot.module.css +41 -41
  32. package/dist/components/NSChartColumn.module.css +7 -7
  33. package/dist/components/NSChartTable.module.css +21 -21
  34. package/dist/components/NSColumn.module.css +16 -16
  35. package/dist/components/NSCopyBox.module.css +39 -39
  36. package/dist/components/NSDialog.module.css +112 -112
  37. package/dist/components/NSDialogInfo.d.ts +1 -0
  38. package/dist/components/NSDialogInfo.js +12 -1
  39. package/dist/components/NSDialogInfo.js.map +1 -1
  40. package/dist/components/NSDialogPageSelection.module.css +103 -103
  41. package/dist/components/NSDownTimer.module.css +55 -55
  42. package/dist/components/NSDownload.module.css +46 -46
  43. package/dist/components/NSElectronicCard.module.css +60 -60
  44. package/dist/components/NSEntityCardBackground.module.css +27 -27
  45. package/dist/components/NSFilterBox.module.css +56 -56
  46. package/dist/components/NSFilterItem.module.css +24 -24
  47. package/dist/components/NSFooter.module.css +134 -134
  48. package/dist/components/NSHeader.module.css +291 -291
  49. package/dist/components/NSHeaderScreenshot.module.css +35 -35
  50. package/dist/components/NSID.js +2 -0
  51. package/dist/components/NSID.js.map +1 -1
  52. package/dist/components/NSLabel.module.css +25 -25
  53. package/dist/components/NSLabelErrorNotifier.module.css +2 -2
  54. package/dist/components/NSLayout.module.css +14 -14
  55. package/dist/components/NSLine.module.css +15 -15
  56. package/dist/components/NSLink.module.css +36 -36
  57. package/dist/components/NSListGrouped.module.css +69 -69
  58. package/dist/components/NSLoading.module.css +30 -30
  59. package/dist/components/NSMenuAction.js +2 -2
  60. package/dist/components/NSMenuAction.module.css +88 -88
  61. package/dist/components/NSMenuButton.module.css +44 -44
  62. package/dist/components/NSNoData.module.css +9 -9
  63. package/dist/components/NSPagination.module.css +85 -85
  64. package/dist/components/NSPanel.module.css +19 -19
  65. package/dist/components/NSPanelAccordion.module.css +4 -4
  66. package/dist/components/NSRange.module.css +66 -66
  67. package/dist/components/NSRow.module.css +17 -17
  68. package/dist/components/NSSection.module.css +4 -4
  69. package/dist/components/NSSectionCards.module.css +38 -38
  70. package/dist/components/NSSectionTiles.module.css +10 -10
  71. package/dist/components/NSTabPage.module.css +59 -59
  72. package/dist/components/NSTable.js +1 -1
  73. package/dist/components/NSTable.js.map +1 -1
  74. package/dist/components/NSTable.module.css +263 -263
  75. package/dist/components/NSTile.module.css +76 -76
  76. package/dist/components/NSTimelineMonthly.module.css +71 -71
  77. package/dist/components/NSTitle.module.css +15 -15
  78. package/dist/index.css +6 -0
  79. package/dist/pages/NSNotFoundPage.module.css +18 -18
  80. package/dist/pages/NSUpdating.module.css +35 -35
  81. package/package.json +80 -80
  82. package/public/index.html +38 -38
  83. package/src/App.css +33 -33
  84. package/src/App.tsx +131 -131
  85. package/src/Color.tsx +10 -10
  86. package/src/CopyToClipboard.ts +6 -6
  87. package/src/NSBoxBuilder.tsx +914 -914
  88. package/src/Validator.ts +163 -163
  89. package/src/components/INSBox.tsx +6 -6
  90. package/src/components/NSBanner.module.css +47 -47
  91. package/src/components/NSBanner.tsx +80 -80
  92. package/src/components/NSBarAction.module.css +84 -84
  93. package/src/components/NSBarAction.tsx +91 -90
  94. package/src/components/NSBarAlert.module.css +79 -79
  95. package/src/components/NSBarAlert.tsx +35 -35
  96. package/src/components/NSBarNotification.module.css +34 -34
  97. package/src/components/NSBarNotification.tsx +85 -85
  98. package/src/components/NSBarTitle.module.css +9 -9
  99. package/src/components/NSBarTitle.tsx +23 -23
  100. package/src/components/NSBox.module.css +50 -50
  101. package/src/components/NSBox.tsx +19 -19
  102. package/src/components/NSBoxBaseCombo.module.css +6 -6
  103. package/src/components/NSBoxBaseCombo.tsx +314 -314
  104. package/src/components/NSBoxBaseLayout.tsx +88 -88
  105. package/src/components/NSBoxBaseLayoutRecursive.tsx +54 -54
  106. package/src/components/NSBoxBoolean.module.css +67 -67
  107. package/src/components/NSBoxBoolean.tsx +119 -119
  108. package/src/components/NSBoxBooleans.tsx +161 -161
  109. package/src/components/NSBoxColor.tsx +95 -95
  110. package/src/components/NSBoxCombo.tsx +91 -91
  111. package/src/components/NSBoxDate.module.css +4 -4
  112. package/src/components/NSBoxDate.tsx +90 -90
  113. package/src/components/NSBoxDateTime.module.css +4 -4
  114. package/src/components/NSBoxDateTime.tsx +105 -105
  115. package/src/components/NSBoxDouble.tsx +94 -94
  116. package/src/components/NSBoxDuration.module.css +4 -4
  117. package/src/components/NSBoxDuration.tsx +95 -95
  118. package/src/components/NSBoxDynamic.tsx +67 -67
  119. package/src/components/NSBoxDynamics.tsx +68 -68
  120. package/src/components/NSBoxEmail.tsx +98 -98
  121. package/src/components/NSBoxEntity.tsx +101 -101
  122. package/src/components/NSBoxEnum.tsx +108 -108
  123. package/src/components/NSBoxFile.module.css +10 -10
  124. package/src/components/NSBoxFile.tsx +101 -101
  125. package/src/components/NSBoxFilePath.tsx +95 -95
  126. package/src/components/NSBoxFont.tsx +95 -95
  127. package/src/components/NSBoxIPV4.tsx +95 -95
  128. package/src/components/NSBoxIPV4Range.tsx +95 -95
  129. package/src/components/NSBoxIPV6.tsx +92 -92
  130. package/src/components/NSBoxIPV6Range.tsx +95 -95
  131. package/src/components/NSBoxInteger.tsx +91 -91
  132. package/src/components/NSBoxMoney.tsx +95 -95
  133. package/src/components/NSBoxPassword.tsx +106 -106
  134. package/src/components/NSBoxPhone.module.css +35 -35
  135. package/src/components/NSBoxPhone.tsx +107 -107
  136. package/src/components/NSBoxRadio.module.css +33 -33
  137. package/src/components/NSBoxRadio.tsx +91 -91
  138. package/src/components/NSBoxSchemaBase.module.css +17 -17
  139. package/src/components/NSBoxSchemaBase.tsx +540 -540
  140. package/src/components/NSBoxSchemaVariable.module.css +16 -16
  141. package/src/components/NSBoxSchemaVariable.tsx +250 -250
  142. package/src/components/NSBoxSearch.tsx +97 -97
  143. package/src/components/NSBoxString.tsx +91 -91
  144. package/src/components/NSBoxTextArea.module.css +12 -12
  145. package/src/components/NSBoxTextArea.tsx +98 -98
  146. package/src/components/NSBoxTime.module.css +4 -4
  147. package/src/components/NSBoxTime.tsx +93 -93
  148. package/src/components/NSBoxTimeZone.tsx +95 -95
  149. package/src/components/NSBoxURL.tsx +104 -104
  150. package/src/components/NSBoxVersion.tsx +95 -95
  151. package/src/components/NSButton.module.css +57 -57
  152. package/src/components/NSButton.tsx +25 -25
  153. package/src/components/NSButtonBlue.module.css +4 -4
  154. package/src/components/NSButtonBlue.tsx +19 -19
  155. package/src/components/NSButtonGreen.module.css +4 -4
  156. package/src/components/NSButtonGreen.tsx +19 -19
  157. package/src/components/NSButtonRed.module.css +4 -4
  158. package/src/components/NSButtonRed.tsx +19 -19
  159. package/src/components/NSCard.module.css +114 -114
  160. package/src/components/NSCard.tsx +63 -63
  161. package/src/components/NSCardScreenshot.module.css +41 -41
  162. package/src/components/NSCardScreenshot.tsx +31 -31
  163. package/src/components/NSChartColumn.module.css +7 -7
  164. package/src/components/NSChartColumn.tsx +106 -106
  165. package/src/components/NSChartDoughnut.tsx +112 -112
  166. package/src/components/NSChartPie.tsx +105 -105
  167. package/src/components/NSChartRange.tsx +14 -14
  168. package/src/components/NSChartTable.module.css +21 -21
  169. package/src/components/NSChartTable.tsx +94 -94
  170. package/src/components/NSColumn.module.css +16 -16
  171. package/src/components/NSColumn.tsx +24 -24
  172. package/src/components/NSCopy.tsx +58 -58
  173. package/src/components/NSCopyBox.module.css +39 -39
  174. package/src/components/NSCopyBox.tsx +53 -53
  175. package/src/components/NSDialog.module.css +112 -112
  176. package/src/components/NSDialog.tsx +61 -61
  177. package/src/components/NSDialogDelete.tsx +26 -26
  178. package/src/components/NSDialogInfo.tsx +49 -32
  179. package/src/components/NSDialogPageSelection.module.css +103 -103
  180. package/src/components/NSDialogPageSelection.tsx +227 -227
  181. package/src/components/NSDownTimer.module.css +55 -55
  182. package/src/components/NSDownTimer.tsx +91 -91
  183. package/src/components/NSDownload.module.css +46 -46
  184. package/src/components/NSDownload.tsx +66 -66
  185. package/src/components/NSElectronicCard.module.css +60 -60
  186. package/src/components/NSElectronicCard.tsx +46 -46
  187. package/src/components/NSEntityCardBackground.module.css +27 -27
  188. package/src/components/NSEntityCardBackground.tsx +36 -36
  189. package/src/components/NSFilterBox.module.css +56 -56
  190. package/src/components/NSFilterBox.tsx +506 -506
  191. package/src/components/NSFilterItem.module.css +24 -24
  192. package/src/components/NSFilterItem.tsx +27 -27
  193. package/src/components/NSFooter.module.css +134 -134
  194. package/src/components/NSFooter.tsx +321 -321
  195. package/src/components/NSHeader.module.css +291 -291
  196. package/src/components/NSHeader.tsx +261 -261
  197. package/src/components/NSHeaderScreenshot.module.css +35 -35
  198. package/src/components/NSHeaderScreenshot.tsx +39 -39
  199. package/src/components/NSID.tsx +133 -131
  200. package/src/components/NSLabel.module.css +25 -25
  201. package/src/components/NSLabel.tsx +46 -46
  202. package/src/components/NSLabelErrorNotifier.module.css +2 -2
  203. package/src/components/NSLabelErrorNotifier.tsx +35 -35
  204. package/src/components/NSLayout.module.css +14 -14
  205. package/src/components/NSLayout.tsx +126 -126
  206. package/src/components/NSLine.module.css +15 -15
  207. package/src/components/NSLine.tsx +13 -13
  208. package/src/components/NSLink.module.css +36 -36
  209. package/src/components/NSLink.tsx +25 -25
  210. package/src/components/NSLinkBlue.tsx +21 -21
  211. package/src/components/NSLinkGreen.tsx +12 -12
  212. package/src/components/NSLinkRed.tsx +12 -12
  213. package/src/components/NSListGrouped.module.css +69 -69
  214. package/src/components/NSListGrouped.tsx +106 -106
  215. package/src/components/NSListProduct.tsx +44 -44
  216. package/src/components/NSLoading.module.css +30 -30
  217. package/src/components/NSLoading.tsx +21 -21
  218. package/src/components/NSMenuAction.module.css +88 -88
  219. package/src/components/NSMenuAction.tsx +90 -90
  220. package/src/components/NSMenuButton.module.css +44 -44
  221. package/src/components/NSMenuButton.tsx +206 -206
  222. package/src/components/NSNoData.module.css +9 -9
  223. package/src/components/NSNoData.tsx +24 -24
  224. package/src/components/NSPagination.module.css +85 -85
  225. package/src/components/NSPagination.tsx +182 -182
  226. package/src/components/NSPanel.module.css +19 -19
  227. package/src/components/NSPanel.tsx +24 -24
  228. package/src/components/NSPanelAccordion.module.css +4 -4
  229. package/src/components/NSPanelAccordion.tsx +51 -51
  230. package/src/components/NSRange.module.css +66 -66
  231. package/src/components/NSRange.tsx +83 -83
  232. package/src/components/NSRepeater.tsx +256 -256
  233. package/src/components/NSRepeaterNSBoxSchemaVariable.tsx +90 -90
  234. package/src/components/NSRepeaterNSTag.tsx +81 -81
  235. package/src/components/NSRow.module.css +17 -17
  236. package/src/components/NSRow.tsx +24 -24
  237. package/src/components/NSSection.module.css +4 -4
  238. package/src/components/NSSection.tsx +26 -26
  239. package/src/components/NSSectionCards.module.css +38 -38
  240. package/src/components/NSSectionCards.tsx +51 -51
  241. package/src/components/NSSectionTiles.module.css +10 -10
  242. package/src/components/NSSectionTiles.tsx +25 -25
  243. package/src/components/NSSectionTitle.tsx +21 -21
  244. package/src/components/NSSpace.tsx +28 -28
  245. package/src/components/NSTabPage.module.css +59 -59
  246. package/src/components/NSTabPage.tsx +91 -91
  247. package/src/components/NSTable.module.css +263 -263
  248. package/src/components/NSTable.tsx +483 -482
  249. package/src/components/NSTag.tsx +74 -74
  250. package/src/components/NSTile.module.css +76 -76
  251. package/src/components/NSTile.tsx +27 -27
  252. package/src/components/NSTimelineMonthly.module.css +71 -71
  253. package/src/components/NSTimelineMonthly.tsx +44 -44
  254. package/src/components/NSTitle.module.css +15 -15
  255. package/src/components/NSTitle.tsx +19 -19
  256. package/src/formatter/BackColorFormatter.tsx +23 -23
  257. package/src/formatter/BaseColumnFormatter.ts +16 -16
  258. package/src/formatter/BaseURLImageFormatter.tsx +33 -33
  259. package/src/formatter/BooleanFormatter.ts +22 -22
  260. package/src/formatter/DateFormatter.ts +21 -21
  261. package/src/formatter/DateTimeFormatter.ts +21 -21
  262. package/src/formatter/DurationFormatter.ts +13 -13
  263. package/src/formatter/EmailFormatter.tsx +21 -21
  264. package/src/formatter/EnumFormatter.ts +13 -13
  265. package/src/formatter/FloatFormatter.ts +23 -23
  266. package/src/formatter/ForeColorFormatter.tsx +24 -24
  267. package/src/formatter/IDFormatter.tsx +30 -30
  268. package/src/formatter/IPFormatter.ts +13 -13
  269. package/src/formatter/IntegerFormatter.ts +23 -23
  270. package/src/formatter/JsonFormatter.ts +21 -21
  271. package/src/formatter/MoneyFormatter.ts +30 -30
  272. package/src/formatter/PhoneFormatter.tsx +21 -21
  273. package/src/formatter/StringFormatter.tsx +43 -43
  274. package/src/formatter/TimeFormatter.ts +21 -21
  275. package/src/formatter/URLFormatter.tsx +21 -21
  276. package/src/formatter/UnknowFormatter.ts +18 -18
  277. package/src/index.tsx +7 -7
  278. package/src/main.ts +222 -222
  279. package/src/pages/NSNotFoundPage.module.css +18 -18
  280. package/src/pages/NSNotFoundPage.tsx +11 -11
  281. package/src/pages/NSUpdating.module.css +35 -35
  282. package/src/pages/NSUpdating.tsx +32 -32
  283. package/src/props/IBackgroundPropps.ts +5 -5
  284. package/src/props/IBaseComponentProps.ts +8 -8
  285. package/src/props/IHeaderIconProps.ts +10 -10
  286. package/src/props/IHeaderProps.ts +7 -7
  287. package/src/props/IImageProps.ts +4 -4
  288. package/src/props/ILinkProps.ts +5 -5
  289. package/src/props/IValidationNumberProps.ts +4 -4
  290. package/src/props/IValidationPrecisionProps.ts +3 -3
  291. package/src/props/IValidationProps.ts +9 -9
  292. package/src/props/IValidationRegexProps.ts +4 -4
  293. package/src/props/IValidationStringProps.ts +4 -4
  294. package/src/routing/NSNotifier.ts +114 -114
  295. package/src/routing/NSRouterMaker.tsx +20 -20
  296. package/src/routing/NSRouterMakerComponent.ts +5 -5
  297. package/src/routing/NSRouterMakerProps.ts +5 -5
@@ -1,89 +1,89 @@
1
- "use client";
2
- import React, { RefObject } from "react";
3
- import StylesNSBox from "./NSBox.module.css";
4
- import { IValidationProps } from "../props/IValidationProps";
5
- import { IValidationStringProps } from "../props/IValidationStringProps";
6
- import { IBaseComponentProps } from "../props/IBaseComponentProps";
7
- import { NSLabelErrorNotifier } from "./NSLabelErrorNotifier";
8
- import { NSMenuButton, NSMenuButtonMenuProps, NSMenuButtonProps } from "./NSMenuButton";
9
-
10
- export interface INSBoxBaseLayoutProps<Box, Data>
11
- {
12
- title: string;
13
- description?: string;
14
- placeholder?: string;
15
- defaultValue?: Data;
16
- hideHeader?: boolean;
17
- onChanged?: (e: Box) => void;
18
- onClicked?: (e: Box) => void;
19
- onEnterPressed?: () => void;
20
- menu?: NSMenuButtonMenuProps;
21
- }
22
-
23
- export interface NSBoxBaseLayoutProps extends IBaseComponentProps, IValidationProps, IValidationStringProps, NSMenuButtonProps
24
- {
25
- title: string;
26
- hideHeader?: boolean;
27
- children: React.ReactNode;
28
- onEnterPressed?: () => void;
29
- }
30
-
31
- export interface NSBoxBaseLayoutState
32
- {
33
- error?: string;
34
- }
35
-
36
- export class NSBoxBaseLayout extends React.Component<NSBoxBaseLayoutProps, NSBoxBaseLayoutState>
37
- {
38
- static checkGetValue<T>(box: { NSBoxBaseLayout_Main: RefObject<NSBoxBaseLayout>, getError: () => string | null }, checkError: boolean, handler: () => T | null): T | null
39
- {
40
- return box.NSBoxBaseLayout_Main.current?._onGetValue(checkError, box.getError, handler) ?? null;
41
- }
42
- constructor(props: NSBoxBaseLayoutProps)
43
- {
44
- super(props);
45
- this.state = { error: "" };
46
- this._onGetValue = this._onGetValue.bind(this);
47
- }
48
- private _onGetValue<T>(checkError: boolean, getError: () => string | null, handler: () => T): T
49
- {
50
- if (checkError)
51
- {
52
- let error = getError();
53
- if (error)
54
- {
55
- this.setState({ error });
56
- throw new Error(error);
57
- }
58
- }
59
- return handler();
60
- }
61
- override render()
62
- {
63
- return (
64
- <>
65
- <div
66
- id={this.props.id}
67
- className={`${StylesNSBox.ns_box_input_parent} ${this.props.classList?.join(" ") ?? ""}`}
68
- style={this.props.style}
69
- onKeyUp={e =>
70
- {
71
- if (e.key === "Enter")
72
- this.props.onEnterPressed?.();
73
- }}
74
- >
75
- {
76
- !this.props.hideHeader && <div className={`${StylesNSBox.ns_box_input_bar}`}>
77
- <span className={StylesNSBox.ns_box_input_title}>
78
- {this.props.required && <span style={{ color: "red" }}>*</span>} {this.props.title}
79
- </span>
80
- <NSMenuButton description={this.props.description} menu={this.props.menu} />
81
- </div>
82
- }
83
- {this.props.children}
84
- <NSLabelErrorNotifier error={this.state.error} clearError={() => this.setState({ error: undefined })} />
85
- </div>
86
- </>
87
- );
88
- }
1
+ "use client";
2
+ import React, { RefObject } from "react";
3
+ import StylesNSBox from "./NSBox.module.css";
4
+ import { IValidationProps } from "../props/IValidationProps";
5
+ import { IValidationStringProps } from "../props/IValidationStringProps";
6
+ import { IBaseComponentProps } from "../props/IBaseComponentProps";
7
+ import { NSLabelErrorNotifier } from "./NSLabelErrorNotifier";
8
+ import { NSMenuButton, NSMenuButtonMenuProps, NSMenuButtonProps } from "./NSMenuButton";
9
+
10
+ export interface INSBoxBaseLayoutProps<Box, Data>
11
+ {
12
+ title: string;
13
+ description?: string;
14
+ placeholder?: string;
15
+ defaultValue?: Data;
16
+ hideHeader?: boolean;
17
+ onChanged?: (e: Box) => void;
18
+ onClicked?: (e: Box) => void;
19
+ onEnterPressed?: () => void;
20
+ menu?: NSMenuButtonMenuProps;
21
+ }
22
+
23
+ export interface NSBoxBaseLayoutProps extends IBaseComponentProps, IValidationProps, IValidationStringProps, NSMenuButtonProps
24
+ {
25
+ title: string;
26
+ hideHeader?: boolean;
27
+ children: React.ReactNode;
28
+ onEnterPressed?: () => void;
29
+ }
30
+
31
+ export interface NSBoxBaseLayoutState
32
+ {
33
+ error?: string;
34
+ }
35
+
36
+ export class NSBoxBaseLayout extends React.Component<NSBoxBaseLayoutProps, NSBoxBaseLayoutState>
37
+ {
38
+ static checkGetValue<T>(box: { NSBoxBaseLayout_Main: RefObject<NSBoxBaseLayout>, getError: () => string | null }, checkError: boolean, handler: () => T | null): T | null
39
+ {
40
+ return box.NSBoxBaseLayout_Main.current?._onGetValue(checkError, box.getError, handler) ?? null;
41
+ }
42
+ constructor(props: NSBoxBaseLayoutProps)
43
+ {
44
+ super(props);
45
+ this.state = { error: "" };
46
+ this._onGetValue = this._onGetValue.bind(this);
47
+ }
48
+ private _onGetValue<T>(checkError: boolean, getError: () => string | null, handler: () => T): T
49
+ {
50
+ if (checkError)
51
+ {
52
+ let error = getError();
53
+ if (error)
54
+ {
55
+ this.setState({ error });
56
+ throw new Error(error);
57
+ }
58
+ }
59
+ return handler();
60
+ }
61
+ override render()
62
+ {
63
+ return (
64
+ <>
65
+ <div
66
+ id={this.props.id}
67
+ className={`${StylesNSBox.ns_box_input_parent} ${this.props.classList?.join(" ") ?? ""}`}
68
+ style={this.props.style}
69
+ onKeyUp={e =>
70
+ {
71
+ if (e.key === "Enter")
72
+ this.props.onEnterPressed?.();
73
+ }}
74
+ >
75
+ {
76
+ !this.props.hideHeader && <div className={`${StylesNSBox.ns_box_input_bar}`}>
77
+ <span className={StylesNSBox.ns_box_input_title}>
78
+ {this.props.required && <span style={{ color: "red" }}>*</span>} {this.props.title}
79
+ </span>
80
+ <NSMenuButton description={this.props.description} menu={this.props.menu} />
81
+ </div>
82
+ }
83
+ {this.props.children}
84
+ <NSLabelErrorNotifier error={this.state.error} clearError={() => this.setState({ error: undefined })} />
85
+ </div>
86
+ </>
87
+ );
88
+ }
89
89
  }
@@ -1,55 +1,55 @@
1
- "use client";
2
- import React, { createRef, RefObject } from "react";
3
- import { NSBoxBaseLayout, NSBoxBaseLayoutProps } from "./NSBoxBaseLayout";
4
- import { NSColumn } from "./NSColumn";
5
-
6
- export interface NSBoxBaseLayoutRecursiveProps extends NSBoxBaseLayoutProps
7
- {
8
- depth: number;
9
- }
10
-
11
- export class NSBoxBaseLayoutRecursive extends React.Component<NSBoxBaseLayoutRecursiveProps>
12
- {
13
- static checkGetValue<T>(box: { NSBoxBaseLayoutRecursive_Main: RefObject<NSBoxBaseLayoutRecursive>, getError: () => string | null }, checkError: boolean, handler: () => T | null): T | null
14
- {
15
- if (box.NSBoxBaseLayoutRecursive_Main.current?.NSBoxBaseLayout_Main.current)
16
- return NSBoxBaseLayout.checkGetValue({
17
- NSBoxBaseLayout_Main: box.NSBoxBaseLayoutRecursive_Main.current?.NSBoxBaseLayout_Main,
18
- getError: box.getError,
19
- }, checkError, handler);
20
- return null;
21
- }
22
- NSBoxBaseLayout_Main = createRef<NSBoxBaseLayout>();
23
- override render()
24
- {
25
- let white = "#ffffff";
26
- let yellow = "#ffffdd";
27
- // let pink = "#ffddff";
28
- // let red = "#ffdddd";
29
- let cyan = "#ddffff";
30
- let green = "#ddffdd";
31
- let gray = "#dddddd";
32
- //let magenta = "#ddddff";
33
- let colors = [white, green, yellow, cyan, gray];
34
- return (
35
- <NSBoxBaseLayout
36
- ref={this.NSBoxBaseLayout_Main}
37
- {...this.props}
38
- >
39
- <NSColumn
40
- style={{
41
- borderTop: "1px solid black",
42
- borderLeft: "1px solid black",
43
- borderRadius: "8px",
44
- paddingLeft: "14px",
45
- paddingBottom: "8px",
46
- paddingRight: "1px",
47
- backgroundColor: colors[this.props.depth % colors.length]
48
- }}
49
- >
50
- {this.props.children}
51
- </NSColumn>
52
- </NSBoxBaseLayout>
53
- );
54
- }
1
+ "use client";
2
+ import React, { createRef, RefObject } from "react";
3
+ import { NSBoxBaseLayout, NSBoxBaseLayoutProps } from "./NSBoxBaseLayout";
4
+ import { NSColumn } from "./NSColumn";
5
+
6
+ export interface NSBoxBaseLayoutRecursiveProps extends NSBoxBaseLayoutProps
7
+ {
8
+ depth: number;
9
+ }
10
+
11
+ export class NSBoxBaseLayoutRecursive extends React.Component<NSBoxBaseLayoutRecursiveProps>
12
+ {
13
+ static checkGetValue<T>(box: { NSBoxBaseLayoutRecursive_Main: RefObject<NSBoxBaseLayoutRecursive>, getError: () => string | null }, checkError: boolean, handler: () => T | null): T | null
14
+ {
15
+ if (box.NSBoxBaseLayoutRecursive_Main.current?.NSBoxBaseLayout_Main.current)
16
+ return NSBoxBaseLayout.checkGetValue({
17
+ NSBoxBaseLayout_Main: box.NSBoxBaseLayoutRecursive_Main.current?.NSBoxBaseLayout_Main,
18
+ getError: box.getError,
19
+ }, checkError, handler);
20
+ return null;
21
+ }
22
+ NSBoxBaseLayout_Main = createRef<NSBoxBaseLayout>();
23
+ override render()
24
+ {
25
+ let white = "#ffffff";
26
+ let yellow = "#ffffdd";
27
+ // let pink = "#ffddff";
28
+ // let red = "#ffdddd";
29
+ let cyan = "#ddffff";
30
+ let green = "#ddffdd";
31
+ let gray = "#dddddd";
32
+ //let magenta = "#ddddff";
33
+ let colors = [white, green, yellow, cyan, gray];
34
+ return (
35
+ <NSBoxBaseLayout
36
+ ref={this.NSBoxBaseLayout_Main}
37
+ {...this.props}
38
+ >
39
+ <NSColumn
40
+ style={{
41
+ borderTop: "1px solid black",
42
+ borderLeft: "1px solid black",
43
+ borderRadius: "8px",
44
+ paddingLeft: "14px",
45
+ paddingBottom: "8px",
46
+ paddingRight: "1px",
47
+ backgroundColor: colors[this.props.depth % colors.length]
48
+ }}
49
+ >
50
+ {this.props.children}
51
+ </NSColumn>
52
+ </NSBoxBaseLayout>
53
+ );
54
+ }
55
55
  }
@@ -1,68 +1,68 @@
1
- .ns_box_boolean_label {
2
- width: 100%;
3
- height: 48px;
4
- padding: 10px 12px 10px 12px;
5
- background-color: #fff;
6
- color: #141B5C;
7
- border-radius: 8px;
8
- border: 1px solid rgba(0, 0, 0, 1) !important;
9
- font-size: 16px;
10
- font-weight: 400;
11
- font-family: inherit;
12
- cursor: pointer;
13
- position: relative;
14
- display: flex;
15
- flex-direction: row;
16
- justify-content: left;
17
- align-items: center;
18
- gap: 4px;
19
- }
20
-
21
- .ns_box_boolean_input {
22
- width: 24px;
23
- height: 24px;
24
- cursor: pointer;
25
- }
26
-
27
- .ns_box_boolean_input:focus-visible {
28
- border-color: rgba(0, 0, 0, 1) !important;
29
- outline: solid 1px #4096ff !important;
30
- }
31
-
32
- .ns_box_boolean_input:checked {
33
- accent-color: #141B5C;
34
- }
35
-
36
- .ns_box_boolean_indeterminate:indeterminate {
37
- border: 1px solid rgba(255, 148, 50, 1);
38
- }
39
-
40
- .ns_box_boolean_indeterminate {
41
- position: relative;
42
- }
43
-
44
- .ns_box_boolean_indeterminate::before {
45
- content: "";
46
- display: block;
47
- position: absolute;
48
- width: 100%;
49
- height: 100%;
50
- top: 0;
51
- right: 0;
52
- border: 5px solid #141b5c;
53
- color: #141b5c;
54
- background: #fffbff;
55
- }
56
-
57
- .ns_box_boolean_indeterminate::after {
58
- content: "";
59
- display: block;
60
- position: absolute;
61
- width: 18px;
62
- height: 18px;
63
- top: 3px;
64
- left: 3px;
65
- border: 3px solid #fffbff;
66
- color: #141b5c;
67
- background: #141b5c;
1
+ .ns_box_boolean_label {
2
+ width: 100%;
3
+ height: 48px;
4
+ padding: 10px 12px 10px 12px;
5
+ background-color: #fff;
6
+ color: #141B5C;
7
+ border-radius: 8px;
8
+ border: 1px solid rgba(0, 0, 0, 1) !important;
9
+ font-size: 16px;
10
+ font-weight: 400;
11
+ font-family: inherit;
12
+ cursor: pointer;
13
+ position: relative;
14
+ display: flex;
15
+ flex-direction: row;
16
+ justify-content: left;
17
+ align-items: center;
18
+ gap: 4px;
19
+ }
20
+
21
+ .ns_box_boolean_input {
22
+ width: 24px;
23
+ height: 24px;
24
+ cursor: pointer;
25
+ }
26
+
27
+ .ns_box_boolean_input:focus-visible {
28
+ border-color: rgba(0, 0, 0, 1) !important;
29
+ outline: solid 1px #4096ff !important;
30
+ }
31
+
32
+ .ns_box_boolean_input:checked {
33
+ accent-color: #141B5C;
34
+ }
35
+
36
+ .ns_box_boolean_indeterminate:indeterminate {
37
+ border: 1px solid rgba(255, 148, 50, 1);
38
+ }
39
+
40
+ .ns_box_boolean_indeterminate {
41
+ position: relative;
42
+ }
43
+
44
+ .ns_box_boolean_indeterminate::before {
45
+ content: "";
46
+ display: block;
47
+ position: absolute;
48
+ width: 100%;
49
+ height: 100%;
50
+ top: 0;
51
+ right: 0;
52
+ border: 5px solid #141b5c;
53
+ color: #141b5c;
54
+ background: #fffbff;
55
+ }
56
+
57
+ .ns_box_boolean_indeterminate::after {
58
+ content: "";
59
+ display: block;
60
+ position: absolute;
61
+ width: 18px;
62
+ height: 18px;
63
+ top: 3px;
64
+ left: 3px;
65
+ border: 3px solid #fffbff;
66
+ color: #141b5c;
67
+ background: #141b5c;
68
68
  }
@@ -1,120 +1,120 @@
1
- "use client";
2
-
3
- import React, { createRef } from "react";
4
- import Styles from "./NSBoxBoolean.module.css";
5
- import { IBaseComponentProps } from "../props/IBaseComponentProps";
6
- import { IValidationProps } from "../props/IValidationProps";
7
- import { safeMenuMenuItem } from "./NSMenuButton";
8
- import { INSBoxBaseLayoutProps, NSBoxBaseLayout } from "./NSBoxBaseLayout";
9
- import { Validator } from "../Validator";
10
- import { INSBox } from "./INSBox";
11
-
12
- export interface NSBoxBooleanProps extends IBaseComponentProps, IValidationProps, INSBoxBaseLayoutProps<NSBoxBoolean, boolean>
13
- {
14
- checked?: (boolean | null);
15
- input?: IBaseComponentProps;
16
- }
17
-
18
- export interface NSBoxBooleanState
19
- {
20
- value: boolean | null;
21
- }
22
-
23
- export class NSBoxBoolean extends React.Component<NSBoxBooleanProps, NSBoxBooleanState> implements INSBox
24
- {
25
- private _isdirtied: boolean = false;
26
- NSBoxBaseLayout_Main = createRef<NSBoxBaseLayout>();
27
- constructor(props: NSBoxBooleanProps)
28
- {
29
- super(props);
30
- this.state = { value: props.checked ?? props.defaultValue ?? false };
31
- this.isEmpty = this.isEmpty.bind(this);
32
- this.getError = this.getError.bind(this);
33
- this.getValue = this.getValue.bind(this);
34
- this.setValue = this.setValue.bind(this);
35
- this.getValueNull = this.getValueNull.bind(this);
36
- this.setValueNull = this.setValueNull.bind(this);
37
- }
38
- getError(): string | null
39
- {
40
- return (
41
- Validator.getError(this.props.title, this.state.value, this.props)
42
- );
43
- }
44
- getValue(checkError: boolean = true): boolean | null
45
- {
46
- if (this.props.required)
47
- return this.getValueBool(checkError);
48
- return this.getValueNull(checkError);
49
- }
50
- setValue(value: boolean | null, callback?: () => void): void
51
- {
52
- this.setValueNull(value, callback);
53
- }
54
- getValueBool(checkError: boolean = true): boolean
55
- {
56
- if (!this.props.required)
57
- throw new Error("Please call getValue or getValueNull function");
58
- return NSBoxBaseLayout.checkGetValue(this, checkError, () => this.state.value) ?? false;
59
- }
60
- setValueBool(value: boolean, callback?: () => void): void
61
- {
62
- this.setValueNull(value, callback);
63
- }
64
- getValueNull(checkError: boolean = true): boolean | null
65
- {
66
- if (this.props.required)
67
- throw new Error("Please call getValue or getValueBool function");
68
- return NSBoxBaseLayout.checkGetValue(this, checkError, () => this.state.value);
69
- }
70
- setValueNull(value: boolean | null, callback?: () => void): void
71
- {
72
- this.setState({ value }, () =>
73
- {
74
- this.props.onChanged?.(this);
75
- callback?.();
76
- });
77
- }
78
- isEmpty(): boolean
79
- {
80
- return !this._isdirtied;
81
- }
82
- override componentDidUpdate(prevProps: Readonly<NSBoxBooleanProps>): void
83
- {
84
- if (prevProps.checked !== this.props.checked)
85
- if (this.props.checked !== undefined)
86
- this.setValueNull(this.props.checked);
87
- }
88
- override render()
89
- {
90
- let menu = safeMenuMenuItem(this.props, () => { });
91
-
92
- return (
93
- <NSBoxBaseLayout
94
- ref={this.NSBoxBaseLayout_Main}
95
- {...this.props}
96
- title=""
97
- menu={menu}
98
- >
99
- <label
100
- className={`ns-font-16-normal ${Styles.ns_box_boolean_label}`}
101
- htmlFor={this.props.name}
102
- >
103
- <input
104
- id={this.props.input?.id}
105
- name={this.props.input?.name}
106
- type="checkbox"
107
- className={`${Styles.ns_box_boolean_input} ${this.state.value == null ? Styles.ns_box_boolean_indeterminate : ""} ${this.props.input?.classList?.join(" ") ?? ""}`}
108
- checked={this.state.value ?? false}
109
- onChange={e => this.setValue(e.target.checked)}
110
- onClick={() => { this.props.onClicked?.(this); }}
111
- style={this.props.input?.style}
112
- />
113
- <span style={{ width: "0px" }}></span>
114
- {this.props.hideHeader && this.props.required && <span style={{ color: "red" }}>*</span>}
115
- {this.props.title}
116
- </label>
117
- </NSBoxBaseLayout>
118
- );
119
- }
1
+ "use client";
2
+
3
+ import React, { createRef } from "react";
4
+ import Styles from "./NSBoxBoolean.module.css";
5
+ import { IBaseComponentProps } from "../props/IBaseComponentProps";
6
+ import { IValidationProps } from "../props/IValidationProps";
7
+ import { safeMenuMenuItem } from "./NSMenuButton";
8
+ import { INSBoxBaseLayoutProps, NSBoxBaseLayout } from "./NSBoxBaseLayout";
9
+ import { Validator } from "../Validator";
10
+ import { INSBox } from "./INSBox";
11
+
12
+ export interface NSBoxBooleanProps extends IBaseComponentProps, IValidationProps, INSBoxBaseLayoutProps<NSBoxBoolean, boolean>
13
+ {
14
+ checked?: (boolean | null);
15
+ input?: IBaseComponentProps;
16
+ }
17
+
18
+ export interface NSBoxBooleanState
19
+ {
20
+ value: boolean | null;
21
+ }
22
+
23
+ export class NSBoxBoolean extends React.Component<NSBoxBooleanProps, NSBoxBooleanState> implements INSBox
24
+ {
25
+ private _isdirtied: boolean = false;
26
+ NSBoxBaseLayout_Main = createRef<NSBoxBaseLayout>();
27
+ constructor(props: NSBoxBooleanProps)
28
+ {
29
+ super(props);
30
+ this.state = { value: props.checked ?? props.defaultValue ?? false };
31
+ this.isEmpty = this.isEmpty.bind(this);
32
+ this.getError = this.getError.bind(this);
33
+ this.getValue = this.getValue.bind(this);
34
+ this.setValue = this.setValue.bind(this);
35
+ this.getValueNull = this.getValueNull.bind(this);
36
+ this.setValueNull = this.setValueNull.bind(this);
37
+ }
38
+ getError(): string | null
39
+ {
40
+ return (
41
+ Validator.getError(this.props.title, this.state.value, this.props)
42
+ );
43
+ }
44
+ getValue(checkError: boolean = true): boolean | null
45
+ {
46
+ if (this.props.required)
47
+ return this.getValueBool(checkError);
48
+ return this.getValueNull(checkError);
49
+ }
50
+ setValue(value: boolean | null, callback?: () => void): void
51
+ {
52
+ this.setValueNull(value, callback);
53
+ }
54
+ getValueBool(checkError: boolean = true): boolean
55
+ {
56
+ if (!this.props.required)
57
+ throw new Error("Please call getValue or getValueNull function");
58
+ return NSBoxBaseLayout.checkGetValue(this, checkError, () => this.state.value) ?? false;
59
+ }
60
+ setValueBool(value: boolean, callback?: () => void): void
61
+ {
62
+ this.setValueNull(value, callback);
63
+ }
64
+ getValueNull(checkError: boolean = true): boolean | null
65
+ {
66
+ if (this.props.required)
67
+ throw new Error("Please call getValue or getValueBool function");
68
+ return NSBoxBaseLayout.checkGetValue(this, checkError, () => this.state.value);
69
+ }
70
+ setValueNull(value: boolean | null, callback?: () => void): void
71
+ {
72
+ this.setState({ value }, () =>
73
+ {
74
+ this.props.onChanged?.(this);
75
+ callback?.();
76
+ });
77
+ }
78
+ isEmpty(): boolean
79
+ {
80
+ return !this._isdirtied;
81
+ }
82
+ override componentDidUpdate(prevProps: Readonly<NSBoxBooleanProps>): void
83
+ {
84
+ if (prevProps.checked !== this.props.checked)
85
+ if (this.props.checked !== undefined)
86
+ this.setValueNull(this.props.checked);
87
+ }
88
+ override render()
89
+ {
90
+ let menu = safeMenuMenuItem(this.props, () => { });
91
+
92
+ return (
93
+ <NSBoxBaseLayout
94
+ ref={this.NSBoxBaseLayout_Main}
95
+ {...this.props}
96
+ title=""
97
+ menu={menu}
98
+ >
99
+ <label
100
+ className={`ns-font-16-normal ${Styles.ns_box_boolean_label}`}
101
+ htmlFor={this.props.name}
102
+ >
103
+ <input
104
+ id={this.props.input?.id}
105
+ name={this.props.input?.name}
106
+ type="checkbox"
107
+ className={`${Styles.ns_box_boolean_input} ${this.state.value == null ? Styles.ns_box_boolean_indeterminate : ""} ${this.props.input?.classList?.join(" ") ?? ""}`}
108
+ checked={this.state.value ?? false}
109
+ onChange={e => this.setValue(e.target.checked)}
110
+ onClick={() => { this.props.onClicked?.(this); }}
111
+ style={this.props.input?.style}
112
+ />
113
+ <span style={{ width: "0px" }}></span>
114
+ {this.props.hideHeader && this.props.required && <span style={{ color: "red" }}>*</span>}
115
+ {this.props.title}
116
+ </label>
117
+ </NSBoxBaseLayout>
118
+ );
119
+ }
120
120
  }