namirasoft-site-react 1.3.140 → 1.3.141

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 (31) hide show
  1. package/dist/App.js +109 -55
  2. package/dist/App.js.map +1 -1
  3. package/dist/components/NSButtonRed.module.css +1 -1
  4. package/dist/components/NSFilterBox.d.ts +44 -1
  5. package/dist/components/NSFilterBox.js +112 -2
  6. package/dist/components/NSFilterBox.js.map +1 -1
  7. package/dist/components/NSFilterBox.module.css +10 -0
  8. package/dist/components/NSFilterBoxDialog.d.ts +1 -0
  9. package/dist/components/NSFilterBoxDialog.js +2 -2
  10. package/dist/components/NSFilterBoxDialog.js.map +1 -1
  11. package/dist/components/NSFilterItem.d.ts +17 -0
  12. package/dist/components/NSFilterItem.js +29 -0
  13. package/dist/components/NSFilterItem.js.map +1 -0
  14. package/dist/components/NSFilterItem.module.css +24 -0
  15. package/dist/components/NSGroupedList.d.ts +21 -0
  16. package/dist/components/NSGroupedList.js +12 -0
  17. package/dist/components/NSGroupedList.js.map +1 -0
  18. package/dist/components/NSGroupedList.module.css +71 -0
  19. package/dist/components/NSLayoutAction.js +4 -4
  20. package/dist/components/NSLayoutAction.js.map +1 -1
  21. package/package.json +1 -1
  22. package/src/App.tsx +110 -92
  23. package/src/components/NSButtonRed.module.css +1 -1
  24. package/src/components/NSFilterBox.module.css +10 -0
  25. package/src/components/NSFilterBox.tsx +204 -20
  26. package/src/components/NSFilterBoxDialog.tsx +5 -3
  27. package/src/components/NSFilterItem.module.css +24 -0
  28. package/src/components/NSFilterItem.tsx +72 -0
  29. package/src/components/NSGroupedList.module.css +71 -0
  30. package/src/components/NSGroupedList.tsx +59 -0
  31. package/src/components/NSLayoutAction.tsx +23 -21
package/dist/App.js CHANGED
@@ -1,12 +1,9 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import './App.css';
3
3
  import 'bootstrap/dist/css/bootstrap.min.css';
4
- import { NSBoxIPV4, NSTable, NSTabPage } from './main';
5
- import { useRef } from 'react';
6
4
  import { NSLayoutAction } from './components/NSLayoutAction';
7
- import { NSBoxIPV6 } from './components/NSBoxIPV6';
8
- import { NSBoxBoolean } from './components/NSBoxBoolean';
9
5
  import { NSFilterBox } from './components/NSFilterBox';
6
+ import { FilterItemColumnType } from 'namirasoft-core';
10
7
  const actions = [
11
8
  {
12
9
  group: "test-1",
@@ -54,56 +51,113 @@ const actions = [
54
51
  ]
55
52
  }
56
53
  ];
