namirasoft-site-react 1.3.317 → 1.3.322

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 (33) hide show
  1. package/dist/App.js +11 -2
  2. package/dist/App.js.map +1 -1
  3. package/dist/components/NSBoxEntity.js +1 -4
  4. package/dist/components/NSBoxEntity.js.map +1 -1
  5. package/dist/components/NSPageSelectionModal.d.ts +24 -0
  6. package/dist/components/NSPageSelectionModal.js +93 -0
  7. package/dist/components/NSPageSelectionModal.js.map +1 -0
  8. package/{src/components/NSPrintModal.module.css → dist/components/NSPageSelectionModal.module.css} +24 -4
  9. package/dist/components/NSTabPage.d.ts +1 -0
  10. package/dist/components/NSTabPage.js +1 -1
  11. package/dist/components/NSTabPage.js.map +1 -1
  12. package/dist/components/NSTabPage.module.css +10 -1
  13. package/dist/components/NSTable.d.ts +10 -3
  14. package/dist/components/NSTable.js +53 -11
  15. package/dist/components/NSTable.js.map +1 -1
  16. package/dist/main.d.ts +1 -1
  17. package/dist/main.js +1 -1
  18. package/dist/main.js.map +1 -1
  19. package/logo.png +0 -0
  20. package/package.json +2 -2
  21. package/src/App.tsx +2 -3
  22. package/src/components/NSBoxEntity.tsx +1 -5
  23. package/{dist/components/NSPrintModal.module.css → src/components/NSPageSelectionModal.module.css} +24 -4
  24. package/src/components/NSPageSelectionModal.tsx +164 -0
  25. package/src/components/NSTabPage.module.css +10 -1
  26. package/src/components/NSTabPage.tsx +2 -1
  27. package/src/components/NSTable.tsx +64 -12
  28. package/src/main.ts +1 -1
  29. package/tsconfig.json +1 -2
  30. package/dist/components/NSPrintModal.d.ts +0 -15
  31. package/dist/components/NSPrintModal.js +0 -35
  32. package/dist/components/NSPrintModal.js.map +0 -1
  33. package/src/components/NSPrintModal.tsx +0 -99
package/src/App.tsx CHANGED
@@ -1,6 +1,6 @@
1
1
  import './App.css';
2
2
  import 'bootstrap/dist/css/bootstrap.min.css';
3
- import { NSBarAction, NSBoxBoolean, NSBoxEmail, NSBoxEnum, NSBoxSearch, NSBoxString, NSEntityBar, NSLayout, NSNoData, NSPagination, NSPrintModal, NSSpace, NSSpaceSizeType, NSTabPage, NSTable } from './main';
3
+ import { NSBarAction, NSBoxBoolean, NSBoxEmail, NSBoxEnum, NSBoxSearch, NSBoxString, NSEntityBar, NSLayout, NSNoData, NSPagination, NSSpace, NSSpaceSizeType, NSTabPage, NSTable } from './main';
4
4
  import { NSBoxLabel } from './components/NSBoxLabel';
5
5
  import NSRadioButton from './components/NSRadioButton';
6
6
  import NSTag from './components/NSTag';
@@ -140,7 +140,7 @@ export function App()
140
140
  getRowKey={row => row.id.toString()}
141
141
  getColumnAttributes={() => { return {} }}
142
142
  totalItems={0}
143
- reload={() => { return table.current?.setRows(rows) }}
143
+ getRows={async () => { return rows; }}
144
144
  checkbox={true}
145
145
  />
146
146
  <NSBarAction title='' menus={group} />
@@ -160,7 +160,6 @@ export function App()
160
160
  </div>
161
161
  <NSSpace size={NSSpaceSizeType.MEDUIM} />
162
162
  <NSBoxBoolean title='CheckBox' required />
163
- <NSPrintModal onClose={() => { }} />
164
163
  <NSEntityBar title='' description='' image={{ src: "" }} />
165
164
  </NSLayout>
166
165
  </>
@@ -106,10 +106,6 @@ export class NSBoxEntity<Data> extends React.Component<INSBoxEntityProps<Data>,
106
106
  }).catch(() => { });
107
107
  }
