namirasoft-site-react 1.4.248 → 1.4.249

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 (289) 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/NSBarAction.module.css +82 -82
  7. package/dist/components/NSBarAlert.module.css +79 -79
  8. package/dist/components/NSBarNotification.module.css +34 -34
  9. package/dist/components/NSBarTitle.module.css +9 -9
  10. package/dist/components/NSBox.module.css +50 -50
  11. package/dist/components/NSBoxBaseCombo.module.css +6 -6
  12. package/dist/components/NSBoxBoolean.module.css +67 -67
  13. package/dist/components/NSBoxDate.module.css +4 -4
  14. package/dist/components/NSBoxDateTime.module.css +4 -4
  15. package/dist/components/NSBoxDuration.module.css +4 -4
  16. package/dist/components/NSBoxDynamic.d.ts +1 -1
  17. package/dist/components/NSBoxDynamic.js +1 -1
  18. package/dist/components/NSBoxDynamic.js.map +1 -1
  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/NSDialogPageSelection.module.css +103 -103
  38. package/dist/components/NSDownTimer.module.css +55 -55
  39. package/dist/components/NSDownload.module.css +46 -46
  40. package/dist/components/NSElectronicCard.module.css +60 -60
  41. package/dist/components/NSEntityCardBackground.module.css +27 -27
  42. package/dist/components/NSFilterBox.module.css +56 -56
  43. package/dist/components/NSFilterItem.module.css +24 -24
  44. package/dist/components/NSFooter.module.css +123 -123
  45. package/dist/components/NSHeader.module.css +291 -291
  46. package/dist/components/NSHeaderScreenshot.module.css +35 -35
  47. package/dist/components/NSLabel.module.css +25 -25
  48. package/dist/components/NSLabelErrorNotifier.module.css +2 -2
  49. package/dist/components/NSLayout.module.css +14 -14
  50. package/dist/components/NSLine.module.css +15 -15
  51. package/dist/components/NSLink.module.css +36 -36
  52. package/dist/components/NSListGrouped.module.css +69 -69
  53. package/dist/components/NSLoading.module.css +30 -30
  54. package/dist/components/NSMenuAction.js +2 -2
  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/NSRange.module.css +66 -66
  62. package/dist/components/NSRow.module.css +17 -17
  63. package/dist/components/NSSection.module.css +4 -4
  64. package/dist/components/NSSectionCards.module.css +38 -38
  65. package/dist/components/NSSectionTiles.module.css +10 -10
  66. package/dist/components/NSTabPage.module.css +59 -59
  67. package/dist/components/NSTable.module.css +263 -263
  68. package/dist/components/NSTile.module.css +76 -76
  69. package/dist/components/NSTimelineMonthly.module.css +71 -71
  70. package/dist/components/NSTitle.module.css +15 -15
  71. package/dist/index.css +6 -0
  72. package/dist/pages/NSNotFoundPage.module.css +18 -18
  73. package/dist/pages/NSUpdating.module.css +35 -35
  74. package/package.json +76 -76
  75. package/public/index.html +38 -38
  76. package/src/App.css +33 -33
  77. package/src/App.tsx +130 -130
  78. package/src/Color.tsx +10 -10
  79. package/src/CopyToClipboard.ts +6 -6
  80. package/src/NSBoxBuilder.tsx +912 -912
  81. package/src/Validator.ts +147 -147
  82. package/src/components/INSBox.tsx +6 -6
  83. package/src/components/NSBarAction.module.css +82 -82
  84. package/src/components/NSBarAction.tsx +90 -90
  85. package/src/components/NSBarAlert.module.css +79 -79
  86. package/src/components/NSBarAlert.tsx +35 -35
  87. package/src/components/NSBarNotification.module.css +34 -34
  88. package/src/components/NSBarNotification.tsx +89 -89
  89. package/src/components/NSBarTitle.module.css +9 -9
  90. package/src/components/NSBarTitle.tsx +23 -23
  91. package/src/components/NSBox.module.css +50 -50
  92. package/src/components/NSBox.tsx +19 -19
  93. package/src/components/NSBoxBaseCombo.module.css +6 -6
  94. package/src/components/NSBoxBaseCombo.tsx +314 -314
  95. package/src/components/NSBoxBaseLayout.tsx +88 -88
  96. package/src/components/NSBoxBaseLayoutRecursive.tsx +54 -54
  97. package/src/components/NSBoxBoolean.module.css +67 -67
  98. package/src/components/NSBoxBoolean.tsx +119 -119
  99. package/src/components/NSBoxBooleans.tsx +161 -161
  100. package/src/components/NSBoxColor.tsx +95 -95
  101. package/src/components/NSBoxCombo.tsx +91 -91
  102. package/src/components/NSBoxDate.module.css +4 -4
  103. package/src/components/NSBoxDate.tsx +90 -90
  104. package/src/components/NSBoxDateTime.module.css +4 -4
  105. package/src/components/NSBoxDateTime.tsx +105 -105
  106. package/src/components/NSBoxDouble.tsx +94 -94
  107. package/src/components/NSBoxDuration.module.css +4 -4
  108. package/src/components/NSBoxDuration.tsx +95 -95
  109. package/src/components/NSBoxDynamic.tsx +67 -67
  110. package/src/components/NSBoxDynamics.tsx +68 -68
  111. package/src/components/NSBoxEmail.tsx +98 -98
  112. package/src/components/NSBoxEntity.tsx +101 -101
  113. package/src/components/NSBoxEnum.tsx +108 -108
  114. package/src/components/NSBoxFile.module.css +10 -10
  115. package/src/components/NSBoxFile.tsx +101 -101
  116. package/src/components/NSBoxFilePath.tsx +95 -95
  117. package/src/components/NSBoxFont.tsx +95 -95
  118. package/src/components/NSBoxIPV4.tsx +95 -95
  119. package/src/components/NSBoxIPV4Range.tsx +95 -95
  120. package/src/components/NSBoxIPV6.tsx +92 -92
  121. package/src/components/NSBoxIPV6Range.tsx +95 -95
  122. package/src/components/NSBoxInteger.tsx +91 -91
  123. package/src/components/NSBoxMoney.tsx +95 -95
  124. package/src/components/NSBoxPassword.tsx +106 -106
  125. package/src/components/NSBoxPhone.module.css +35 -35
  126. package/src/components/NSBoxPhone.tsx +107 -107
  127. package/src/components/NSBoxRadio.module.css +33 -33
  128. package/src/components/NSBoxRadio.tsx +91 -91
  129. package/src/components/NSBoxSchemaBase.module.css +17 -17
  130. package/src/components/NSBoxSchemaBase.tsx +539 -539
  131. package/src/components/NSBoxSchemaVariable.module.css +16 -16
  132. package/src/components/NSBoxSchemaVariable.tsx +251 -251
  133. package/src/components/NSBoxSearch.tsx +97 -97
  134. package/src/components/NSBoxString.tsx +91 -91
  135. package/src/components/NSBoxTextArea.module.css +12 -12
  136. package/src/components/NSBoxTextArea.tsx +98 -98
  137. package/src/components/NSBoxTime.module.css +4 -4
  138. package/src/components/NSBoxTime.tsx +93 -93
  139. package/src/components/NSBoxTimeZone.tsx +95 -95
  140. package/src/components/NSBoxURL.tsx +96 -96
  141. package/src/components/NSBoxVersion.tsx +95 -95
  142. package/src/components/NSButton.module.css +57 -57
  143. package/src/components/NSButton.tsx +25 -25
  144. package/src/components/NSButtonBlue.module.css +4 -4
  145. package/src/components/NSButtonBlue.tsx +19 -19
  146. package/src/components/NSButtonGreen.module.css +4 -4
  147. package/src/components/NSButtonGreen.tsx +19 -19
  148. package/src/components/NSButtonRed.module.css +4 -4
  149. package/src/components/NSButtonRed.tsx +19 -19
  150. package/src/components/NSCard.module.css +114 -114
  151. package/src/components/NSCard.tsx +63 -63
  152. package/src/components/NSCardScreenshot.module.css +41 -41
  153. package/src/components/NSCardScreenshot.tsx +31 -31
  154. package/src/components/NSChartColumn.module.css +7 -7
  155. package/src/components/NSChartColumn.tsx +106 -106
  156. package/src/components/NSChartDoughnut.tsx +112 -112
  157. package/src/components/NSChartPie.tsx +105 -105
  158. package/src/components/NSChartRange.tsx +14 -14
  159. package/src/components/NSChartTable.module.css +21 -21
  160. package/src/components/NSChartTable.tsx +94 -94
  161. package/src/components/NSColumn.module.css +16 -16
  162. package/src/components/NSColumn.tsx +24 -24
  163. package/src/components/NSCopy.tsx +56 -56
  164. package/src/components/NSCopyBox.module.css +39 -39
  165. package/src/components/NSCopyBox.tsx +53 -53
  166. package/src/components/NSDialog.module.css +112 -112
  167. package/src/components/NSDialog.tsx +61 -61
  168. package/src/components/NSDialogDelete.tsx +26 -26
  169. package/src/components/NSDialogInfo.tsx +32 -32
  170. package/src/components/NSDialogPageSelection.module.css +103 -103
  171. package/src/components/NSDialogPageSelection.tsx +227 -227
  172. package/src/components/NSDownTimer.module.css +55 -55
  173. package/src/components/NSDownTimer.tsx +77 -77
  174. package/src/components/NSDownload.module.css +46 -46
  175. package/src/components/NSDownload.tsx +66 -66
  176. package/src/components/NSElectronicCard.module.css +60 -60
  177. package/src/components/NSElectronicCard.tsx +46 -46
  178. package/src/components/NSEntityCardBackground.module.css +27 -27
  179. package/src/components/NSEntityCardBackground.tsx +36 -36
  180. package/src/components/NSFilterBox.module.css +56 -56
  181. package/src/components/NSFilterBox.tsx +494 -494
  182. package/src/components/NSFilterItem.module.css +24 -24
  183. package/src/components/NSFilterItem.tsx +27 -27
  184. package/src/components/NSFooter.module.css +123 -123
  185. package/src/components/NSFooter.tsx +316 -316
  186. package/src/components/NSHeader.module.css +291 -291
  187. package/src/components/NSHeader.tsx +261 -261
  188. package/src/components/NSHeaderScreenshot.module.css +35 -35
  189. package/src/components/NSHeaderScreenshot.tsx +39 -39
  190. package/src/components/NSLabel.module.css +25 -25
  191. package/src/components/NSLabel.tsx +46 -46
  192. package/src/components/NSLabelErrorNotifier.module.css +2 -2
  193. package/src/components/NSLabelErrorNotifier.tsx +35 -35
  194. package/src/components/NSLayout.module.css +14 -14
  195. package/src/components/NSLayout.tsx +130 -130
  196. package/src/components/NSLine.module.css +15 -15
  197. package/src/components/NSLine.tsx +13 -13
  198. package/src/components/NSLink.module.css +36 -36
  199. package/src/components/NSLink.tsx +25 -25
  200. package/src/components/NSLinkBlue.tsx +21 -21
  201. package/src/components/NSLinkGreen.tsx +12 -12
  202. package/src/components/NSLinkRed.tsx +12 -12
  203. package/src/components/NSListGrouped.module.css +69 -69
  204. package/src/components/NSListGrouped.tsx +106 -106
  205. package/src/components/NSListProduct.tsx +44 -44
  206. package/src/components/NSLoading.module.css +30 -30
  207. package/src/components/NSLoading.tsx +21 -21
  208. package/src/components/NSMenuAction.module.css +88 -88
  209. package/src/components/NSMenuAction.tsx +90 -90
  210. package/src/components/NSMenuButton.module.css +44 -44
  211. package/src/components/NSMenuButton.tsx +206 -206
  212. package/src/components/NSNoData.module.css +9 -9
  213. package/src/components/NSNoData.tsx +24 -24
  214. package/src/components/NSPagination.module.css +85 -85
  215. package/src/components/NSPagination.tsx +182 -182
  216. package/src/components/NSPanel.module.css +19 -19
  217. package/src/components/NSPanel.tsx +24 -24
  218. package/src/components/NSPanelAccordion.module.css +4 -4
  219. package/src/components/NSPanelAccordion.tsx +51 -51
  220. package/src/components/NSRange.module.css +66 -66
  221. package/src/components/NSRange.tsx +83 -83
  222. package/src/components/NSRepeater.tsx +240 -240
  223. package/src/components/NSRepeaterNSBoxSchemaVariable.tsx +84 -84
  224. package/src/components/NSRepeaterNSTag.tsx +79 -79
  225. package/src/components/NSRow.module.css +17 -17
  226. package/src/components/NSRow.tsx +24 -24
  227. package/src/components/NSSection.module.css +4 -4
  228. package/src/components/NSSection.tsx +26 -26
  229. package/src/components/NSSectionCards.module.css +38 -38
  230. package/src/components/NSSectionCards.tsx +51 -51
  231. package/src/components/NSSectionTiles.module.css +10 -10
  232. package/src/components/NSSectionTiles.tsx +25 -25
  233. package/src/components/NSSectionTitle.tsx +21 -21
  234. package/src/components/NSSpace.tsx +28 -28
  235. package/src/components/NSTabPage.module.css +59 -59
  236. package/src/components/NSTabPage.tsx +91 -91
  237. package/src/components/NSTable.module.css +263 -263
  238. package/src/components/NSTable.tsx +471 -471
  239. package/src/components/NSTag.tsx +74 -74
  240. package/src/components/NSTile.module.css +76 -76
  241. package/src/components/NSTile.tsx +27 -27
  242. package/src/components/NSTimelineMonthly.module.css +71 -71
  243. package/src/components/NSTimelineMonthly.tsx +44 -44
  244. package/src/components/NSTitle.module.css +15 -15
  245. package/src/components/NSTitle.tsx +19 -19
  246. package/src/formatter/BackColorFormatter.tsx +23 -23
  247. package/src/formatter/BaseColumnFormatter.ts +16 -16
  248. package/src/formatter/BaseURLImageFormatter.tsx +28 -28
  249. package/src/formatter/BooleanFormatter.ts +22 -22
  250. package/src/formatter/DateFormatter.ts +20 -20
  251. package/src/formatter/DateTimeFormatter.ts +20 -20
  252. package/src/formatter/DurationFormatter.ts +13 -13
  253. package/src/formatter/EmailFormatter.tsx +21 -21
  254. package/src/formatter/EnumFormatter.ts +13 -13
  255. package/src/formatter/FloatFormatter.ts +23 -23
  256. package/src/formatter/ForeColorFormatter.tsx +24 -24
  257. package/src/formatter/IDFormatter.tsx +37 -37
  258. package/src/formatter/IPFormatter.ts +13 -13
  259. package/src/formatter/IntegerFormatter.ts +23 -23
  260. package/src/formatter/JsonFormatter.ts +21 -21
  261. package/src/formatter/MoneyFormatter.ts +23 -23
  262. package/src/formatter/PhoneFormatter.tsx +21 -21
  263. package/src/formatter/StringFormatter.tsx +43 -43
  264. package/src/formatter/TimeFormatter.ts +20 -20
  265. package/src/formatter/URLFormatter.tsx +21 -21
  266. package/src/formatter/UnknowFormatter.ts +18 -18
  267. package/src/index.tsx +7 -7
  268. package/src/main.ts +207 -207
  269. package/src/pages/NSNotFoundPage.module.css +18 -18
  270. package/src/pages/NSNotFoundPage.tsx +11 -11
  271. package/src/pages/NSUpdating.module.css +35 -35
  272. package/src/pages/NSUpdating.tsx +32 -32
  273. package/src/props/IBackgroundPropps.ts +5 -5
  274. package/src/props/IBaseComponentProps.ts +8 -8
  275. package/src/props/IHeaderIconProps.ts +10 -10
  276. package/src/props/IHeaderProps.ts +7 -7
  277. package/src/props/IImageProps.ts +4 -4
  278. package/src/props/ILinkProps.ts +5 -5
  279. package/src/props/IValidationNumberProps.ts +4 -4
  280. package/src/props/IValidationPrecisionProps.ts +3 -3
  281. package/src/props/IValidationProps.ts +9 -9
  282. package/src/props/IValidationRegexProps.ts +4 -4
  283. package/src/props/IValidationStringProps.ts +4 -4
  284. package/src/routing/INSRouterMaker.ts +6 -6
  285. package/src/routing/INSRouterProps.ts +5 -5
  286. package/src/routing/INSRouterState.ts +5 -5
  287. package/src/routing/NSRouterMaker.tsx +33 -33
  288. package/src/routing/Notifier.ts +79 -79
  289. package/tsconfig.json +43 -43
@@ -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<Data, Box>
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<Data, Box>
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<boolean, NSBoxBoolean>
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<boolean, NSBoxBoolean>
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
  }