54
+ const suggest_items = [
55
+ {
56
+ name: "test-category-1",
57
+ text: "test-category-1",
58
+ columns: [
59
+ {
60
+ name: "item-id-test-1",
61
+ text: "item-title-test-1",
62
+ type: FilterItemColumnType.String
63
+ },
64
+ {
65
+ name: "item-id-test-2",
66
+ text: "item-title-test-2",
67
+ type: FilterItemColumnType.String
68
+ },
69
+ {
70
+ name: "item-id-test-2",
71
+ text: "item-title-test-2",
72
+ type: FilterItemColumnType.String
73
+ },
74
+ {
75
+ name: "item-id-test-2",
76
+ text: "item-title-test-2",
77
+ type: FilterItemColumnType.String
78
+ },
79
+ ]
80
+ },
81
+ {
82
+ name: "test-category-1",
83
+ text: "test-category-1",
84
+ columns: [
85
+ {
86
+ name: "item-id-test-1",
87
+ text: "item-title-test-1",
88
+ type: FilterItemColumnType.String
89
+ },
90
+ {
91
+ name: "item-id-test-2",
92
+ text: "item-title-test-2",
93
+ type: FilterItemColumnType.String
94
+ },
95
+ {
96
+ name: "item-id-test-2",
97
+ text: "item-title-test-2",
98
+ type: FilterItemColumnType.String
99
+ },
100
+ {
101
+ name: "item-id-test-2",
102
+ text: "item-title-test-2",
103
+ type: FilterItemColumnType.String
104
+ },
105
+ ]
106
+ },
107
+ {
108
+ name: "test-category-1",
109
+ text: "test-category-2",
110
+ columns: [
111
+ {
112
+ name: "item-id-test-2-1",
113
+ text: "item-title-test-2-1",
114
+ type: FilterItemColumnType.String
115
+ },
116
+ {
117
+ name: "item-id-test-2-2",
118
+ text: "item-title-test-2-1",
119
+ type: FilterItemColumnType.String
120
+ },
121
+ {
122
+ name: "item-id-test-2-3",
123
+ text: "item-title-test-2-3",
124
+ type: FilterItemColumnType.String
125
+ },
126
+ {
127
+ name: "item-id-test-2-4",
128
+ text: "item-title-test-2-4",
129
+ type: FilterItemColumnType.String
130
+ },
131
+ ]
132
+ },
133
+ {
134
+ name: "test-category-3",
135
+ text: "test-category-3",
136
+ columns: [
137
+ {
138
+ name: "item-id-test-3-1",
139
+ text: "item-title-test-3-1",
140
+ type: FilterItemColumnType.String
141
+ },
142
+ {
143
+ name: "item-id-test-3-2",
144
+ text: "item-title-test-3-2",
145
+ type: FilterItemColumnType.String
146
+ },
147
+ {
148
+ name: "item-id-test-3-3",
149
+ text: "item-title-test-3-3",
150
+ type: FilterItemColumnType.String
151
+ },
152
+ {
153
+ name: "item-id-test-3-4",
154
+ text: "item-title-test-3-4",
155
+ type: FilterItemColumnType.String
156
+ },
157
+ ]
158
+ },
159
+ ];
57
160
  export function App() {
58
- let table = useRef(null);
59
- let columns = {
60
- "id": "ID",
61
- "project": "Project",
62
- "level": "Level",
63
- "message": "Message",
64
- "cent": "Cent",
65
- "status": "Status",
66
- };
67
- let rows = [{
68
- id: 1,
69
- project: "Namirasoft Account",
70
- level: "Debug",
71
- message: "Lorem ipsum dolor sit amet, consetetur ",
72
- cent: "26",
73
- status: "pending"
74
- },
75
- {
76
- id: 2,
77
- project: "Namirasoft Account",
78
- level: "Debug",
79
- message: "Lorem ipsum dolor sit amet, consetetur ",
80
- cent: "24",
81
- status: "Done"
82
- },
83
- {
84
- id: 3,
85
- project: "Namirasoft Account",
86
- level: "Debug",
87
- message: "Lorem ipsum dolor sit amet, consetetur ",
88
- cent: "24",
89
- status: "Done"
90
- }
91
- ];
92
- function getCell(row, column) {
93
- return row[column];
94
- }
95
- function getRows(page) {
96
- console.log(page);
97
- }
98
- function onChange() { }
99
- let content1 = () => _jsx("p", { children: "Content for Tab" });
100
- let content2 = () => _jsx("p", { children: "Content for Tab" });
101
- let content3 = () => _jsx("p", { children: "Content for Tab" });
102
- const tabs = [
103
- { title: 'Information', getContent: content1 },
104
- { title: 'Price History', getContent: content2 },
105
- { title: 'Price Estimator', getContent: content3 }
106
- ];
107
- return (_jsx(_Fragment, { children: _jsxs(NSLayoutAction, { notifications: [], actions: actions, title: 'Test2 test2', description: 'Lorem lorem orem Lorem lorem orem Lorem lorem orem Lorem lorem orem Lorem lorem orem Lorem lorem orem ', scope: 'Namirasoft Account Console', logo: 'https://static.namirasoft.com/image/namirasoft/site/logo/base.png', children: [_jsx("div", { children: _jsx(NSTable, { ref: table, columns: columns, rows: rows, getCell: getCell, getColumnAttributes: () => { return {}; }, getRowKey: row => row.id.toString(), onChanged: onChange, pageSize: 10, totalItems: 100, getRows: getRows }) }), _jsx(NSBoxIPV6, { title: 'IPV6', required: false }), _jsx(NSBoxIPV4, { title: 'IPV4', required: false }), _jsx(NSBoxBoolean, { title: 'I4', required: false, name: 'salam ' }), _jsx(NSTabPage, { tabs: tabs }), _jsx(NSFilterBox, {})] }) }));
161
+ return (_jsx(_Fragment, { children: _jsx(NSLayoutAction, { notifications: [], actions: actions, title: 'Test2 test2', description: 'Lorem lorem orem Lorem lorem orem Lorem lorem orem Lorem lorem orem Lorem lorem orem Lorem lorem orem ', scope: 'Namirasoft Account Console', logo: 'https://static.namirasoft.com/image/namirasoft/site/logo/base.png', children: _jsx(NSFilterBox, { tables: suggest_items, placeholder: 'placeholder' }) }) }));
108
162
  }