108
108
  override render() {
109
- if (this.state.items == null) {
110
- // todo
111
- return <NSLoading></NSLoading>
112
- }
113
109
  return (
114
110
  <>
115
111
  <div id={this.props.id} className={`${Styles.ns_input_parent}`}>
@@ -122,13 +118,13 @@ export class NSBoxEntity<Data> extends React.Component<INSBoxEntityProps<Data>,
122
118
  onClick={() => this.props.onClicked}
123
119
  optionLabelProp="label"
124
120
  options={this.state.items_string ?? []}
121
+ notFoundContent={this.state.items === null ? <NSLoading /> : null}
125
122
  optionRender={(option) => (
126
123
  <Space className={Styles.ns_input_select_option}>
127
124
  {option.data.desc}
128
125
  </Space>
129
126
  )}
130
127
  suffixIcon={<img src={IconSelectBox} alt="SelectBox Icon" />}
131
-
132
128
  />
133
129
  <NSBoxErrorNotifier error={this.state.error} clearError={() => this.setState({ error: "" })} />
134
130
  </div>
@@ -1,14 +1,16 @@
1
1
  .ns_print_container {
2
- /* position: absolute; */
3
2
  z-index: 1;
4
- top: 30px;
5
- transform: translate(0, 0);
6
- right: 0;
3
+ top: 0%;
4
+ transform: translate(50%, 50%);
7
5
  background-color: rgba(255, 255, 255, 1);
8
6
  border-radius: 16px;
9
7
  border: 0.2px solid rgb(210, 210, 210);
10
8
  padding: 16px;
11
9
  max-width: 380px;
10
+ position: absolute;
11
+ top: 50%;
12
+ left: 50%;
13
+ transform: translate(-50%, -50%);
12
14
  }
13
15
 
14
16
  .ns_header_print {
@@ -19,6 +21,7 @@
19
21
  position: absolute;
20
22
  right: 0px;
21
23
  top: 0px;
24
+ cursor: pointer;
22
25
  }
23
26
 
24
27
  .ns_print_title {
@@ -79,4 +82,21 @@
79
82
  .ns_w_box_string input {
80
83
  width: 272px !important;
81
84
  }
85
+ }
86
+
87
+ .ns_toast_background {
88
+ width: 100vw;
89
+ height: 100vh;
90
+ background-color: #00000059;
91
+ position: fixed;
92
+ top: 0;
93
+ left: 0;
94
+ display: flex;
95
+ justify-content: center;
96
+ align-items: center;
97
+ cursor: default;
98
+ }
99
+
100
+ .ns_parent_modal {
101
+ /* position: relative; */
82
102
  }
@@ -0,0 +1,164 @@
1
+ import React, { Component, createRef } from 'react';
2
+ import Styles from './NSPageSelectionModal.module.css';
3
+ import { NSButtonBlue } from './NSButtonBlue';
4
+ import { NSBoxString } from './NSBoxString';
5
+ import { NSBoxBoolean } from './NSBoxBoolean';
6
+ import { NSSpace } from './NSSpace';
7
+ import { NSSpaceSizeType } from '../main';
8
+
9
+ export interface NSPageSelectionModalProps<RowType>
10
+ {
11
+ current_page: number;
12
+ max_page: number;
13
+ onClose: () => void;
14
+ getItems: (page: number, selected: boolean) => Promise<RowType[]>;
15
+ onFinish: (items: RowType[]) => void;
16
+ }
17
+
18
+ interface NSPageSelectionModalState
19
+ {
20
+ }
21
+
22
+ export class NSPageSelectionModal<RowType> extends Component<NSPageSelectionModalProps<RowType>, NSPageSelectionModalState>
23
+ {
24
+ private toastRef: React.RefObject<HTMLDivElement> = createRef();
25
+ private NSBoxBoolean_CurrentPage: React.RefObject<NSBoxBoolean> = createRef();
26
+ private NSBoxBoolean_SelectedItems: React.RefObject<NSBoxBoolean> = createRef();
27
+ private NSBoxBoolean_CustomPage: React.RefObject<NSBoxBoolean> = createRef();
28
+ private NSBoxBoolean_AllPage: React.RefObject<NSBoxBoolean> = createRef();
29
+ private NSBoxString_Pages: React.RefObject<NSBoxString> = createRef();
30
+
31
+ constructor(props: NSPageSelectionModalProps<RowType>)
32
+ {
33
+ super(props);
34
+ this.state = {};
35
+ this.onClickOutside = this.onClickOutside.bind(this);
36
+ }
37
+
38
+ override componentDidMount(): void
39
+ {
40
+ document.addEventListener('mousedown', this.onClickOutside);
41
+ }
42
+
43
+ override componentWillUnmount(): void
44
+ {
45
+ document.removeEventListener('mousedown', this.onClickOutside);
46
+ }
47
+
48
+ private onClickOutside(event: MouseEvent)
49
+ {
50
+ if (this.toastRef.current && !this.toastRef.current.contains(event.target as Node))
51
+ {
52
+ this.props.onClose();
53
+ }
54
+ }
55
+ override render()
56
+ {
57
+ return (
58
+ <>
59
+ {
60
+ <>
61
+ <div className={Styles.ns_print_container} ref={this.toastRef}>
62
+ <div className={Styles.ns_header_print}>
63
+ <img
64
+ src="https://static.namirasoft.com/image/concept/close/blue.svg"
65
+ alt="Close"
66
+ width={24}
67
+ height={24}
68
+ onClick={(e) =>
69
+ {
70
+ e.stopPropagation();
71
+ this.props.onClose();
72
+ }}
73
+ className={Styles.ns_close_icon}
74
+ />
75
+ <div className={Styles.ns_print_title}>
76
+ <img
77
+ src="https://static.namirasoft.com/image/concept/print/blue.svg"
78
+ alt="Print"
79
+ width={24}
80
+ height={24}
81
+ />
82
+ <h2 className='m-0'>Page Selection</h2>
83
+ </div>
84
+ <NSSpace size={NSSpaceSizeType.SMALL} />
85
+ <p className={Styles.ns_print_description}>Please select which pages you want to continue with</p>
86
+ <NSSpace size={NSSpaceSizeType.SMALL} />
87
+ <div className={Styles.ns_parent_checkboxs}>
88
+ <NSBoxBoolean ref={this.NSBoxBoolean_CurrentPage} classList={[Styles.ns_w_box_boolean]} title="Current page" required={false} />
89
+ <NSBoxBoolean ref={this.NSBoxBoolean_SelectedItems} classList={[Styles.ns_w_box_boolean]} title="Only Selected Items" required={false} />
90
+ <NSBoxBoolean ref={this.NSBoxBoolean_CustomPage} classList={[Styles.ns_w_box_boolean]} title="Custom Pages" required={false} />
91
+ <NSBoxBoolean ref={this.NSBoxBoolean_AllPage} classList={[Styles.ns_w_box_boolean]} title="All Pages" required={false} />
92
+ </div>
93
+ <NSSpace size={NSSpaceSizeType.MICRO} />
94
+ <NSBoxString ref={this.NSBoxString_Pages} classList={[Styles.ns_w_box_string]} required={false} title="Custom Pages" />
95
+ <NSSpace size={NSSpaceSizeType.SMALL} />
96
+ <NSButtonBlue style={{ width: "100%" }} title='Apply' onClick={async () =>
97
+ {
98
+ let items: RowType[] = [];
99
+ if (this.NSBoxBoolean_CurrentPage.current?.getValue())
100
+ {
101
+ let is = await this.props.getItems(this.props.current_page, false);
102
+ items.push(...is);
103
+ }
104
+ else if (this.NSBoxBoolean_SelectedItems.current?.getValue())
105
+ {
106
+ let is = await this.props.getItems(this.props.current_page, true);
107
+ items.push(...is);
108
+ }
109
+ else if (this.NSBoxBoolean_CustomPage.current?.getValue())
110
+ {
111
+ let pages_value = this.NSBoxString_Pages.current?.getValue() ?? "";
112
+ let pages = pages_value.split(',').map(p => p.trim()).filter(p => p);
113
+ for (let i = 0; i < pages.length; i++)
114
+ {
115
+ const element = pages[i];
116
+ if (element.includes("-"))
117
+ {
118
+ let ps = element.split('-').map(p => p.trim());
119
+ if (ps.length == 2)
120
+ {
121
+ let from = parseInt(ps[0]);
122
+ let to = parseInt(ps[1]);
123
+ for (let p = from; p <= to; p++)
124
+ {
125
+ let is = await this.props.getItems(p, false);
126
+ items.push(...is);
127
+ }
128
+ }
129
+ else
130
+ {
131
+ // error
132
+ }
133
+ }
134
+ else
135
+ {
136
+ let p = parseInt(element);
137
+ let is = await this.props.getItems(p, false);
138
+ items.push(...is);
139
+ }
140
+ }
141
+ }
142
+ else if (this.NSBoxBoolean_AllPage.current?.getValue())
143
+ {
144
+ for (let p = 1; p <= this.props.max_page; p++)
145
+ {
146
+ let is = await this.props.getItems(p, false);
147
+ items.push(...is);
148
+ }
149
+ }
150
+ else
151
+ { }
152
+ this.props.onFinish(items);
153
+ }} />
154
+ </div>
155
+ </div>
156
+ <div className={Styles.ns_toast_background}></div>
157
+ </>
158
+ }
159
+ </>
160
+ );
161
+ }
162
+ }
163
+
164
+ export default NSPageSelectionModal;
@@ -38,7 +38,7 @@
38
38
  box-shadow: 0px 2px 2px 2px #141B5C;
39
39
  }
40
40
 
41
- .ns_tab_content {
41
+ .ns_tab_content_column {
42
42
  padding: 16px;
43
43
  border-radius: 0 8px 8px 8px;
44
44
  background-color: #fff;
@@ -46,4 +46,13 @@
46
46
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
47
47
  gap: 0;
48
48
  border-right: 1px solid #ccc;
49
+ }
50
+
51
+ .ns_tab_content_grid {
52
+ padding: 16px;
53
+ border-radius: 0 8px 8px 8px;
54
+ background-color: #fff;
55
+ display: grid;
56
+ gap: 0;
57
+ border-right: 1px solid #ccc;
49
58
  }
@@ -12,6 +12,7 @@ export interface NSTabPageTab
12
12
  export interface NSTabPageProps extends IBaseComponentProps
13
13
  {
14
14
  tabs: NSTabPageTab[]
15
+ grid?: boolean;
15
16
  }
16
17
 
17
18
  export interface NSTabPageState
@@ -38,7 +39,7 @@ export function NSTabPage(props: NSTabPageProps)
38
39
  ))
