namirasoft-site-react 1.3.140 → 1.3.142

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 (39) 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/NSFooter.d.ts +3 -3
  16. package/dist/components/NSFooter.js +2 -2
  17. package/dist/components/NSFooter.js.map +1 -1
  18. package/dist/components/NSGroupedList.d.ts +21 -0
  19. package/dist/components/NSGroupedList.js +12 -0
  20. package/dist/components/NSGroupedList.js.map +1 -0
  21. package/dist/components/NSGroupedList.module.css +71 -0
  22. package/dist/components/NSHeader.d.ts +3 -3
  23. package/dist/components/NSHeader.js +2 -2
  24. package/dist/components/NSHeader.js.map +1 -1
  25. package/dist/components/NSLayoutAction.js +4 -4
  26. package/dist/components/NSLayoutAction.js.map +1 -1
  27. package/package.json +3 -3
  28. package/src/App.tsx +110 -92
  29. package/src/components/NSButtonRed.module.css +1 -1
  30. package/src/components/NSFilterBox.module.css +10 -0
  31. package/src/components/NSFilterBox.tsx +204 -20
  32. package/src/components/NSFilterBoxDialog.tsx +5 -3
  33. package/src/components/NSFilterItem.module.css +24 -0
  34. package/src/components/NSFilterItem.tsx +72 -0
  35. package/src/components/NSFooter.tsx +13 -11
  36. package/src/components/NSGroupedList.module.css +71 -0
  37. package/src/components/NSGroupedList.tsx +59 -0
  38. package/src/components/NSHeader.tsx +8 -8
  39. package/src/components/NSLayoutAction.tsx +23 -21
@@ -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
+ }
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { FilterLinkRow } from 'namirasoft-api-link';
2
+ import { FilterLinkFullRow } from 'namirasoft-api-link';
3
3
  import { IBaseComponentProps } from "../props/IBaseComponentProps";