109
163
  //# sourceMappingURL=App.js.map
package/dist/App.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  .ns_button_red {
2
2
  background-color: #FF3F3F;
3
3
  box-shadow: inset 0 -4px 4px 0px rgb(0 0 0 / 25%);
4
- color: #fff !important;
4
+ color: #fff;
5
5
  }
@@ -1,9 +1,52 @@
1
1
  import { Component } from 'react';
2
- interface INSFilterBoxProps {
2
+ import { IBaseComponentProps } from '../main';
3
+ import { FilterItem, FilterItemColumnType, FilterItemOperator } from 'namirasoft-core';
4
+ interface INSFilterBoxProps extends IBaseComponentProps {
5
+ placeholder?: string;
6
+ onChanged?: () => void;
7
+ tables: {
8
+ name: string;
9
+ text: string;
10
+ columns: {
11
+ name: string;
12
+ text: string;
13
+ type: FilterItemColumnType;
14
+ }[];
15
+ }[];
3
16
  }
4
17
  interface INSFilterBoxState {
18
+ filterItems: FilterItem[];
19
+ showSuggestList: boolean;
20
+ searchValue: string;
21
+ groupListState: GroupListState;
22
+ selectedColumns: {
23
+ name: string;
24
+ text: string;
25
+ columns: {
26
+ name: string;
27
+ text: string;
28
+ type: FilterItemColumnType;
29
+ }[];
30
+ }[];
31
+ selectedOperators: {
32
+ name: string;
33
+ operator: FilterItemOperator;
34
+ };
35
+ selectedValues: [];
36
+ }
37
+ declare enum GroupListState {
38
+ Normal = "Normal",
39
+ Column = "Column",
40
+ Opertor = "Opertor",
41
+ Value = "Value"
5
42
  }
6
43
  export declare class NSFilterBox extends Component<INSFilterBoxProps, INSFilterBoxState> {
44
+ constructor(props: INSFilterBoxProps);
45
+ getValue(): string;
46
+ setValue(value: string): void;
47
+ selectColumn(groupe: string, item: string): void;
48
+ removeSelected(text: string): void;
49
+ private onChanged;
7
50
  render(): import("react/jsx-runtime").JSX.Element;
8
51
  }
9
52
  export {};
@@ -1,11 +1,121 @@
1
1
  "use client";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
12
  import { Component } from 'react';
4
- import { NSFilterBoxDialog } from './NSFilterBoxDialog';
5
13
  import Styles from './NSFilterBox.module.css';
14
+ import { NSFilterItem } from './NSFilterItem';
15
+ import { FilterItemColumnType, FilterItemOperator } from 'namirasoft-core';
16
+ import NSGroupedList from './NSGroupedList';
17
+ var GroupListState;
18
+ (function (GroupListState) {
19
+ GroupListState["Normal"] = "Normal";
20
+ GroupListState["Column"] = "Column";
21
+ GroupListState["Opertor"] = "Opertor";
22
+ GroupListState["Value"] = "Value";
23
+ })(GroupListState || (GroupListState = {}));
6
24
  export class NSFilterBox extends Component {
25
+ constructor(props) {
26
+ super(props);
27
+ this.onChanged = (e) => __awaiter(this, void 0, void 0, function* () {
28
+ yield this.setValue(e.target.value);
29
+ if (this.props.onChanged)
30
+ this.props.onChanged();
31
+ });
32
+ this.state = {
33
+ filterItems: [],
34
+ groupListState: GroupListState.Normal,
35
+ showSuggestList: false,
36
+ searchValue: "",
37
+ selectedColumns: [],
38
+ selectedOperators: {
39
+ name: "",
40
+ operator: FilterItemOperator.all.Empty
41
+ },
42
+ selectedValues: []
43
+ };
44
+ this.selectColumn = this.selectColumn.bind(this);
45
+ this.removeSelected = this.removeSelected.bind(this);
46
+ this.onChanged = this.onChanged.bind(this);
47
+ this.getValue = this.getValue.bind(this);
48
+ this.setValue = this.setValue.bind(this);
49
+ }
50
+ getValue() {
51
+ return this.state.searchValue;
52
+ }
53
+ setValue(value) {
54
+ if (value !== "")
55
+ this.setState({
56
+ showSuggestList: true,
57
+ groupListState: GroupListState.Column,
58
+ searchValue: value
59
+ });
60
+ else
61
+ this.setState({
62
+ showSuggestList: false
63
+ });
64
+ }
65
+ selectColumn(groupe, item) {
66
+ console.log(item);
67
+ let columns = this.props.tables.filter((table) => table.name === groupe);
68
+ this.setState({
69
+ selectedColumns: columns,
70
+ groupListState: GroupListState.Opertor
71
+ });
72
+ }
73
+ removeSelected(text) {
74
+ let selectedArray = [...this.state.filterItems];
75
+ selectedArray = selectedArray.filter(item => item.column !== text);
76
+ this.setState({
77
+ filterItems: selectedArray
78
+ });
79
+ }
7
80
  render() {
8
- return (_jsxs(_Fragment, { children: [_jsx("div", { children: _jsxs("div", { className: Styles.ns_input_container, children: [_jsx("figure", { className: Styles.ns_input_icon_container, children: _jsx("img", { src: "https://static.namirasoft.com/image/concept/magnifier/blue.svg", alt: "input-icon", width: 24, height: 24 }) }), _jsx("input", { type: "text", className: Styles.ns_input, placeholder: "this.props.placeholder" }), _jsx("figure", { className: Styles.ns_input_close_icon, children: _jsx("img", { src: "https://static.namirasoft.com/image/concept/close/blue.svg", alt: "input-icon", width: 24, height: 24 }) })] }) }), _jsx("ul", {}), _jsx(NSFilterBoxDialog, { title: 'Edit Filter' })] }));
81
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { children: [_jsxs("div", { className: Styles.ns_input_container, children: [_jsx("figure", { className: Styles.ns_input_icon_container, children: _jsx("img", { src: "https://static.namirasoft.com/image/concept/magnifier/blue.svg", alt: "input-icon", width: 24, height: 24 }) }), _jsx("input", { value: this.state.searchValue, onChange: (e) => this.onChanged(e), type: "text", className: Styles.ns_input, placeholder: this.props.placeholder }), this.state.showSuggestList &&
82
+ _jsx("figure", { className: Styles.ns_input_close_icon, onClick: () => this.setState({
83
+ showSuggestList: false,
84
+ searchValue: ""
85
+ }), children: _jsx("img", { src: "https://static.namirasoft.com/image/concept/close/blue.svg", alt: "input-icon", width: 24, height: 24 }) })] }), this.state.groupListState == GroupListState.Column &&
86
+ _jsx(NSGroupedList, { onClick: this.selectColumn, groups: this.props.tables.map((table) => {
87
+ return {
88
+ name: table.name,
89
+ text: table.text,
90
+ items: table.columns.map((column) => {
91
+ return {
92
+ name: column.name,
93
+ text: column.text,
94
+ type: column.type
95
+ };
96
+ })
97
+ };
98
+ }) }), this.state.groupListState == GroupListState.Opertor &&
99
+ _jsx(NSGroupedList, { groups: FilterItemOperator.getAllByType(FilterItemColumnType.String).map((operator) => {
100
+ var _a, _b;
101
+ return {
102
+ name: this.state.selectedColumns[0].name,
103
+ text: this.state.selectedColumns[0].text,
104
+ sign: operator.sign,
105
+ operator_name: operator.name,
106
+ items: (_b = (_a = this.state.selectedColumns[0]) === null || _a === void 0 ? void 0 : _a.columns) === null || _b === void 0 ? void 0 : _b.map((column) => {
107
+ return {
108
+ name: column.name,
109
+ text: column.text,
110
+ };
111
+ })
112
+ };
113
+ }), onClick: () => {
114
+ this.setState({
115
+ groupListState: GroupListState.Value,
116
+ selectedOperators: Object.assign(Object.assign({}, this.state.selectedColumns[0]), { operator: this.state.selectedOperators.operator })
117
+ });
118
+ } })] }), _jsx("div", { className: Styles.ns_selected_list_parent, children: this.state.filterItems.map((item, index) => _jsx(NSFilterItem, { item: item, removeSelected: () => this.removeSelected(item.column) }, index)) })] }));
9
119
  }