39
40
  }
40
41
  </ul>
41
- <div className={Styles.ns_tab_content}>
42
+ <div className={props.grid ? Styles.ns_tab_content_grid : Styles.ns_tab_content_column}>
42
43
  {props.tabs[state.activeTabIndex].getContent()}
43
44
  </div>
44
45
  </div>
@@ -8,6 +8,7 @@ import { Component } from 'react';
8
8
  import { IBaseComponentProps } from "../props/IBaseComponentProps";
9
9
  import React from "react";
10
10
  import { NSModal } from './NSModal';
11
+ import { NSPageSelectionModal } from './NSPageSelectionModal';
11
12
  import { NSLoading } from './NSLoading';
12
13
  import { NSNoData } from './NSNoData';
13
14
  import { writeFile, utils } from 'xlsx';
@@ -17,7 +18,7 @@ export interface INSTableProps<RowType> extends IBaseComponentProps
17
18
  columns: { [key: string]: string };
18
19
  totalItems: number;
19
20
  checkbox: boolean;
20
- reload: (page: number, size: number) => void;
21
+ getRows: (page: number, size: number) => Promise<RowType[]>;
21
22
  getRowKey: (row: RowType, rowIndex: number) => string;
22
23
  getColumnAttributes?: (column: string, columnIndex: number) => { [key: string]: string };