4
4
  export interface INSHeaderProps extends IBaseComponentProps {
5
5
  scope: string;
@@ -11,8 +11,8 @@ export interface INSHeaderProps extends IBaseComponentProps {
11
11
  logout?: () => void;
12
12
  }
13
13
  export interface NSHeaderState {
14
- filters: FilterLinkRow[];
15
- selected: FilterLinkRow | null;
14
+ filters: FilterLinkFullRow[];
15
+ selected: FilterLinkFullRow | null;
16
16
  showNavbar: boolean;
17
17
  }
18
18
  export declare class NSHeader extends React.Component<INSHeaderProps, NSHeaderState> {
@@ -21,8 +21,8 @@ export class NSHeader extends React.Component {
21
21
  }
22
22
  componentDidMount() {
23
23
  let server = new NamirasoftAPILinkServer(console.error);
24
- server.filter.GetFilters(this.props.scope, this.props.name).then(filters => {
25
- this.setState({ filters });
24
+ server.filter.ListFilterLinks(this.props.scope, this.props.name, [], null, null).then(filters => {
25
+ this.setState({ filters: filters.rows });
26
26
  });
27
27
  }
28
28
  onMenuItemToggled(checked, selected) {
@@ -1 +1 @@
1
- {"version":3,"file":"NSHeader.js","sourceRoot":"","sources":["../../src/components/NSHeader.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NSHeader.js","sourceRoot":"","sources":["../../src/components/NSHeader.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAC3C,OAAO,WAAW,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAqB,MAAM,qBAAqB,CAAC;AAEjF,OAAO,MAAM,MAAM,kCAAkC,CAAC;AAmBtD,MAAM,OAAO,QAAS,SAAQ,KAAK,CAAC,SAAwC;IAExE,YAAY,KAAqB;QAE7B,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG;YACT,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;SACpB,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IACQ,iBAAiB;QAEtB,IAAI,MAAM,GAAG,IAAI,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAE5F,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACP,CAAC;IACO,iBAAiB,CAAC,OAAgB,EAAE,QAA2B;QAEnE,IAAI,OAAO;YACP,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpC,CAAC;IACO,QAAQ,CAAC,EAAU;QAEvB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACzE,CAAC;IACD,gBAAgB;QAEZ,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1D,CAAC;IACQ,MAAM;;QAEX,IAAI,GAAG,GAAoC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAC1D,IAAI,CAAC,GAAG;YACJ,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,KAAK;YACV,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,CAAA,MAAA,GAAG,CAAC,KAAK,0CAAE,eAAe,CAAA;YAC3B,GAAG,CAAC,KAAK,CAAC,eAAe,GAAG,qBAAqB,CAAC;QACtD,OAAO,CACH,iBAAQ,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EACrB,SAAS,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,MAAA,IAAI,CAAC,KAAK,CAAC,SAAS,0CAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EACnE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,YAEvB,cACI,EAAE,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,0CAAE,EAAE,EACtB,SAAS,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,0CAAE,SAAS,0CAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EACxE,KAAK,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,YAEjB,eAAK,SAAS,EAAE,GAAG,MAAM,CAAC,wBAAwB,YAAY,aAC1D,YAAG,IAAI,EAAC,GAAG,YACP,cACI,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EACpB,GAAG,EAAC,MAAM,EACV,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,GACZ,GACF,EACJ,eAAK,SAAS,EAAE,GAAG,MAAM,CAAC,iBAAiB,GAAG,aAC1C,cAAK,SAAS,EAAE,GAAG,MAAM,CAAC,kBAAkB,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC,gBAAgB,EAAE,YAC7F,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,GACxB,EACL,IAAI,CAAC,KAAK,CAAC,OAAO;oCACf,eAAK,SAAS,EAAE,GAAG,MAAM,CAAC,sBAAsB,EAAE,aAC9C,eAAM,SAAS,EAAE,GAAG,MAAM,CAAC,mBAAmB,EAAE,qBAAa,EAC7D,cAAK,GAAG,EAAC,8DAA8D,EACnE,GAAG,EAAC,MAAM,EACV,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,GACZ,IACA,EAEV,eAAK,SAAS,EAAC,iCAAiC,aAC5C,eAAM,SAAS,EAAE,MAAM,CAAC,kBAAkB,YAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAQ,EACzE,cAAK,SAAS,EAAE,MAAM,CAAC,sBAAsB,YACzC,eAAM,SAAS,EAAE,MAAM,CAAC,4BAA4B,kBAAU,GAC5D,EACN,cACI,GAAG,EAAE,MAAM,EACX,GAAG,EAAC,QAAQ,EACZ,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAC5B,IACA,EACN,cAAK,SAAS,EAAE,MAAM,CAAC,mBAAmB,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,YACtE,cACI,GAAG,EAEC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;4CACnB,6DAA6D;4CAC7D,CAAC,CAAC,mEAAmE,EAE7E,GAAG,EAAC,WAAW,EACf,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,GACZ,GACA,IAEJ,IAEJ,GACJ,GACD,CACZ,CAAC;IACN,CAAC;IACO,WAAW,CAAC,KAAa,EAAE,SAAwB;;QAEvD,IAAI,EAAE,GAAwB,MAAA,IAAI,CAAC,KAAK,CAAC,OAAO,0CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QACzF,OAAO,CACH,cAAK,SAAS,EAAE,eAAe,MAAM,CAAC,yBAAyB,EAAE,YAC5D,CAAC,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAC7C,CACT,CAAC;IACN,CAAC;IACO,eAAe,CAAC,KAAa,EAAE,MAAyB;;QAE5D,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAC5B;YACI,IAAI,SAAS,GAAG,mBAAK,CAAC;YACtB,IAAI,KAAK,KAAK,CAAC;gBACX,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EACvB;oBACI,SAAS;wBACL,cACI,EAAE,EAAE,iBAAiB,MAAM,CAAC,EAAE,EAAE,YAC/B,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GACzC,CAAA;iBACd;YACL,OAAO,CAAC,4BACJ,KAAC,WAAW,IACR,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,EAC9D,SAAS,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,MAAM,CAAC,2BAA2B,EAC/F,KAAK,EAAE,MAAM,CAAC,IAAI,EAClB,EAAE,EAAE,kBAAkB,MAAM,CAAC,EAAE,EAAE,YAChC,SAAS,GACC,GAChB,CACF,CAAC;SACL;aACD;YACI,OAAO,CACH,YAAmB,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAoB,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,MAAM,CAAC,2BAA2B,EAAE,EAAE,IAAI,EAAE,MAAA,MAAM,CAAC,IAAI,0CAAE,GAAG,YAAG,MAAM,CAAC,IAAI,IAApL,MAAM,CAAC,EAAE,CAAgL,CACpM,CAAC;SACL;IACL,CAAC;CACJ"}
@@ -12,9 +12,9 @@ export function NSLayoutAction(props) {
12
12
  show: false
13
13
  });
14
14
  const filtered_actions = props.actions.filter((action) => action.group);
15
- return (_jsxs(NSLayout, Object.assign({}, props, { children: [_jsxs("div", { className: Styles.ns_action_bar_holder, children: [_jsxs("div", { className: `d-none d-lg-flex ${Styles.ns_desktop_action_bar_title}`, children: [_jsx("h1", { className: Styles.title, children: props.title }), _jsxs("button", { className: Styles.ns_info_container, onClick: () => setState({ show: true }), children: [_jsx("img", { src: 'https://static.namirasoft.com/image/concept/info/white-blue.svg', alt: 'info-icon', width: 24, height: 24 }), _jsx("span", { children: " Info " })] }), _jsx(NSModal, { show: state.show, description: props.description, title: props.title, onClose: () => setState({ show: false }) })] }), _jsxs("div", { className: `d-block d-lg-none ${Styles.ns_mobile_action_bar_title}`, children: [_jsx("h1", { className: Styles.title, children: props.title }), props.description && lines &&
16
- _jsxs(_Fragment, { children: [_jsx("p", { className: Styles.description, children: lines.map((line, index) => {
17
- return _jsxs(_Fragment, { children: [line.trim(), index != lines.length - 1 && _jsx("br", {})] });
18
- }) }), _jsx(NSSpace, { size: NSSpaceSizeType.MINI })] })] }), _jsx("div", { className: Styles.ns_actions_hodler, children: filtered_actions.map((action) => _jsx(NSActionMenu, { group: action.group, items: action.items }, action.id)) })] }), _jsx(NSSpace, { size: NSSpaceSizeType.SMALL }), props.children] })));
15
+ return (_jsxs(NSLayout, Object.assign({}, props, { children: [_jsxs("div", { className: Styles.ns_action_bar_holder, children: [_jsxs("div", { className: `d-none d-lg-flex ${Styles.ns_desktop_action_bar_title}`, children: [_jsx("h1", { className: Styles.title, children: props.title }), _jsxs("button", { className: Styles.ns_info_container, onClick: () => setState({ show: true }), children: [_jsx("img", { src: 'https://static.namirasoft.com/image/concept/info/white-blue.svg', alt: 'info-icon', width: 24, height: 24 }), _jsx("span", { children: " Info " })] }), _jsx(NSModal, { show: state.show, description: props.description, title: props.title, onClose: () => setState({ show: false }) })] }), _jsx("div", { className: Styles.ns_actions_hodler, children: filtered_actions.map((action) => _jsx(NSActionMenu, { group: action.group, items: action.items }, action.id)) })] }), _jsx(NSSpace, { size: NSSpaceSizeType.SMALL }), _jsxs("div", { className: `container d-block d-lg-none ${Styles.ns_mobile_action_bar_title}`, children: [_jsx("h1", { className: Styles.title, children: props.title }), props.description && lines &&
16
+ _jsxs(_Fragment, { children: [_jsx("p", { className: Styles.description, children: lines.map((line, index) => {
17
+ return _jsxs(_Fragment, { children: [line.trim(), index != lines.length - 1 && _jsx("br", {})] });
18
+ }) }), _jsx(NSSpace, { size: NSSpaceSizeType.MINI })] })] }), _jsx(NSSpace, { size: NSSpaceSizeType.SMALL }), props.children] })));
19
19
  }
20
20
  //# sourceMappingURL=NSLayoutAction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NSLayoutAction.js","sourceRoot":"","sources":["../../src/components/NSLayoutAction.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAa,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAkB,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,MAAM,MAAM,6BAA6B,CAAC;AACjD,OAAO,EAAsB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,MAAM,UAAU,cAAc,CAAC,KAA2B;;IAEzD,IAAI,KAAK,GAAG,CAAC,MAAA,KAAK,CAAC,WAAW,mCAAI,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACzE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAsB;QACvD,IAAI,EAAE,KAAK;KACX,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAGvE,OAAO,CACN,MAAC,QAAQ,oBAAK,KAAK,eAElB,eAAK,SAAS,EAAE,MAAM,CAAC,oBAAoB,aAE1C,eAAK,SAAS,EAAE,oBAAoB,MAAM,CAAC,2BAA2B,EAAE,aACvE,aAAI,SAAS,EAAE,MAAM,CAAC,KAAK,YAAG,KAAK,CAAC,KAAK,GAAM,EAE/C,kBAAQ,SAAS,EAAE,MAAM,CAAC,iBAAiB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,aACnF,cAAK,GAAG,EAAC,iEAAiE,EAAC,GAAG,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAI,EACpH,oCAAmB,IACX,EAET,KAAC,OAAO,IACP,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GACvC,IACG,EAGN,eAAK,SAAS,EAAE,qBAAqB,MAAM,CAAC,0BAA0B,EAAE,aACvE,aAAI,SAAS,EAAE,MAAM,CAAC,KAAK,YAAG,KAAK,CAAC,KAAK,GAAM,EAE9C,KAAK,CAAC,WAAW,IAAI,KAAK;gCAC1B,8BACC,YAAG,SAAS,EAAE,MAAM,CAAC,WAAW,YAE9B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gDAEzB,OAAO,8BACL,IAAI,CAAC,IAAI,EAAE,EACX,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,cAAM,IAClC,CAAA;4CACJ,CAAC,CAAC,GAEA,EACJ,KAAC,OAAO,IAAC,IAAI,EAAE,eAAe,CAAC,IAAI,GAAI,IACrC,IAEC,EAEN,cAAK,SAAS,EAAE,MAAM,CAAC,iBAAiB,YACtC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAChC,KAAC,YAAY,IAEZ,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,KAAK,EAAE,MAAM,CAAC,KAAK,IAFd,MAAM,CAAC,EAAE,CAGb,CACF,GACI,IAED,EACN,KAAC,OAAO,IAAC,IAAI,EAAE,eAAe,CAAC,KAAK,GAAI,EACvC,KAAK,CAAC,QAAQ,KACL,CACX,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"NSLayoutAction.js","sourceRoot":"","sources":["../../src/components/NSLayoutAction.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAa,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAkB,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,MAAM,MAAM,6BAA6B,CAAC;AACjD,OAAO,EAAsB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,MAAM,UAAU,cAAc,CAAC,KAA2B;;IAEzD,IAAI,KAAK,GAAG,CAAC,MAAA,KAAK,CAAC,WAAW,mCAAI,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACzE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAsB;QACvD,IAAI,EAAE,KAAK;KACX,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAGvE,OAAO,CACN,MAAC,QAAQ,oBAAK,KAAK,eAElB,eAAK,SAAS,EAAE,MAAM,CAAC,oBAAoB,aAE1C,eAAK,SAAS,EAAE,oBAAoB,MAAM,CAAC,2BAA2B,EAAE,aACvE,aAAI,SAAS,EAAE,MAAM,CAAC,KAAK,YAAG,KAAK,CAAC,KAAK,GAAM,EAE/C,kBAAQ,SAAS,EAAE,MAAM,CAAC,iBAAiB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,aACnF,cAAK,GAAG,EAAC,iEAAiE,EAAC,GAAG,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAI,EACpH,oCAAmB,IACX,EAET,KAAC,OAAO,IACP,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GACvC,IACG,EAIN,cAAK,SAAS,EAAE,MAAM,CAAC,iBAAiB,YACtC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAChC,KAAC,YAAY,IAEZ,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,KAAK,EAAE,MAAM,CAAC,KAAK,IAFd,MAAM,CAAC,EAAE,CAGb,CACF,GACI,IAED,EACN,KAAC,OAAO,IAAC,IAAI,EAAE,eAAe,CAAC,KAAK,GAAI,EAExC,eAAK,SAAS,EAAE,+BAA+B,MAAM,CAAC,0BAA0B,EAAE,aACjF,aAAI,SAAS,EAAE,MAAM,CAAC,KAAK,YAAG,KAAK,CAAC,KAAK,GAAM,EAE9C,KAAK,CAAC,WAAW,IAAI,KAAK;wBAC1B,8BACC,YAAG,SAAS,EAAE,MAAM,CAAC,WAAW,YAE9B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;wCAEzB,OAAO,8BACL,IAAI,CAAC,IAAI,EAAE,EACX,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,cAAM,IAClC,CAAA;oCACJ,CAAC,CAAC,GAEA,EACJ,KAAC,OAAO,IAAC,IAAI,EAAE,eAAe,CAAC,IAAI,GAAI,IACrC,IAEC,EACN,KAAC,OAAO,IAAC,IAAI,EAAE,eAAe,CAAC,KAAK,GAAI,EACvC,KAAK,CAAC,QAAQ,KACL,CACX,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "framework": "npm",
9
9
  "application": "package",
10
10
  "private": false,
11
- "version": "1.3.140",
11
+ "version": "1.3.142",
12
12
  "author": "Amir Abolhasani, Alireza Esmaeeli, Sepideh Mazloumi, Hooman Shashaeh",
13
13
  "license": "MIT",
14
14
  "main": "./dist/main.js",
@@ -28,8 +28,8 @@
28
28
  "bootstrap": "^5.3.3",
29
29
  "copyfiles": "^2.4.1",
30
30
  "link-react": "^3.0.0",
31
- "namirasoft-api-link": "^1.3.6",
32
- "namirasoft-core": "^1.3.29",
31
+ "namirasoft-api-link": "^1.3.9",
32
+ "namirasoft-core": "^1.3.34",
33
33
  "path-browserify": "^1.0.1",
34
34
  "react": "^18.3.1",
35
35
  "react-app-rewired": "^2.2.1",
package/src/App.tsx CHANGED
@@ -1,11 +1,8 @@
1
1
  import './App.css';
2
2
  import 'bootstrap/dist/css/bootstrap.min.css';
3
- import { NSBoxIPV4, NSTable, NSTabPage } from './main';
4
- import { useRef } from 'react';
5
3
  import { NSLayoutAction } from './components/NSLayoutAction';
6
- import { NSBoxIPV6 } from './components/NSBoxIPV6';
7
- import { NSBoxBoolean } from './components/NSBoxBoolean';
8
4
  import { NSFilterBox } from './components/NSFilterBox';
5
+ import { FilterItemColumnType } from 'namirasoft-core';
9
6
 
10
7
  const actions = [
11
8
  {
@@ -63,70 +60,118 @@ const actions = [
63
60
  }
64
61
  ]
65
62
 
66
- export function App()
67
- {
68
63
 
69
- let table = useRef<NSTable<App>>(null);
70
- let columns = {
71
- "id": "ID",
72
- "project": "Project",
73
- "level": "Level",
74
- "message": "Message",
75
- "cent": "Cent",
76
- "status": "Status",
77
- }
78
- let rows = [{
79
- id: 1,
80
- project: "Namirasoft Account",
81
- level: "Debug",
82
- message: "Lorem ipsum dolor sit amet, consetetur ",
83
- cent: "26",
84
- status: "pending"
85
- },
64
+ const suggest_items = [
86
65
  {
87
- id: 2,
88
- project: "Namirasoft Account",
89
- level: "Debug",
90
- message: "Lorem ipsum dolor sit amet, consetetur ",
91
- cent: "24",
92
- status: "Done"
66
+ name: "test-category-1",
67
+ text: "test-category-1",
68
+ columns: [
69
+ {
70
+ name: "item-id-test-1",
71
+ text: "item-title-test-1",
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
+ name: "item-id-test-2",
81
+ text: "item-title-test-2",
82
+ type: FilterItemColumnType.String
83
+ },
84
+ {
85
+ name: "item-id-test-2",
86
+ text: "item-title-test-2",
87
+ type: FilterItemColumnType.String
88
+ },
89
+ ]
93
90
  },
94
91
  {
95
- id: 3,
96
- project: "Namirasoft Account",
97
- level: "Debug",
98
- message: "Lorem ipsum dolor sit amet, consetetur ",
99
- cent: "24",
100
- status: "Done"
101
- }
102
- ]
103
- interface App
104
- {
105
- id: number,
106
- project: string,
107
- level: string,
108
- message: string,
109
- cent: string,
110
- status: string
111
- }
112
- function getCell(row: App, column: string): any
92
+ name: "test-category-1",
93
+ text: "test-category-1",
94
+ columns: [
95
+ {
96
+ name: "item-id-test-1",
97
+ text: "item-title-test-1",
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
+ name: "item-id-test-2",
107
+ text: "item-title-test-2",
108
+ type: FilterItemColumnType.String
109
+ },
110
+ {
111
+ name: "item-id-test-2",
112
+ text: "item-title-test-2",
113
+ type: FilterItemColumnType.String
114
+ },
115
+ ]
116
+ },
113
117
  {
114
- return (row as any)[column];
115
- }
116
- function getRows(page: number): void
118
+ name: "test-category-1",
119
+ text: "test-category-2",
120
+ columns: [
121
+ {
122
+ name: "item-id-test-2-1",
123
+ text: "item-title-test-2-1",
124
+ type: FilterItemColumnType.String
125
+ },
126
+ {
127
+ name: "item-id-test-2-2",
128
+ text: "item-title-test-2-1",
129
+ type: FilterItemColumnType.String
130
+ },
131
+ {
132
+ name: "item-id-test-2-3",
133
+ text: "item-title-test-2-3",
134
+ type: FilterItemColumnType.String
135
+ },
136
+ {
137
+ name: "item-id-test-2-4",
138
+ text: "item-title-test-2-4",
139
+ type: FilterItemColumnType.String
140
+ },
141
+ ]
142
+ },
117
143
  {
118
- console.log(page);
119
- }
120
- function onChange(): void
121
- { }
122
- let content1 = () => <p>Content for Tab</p>;
123
- let content2 = () => <p>Content for Tab</p>;
124
- let content3 = () => <p>Content for Tab</p>;
125
- const tabs = [
126
- { title: 'Information', getContent: content1 },
127
- { title: 'Price History', getContent: content2 },
128
- { title: 'Price Estimator', getContent: content3 }
129
- ];
144
+ name: "test-category-3",
145
+ text: "test-category-3",
146
+ columns: [
147
+ {
148
+ name: "item-id-test-3-1",
149
+ text: "item-title-test-3-1",
150
+ type: FilterItemColumnType.String
151
+ },
152
+ {
153
+ name: "item-id-test-3-2",
154
+ text: "item-title-test-3-2",
155
+ type: FilterItemColumnType.String
156
+ },
157
+ {
158
+ name: "item-id-test-3-3",
159
+ text: "item-title-test-3-3",
160
+ type: FilterItemColumnType.String
161
+ },
162
+ {
163
+ name: "item-id-test-3-4",
164
+ text: "item-title-test-3-4",
165
+ type: FilterItemColumnType.String
166
+ },
167
+ ]
168
+ },
169
+ ]
170
+
171
+
172
+ export function App()
173
+ {
174
+
130
175
  return (
131
176
  <>
132
177
  <NSLayoutAction
@@ -137,36 +182,9 @@ export function App()
137
182
  scope='Namirasoft Account Console'
138
183
  logo='https://static.namirasoft.com/image/namirasoft/site/logo/base.png'
139
184
  >
140
- <div>
141
- <NSTable
142
- ref={table}
143
- columns={columns}
144
- rows={rows}
145
- getCell={getCell}
146
- getColumnAttributes={() => { return {} }}
147
- getRowKey={row => row.id.toString()}
148
- onChanged={onChange}
149
- pageSize={10}
150
- totalItems={100}
151
- getRows={getRows}
152
- />
153
- </div>
154
- <NSBoxIPV6
155
- title='IPV6'
156
- required={false}
157
- />
158
-
159
- <NSBoxIPV4
160
- title='IPV4'
161
- required={false}
162
- />
163
- <NSBoxBoolean
164
- title='I4'
165
- required={false}
166
- name='salam '
167
- />
168
- <NSTabPage tabs={tabs} />
169
- <NSFilterBox />
185
+ <NSFilterBox
186
+ tables={suggest_items}
187
+ placeholder='placeholder' />
170
188
  </NSLayoutAction>
171
189
  </>
172
190
  );
@@ -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
  }
@@ -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
  }
@@ -1,20 +1,127 @@
1
1
  "use client"
2
2
 
3
- import { Component } from 'react';
4
- import { NSFilterBoxDialog } from './NSFilterBoxDialog';
3
+ import React, { Component } from 'react';
5
4
  import Styles from './NSFilterBox.module.css'
6
- interface INSFilterBoxProps
7
- {
5
+ import { IBaseComponentProps } from '../main';
6
+ import { NSFilterItem } from './NSFilterItem';
7
+ import { FilterItem, FilterItemColumnType, FilterItemOperator } from 'namirasoft-core'
8
+ import NSGroupedList from './NSGroupedList';
8
9
 
10
+ interface INSFilterBoxProps extends IBaseComponentProps
11
+ {
12
+ placeholder?: string;
13
+ onChanged?: () => void;
14
+ tables: {
15
+ name: string,
16
+ text: string
17
+ columns: {
18
+ name: string,
19
+ text: string,
20
+ type: FilterItemColumnType
21
+ }[];
22
+ }[];
9
23
  }
10
24
 
11
25
  interface INSFilterBoxState
12
26
  {
27
+ filterItems: FilterItem[];
28
+ showSuggestList: boolean;
29
+ searchValue: string;
30
+ groupListState: GroupListState;
31
+ selectedColumns: {
32
+ name: string,
33
+ text: string
34
+ columns: {
35
+ name: string,
36
+ text: string,
37
+ type: FilterItemColumnType
38
+ }[];
39
+ }[];
40
+ selectedOperators: {
41
+ name: string;
42
+ operator: FilterItemOperator
43
+ };
44
+ selectedValues: [];
45
+ }
13
46
 
47
+ enum GroupListState
48
+ {
49
+ Normal = 'Normal',
50
+ Column = 'Column',
51
+ Opertor = 'Opertor',
52
+ Value = 'Value'
14
53
  }
15
54
 
16
55
  export class NSFilterBox extends Component<INSFilterBoxProps, INSFilterBoxState>
17
56
  {
57
+ constructor(props: INSFilterBoxProps)
58
+ {
59
+ super(props);
60
+ this.state = {
61
+ filterItems: [],
62
+ groupListState: GroupListState.Normal,
63
+ showSuggestList: false,
64
+ searchValue: "",
65
+ selectedColumns: [],
66
+ selectedOperators: {
67
+ name: "",
68
+ operator: FilterItemOperator.all.Empty
69
+ },
70
+ selectedValues: []
71
+ }
72
+ this.selectColumn = this.selectColumn.bind(this);
73
+ this.removeSelected = this.removeSelected.bind(this);
74
+ this.onChanged = this.onChanged.bind(this);
75
+ this.getValue = this.getValue.bind(this);
76
+ this.setValue = this.setValue.bind(this);
77
+ }
78
+
79
+ getValue(): string
80
+ {
81
+ return this.state.searchValue;
82
+ }
83
+
84
+ setValue(value: string): void
85
+ {
86
+ if (value !== "")
87
+ this.setState({
88
+ showSuggestList: true,
89
+ groupListState: GroupListState.Column,
90
+ searchValue: value
91
+ })
92
+ else
93
+ this.setState({
94
+ showSuggestList: false
95
+ })
96
+ }
97
+
98
+
99
+ selectColumn(groupe: string, item: string): void
100
+ {
101
+ console.log(item);
102
+ let columns = this.props.tables.filter((table) => table.name === groupe)
103
+ this.setState({
104
+ selectedColumns: columns,
105
+ groupListState: GroupListState.Opertor
106
+ })
107
+ }
108
+
109
+ removeSelected(text: string): void
110
+ {
111
+ let selectedArray = [...this.state.filterItems];
112
+ selectedArray = selectedArray.filter(item => item.column !== text)
113
+ this.setState({
114
+ filterItems: selectedArray
115
+ })
116
+ }
117
+
118
+ private onChanged = async (e: React.ChangeEvent<HTMLInputElement>): Promise<void> =>
119
+ {
120
+ await this.setValue(e.target.value);
121
+ if (this.props.onChanged)
122
+ this.props.onChanged();
123
+ }
124
+
18
125
  override render()
19
126
  {
20
127
  return (
@@ -31,28 +138,105 @@ export class NSFilterBox extends Component<INSFilterBoxProps, INSFilterBoxState>
31
138
  </figure>
32
139
  <input
33
140
  // id={this.props.id}
34
- // value={this.state.value}
35
- // onChange={this.onChanged}
141
+ value={this.state.searchValue}
142
+ onChange={(e) => this.onChanged(e)}
36
143
  type="text"
37
144
  className={Styles.ns_input}
38
- placeholder={"this.props.placeholder"}
145
+ placeholder={this.props.placeholder}
39
146
  />
40
- <figure className={Styles.ns_input_close_icon}>
41
- <img
42
- src="https://static.namirasoft.com/image/concept/close/blue.svg"
43
- alt="input-icon"
44
- width={24}
45
- height={24}
46
- />
47
- </figure>
147
+ {this.state.showSuggestList &&
148
+ <figure className={Styles.ns_input_close_icon}
149
+ onClick={() => this.setState({
150
+ showSuggestList: false,
151
+ searchValue: ""
152
+ })}
153
+ >
154
+ <img
155
+ src="https://static.namirasoft.com/image/concept/close/blue.svg"
156
+ alt="input-icon"
157
+ width={24}
158
+ height={24}
159
+ />
160
+ </figure>
161
+ }
48
162
  </div>
49
- </div>
163
+ {
164
+ this.state.groupListState == GroupListState.Column &&
165
+ <NSGroupedList
166
+ onClick={this.selectColumn}
167
+ groups={this.props.tables.map((table) =>
168
+ {
169
+ return {
170
+ name: table.name,
171
+ text: table.text,
172
+ items: table.columns.map((column) =>
173
+ {
174
+ return {
175
+ name: column.name,
176
+ text: column.text,
177
+ type: column.type
178
+ }
179
+ })
180
+ }
181
+ })}
182
+ />
183
+ }
184
+
185
+ {
186
+ this.state.groupListState == GroupListState.Opertor &&
187
+ <NSGroupedList
188
+ groups={
189
+ FilterItemOperator.getAllByType(FilterItemColumnType.String).map((operator) =>
190
+ {
191
+ return {
192
+ name: this.state.selectedColumns[0].name,
193
+ text: this.state.selectedColumns[0].text,
194
+ sign: operator.sign,
195
+ operator_name: operator.name,
196
+ items: this.state.selectedColumns[0]?.columns?.map((column) =>
197
+ {
198
+ return {
199
+ name: column.name,
200
+ text: column.text,
201
+ }
202
+ })
203
+ }
204
+ }
205
+ )
206
+ }
207
+ onClick={() =>
208
+ {
209
+ this.setState({
210
+ groupListState: GroupListState.Value,
211
+ selectedOperators: {...this.state.selectedColumns[0], operator: this.state.selectedOperators.operator }
212
+ })
213
+ }}
214
+ />
215
+ }
216
+
217
+ {/* {
218
+ this.state.groupListState == GroupListState.Value &&
219
+ <NSGroupedList
220
+ onClick={() =>
221
+ {
222
+ let filterItems = new FilterItem("", false, this.state.selectedOperators.operator, this.state.selectedOperators.name)
223
+ }}
224
+ />
225
+ } */}
50
226
 
51
- <ul>
52
227
 
53
- </ul>
54
- <NSFilterBoxDialog
55
- title='Edit Filter' />
228
+ </div>
229
+ <div className={Styles.ns_selected_list_parent}>
230
+ {this.state.filterItems.map((item, index) =>
231
+ <NSFilterItem
232
+ item={item}
233
+ key={index}
234
+ removeSelected={() => this.removeSelected(item.column)}
235
+ />
236
+ )
237
+ }
238
+ </div>
239
+
56
240
  </>
57
241
  );
58
242
  }