10
120
  }
11
121
  //# sourceMappingURL=NSFilterBox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NSFilterBox.js","sourceRoot":"","sources":["../../src/components/NSFilterBox.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,MAAM,MAAM,0BAA0B,CAAA;AAW7C,MAAM,OAAO,WAAY,SAAQ,SAA+C;IAEtE,MAAM;QAEd,OAAO,CACN,8BACC,wBACC,eAAK,SAAS,EAAE,MAAM,CAAC,kBAAkB,aACxC,iBAAQ,SAAS,EAAE,MAAM,CAAC,uBAAuB,YAChD,cACC,GAAG,EAAC,gEAAgE,EACpE,GAAG,EAAC,YAAY,EAChB,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,GACT,GACM,EACT,gBAIC,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,MAAM,CAAC,QAAQ,EAC1B,WAAW,EAAE,wBAAwB,GACpC,EACF,iBAAQ,SAAS,EAAE,MAAM,CAAC,mBAAmB,YAC5C,cACC,GAAG,EAAC,4DAA4D,EAChE,GAAG,EAAC,YAAY,EAChB,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,GACT,GACM,IACJ,GACD,EAEN,cAEK,EACL,KAAC,iBAAiB,IACjB,KAAK,EAAC,aAAa,GAAG,IACrB,CACH,CAAC;IACH,CAAC;CACD"}