23
24
  getCell?: (row: RowType, column: string, rowIndex: number, columnIndex: number) => any;
@@ -37,6 +38,14 @@ interface NSTableState<RowType>
37
38
  };
38
39
  selectedIDs: string[];
39
40
  indeterminate: boolean;
41
+ pageSelectionMode: PageSelectionMode;
42
+ }
43
+
44
+ enum PageSelectionMode
45
+ {
46
+ Hidden = "Hidden",
47
+ Print = "Print",
48
+ CSV = "CSV"
40
49
  }
41
50
 
42
51
  export class NSTable<RowType> extends Component<INSTableProps<RowType>, NSTableState<RowType>>
@@ -50,7 +59,8 @@ export class NSTable<RowType> extends Component<INSTableProps<RowType>, NSTableS
50
59
  rows: null,
51
60
  model: { show: false },
52
61
  selectedIDs: [],
53
- indeterminate: false
62
+ indeterminate: false,
63
+ pageSelectionMode: PageSelectionMode.Hidden
54
64
  };
55
65
  this.setColumns = this.setColumns.bind(this);
56
66
  this.setRows = this.setRows.bind(this);
@@ -60,8 +70,9 @@ export class NSTable<RowType> extends Component<INSTableProps<RowType>, NSTableS
60
70
  this.isSomeChecked = this.isSomeChecked.bind(this);
61
71
  this.toggleAllCheckboxes = this.toggleAllCheckboxes.bind(this);
62
72
  this.print = this.print.bind(this);
63
- this.exportToExcel = this.exportToExcel.bind(this);
73
+ this.exportCSV = this.exportCSV.bind(this);
64
74
  this.isAllChecked = this.isAllChecked.bind(this);
75
+ this.reload = this.reload.bind(this);
65
76
  }
66
77
 
67
78
  setColumns(columns: { [key: string]: string })
@@ -86,7 +97,14 @@ export class NSTable<RowType> extends Component<INSTableProps<RowType>, NSTableS
86
97
 
