namirasoft-site-react 1.3.61 → 1.3.63

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 (182) hide show
  1. package/dist/App.js +2 -2
  2. package/dist/App.js.map +1 -1
  3. package/dist/Validator.d.ts +7 -2
  4. package/dist/Validator.js +57 -15
  5. package/dist/Validator.js.map +1 -1
  6. package/dist/components/NSButton.module.css +1 -1
  7. package/dist/components/NSButtonBlue.js +5 -4
  8. package/dist/components/NSButtonBlue.js.map +1 -1
  9. package/dist/components/NSButtonGreen.js +5 -4
  10. package/dist/components/NSButtonGreen.js.map +1 -1
  11. package/dist/components/NSButtonRed.js +5 -4
  12. package/dist/components/NSButtonRed.js.map +1 -1
  13. package/dist/components/NSCard.module.css +2 -3
  14. package/dist/components/NSCopyToClipboard.js +1 -1
  15. package/dist/components/NSCopyToClipboard.js.map +1 -1
  16. package/dist/components/NSCopyToClipboard.module.css +1 -1
  17. package/dist/components/NSEntityBar.module.css +2 -2
  18. package/dist/components/NSEntityCardBackground.module.css +2 -2
  19. package/dist/components/NSFooter.js.map +1 -1
  20. package/dist/components/NSHeader.js +1 -1
  21. package/dist/components/NSHeader.js.map +1 -1
  22. package/dist/components/NSInput.module.css +29 -0
  23. package/dist/components/NSInputDate.d.ts +3 -1
  24. package/dist/components/NSInputDate.js +14 -4
  25. package/dist/components/NSInputDate.js.map +1 -1
  26. package/dist/components/NSInputDate.module.css +5 -2
  27. package/dist/components/NSInputDuration.d.ts +6 -1
  28. package/dist/components/NSInputDuration.js +15 -6
  29. package/dist/components/NSInputDuration.js.map +1 -1
  30. package/dist/components/NSInputEmail.d.ts +1 -1
  31. package/dist/components/NSInputEmail.js +5 -3
  32. package/dist/components/NSInputEmail.js.map +1 -1
  33. package/dist/components/NSInputFloat.d.ts +4 -4
  34. package/dist/components/NSInputFloat.js +8 -9
  35. package/dist/components/NSInputFloat.js.map +1 -1
  36. package/dist/components/NSInputIP.d.ts +5 -1
  37. package/dist/components/NSInputIP.js +17 -7
  38. package/dist/components/NSInputIP.js.map +1 -1
  39. package/dist/components/NSInputInteger.d.ts +9 -5
  40. package/dist/components/NSInputInteger.js +16 -8
  41. package/dist/components/NSInputInteger.js.map +1 -1
  42. package/dist/components/NSInputPassword.d.ts +5 -1
  43. package/dist/components/NSInputPassword.js +15 -6
  44. package/dist/components/NSInputPassword.js.map +1 -1
  45. package/dist/components/NSInputPhone.d.ts +8 -3
  46. package/dist/components/NSInputPhone.js +18 -12
  47. package/dist/components/NSInputPhone.js.map +1 -1
  48. package/dist/components/NSInputPrice.d.ts +7 -2
  49. package/dist/components/NSInputPrice.js +15 -7
  50. package/dist/components/NSInputPrice.js.map +1 -1
  51. package/dist/components/NSInputSearch.d.ts +6 -1
  52. package/dist/components/NSInputSearch.js +15 -6
  53. package/dist/components/NSInputSearch.js.map +1 -1
  54. package/dist/components/NSInputString.d.ts +5 -1
  55. package/dist/components/NSInputString.js +15 -6
  56. package/dist/components/NSInputString.js.map +1 -1
  57. package/dist/components/NSInputText.d.ts +5 -1
  58. package/dist/components/NSInputText.js +15 -6
  59. package/dist/components/NSInputText.js.map +1 -1
  60. package/dist/components/NSInputTime.d.ts +5 -1
  61. package/dist/components/NSInputTime.js +16 -6
  62. package/dist/components/NSInputTime.js.map +1 -1
  63. package/dist/components/NSLayoutTitle.d.ts +1 -4
  64. package/dist/components/NSLayoutTitle.js +7 -11
  65. package/dist/components/NSLayoutTitle.js.map +1 -1
  66. package/dist/components/NSLink.d.ts +5 -0
  67. package/dist/components/NSLink.js +7 -0
  68. package/dist/components/NSLink.js.map +1 -0
  69. package/dist/components/{NSLinkBlue.module.css → NSLink.module.css} +3 -3
  70. package/dist/components/NSLinkBlue.d.ts +2 -5
  71. package/dist/components/NSLinkBlue.js +2 -3
  72. package/dist/components/NSLinkBlue.js.map +1 -1
  73. package/dist/components/NSLinkGreen.d.ts +2 -16
  74. package/dist/components/NSLinkGreen.js +3 -18
  75. package/dist/components/NSLinkGreen.js.map +1 -1
  76. package/dist/components/NSLinkRed.d.ts +2 -16
  77. package/dist/components/NSLinkRed.js +3 -18
  78. package/dist/components/NSLinkRed.js.map +1 -1
  79. package/dist/components/NSNotification.d.ts +2 -10
  80. package/dist/components/NSNotification.js +4 -20
  81. package/dist/components/NSNotification.js.map +1 -1
  82. package/dist/components/NSPagination.d.ts +1 -9
  83. package/dist/components/NSPagination.js +25 -33
  84. package/dist/components/NSPagination.js.map +1 -1
  85. package/dist/components/NSSectionBars.d.ts +1 -0
  86. package/dist/components/NSSectionBars.js.map +1 -1
  87. package/dist/components/NSSectionCards.d.ts +1 -2
  88. package/dist/components/NSSectionCards.js +1 -1
  89. package/dist/components/NSSectionCards.js.map +1 -1
  90. package/dist/components/NSSectionTitle.d.ts +1 -2
  91. package/dist/components/NSSectionTitle.js +1 -1
  92. package/dist/components/NSSectionTitle.js.map +1 -1
  93. package/dist/components/NSSelectBox.d.ts +6 -3
  94. package/dist/components/NSSelectBox.js +21 -6
  95. package/dist/components/NSSelectBox.js.map +1 -1
  96. package/dist/components/NSSelectBox.module.css +3 -3
  97. package/dist/components/NSTable.js +1 -1
  98. package/dist/components/NSTable.js.map +1 -1
  99. package/dist/pages/NSLoginPage.d.ts +1 -4
  100. package/dist/pages/NSLoginPage.js +8 -11
  101. package/dist/pages/NSLoginPage.js.map +1 -1
  102. package/dist/pages/NSNotFoundPage.d.ts +1 -4
  103. package/dist/pages/NSNotFoundPage.js +2 -6
  104. package/dist/pages/NSNotFoundPage.js.map +1 -1
  105. package/dist/props/ValidationNumberProps.d.ts +1 -2
  106. package/dist/props/ValidationProps.d.ts +1 -0
  107. package/dist/props/ValidationStringProps.d.ts +1 -2
  108. package/package.json +4 -4
  109. package/src/App.tsx +13 -3
  110. package/src/Validator.ts +67 -18
  111. package/src/components/NSButton.module.css +1 -1
  112. package/src/components/NSButtonBlue.tsx +6 -4
  113. package/src/components/NSButtonGreen.tsx +5 -4
  114. package/src/components/NSButtonRed.tsx +5 -4
  115. package/src/components/NSCard.module.css +2 -3
  116. package/src/components/NSCopyToClipboard.module.css +1 -1
  117. package/src/components/NSCopyToClipboard.tsx +3 -3
  118. package/src/components/NSEntityBar.module.css +2 -2
  119. package/src/components/NSEntityCardBackground.module.css +2 -2
  120. package/src/components/NSHeader.tsx +3 -3
  121. package/src/components/NSInput.module.css +29 -0
  122. package/src/components/NSInputDate.module.css +5 -2
  123. package/src/components/NSInputDate.tsx +29 -12
  124. package/src/components/NSInputDuration.tsx +44 -23
  125. package/src/components/NSInputEmail.tsx +10 -5
  126. package/src/components/NSInputFloat.tsx +33 -32
  127. package/src/components/NSInputIP.tsx +44 -24
  128. package/src/components/NSInputInteger.tsx +48 -31
  129. package/src/components/NSInputPassword.tsx +42 -23
  130. package/src/components/NSInputPhone.tsx +45 -29
  131. package/src/components/NSInputPrice.tsx +45 -23
  132. package/src/components/NSInputSearch.tsx +43 -21
  133. package/src/components/NSInputString.tsx +42 -23
  134. package/src/components/NSInputText.tsx +42 -23
  135. package/src/components/NSInputTime.tsx +44 -23
  136. package/src/components/NSLayoutTitle.tsx +24 -30
  137. package/src/components/{NSLinkBlue.module.css → NSLink.module.css} +3 -3
  138. package/src/components/NSLink.tsx +22 -0
  139. package/src/components/NSLinkBlue.tsx +3 -19
  140. package/src/components/NSLinkGreen.tsx +3 -42
  141. package/src/components/NSLinkRed.tsx +3 -42
  142. package/src/components/NSNotification.tsx +19 -51
  143. package/src/components/NSPagination.tsx +56 -72
  144. package/src/components/NSSectionBars.tsx +1 -0
  145. package/src/components/NSSectionCards.tsx +3 -3
  146. package/src/components/NSSectionTitle.tsx +3 -3
  147. package/src/components/NSSelectBox.module.css +3 -3
  148. package/src/components/NSSelectBox.tsx +48 -23
  149. package/src/components/NSTable.tsx +1 -1
  150. package/src/pages/NSLoginPage.tsx +20 -24
  151. package/src/pages/NSNotFoundPage.tsx +7 -13
  152. package/src/props/ValidationNumberProps.ts +1 -3
  153. package/src/props/ValidationProps.ts +1 -0
  154. package/src/props/ValidationStringProps.ts +1 -3
  155. package/dist/components/NSInputDuration.module.css +0 -26
  156. package/dist/components/NSInputEmail.module.css +0 -38
  157. package/dist/components/NSInputFloat.module.css +0 -26
  158. package/dist/components/NSInputIP.module.css +0 -26
  159. package/dist/components/NSInputInteger.module.css +0 -26
  160. package/dist/components/NSInputPassword.module.css +0 -27
  161. package/dist/components/NSInputPhone.module.css +0 -33
  162. package/dist/components/NSInputPrice.module.css +0 -27
  163. package/dist/components/NSInputSearch.module.css +0 -27
  164. package/dist/components/NSInputString.module.css +0 -27
  165. package/dist/components/NSInputText.module.css +0 -28
  166. package/dist/components/NSInputTime.module.css +0 -27
  167. package/dist/components/NSLinkGreen.module.css +0 -16
  168. package/dist/components/NSLinkRed.module.css +0 -16
  169. package/src/components/NSInputDuration.module.css +0 -26
  170. package/src/components/NSInputEmail.module.css +0 -38
  171. package/src/components/NSInputFloat.module.css +0 -26
  172. package/src/components/NSInputIP.module.css +0 -26
  173. package/src/components/NSInputInteger.module.css +0 -26
  174. package/src/components/NSInputPassword.module.css +0 -27
  175. package/src/components/NSInputPhone.module.css +0 -33
  176. package/src/components/NSInputPrice.module.css +0 -27
  177. package/src/components/NSInputSearch.module.css +0 -27
  178. package/src/components/NSInputString.module.css +0 -27
  179. package/src/components/NSInputText.module.css +0 -28
  180. package/src/components/NSInputTime.module.css +0 -27
  181. package/src/components/NSLinkGreen.module.css +0 -16
  182. package/src/components/NSLinkRed.module.css +0 -16