1
+ {"version":3,"file":"NSFilterBox.js","sourceRoot":"","sources":["../../src/components/NSFilterBox.tsx"],"names":[],"mappings":"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"}
@@ -26,4 +26,14 @@
26
26
  margin: 0 !important;
27
27
  position: absolute;
28
28
  right: 16px;
29
+ cursor: pointer;
30
+ }
31
+
32
+
33
+ .ns_selected_list_parent {
34
+ display: flex;
35
+ flex-direction: row;
36
+ flex-wrap: wrap;
37
+ max-width: 560px;
38
+ gap: 8px;
29
39
  }
@@ -2,6 +2,7 @@ import { Component } from 'react';
2
2
  import { IBaseComponentProps } from '../props/IBaseComponentProps';
3
3
  interface INSFilterBoxDialogProps extends IBaseComponentProps {
4
4
  title: string;
5
+ onCloseDialog: () => void;
5
6
  }
6
7
  interface INSFilterBoxDialogState {
7
8
  }
@@ -7,11 +7,11 @@ import { NSButtonBlue } from './NSButtonBlue';
7
7
  import { NSButtonRed } from './NSButtonRed';
8
8
  export class NSFilterBoxDialog extends Component {
9
9
  render() {
10
- return (_jsxs("div", { className: Styles.ns_dialog_holder, children: [_jsx("button", { className: Styles.ns_dialog_close, children: _jsx("img", { src: "https://static.namirasoft.com/image/concept/close/blue.svg", alt: "close-dialog", width: 24, height: 24 }) }), _jsx("h3", { className: Styles.ns_dialog_title, children: "Edit Dialog" }), _jsx(NSBoxEnum, { title: "this.props.title", placeHolder: "", options: [], multiple: false, required: false }), _jsx(NSBoxEnum, { title: "this.props.title", placeHolder: "", options: [], multiple: false, required: false }), _jsx(NSBoxString, { title: '', required: false }), _jsxs("div", { className: Styles.ns_dialog_btn_container, children: [_jsx(NSButtonRed, { title: 'Apply', onClick: () => { }, style: {
10
+ return (_jsxs("div", { className: Styles.ns_dialog_holder, children: [_jsx("button", { className: Styles.ns_dialog_close, onClick: this.props.onCloseDialog, children: _jsx("img", { src: "https://static.namirasoft.com/image/concept/close/blue.svg", alt: "close-dialog", width: 24, height: 24 }) }), _jsx("h3", { className: Styles.ns_dialog_title, children: "Edit Dialog" }), _jsx(NSBoxEnum, { title: "this.props.title", placeHolder: "", options: [], multiple: false, required: false }), _jsx(NSBoxEnum, { title: "this.props.title", placeHolder: "", options: [], multiple: false, required: false }), _jsx(NSBoxString, { title: '', required: false }), _jsxs("div", { className: Styles.ns_dialog_btn_container, children: [_jsx(NSButtonRed, { title: 'Apply', onClick: () => { }, style: {
11
11
  border: "solid 1px red",
12
12
  color: "red",
13
13
  backgroundColor: "#fff"
14
- } }), _jsx(NSButtonBlue, { title: 'Cancel', onClick: () => { } })] })] }));
14
+ } }), _jsx(NSButtonBlue, { title: 'Cancel', onClick: this.props.onCloseDialog })] })] }));
15
15
  }
16
16
  }