87
98
  private onPageChange(page: number, size: number)
88
99
  {
89
- this.props.reload(page, size);
100
+ this.reload(page, size);
101
+ }
102
+ private reload(page: number, size: number)
103
+ {
104
+ this.props.getRows(page, size).then(rows =>
105
+ {
106
+ this.setRows(rows);
107
+ });
90
108
  }
91
109
 
92
110
  private toggleAllCheckboxes()
@@ -99,10 +117,10 @@ export class NSTable<RowType> extends Component<INSTableProps<RowType>, NSTableS
99
117
  selectedIDs.push(id);
100
118
  })
101
119
  this.setSelectedIDs(selectedIDs);
102
- this.setState({ indeterminate: this.isSomeChecked() });
120
+ this.setState({ indeterminate: false });
103
121
  }
104
122
 
105
- print()
123
+ print(rows: RowType[])
106
124
  {
107
125
  const printWindow = window.open('', '', 'height=500,width=800');
108
126
  printWindow!.document.write('<html><head><title>Print Table</title>');
@@ -119,7 +137,7 @@ export class NSTable<RowType> extends Component<INSTableProps<RowType>, NSTableS
119
137
  printWindow!.document.write('</tr></thead><tbody>');
120
138
 
121
139
  // Add table rows
122
- this.state.rows?.forEach(row =>
140
+ rows.forEach(row =>
123
141
  {
124
142
  printWindow!.document.write('<tr>');
125
143
  Object.keys(this.state.columns).forEach(column =>
@@ -134,12 +152,12 @@ export class NSTable<RowType> extends Component<INSTableProps<RowType>, NSTableS
134
152
  printWindow!.document.close();
135
153
  printWindow!.print();
136
154
  }
137
- exportToExcel()
155
+ exportCSV(rows: RowType[])
138
156
  {
139
- debugger
140
157
  const worksheet = utils.json_to_sheet(this.state.rows || []);
141
158
  const workbook = utils.book_new();
142
159
  utils.book_append_sheet(workbook, worksheet, "Table Data");
160
+ console.log(rows.length); // todo
143
161
  writeFile(workbook, "TableData.xlsx");
144
162
  }
145
163
  getSelectedIDs(): string[]
@@ -274,14 +292,48 @@ export class NSTable<RowType> extends Component<INSTableProps<RowType>, NSTableS
274
292
  <NSPagination ref={this.NSPagination} totalItems={this.props.totalItems} onPageChange={this.onPageChange} />
275
293
  <NSSpace size={NSSpaceSizeType.SMALL} />
276
294
  <div className={Styles.ns_button}>
295
+ {
296
+ this.state.pageSelectionMode != PageSelectionMode.Hidden &&
297
+ <NSPageSelectionModal<RowType>
298
+ current_page={1}
299
+ max_page={1}
300
+ getItems={async (page, selected) =>
301
+ {
302
+ if (selected)
303
+ {
304
+ let rows: RowType[] = [];
305
+ if (this.state.rows)
306
+ for (let i = 0; i < this.state.rows.length; i++)
307
+ {
308
+ const row = this.state.rows[i];
309
+ let id = this.props.getRowKey(row, i);
310
+ if (this.state.selectedIDs.includes(id))
311
+ rows.push(row);
312
+ }
313
+ return rows;
314
+ }
315
+ return this.props.getRows(page, this.NSPagination.current?.getCurrentPage() ?? 0);
316
+ }}
317
+ onFinish={(items: RowType[]) =>
318
+ {
319
+ if (this.state.pageSelectionMode == PageSelectionMode.Print)
320
+ this.print(items);
321
+ else if (this.state.pageSelectionMode == PageSelectionMode.CSV)
322
+ this.exportCSV(items);
323
+ }}
324
+ onClose={() => { this.setState({ pageSelectionMode: PageSelectionMode.Hidden }); }
325
+ }
326
+ />
327
+ }
277
328
  <NSButton title='Chart' icon={{ src: "https://static.namirasoft.com/image/concept/chart/blue.svg" }} onClick={() => { }} style={{ border: '1px solid rgba(255, 148, 50, 1)', width: "128px" }} />
278
- <NSButton title='Print' icon={{ src: "https://static.namirasoft.com/image/concept/print/blue.svg" }} onClick={this.print} style={{ border: '1px solid rgba(255, 148, 50, 1)', width: "128px" }} />
279
- <NSButton title='Export' icon={{ src: "https://static.namirasoft.com/image/concept/export/blue.svg" }} onClick={this.exportToExcel} style={{ border: '1px solid rgba(255, 148, 50, 1)', width: "128px" }} />
329
+ <NSButton title='Print' icon={{ src: "https://static.namirasoft.com/image/concept/print/blue.svg" }} onClick={() => { this.setState({ pageSelectionMode: PageSelectionMode.Print }); }} style={{ border: '1px solid rgba(255, 148, 50, 1)', width: "128px" }} />
330
+ <NSButton title='Export' icon={{ src: "https://static.namirasoft.com/image/concept/export/blue.svg" }} onClick={() => { this.setState({ pageSelectionMode: PageSelectionMode.CSV }); }} style={{ border: '1px solid rgba(255, 148, 50, 1)', width: "128px" }} />
280
331
  <NSButton title='Refresh' icon={{ src: "https://static.namirasoft.com/image/concept/refresh/blue.svg" }} onClick={() =>
281
332
  {
282
333
  if (this.NSPagination.current)
283
- this.props.reload(this.NSPagination.current.getCurrentPage(), this.NSPagination.current.getPageSize());
334
+ this.reload(this.NSPagination.current.getCurrentPage(), this.NSPagination.current.getPageSize());
284
335
  }} style={{ border: '1px solid rgba(3, 119, 255, 1)', width: "128px" }} />
336
+
285
337
  </div>
286
338
  </section>
287
339
  <NSSpace size={NSSpaceSizeType.SMALL} />
package/src/main.ts CHANGED
@@ -51,7 +51,7 @@ export * from "./components/NSNoData";
51
51
  export * from "./components/NSModal";
52
52
  export * from "./components/NSPagination";
53
53
  export * from "./components/NSPanel";
54
- export * from "./components/NSPrintModal";
54
+ export * from "./components/NSPageSelectionModal";
55
55
  export * from "./components/NSRadioButton";
56
56
  export * from "./components/NSSection";
57
57
  export * from "./components/NSSectionBars";
package/tsconfig.json CHANGED
@@ -32,8 +32,7 @@
32
32
  },
33
33
  "include": [
34
34
  "src",
35
- "build/types/**/*.ts",
36
- "src/components/NSAssistantButton.tsx"
35
+ "build/types/**/*.ts"
37
36
  ],
38
37
  "exclude": [
39
38
  "node_modules",
@@ -1,15 +0,0 @@
1
- import { Component } from 'react';
2
- export interface NSPrintModalProps {
3
- onClose: () => void;
4
- }
5
- interface NSPrintModalState {
6
- }
7
- export declare class NSPrintModal extends Component<NSPrintModalProps, NSPrintModalState> {
8
- private toastRef;
9
- constructor(props: NSPrintModalProps);
10
- componentDidMount(): void;
11
- componentWillUnmount(): void;
12
- private onClickOutside;
13
- render(): import("react/jsx-runtime").JSX.Element;
14
- }
15
- export default NSPrintModal;
@@ -1,35 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { Component, createRef } from 'react';
3
- import Styles from './NSPrintModal.module.css';
4
- import { NSButtonBlue } from './NSButtonBlue';
5
- import { NSBoxString } from './NSBoxString';
6
- import { NSBoxBoolean } from './NSBoxBoolean';
7
- import { NSSpace } from './NSSpace';
8
- import { NSSpaceSizeType } from '../main';
9
- export class NSPrintModal extends Component {
10
- constructor(props) {
11
- super(props);
12
- this.toastRef = createRef();
13
- this.state = { products: null, search: "" };
14
- this.onClickOutside = this.onClickOutside.bind(this);
15
- }
16
- componentDidMount() {
17
- document.addEventListener('mousedown', this.onClickOutside);
18
- }
19
- componentWillUnmount() {
20
- document.removeEventListener('mousedown', this.onClickOutside);
21
- }
22
- onClickOutside(event) {
23
- if (this.toastRef.current && !this.toastRef.current.contains(event.target)) {
24
- this.props.onClose();
25
- }
26
- }
27
- render() {
28
- return (_jsxs(_Fragment, { children: [_jsx("div", { className: Styles.ns_print_container, ref: this.toastRef, children: _jsxs("div", { className: Styles.ns_header_print, children: [_jsx("img", { src: "https://static.namirasoft.com/image/concept/close/blue.svg", alt: "Close", width: 24, height: 24, onClick: (e) => {
29
- e.stopPropagation();
30
- this.props.onClose();
31
- }, className: Styles.ns_close_icon }), _jsxs("div", { className: Styles.ns_print_title, children: [_jsx("img", { src: "https://static.namirasoft.com/image/concept/print/blue.svg", alt: "Print", width: 24, height: 24 }), _jsx("h2", { className: 'm-0', children: "Page Selection" })] }), _jsx(NSSpace, { size: NSSpaceSizeType.SMALL }), _jsx("p", { className: Styles.ns_print_description, children: "Please select which pages you want to continue with" }), _jsx(NSSpace, { size: NSSpaceSizeType.SMALL }), _jsxs("div", { className: Styles.ns_parent_checkboxs, children: [_jsx(NSBoxBoolean, { classList: [Styles.ns_w_box_boolean], title: "Current page", required: false }), _jsx(NSBoxBoolean, { classList: [Styles.ns_w_box_boolean], title: "Only Selected Items", required: false }), _jsx(NSBoxBoolean, { classList: [Styles.ns_w_box_boolean], title: "Custom Pages", required: false }), _jsx(NSBoxBoolean, { classList: [Styles.ns_w_box_boolean], title: "All Pages", required: false })] }), _jsx(NSSpace, { size: NSSpaceSizeType.MICRO }), _jsx(NSBoxString, { classList: [Styles.ns_w_box_string], required: false, title: "Page1" }), _jsx(NSSpace, { size: NSSpaceSizeType.SMALL }), _jsx(NSButtonBlue, { style: { width: "100%" }, title: 'Apply', onClick: () => { } })] }) }), _jsx("div", { className: Styles.ns_toast_background })] }));
32
- }
33
- }
34
- export default NSPrintModal;
35
- //# sourceMappingURL=NSPrintModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NSPrintModal.js","sourceRoot":"","sources":["../../src/components/NSPrintModal.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAG,eAAe,EAAE,MAAM,SAAS,CAAC;AAc3C,MAAM,OAAO,YAAa,SAAQ,SAA+C;IAI7E,YAAY,KAAwB;QAEhC,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,QAAQ,GAAG,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAEQ,iBAAiB;QAEtB,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAChE,CAAC;IAEQ,oBAAoB;QAEzB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACnE,CAAC;IAEO,cAAc,CAAC,KAAiB;QAEpC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAClF;YACI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;SACxB;IACL,CAAC;IAEQ,MAAM;QAEX,OAAO,CACH,8BACI,cAAK,SAAS,EAAE,MAAM,CAAC,kBAAkB,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,YACzD,eAAK,SAAS,EAAE,MAAM,CAAC,eAAe,aAClC,cACI,GAAG,EAAC,4DAA4D,EAChE,GAAG,EAAC,OAAO,EACX,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oCAEX,CAAC,CAAC,eAAe,EAAE,CAAC;oCACpB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gCACzB,CAAC,EACD,SAAS,EAAE,MAAM,CAAC,aAAa,GACjC,EACF,eAAK,SAAS,EAAE,MAAM,CAAC,cAAc,aACjC,cACI,GAAG,EAAC,4DAA4D,EAChE,GAAG,EAAC,OAAO,EACX,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,GACZ,EACF,aAAI,SAAS,EAAC,KAAK,+BAAoB,IACrC,EACN,KAAC,OAAO,IAAC,IAAI,EAAE,eAAe,CAAC,KAAK,GAAG,EACvC,YAAG,SAAS,EAAE,MAAM,CAAC,oBAAoB,oEAAyD,EAClG,KAAC,OAAO,IAAC,IAAI,EAAE,eAAe,CAAC,KAAK,GAAI,EACxC,eAAK,SAAS,EAAE,MAAM,CAAC,mBAAmB,aACtC,KAAC,YAAY,IAAC,SAAS,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAC,cAAc,EAAC,QAAQ,EAAE,KAAK,GAAG,EAC3F,KAAC,YAAY,IAAC,SAAS,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAG,KAAK,EAAC,qBAAqB,EAAC,QAAQ,EAAE,KAAK,GAAG,EACnG,KAAC,YAAY,IAAC,SAAS,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAG,KAAK,EAAC,cAAc,EAAC,QAAQ,EAAE,KAAK,GAAG,EAC5F,KAAC,YAAY,IAAC,SAAS,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAG,KAAK,EAAC,WAAW,EAAC,QAAQ,EAAE,KAAK,GAAG,IACvF,EACN,KAAC,OAAO,IAAC,IAAI,EAAE,eAAe,CAAC,KAAK,GAAI,EACxC,KAAC,WAAW,IAAC,SAAS,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAC,OAAO,GAAE,EAClF,KAAC,OAAO,IAAC,IAAI,EAAE,eAAe,CAAC,KAAK,GAAI,EACxC,KAAC,YAAY,IAAC,KAAK,EAAE,EAAC,KAAK,EAAC,MAAM,EAAC,EAAE,KAAK,EAAC,OAAO,EAAC,OAAO,EAAE,GAAE,EAAE,GAAC,CAAC,GAAG,IACnE,GACJ,EACN,cAAK,SAAS,EAAE,MAAM,CAAC,mBAAmB,GAAQ,IACnD,CACN,CAAC;IACN,CAAC;CACJ;AAED,eAAe,YAAY,CAAC"}
@@ -1,99 +0,0 @@
1
- import React, { Component, createRef } from 'react';
2
- import Styles from './NSPrintModal.module.css';
3
- import { NSButtonBlue } from './NSButtonBlue';
4
- import { NSBoxString } from './NSBoxString';
5
- import { NSBoxBoolean } from './NSBoxBoolean';
6
- import { NSSpace } from './NSSpace';
7
- import { NSSpaceSizeType } from '../main';
8
- // import { NamirasoftAPIProductServer, ProductFullRow } from 'namirasoft-api-product';
9
- // import CloseToast from '../assets/images/icon-close.png';
10
- // import { NSBoxSearch, NSLoading } from 'namirasoft-site-react';
11
-
12
- export interface NSPrintModalProps
13
- {
14
- onClose: () => void;
15
- }
16
-
17
- interface NSPrintModalState
18
- {
19
- }
20
-
21
- export class NSPrintModal extends Component<NSPrintModalProps, NSPrintModalState>
22
- {
23
- private toastRef: React.RefObject<HTMLDivElement>;
24
-
25
- constructor(props: NSPrintModalProps)
26
- {
27
- super(props);
28
- this.toastRef = createRef();
29
- this.state = { products: null, search: "" };
30
- this.onClickOutside = this.onClickOutside.bind(this);
31
- }
32
-
33
- override componentDidMount(): void
34
- {
35
- document.addEventListener('mousedown', this.onClickOutside);
36
- }
37
-
38
- override componentWillUnmount(): void
39
- {
40
- document.removeEventListener('mousedown', this.onClickOutside);
41
- }
42
-
43
- private onClickOutside(event: MouseEvent)
44
- {
45
- if (this.toastRef.current && !this.toastRef.current.contains(event.target as Node))
46
- {
47
- this.props.onClose();
48
- }
49
- }
50
-
51
- override render()
52
- {
53
- return (
54
- <>
55
- <div className={Styles.ns_print_container} ref={this.toastRef}>
56
- <div className={Styles.ns_header_print}>
57
- <img
58
- src="https://static.namirasoft.com/image/concept/close/blue.svg"
59
- alt="Close"
60
- width={24}
61
- height={24}
62
- onClick={(e) =>
63
- {
64
- e.stopPropagation();
65
- this.props.onClose();
66
- }}
67
- className={Styles.ns_close_icon}
68
- />
69
- <div className={Styles.ns_print_title}>
70
- <img
71
- src="https://static.namirasoft.com/image/concept/print/blue.svg"
72
- alt="Print"
73
- width={24}
74
- height={24}
75
- />
76
- <h2 className='m-0'>Page Selection</h2>
77
- </div>
78
- <NSSpace size={NSSpaceSizeType.SMALL}/>
79
- <p className={Styles.ns_print_description}>Please select which pages you want to continue with</p>
80
- <NSSpace size={NSSpaceSizeType.SMALL} />
81
- <div className={Styles.ns_parent_checkboxs}>
82
- <NSBoxBoolean classList={[Styles.ns_w_box_boolean]} title="Current page" required={false}/>
83
- <NSBoxBoolean classList={[Styles.ns_w_box_boolean]} title="Only Selected Items" required={false}/>
84
- <NSBoxBoolean classList={[Styles.ns_w_box_boolean]} title="Custom Pages" required={false}/>
85
- <NSBoxBoolean classList={[Styles.ns_w_box_boolean]} title="All Pages" required={false}/>
86
- </div>
87
- <NSSpace size={NSSpaceSizeType.MICRO} />
88
- <NSBoxString classList={[Styles.ns_w_box_string]} required={false} title="Page1"/>
89
- <NSSpace size={NSSpaceSizeType.SMALL} />
90
- <NSButtonBlue style={{width:"100%"}} title='Apply' onClick={()=>{}}/>
91
- </div>
92
- </div>
93
- <div className={Styles.ns_toast_background}></div>
94
- </>
95
- );
96
- }
97
- }
98
-
99
- export default NSPrintModal;