@@ -1,8 +1,5 @@
1
- "use client";
2
-
3
1
  import { BaseComponentProps } from '../props/BaseComponentProps';
4
2
  import Styles from './NSPagination.module.css';
5
- import { Component } from 'react';
6
3
 
7
4
  export interface NSPaginationProps extends BaseComponentProps
8
5
  {
@@ -10,88 +7,75 @@ export interface NSPaginationProps extends BaseComponentProps
10
7
  page: number;
11
8
  }
12
9
 
13
- export interface NSPaginationState
14
- {
15
- size: number;
16
- page: number;
17
- }
18
- export class NSPagination extends Component<NSPaginationProps, NSPaginationState>
10
+ export function NSPagination(props: NSPaginationProps)
19
11
  {
20
- constructor(props: NSPaginationProps)
21
- {
22
- super(props);
23
- this.state = { size: props.size, page: props.page }
24
- }
25
- override render()
12
+ let page = props.page;
13
+ let size = props.size;
14
+ let window = 2;
15
+ let min = Math.max(2, page - window);
16
+ let max = Math.min(page + window, size - 1);
17
+ let arr = [];
18
+ let pushPage = (index: number) =>
26
19
  {
27
- let page = this.props.page;
28
- let size = this.props.size;
29
- let window = 2;
30
- let min = Math.max(2, page - window);
31
- let max = Math.min(page + window, size - 1);
32
- let arr = [];
33
- let pushPage = (index: number) =>
34
- {
35
- if (index == page)
36
- arr.push(
37
- <div className={`${Styles.ns_select_number_parent}`}>
38
- <a href='#' className={`${Styles.ns_paginate_link} ${Styles.ns_select_number}`}>{index}</a>
39
- </div>
40
- );
41
- else
42
- arr.push(
43
- <div>
44
- <a href='#' className={`${Styles.ns_paginate_link}`}>{index}</a>
45
- </div>
46
- );
47
- };
48
- arr.push(
49
- <div>
50
- <a href='#'>
51
- <img
52
- src='https://static.namirasoft.com/icons/base/circle-chevron-left.png'
53
- alt='left_vector'
54
- width={32}
55
- height={32}
56
- />
57
- </a>
58
- </div>
59
- );
60
- pushPage(1);
61
- if (page > window * 2)
20
+ if (index == page)
62
21
  arr.push(
63
- <div>
64
- <a href='#' className={`${Styles.ns_paginate_link}`}>...</a>
22
+ <div className={`${Styles.ns_select_number_parent}`}>
23
+ <a href='#' className={`${Styles.ns_paginate_link} ${Styles.ns_select_number}`}>{index}</a>
65
24
  </div>
66
25
  );
67
- for (let i = min; i <= max; i++)
68
- pushPage(i);
69
- if (page <= size - window * 2)
26
+ else
70
27
  arr.push(
71
28
  <div>
72
- <a href='#' className={`${Styles.ns_paginate_link}`}>...</a>
29
+ <a href='#' className={`${Styles.ns_paginate_link}`}>{index}</a>
73
30
  </div>
74
31
  );
75
- pushPage(size);
32
+ };
33
+ arr.push(
34
+ <div>
35
+ <a href='#'>
36
+ <img
37
+ src='https://static.namirasoft.com/icons/base/circle-chevron-left.png'
38
+ alt='left_vector'
39
+ width={32}
40
+ height={32}
41
+ />
42
+ </a>
43
+ </div>
44
+ );
45
+ pushPage(1);
46
+ if (page > window * 2)
76
47
  arr.push(
77
48
  <div>
78
- <a href='#'>
79
- <img
80
- src='https://static.namirasoft.com/icons/base/circle-chevron-right.png'
81
- width={32}
82
- height={32}
83
- alt='right_vector'
84
- />
85
- </a>
49
+ <a href='#' className={`${Styles.ns_paginate_link}`}>...</a>
86
50
  </div>
87
51
  );
88
-
89
- return (
90
- <div id={this.props.id}
91
- className={`${Styles.ns_pagination_container} ${this.props.classList?.join(" ")}`}
92
- style={this.props.style}>
93
- {arr.map(x => (x))}
52
+ for (let i = min; i <= max; i++)
53
+ pushPage(i);
54
+ if (page <= size - window * 2)
55
+ arr.push(
56
+ <div>
57
+ <a href='#' className={`${Styles.ns_paginate_link}`}>...</a>
94
58
  </div>
95
59
  );
96
- }
60
+ pushPage(size);
61
+ arr.push(
62
+ <div>
63
+ <a href='#'>
64
+ <img
65
+ src='https://static.namirasoft.com/icons/base/circle-chevron-right.png'
66
+ width={32}
67
+ height={32}
68
+ alt='right_vector'
69
+ />
70
+ </a>
71
+ </div>
72
+ );
73
+
74
+ return (
75
+ <div id={props.id}
76
+ className={`${Styles.ns_pagination_container} ${props.classList?.join(" ")}`}
77
+ style={props.style}>
78
+ {arr.map(x => (x))}
79
+ </div>
80
+ );
97
81
  }
