namirasoft-site-react 1.4.259 → 1.4.261

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