17
17
  //# sourceMappingURL=NSFilterBoxDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NSFilterBoxDialog.js","sourceRoot":"","sources":["../../src/components/NSFilterBoxDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,MAAM,MAAM,gCAAgC,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAY5C,MAAM,OAAO,iBAAkB,SAAQ,SAA2D;IAExF,MAAM;QAEd,OAAO,CACN,eAAK,SAAS,EAAE,MAAM,CAAC,gBAAgB,aACtC,iBAAQ,SAAS,EAAE,MAAM,CAAC,eAAe,YACxC,cAAK,GAAG,EAAC,4DAA4D,EAAC,GAAG,EAAC,cAAc,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAI,GAC1G,EACT,aAAI,SAAS,EAAE,MAAM,CAAC,eAAe,4BAEhC,EACL,KAAC,SAAS,IACT,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAC,EAAE,EACd,OAAO,EAAE,EAAE,EACX,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,KAAK,GACd,EAEF,KAAC,SAAS,IACT,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAC,EAAE,EACd,OAAO,EAAE,EAAE,EACX,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,KAAK,GACd,EAEF,KAAC,WAAW,IACX,KAAK,EAAC,EAAE,EACR,QAAQ,EAAE,KAAK,GACd,EAEF,eAAK,SAAS,EAAE,MAAM,CAAC,uBAAuB,aAC7C,KAAC,WAAW,IACX,KAAK,EAAC,OAAO,EACb,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAClB,KAAK,EACJ;gCACC,MAAM,EAAE,eAAe;gCACvB,KAAK,EAAE,KAAK;gCACZ,eAAe,EAAE,MAAM;6BACvB,GAED,EAEF,KAAC,YAAY,IACZ,KAAK,EAAC,QAAQ,EACd,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GACjB,IACG,IACD,CACN,CAAC;IACH,CAAC;CACD"}
