namirasoft-site-react 1.4.339 → 1.4.340

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