@@ -6,6 +6,7 @@ import { BaseComponentProps } from "../props/BaseComponentProps";
6
6
 
7
7
  export interface NSSectionBarsProps extends BaseComponentProps
8
8
  {
9
+ title?: string;
9
10
  bars: NSEntityBarProps[]
10
11
  }
11
12
 
@@ -1,5 +1,5 @@
1
1
  import Styles from './NSSectionCards.module.css';
2
- import { NSTitle, NSTitleProps } from './NSTitle';
2
+ import { NSTitle } from './NSTitle';
3
3
  import { NSCard, NSCardProps } from './NSCard';
4
4
  import { NSSection } from './NSSection';
5
5
  import { NSLinkBlue } from './NSLinkBlue';
@@ -9,7 +9,7 @@ import { LinkProps } from '../props/LinkProps';
9
9
 
10
10
  export interface NSSectionCardsProps extends BaseComponentProps
11
11
  {
12
- title?: NSTitleProps;
12
+ title?: string;
13
13
  description?: {
14
14
  text: string,
15
15
  color?: string
@@ -27,7 +27,7 @@ export function NSSectionCards(props: NSSectionCardsProps)
27
27
  {
28
28
  props.title &&
29
29
  <div className={Styles.ns_section_cards_title_container}>
30
- <NSTitle {...props.title} />
30
+ <NSTitle title={props.title} />
31
31
  {
32
32
  props.description &&
33
33
  <p style={{ color: props.description?.color }} className={Styles.ns_description}> {props.description.text} </p>
@@ -1,12 +1,12 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { NSSection } from './NSSection';
3
- import { NSTitle, NSTitleProps } from './NSTitle';
3
+ import { NSTitle } from './NSTitle';
4
4
  import { NSSpace, NSSpaceSizeType } from './NSSpace';
5
5
  import { BaseComponentProps } from "../props/BaseComponentProps";
6
6
 
7
7
  export interface NSSectionTitleProps extends BaseComponentProps
8
8
  {
9
- title: NSTitleProps;
9
+ title: string;
10
10
  children: ReactNode
11
11
  }
12
12
 
@@ -15,7 +15,7 @@ export function NSSectionTitle(props: NSSectionTitleProps)
15
15
  return (
16
16
  <NSSection {...props} >
17
17
  <NSSpace size={NSSpaceSizeType.NORMAL} />
18
- <NSTitle {...props.title} />
18
+ <NSTitle title={props.title} />
19
19
  {props.children}
20
20
  </NSSection>
21
21
  );
@@ -1,11 +1,11 @@
1
1
  .ns_input_parent {
2
- width: 326px;
2
+ width: 272px;
3
3
  max-width: 100%;
4
4
  }
5
5
 
6
6
  .ns_input_select {
7
- height: 45px;
8
- width: 304px !important;
7
+ height: 48px;
8
+ width: 272px !important;
9
9
  }
10
10
 
11
11
  .ns_input_select span span svg path {
@@ -6,8 +6,11 @@ import { Select, Space } from 'antd';
6
6
  import type { SelectProps } from 'antd';
7
7
  import IconSelectBox from '../assets/images/icon-select-box.svg';
8
8
  import { BaseComponentProps } from "../props/BaseComponentProps";
9
+ import { ValidationProps } from "../props/ValidationProps";
10
+ import { Validator } from "../Validator";
11
+ import { NSInputErrorNotifier } from "./NSInputErrorNotifier";
9
12
 
10
- export interface NSSelectBoxProps extends BaseComponentProps
13
+ export interface NSSelectBoxProps extends BaseComponentProps, ValidationProps
11
14
  {
12
15
  title: string;
13
16
  options: SelectProps['options'];
@@ -17,6 +20,7 @@ export interface NSSelectBoxState
17
20
  {
18
21
  value: string | null;
19
22
  values: string[];
23
+ error?: string;
20
24
  }
21
25
 
22
26
  export class NSSelectBox extends React.Component<NSSelectBoxProps, NSSelectBoxState>
@@ -31,43 +35,64 @@ export class NSSelectBox extends React.Component<NSSelectBoxProps, NSSelectBoxSt
31
35
  this.getValues = this.getValues.bind(this);
32
36
  this.setValues = this.setValues.bind(this);
33
37
  }
34
- setValue(value: string | null): void
38
+ getError(): string | null
35
39
  {
36
- this.setState({ value });
40
+ return (
41
+ Validator.getError(this.props.title, this.state.value, this.props)
42
+ );
37
43
  }
38
44
  getValue(): string | null
39
45
  {
46
+ let error = this.getError();
47
+ if (error)
48
+ {
49
+ this.setState({ error });
50
+ throw new Error(error);
51
+ }
40
52
  return this.state.value;
41
53
  }
42
- setValues(values: string[]): void
54
+ setValue(value: string | null): void
43
55
  {
44
- this.setState({ values });
56
+ this.setState({ value });
45
57
  }
46
58
  getValues(): string[]
47
59
  {
60
+ let error = this.getError();
61
+ if (error)
62
+ {
63
+ this.setState({ error });
64
+ throw new Error(error);
65
+ }
48
66
  return this.state.values;
49
67
  }
68
+ setValues(values: string[]): void
69
+ {
70
+ this.setState({ values });
71
+ }
50
72
  override render()
51
73
  {
52
74
  return (
53
- <div className={`${Styles.ns_input_parent} p-2`}>
54
- <span className={Styles.ns_input_title}>{this.props.title}</span>
55
- <Select
56
- mode="multiple"
57
- style={{ width: '100%' }}
58
- className={Styles.ns_input_select}
59
- placeholder="Combo Box"
60
- onChange={this.setValues}
61
- optionLabelProp="label"
62
- options={this.props.options}
63
- optionRender={(option) => (
64
- <Space className={Styles.ns_input_select_option}>
65
- {option.data.desc}
66
- </Space>
67
- )}
68
- suffixIcon={<img src={IconSelectBox} alt="SelectBox Icon" />}
69
- />
70
- </div>
75
+ <>
76
+ <div className={`${Styles.ns_input_parent} p-2`}>
77
+ <span className={Styles.ns_input_title}> {this.props.required && <span style={{ color: "red" }} >*</span>} {this.props.title} </span>
78
+ <Select
79
+ mode="multiple"
80
+ style={{ width: '100%' }}
81
+ className={Styles.ns_input_select}
82
+ placeholder="Combo Box"
83
+ onChange={this.setValues}
84
+ optionLabelProp="label"
85
+ options={this.props.options}
86
+ optionRender={(option) => (
87
+ <Space className={Styles.ns_input_select_option}>
88
+ {option.data.desc}
89
+ </Space>
90
+ )}
91
+ suffixIcon={<img src={IconSelectBox} alt="SelectBox Icon" />}
92
+ />
93
+ </div>
94
+ <NSInputErrorNotifier error={this.state.error} />
95
+ </>
71
96
  );
72
97
  }
73
98
  }
@@ -59,7 +59,7 @@ export class NSTable<RowType> extends Component<NSTableProps<RowType>, NSTableSt
59
59
  className={`container ${Styles.ns_project_list_container} ${this.props.classList?.join(" ")}`}
60
60
  style={this.props.style}>
61
61
  <section className={Styles.ns_search_input}>
62
- <NSInputSearch />
62
+ <NSInputSearch title='' required={false} />
63
63
  </section>
64
64
  <NSSpace size={NSSpaceSizeType.SMALL} />
65
65
  <table className={Styles.ns_table} >
@@ -1,4 +1,3 @@
1
- import { Component } from 'react';
2
1
  import Styles from './NSLoginPage.module.css'
3
2
  import { NSButtonGreen } from '../components/NSButtonGreen';
4
3
  import { NSLinkBlue } from '../components/NSLinkBlue';
@@ -13,29 +12,26 @@ export interface NSLoginPageProps
13
12
  onClick?: () => void;
14
13
  }
15
14
 
16
- export class NSLoginPage extends Component<NSLoginPageProps>
15
+ export function NSLoginPage(props: NSLoginPageProps)
17
16
  {
18
- override render()
19
- {
20
- let button = <></>;
21
- if (this.props.href)
22
- button = <NSLinkBlue title="Login" href={this.props.href ?? ""} />;
23
- else if (this.props.onClick)
24
- button = <NSButtonGreen title="Login" onClick={this.props.onClick} />;
25
- return (
26
- <div style={{ backgroundImage: this.props.background, width: "100%", backgroundSize: "cover" }}>
27
- <div className={`${Styles.ns_login_container}`} style={{ marginTop: "100px" }}>
28
- <div className={`${Styles.ns_logo}`}>
29
- <img width={256} height={256} src={this.props.logo} alt={`${this.props.title} Logo`}></img>
30
- </div>
31
- <NSSpace size={NSSpaceSizeType.SMALL} />
32
- <div><h1 className={`${Styles.ns_title}`}>{this.props.title}</h1></div>
33
- <NSSpace size={NSSpaceSizeType.SMALL} />
34
- <div className={`${Styles.ns_button}`}>
35
- {button}
36
- </div>
17
+ let button = <></>;
18
+ if (props.href)
19
+ button = <NSLinkBlue title="Login" href={props.href ?? ""} />;
20
+ else if (props.onClick)
21
+ button = <NSButtonGreen title="Login" onClick={props.onClick} />;
22
+ return (
23
+ <div style={{ backgroundImage: props.background, width: "100%", backgroundSize: "cover" }}>
24
+ <div className={`${Styles.ns_login_container}`} style={{ marginTop: "100px" }}>
25
+ <div className={`${Styles.ns_logo}`}>
26
+ <img width={256} height={256} src={props.logo} alt={`${props.title} Logo`}></img>
37
27
  </div>
38
- </div >
39
- );
40
- }
28
+ <NSSpace size={NSSpaceSizeType.SMALL} />
29
+ <div><h1 className={`${Styles.ns_title}`}>{props.title}</h1></div>
30
+ <NSSpace size={NSSpaceSizeType.SMALL} />
31
+ <div className={`${Styles.ns_button}`}>
32
+ {button}
33
+ </div>
34
+ </div>
35
+ </div >
36
+ );
41
37
  }
@@ -1,18 +1,12 @@
1
- "use client";
2
-
3
- import { Component } from 'react';
4
1
  import Styles from './NSNotFoundPage.module.css'
5
2
  import { NSLinkBlue } from '../main';
6
3
 
7
- export class NSNotFoundPage extends Component
4
+ export function NSNotFoundPage()
8
5
  {
9
- override render()
10
- {
11
- return (
12
- <>
13
- <div className={Styles.ns_not_found_page}></div>
14
- <NSLinkBlue href='/' target='_self' title='Back To Home'/>``
15
- </>
16
- );
17
- }
6
+ return (
7
+ <>
8
+ <div className={Styles.ns_not_found_page}></div>
9
+ <NSLinkBlue href='/' target='_self' title='Back To Home' />``
10
+ </>
11
+ );
18
12
  }
@@ -1,6 +1,4 @@
1
- import { ValidationProps } from "./ValidationProps";
2
-
3
- export interface ValidationNumberProps extends ValidationProps
1
+ export interface ValidationNumberProps
4
2
  {
5
3
  min?: number;
6
4
  max?: number;
@@ -4,4 +4,5 @@ export interface ValidationProps
4
4
  {
5
5
  required: boolean;
6
6
  regex?: ValidationRegexProps;
7
+ validator?: (name: string, value: string | number | null | undefined) => string | null;
7
8
  }
@@ -1,6 +1,4 @@
1
- import { ValidationProps } from "./ValidationProps";
2
-
3
- export interface ValidationStringProps extends ValidationProps
1
+ export interface ValidationStringProps
4
2
  {
5
3
  min_length?: number;
6
4
  max_length?: number;
@@ -1,26 +0,0 @@
1
- .ns_input_parent {
2
- display: flex;
3
- flex-direction: column;
4
- width: 326px;
5
- color: #fff;
6
- position: relative;
7
- max-width: 100%;
8
- }
9
-
10
- .ns_input {
11
- border-radius: 8px;
12
- padding: 10px 12px;
13
- font-size: 16px;
14
- font-weight: 400;
15
- }
16
-
17
- .ns_input_icon {
18
- position: absolute;
19
- right: 20px;
20
- top: 51%;
21
- }
22
-
23
- .ns_input_title {
24
- font-size: 16px;
25
- font-weight: 400;
26
- }
@@ -1,38 +0,0 @@
1
- .ns_input_parent {
2
- display: flex;
3
- flex-direction: column;
4
- width: 326px;
5
- color: #fff;
6
- position: relative;
7
- max-width: 100%;
8
- }
9
-
10
- .ns_input {
11
- border-radius: 8px;
12
- padding: 10px 12px;
13
- }
14
-
15
- .ns_input_icon {
16
- position: absolute;
17
- right: 20px;
18
- top: 51%;
19
- font-size: 16px;
20
- font-weight: 400;
21
- }
22
-
23
- .ns_input_title {
24
- font-size: 16px;
25
- font-weight: 400;
26
- }
27
-
28
- .ns_input_error {
29
- color: #FF3F3F !important;
30
- }
31
-
32
- .ns_input_error:focus {
33
- color: #FF3F3F !important;
34
- }
35
-
36
- .ns_input_red {
37
- border: 2px solid #FF3F3F;
38
- }
@@ -1,26 +0,0 @@
1
- .ns_input_parent {
2
- display: flex;
3
- flex-direction: column;
4
- width: 326px;
5
- color: #fff;
6
- position: relative;
7
- max-width: 100%;
8
- }
9
-
10
- .ns_input {
11
- border-radius: 8px;
12
- padding: 10px 12px;
13
- font-size: 16px;
14
- font-weight: 400;
15
- }
16
-
17
- .ns_input_icon {
18
- position: absolute;
19
- right: 20px;
20
- top: 51%;
21
- }
22
-
23
- .ns_input_title {
24
- font-size: 16px;
25
- font-weight: 400;
26
- }
@@ -1,26 +0,0 @@
1
- .ns_input_parent {
2
- display: flex;
3
- flex-direction: column;
4
- width: 326px;
5
- color: #fff;
6
- position: relative;
7
- max-width: 100%;
8
- }
9
-
10
- .ns_input {
11
- border-radius: 8px;
12
- padding: 10px 12px;
13
- font-size: 16px;
14
- font-weight: 400;
15
- }
16
-
17
- .ns_input_icon {
18
- position: absolute;
19
- right: 20px;
20
- top: 51%;
21
- }
22
-
23
- .ns_input_title {
24
- font-size: 16px;
25
- font-weight: 400;
26
- }
@@ -1,26 +0,0 @@
1
- .ns_input_parent {
2
- display: flex;
3
- flex-direction: column;
4
- width: 326px;
5
- color: #fff;
6
- position: relative;
7
- max-width: 100%;
8
- }
9
-
10
- .ns_input {
11
- border-radius: 8px;
12
- padding: 10px 12px;
13
- font-size: 16px;
14
- font-weight: 400;
15
- }
16
-
17
- .ns_input_icon {
18
- position: absolute;
19
- right: 20px;
20
- top: 51%;
21
- }
22
-
23
- .ns_input_title {
24
- font-size: 16px;
25
- font-weight: 400;
26
- }
@@ -1,27 +0,0 @@
1
- .ns_input_parent {
2
- display: flex;
3
- flex-direction: column;
4
- width: 326px;
5
- color: #fff;
6
- position: relative;
7
- max-width: 100%;
8
- }
9
-
10
- .ns_input {
11
- border-radius: 8px;
12
- padding: 10px 12px;
13
- font-size: 16px;
14
- font-weight: 400;
15
- }
16
-
17
- .ns_input_icon {
18
- position: absolute;
19
- right: 20px;
20
- top: 51%;
21
- z-index: 1;
22
- }
23
-
24
- .ns_input_title {
25
- font-size: 16px;
26
- font-weight: 400;
27
- }
@@ -1,33 +0,0 @@
1
- .ns_input_parent {
2
- display: flex;
3
- flex-direction: column;
4
- width: 326px;
5
-
6
- position: relative;
7
- max-width: 100%;
8
- }
9
-
10
- .ns_input {
11
- height: 48px !important;
12
- font-size: 16px !important;
13
- font-weight: 400;
14
- width: 310px !important;
15
- }
16
-
17
- .ns_input span {
18
- color: #000 !important;
19
-
20
- }
21
-
22
- .ns_input_icon {
23
- position: absolute;
24
- right: 20px;
25
- top: 51%;
26
- z-index: 1;
27
- }
28
-
29
- .ns_input_title {
30
- color: #fff;
31
- font-size: 16px;
32
- font-weight: 400;
33
- }