1
+ {"version":3,"file":"NSFilterBoxDialog.js","sourceRoot":"","sources":["../../src/components/NSFilterBoxDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,MAAM,MAAM,gCAAgC,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAa5C,MAAM,OAAO,iBAAkB,SAAQ,SAA2D;IAExF,MAAM;QAEd,OAAO,CACN,eAAK,SAAS,EAAE,MAAM,CAAC,gBAAgB,aACtC,iBAAQ,SAAS,EAAE,MAAM,CAAC,eAAe,EACxC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,YACjC,cAAK,GAAG,EAAC,4DAA4D,EAAC,GAAG,EAAC,cAAc,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAI,GAC1G,EACT,aAAI,SAAS,EAAE,MAAM,CAAC,eAAe,4BAEhC,EACL,KAAC,SAAS,IACT,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAC,EAAE,EACd,OAAO,EAAE,EAAE,EACX,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,KAAK,GACd,EAEF,KAAC,SAAS,IACT,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAC,EAAE,EACd,OAAO,EAAE,EAAE,EACX,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,KAAK,GACd,EAEF,KAAC,WAAW,IACX,KAAK,EAAC,EAAE,EACR,QAAQ,EAAE,KAAK,GACd,EAEF,eAAK,SAAS,EAAE,MAAM,CAAC,uBAAuB,aAC7C,KAAC,WAAW,IACX,KAAK,EAAC,OAAO,EACb,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAClB,KAAK,EACJ;gCACC,MAAM,EAAE,eAAe;gCACvB,KAAK,EAAE,KAAK;gCACZ,eAAe,EAAE,MAAM;6BACvB,GAED,EAEF,KAAC,YAAY,IACZ,KAAK,EAAC,QAAQ,EACd,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAChC,IACG,IACD,CACN,CAAC;IACH,CAAC;CACD"}
@@ -0,0 +1,17 @@
1
+ import { Component } from 'react';
2
+ import { IBaseComponentProps } from '../props/IBaseComponentProps';
3
+ import { FilterItem } from 'namirasoft-core';
4
+ interface INSFilterItemProps extends IBaseComponentProps {
5
+ item: FilterItem;
6
+ removeSelected: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>, text: string) => void;
7
+ }
8
+ interface INSFilterItemState {
9
+ showDialog: boolean;
10
+ }
11
+ export declare class NSFilterItem extends Component<INSFilterItemProps, INSFilterItemState> {
12
+ constructor(props: INSFilterItemProps);
13
+ onShowDialog(): void;
14
+ onClsoeDialog(): void;
15
+ render(): import("react/jsx-runtime").JSX.Element;
16
+ }
17
+ export {};
@@ -0,0 +1,29 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { Component } from 'react';
3
+ import Styles from './NSFilterItem.module.css';
4
+ import { NSFilterBoxDialog } from './NSFilterBoxDialog';
5
+ export class NSFilterItem extends Component {
6
+ constructor(props) {
7
+ super(props);
8
+ this.state = {
9
+ showDialog: false
10
+ };
11
+ this.onClsoeDialog = this.onClsoeDialog.bind(this);
12
+ this.onShowDialog = this.onShowDialog.bind(this);
13
+ }
14
+ onShowDialog() {
15
+ this.setState({
16
+ showDialog: true
17
+ });
18
+ }
19
+ onClsoeDialog() {
20
+ this.setState({
21
+ showDialog: false
22
+ });
23
+ }
24
+ render() {
25
+ return (_jsxs("div", { className: Styles.ns_selected_holder, children: [_jsxs("div", { className: Styles.ns_selected_item_parent, onClick: this.onShowDialog, children: [_jsxs("span", { children: [this.props.item.column, " "] }), _jsx("button", { className: Styles.ns_selected_close_icon, onClick: (e) => this.props.removeSelected(e, this.props.item.column), children: _jsx("img", { src: "https://static.namirasoft.com/image/concept/close/blue.svg", alt: "close", width: 24, height: 24 }) })] }), this.state.showDialog &&
26
+ _jsx("div", { className: Styles.ns_dialog_parent, children: _jsx(NSFilterBoxDialog, { onCloseDialog: this.onClsoeDialog, title: 'Edit Filter' }) })] }));
27
+ }
28
+ }
29
+ //# sourceMappingURL=NSFilterItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NSFilterItem.js","sourceRoot":"","sources":["../../src/components/NSFilterItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,MAAM,MAAM,2BAA2B,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAcxD,MAAM,OAAO,YAAa,SAAQ,SAAiD;IAElF,YAAY,KAAyB;QAEpC,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG;YACZ,UAAU,EAAE,KAAK;SACjB,CAAA;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,YAAY;QAEX,IAAI,CAAC,QAAQ,CAAC;YACb,UAAU,EAAE,IAAI;SAChB,CAAC,CAAA;IACH,CAAC;IAED,aAAa;QAEZ,IAAI,CAAC,QAAQ,CAAC;YACb,UAAU,EAAE,KAAK;SACjB,CAAC,CAAA;IACH,CAAC;IAEQ,MAAM;QAEd,OAAO,CACN,eAAK,SAAS,EAAE,MAAM,CAAC,kBAAkB,aACxC,eAAK,SAAS,EAAE,MAAM,CAAC,uBAAuB,EAC7C,OAAO,EAAE,IAAI,CAAC,YAAY,aAE1B,2BAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,EACvC,iBACC,SAAS,EAAE,MAAM,CAAC,sBAAsB,EACxC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAEpE,cAAK,GAAG,EAAC,4DAA4D,EAAC,GAAG,EAAC,OAAO,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAI,GACnG,IACJ,EAEL,IAAI,CAAC,KAAK,CAAC,UAAU;oBACrB,cAAK,SAAS,EAAE,MAAM,CAAC,gBAAgB,YACtC,KAAC,iBAAiB,IACjB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,KAAK,EAAC,aAAa,GAElB,GACG,IAEF,CACN,CAAC;IACH,CAAC;CACD"}
@@ -0,0 +1,24 @@
1
+ .ns_selected_holder {
2
+ position: relative;
3
+ }
4
+ .ns_selected_item_parent {
5
+ padding: 6px;
6
+ border: solid 1px #0377FF;
7
+ border-radius: 8px;
8
+ background-color: #fff;
9
+ color: #141B5C;
10
+ cursor: pointer;
11
+ }
12
+
13
+ .ns_selected_close_icon {
14
+ outline: none;
15
+ border: none;
16
+ background: none;
17
+ padding-top: 4px;
18
+ border-left: solid 1px #0377FF;
19
+ }
20
+
21
+ .ns_dialog_parent {
22
+ position: absolute;
23
+
24
+ }
@@ -0,0 +1,21 @@
1
+ import { Component } from 'react';
2
+ import { IBaseComponentProps } from '../main';
3
+ interface INSGroupedListProps extends IBaseComponentProps {
4
+ groups: {
5
+ name: string;
6
+ text: string;
7
+ sign?: string;
8
+ operator_name?: string;
9
+ items: {
10
+ name: string;
11
+ text: string;
12
+ }[];
13
+ }[];
14
+ onClick: (group: string, item: string) => void;
15
+ }
16
+ interface INSGroupedListState {
17
+ }
18
+ declare class NSGroupedList extends Component<INSGroupedListProps, INSGroupedListState> {
19
+ render(): import("react/jsx-runtime").JSX.Element;
20
+ }
21
+ export default NSGroupedList;
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
3
+ import { Component } from 'react';
4
+ import Styles from "./NSGroupedList.module.css";
5
+ class NSGroupedList extends Component {
6
+ render() {
7
+ return (_jsx("div", { className: Styles.ns_group_list_parent, children: this.props.groups.map((group, index) => _jsxs("ul", { className: Styles.ns_group_list, children: [_jsxs("span", { className: Styles.ns_group_category, children: [" ", group.name, " "] }), group.items.map((item, index) => _jsx("li", { onClick: () => this.props.onClick(group.name, item.name), children: _jsxs("div", { className: Styles.ns_group_item, children: [_jsxs("span", { children: [item.name, " ", " ", group.sign && _jsxs("span", { children: [" ", group.sign, " "] })] }), group.operator_name &&
8
+ _jsxs("span", { className: Styles.ns_block, children: [" ", group.operator_name, " "] })] }) }, index))] }, index)) }));
9
+ }
10
+ }
11
+ export default NSGroupedList;
12
+ //# sourceMappingURL=NSGroupedList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NSGroupedList.js","sourceRoot":"","sources":["../../src/components/NSGroupedList.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,MAAM,MAAM,4BAA4B,CAAA;AAsB/C,MAAM,aAAc,SAAQ,SAAmD;IAErE,MAAM;QAEd,OAAO,CACN,cAAK,SAAS,EAAE,MAAM,CAAC,oBAAoB,YACzC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACvC,cAAgB,SAAS,EAAE,MAAM,CAAC,aAAa,aAC9C,gBAAM,SAAS,EAAE,MAAM,CAAC,iBAAiB,kBAAI,KAAK,CAAC,IAAI,SAAS,EAE/D,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC/B,aAAgB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,YACvE,eAAK,SAAS,EAAE,MAAM,CAAC,aAAa,aACnC,2BACE,IAAI,CAAC,IAAI,OAAG,GAAG,EACf,KAAK,CAAC,IAAI,IAAI,iCAAS,KAAK,CAAC,IAAI,SAAS,IACrC,EAEN,KAAK,CAAC,aAAa;oCACnB,gBAAM,SAAS,EAAE,MAAM,CAAC,QAAQ,mBAAK,KAAK,CAAC,aAAa,SAAS,IAE7D,IAVE,KAAK,CAWT,CACL,KAhBM,KAAK,CAkBT,CACL,GACI,CAEN,CAAC;IACH,CAAC;CACD;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,71 @@
1
+ .ns_group_list_parent {
2
+ width: 100%;
3
+ max-width: 560px;
4
+ border-radius: 8px;
5
+ border: solid 1px #B2BBD9;
6
+ background-color: #fff;
7
+ padding-bottom: 16px;
8
+ height: 250px;
9
+ overflow: auto;
10
+ }
11
+
12
+ .ns_group_list_parent::-webkit-scrollbar {
13
+ width: 1rem;
14
+ }
15
+
16
+ .ns_group_list_parent::-webkit-scrollbar-track {
17
+ box-shadow: inset 0 0 6px #E8EBF6;
18
+ }
19
+
20
+ .ns_group_list_parent::-webkit-scrollbar-thumb {
21
+ background-color: #A1A4B0;
22
+ border-radius: 8px;
23
+ }
24
+
25
+ .ns_group_list {
26
+ list-style-type: none;
27
+ color: #141B5C;
28
+ padding: 0;
29
+ margin: 0;
30
+ display: flex;
31
+ flex-direction: column;
32
+ align-items: flex-start;
33
+ justify-content: flex-start;
34
+ font-size: 16px;
35
+ font-weight: 700;
36
+ width: 100%;
37
+ }
38
+
39
+ .ns_group_category {
40
+ display: inline-block;
41
+ padding-top: 10px;
42
+ padding-bottom: 10px;
43
+ padding-left: 8px;
44
+ border-bottom: solid 1px currentColor;
45
+ width: 100%;
46
+ }
47
+
48
+ .ns_group_list li {
49
+ width: 100%;
50
+ }
51
+
52
+ .ns_group_item {
53
+ cursor: pointer;
54
+ padding: 6px 0 6px 24px;
55
+ font-size: 16px;
56
+ font-weight: 300;
57
+ color: #141B5C;
58
+ border-bottom: solid 1px currentColor;
59
+ width: 100%;
60
+ display: inline-block;
61
+ transition: all 0.1s;
62
+ }
63
+
64
+ .ns_group_item:hover {
65
+ background-color: #B2BBD9;
66
+ font-weight: 700;
67
+ }
68
+
69
+ .ns_block {
70
+ display: block;
71
+ }