namirasoft-site-react 1.4.506 → 1.4.507

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.
package/dist/App.js CHANGED
@@ -1,8 +1,20 @@
1
- import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { jsx as _jsx } from "react/jsx-runtime";
2
11
  import { Component, createRef } from 'react';
3
12
  import { NSLayout } from './components/NSLayout';
13
+ import { EmailFormatter, EncryptionOperation, IDFormatter, IntegerFormatter, NSColumn, NSTable, PhoneFormatter, SensitiveFormatter, StringFormatter, StringFormatterSizeType } from './main';
4
14
  import 'bootstrap/dist/css/bootstrap.min.css';
5
15
  import './App.css';
16
+ import { EncodingOperation, IStorageLocal } from 'namirasoft-core';
17
+ import { NamirasoftMap } from 'namirasoft-site-map';
6
18
  export class App extends Component {
7
19
  constructor(props) {
8
20
  super(props);
@@ -10,6 +22,8 @@ export class App extends Component {
10
22
  this.state = {};
11
23
  }
12
24
  render() {
25
+ let namirasoft = new NamirasoftMap();
26
+ EncryptionOperation.AES256GCMEncrypt("1234", EncodingOperation.Base64Encode("")).then(console.log);
13
27
  return (_jsx(NSLayout, { header: {
14
28
  right: {
15
29
  icons: [
@@ -21,7 +35,91 @@ export class App extends Component {
21
35
  ],
22
36
  },
23
37
  mega_menu: true
24
- }, isLoggedIn: () => true, logo: 'https://static.namirasoft.com/image/namirasoft/access/logo/base.png', background: { image: "https://static.namirasoft.com/image/namirasoft/access/background/base.svg" }, notifications: [], notifier: {}, scope: '', children: _jsx(_Fragment, {}) }));
38
+ }, isLoggedIn: () => true, logo: 'https://static.namirasoft.com/image/namirasoft/access/logo/base.png', background: { image: "https://static.namirasoft.com/image/namirasoft/access/background/base.svg" }, notifications: [], notifier: {}, scope: '', children: _jsx(NSColumn, { style: { alignItems: "center" }, children: _jsx(NSTable, { name: 'users', checkbox: true, getRows: () => __awaiter(this, void 0, void 0, function* () {
39
+ return ({
40
+ count: 10,
41
+ rows: [
42
+ {
43
+ id: ["prd-c7836310e7e54170"], first_name: "Amin", last_name: "Pasban", gender: "Male", age: 27,
44
+ phone: "09117579093", email: "amin.cj0077@gmail.com",
45
+ password: "1234", sensitive: false,
46
+ },
47
+ {
48
+ id: ["prd-c7836310e7e54171"], first_name: "Sara", last_name: "Moradi", gender: "Female", age: 24,
49
+ phone: "09123456781", email: "sara.moradi@example.com",
50
+ password: "CKaKg94ACeR56eqJtZFXgidZQ+lbRTOuZfHxRjaqlPpMO+tWWnYdnEinONB+1oUWvLlLvIj0", sensitive: true,
51
+ },
52
+ {
53
+ id: ["prd-c7836310e7e54172"], first_name: "Reza", last_name: "Karimi", gender: "Male", age: 31,
54
+ phone: "09129876542", email: "reza.karimi@example.com",
55
+ password: "1234", sensitive: false,
56
+ },
57
+ {
58
+ id: ["prd-c7836310e7e54173"], first_name: "Niloofar", last_name: "Ahmadi", gender: "Female", age: 29,
59
+ phone: "09351234567", email: "niloofar.ahmadi@example.com",
60
+ password: "gNYeNtQQAPvc8SqiT7hQG77LjowyOsTM+oOX6J0GBv+XrYakhu7u9FDEi80yvgKjlK7gKMy1", sensitive: true,
61
+ },
62
+ {
63
+ id: ["prd-c7836310e7e54174"], first_name: "Hossein", last_name: "Bagheri", gender: "Male", age: 35,
64
+ phone: "09134561234", email: "hossein.bagheri@example.com",
65
+ password: "1234", sensitive: false,
66
+ },
67
+ {
68
+ id: ["prd-c7836310e7e54175"], first_name: "Maryam", last_name: "Shahbazi", gender: "Female", age: 26,
69
+ phone: "09141239876", email: "maryam.shahbazi@example.com",
70
+ password: "iKg0wY9m9xeUWSzx1UsVY4QBqR7CAlIuX3JAXmN9Y3tAdE2g/6jIkREh1xOVN3BV+3mNVgJp", sensitive: true,
71
+ },
72
+ {
73
+ id: ["prd-c7836310e7e54176"], first_name: "Ali", last_name: "Rostami", gender: "Male", age: 28,
74
+ phone: "09151237654", email: "ali.rostami@example.com",
75
+ password: "1234", sensitive: false,
76
+ },
77
+ {
78
+ id: ["prd-c7836310e7e54177"], first_name: "Fatemeh", last_name: "Jafari", gender: "Female", age: 30,
79
+ phone: "09361234589", email: "fatemeh.jafari@example.com",
80
+ password: "Z2SuGaena/4oXcvf0RL5Fh6dX4OqvwxY0RD9gnp07zwLYS1PJpE2Ftr9WiZYlwcKsOCRptiI", sensitive: true,
81
+ },
82
+ {
83
+ id: ["prd-c7836310e7e54178"], first_name: "Mohammad", last_name: "Esfandiari", gender: "Male", age: 33,
84
+ phone: "09162348752", email: "mohammad.esfandiari@example.com",
85
+ password: "1234", sensitive: false,
86
+ },
87
+ {
88
+ id: ["prd-c7836310e7e54179"], first_name: "Elham", last_name: "Khosravi", gender: "Female", age: 25,
89
+ phone: "09203456781", email: "elham.khosravi@example.com",
90
+ password: "G3E9av/PnhcCZMmU8t342TZbTmyxP0efWI9gV7rfPfVLEtekQoDmExdBP/Y61m8BFQHNgoFJ", sensitive: true,
91
+ },
92
+ {
93
+ id: ["prd-c7836310e7e54180"], first_name: "Mohammad", last_name: "Esfandiari", gender: "Male", age: 33,
94
+ phone: "09162348752", email: "mohammad.esfandiari@example.com",
95
+ password: "1234", sensitive: false,
96
+ },
97
+ {
98
+ id: ["prd-c7836310e7e54181"], first_name: "Elham", last_name: "Khosravi", gender: "Female", age: 25,
99
+ phone: "09203456781", email: "elham.khosravi@example.com",
100
+ password: "I69kFc3BYEOjf8tdbWxFlV1CTpfSGkVfRx/s54YoNeL7AO+321NF0ZmHEb+2c2i1vA8irJDw", sensitive: true,
101
+ },
102
+ ]
103
+ });
104
+ }), getRowKey: (item) => item.value.id[0], columns: [
105
+ { index: 0, name: "id", text: "ID", table: { name: "users", text: "users" }, formatter: new IDFormatter(namirasoft, new IStorageLocal()) },
106
+ { index: 1, name: "first_name", text: "First Name", table: { name: "users", text: "users" }, formatter: new StringFormatter(StringFormatterSizeType.TwoWords) },
107
+ { index: 2, name: "last_name", text: "Last Name", table: { name: "users", text: "users" }, formatter: new StringFormatter(StringFormatterSizeType.TwoWords) },
108
+ { index: 3, name: "gender", text: "Gender", table: { name: "users", text: "users" }, formatter: new StringFormatter(StringFormatterSizeType.TwoWords) },
109
+ { index: 4, name: "age", text: "Age", table: { name: "users", text: "users" }, formatter: new IntegerFormatter() },
110
+ {
111
+ index: 4, name: "password", text: "Password", table: { name: "users", text: "users" },
112
+ formatter: new SensitiveFormatter((value) => __awaiter(this, void 0, void 0, function* () {
113
+ let decrypted = yield EncryptionOperation.AES256GCMDecrypt("1234", value);
114
+ let decoded = EncodingOperation.Base64Decode(decrypted);
115
+ return decoded;
116
+ }), (_col, row) => {
117
+ return row.value.sensitive;
118
+ })
119
+ },
120
+ { index: 6, name: "phone", text: "Phone Number", table: { name: "users", text: "users" }, formatter: new PhoneFormatter() },
121
+ { index: 7, name: "email", text: "Email Address", table: { name: "users", text: "users" }, formatter: new EmailFormatter() },
122
+ ], scroll: false }) }) }));
25
123
  }
26
124
  }
27
125
  //# 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":";AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,sCAAsC,CAAC;AAC9C,OAAO,WAAW,CAAC;AAKnB,MAAM,OAAO,GAAI,SAAQ,SAA6B;IAIlD,YAAY,KAAe;QAEvB,KAAK,CAAC,KAAK,CAAC,CAAC;QAJjB,QAAG,GAAG,SAAS,EAAkB,CAAC;QAK9B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACpB,CAAC;IAEQ,MAAM;QAEX,OAAO,CACH,KAAC,QAAQ,IACL,MAAM,EAAE;gBACJ,KAAK,EAAE;oBACH,KAAK,EAAE;wBACH;4BACI,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC;4BACpB,GAAG,EAAE,qEAAqE;4BAC1E,KAAK,EAAE,CAAC;yBACX;qBACJ;iBACJ;gBACD,SAAS,EAAE,IAAI;aAClB,EACD,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,EACtB,IAAI,EAAC,qEAAqE,EAC1E,UAAU,EAAE,EAAE,KAAK,EAAE,2EAA2E,EAAE,EAClG,aAAa,EAAE,EAAE,EACjB,QAAQ,EAAE,EAAS,EACnB,KAAK,EAAC,EAAE,YAER,mBAAK,GACE,CACd,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export interface NSLabelSensitiveProps {
2
+ value: string;
2
3
  sensitive: boolean;
3
- encrypted_value: string;
4
4
  decryptor?: (value: string) => Promise<string>;
5
5
  }
6
6
  export interface NSLabelSensitiveState {
@@ -12,26 +12,28 @@ import { useState } from 'react';
12
12
  import { NSRow } from './NSRow';
13
13
  import Styles from "./NSLabelSensitive.module.css";
14
14
  export function NSLabelSensitive(props) {
15
- const [state, setState] = useState({ show: false, decrypted_value: null, loading: false });
15
+ const [state, setState] = useState({
16
+ show: !props.sensitive,
17
+ decrypted_value: !props.sensitive ? props.value : null,
18
+ loading: false,
19
+ });
16
20
  const decrypt = () => __awaiter(this, void 0, void 0, function* () {
17
21
  var _a, _b;
18
- setState((prev) => (Object.assign(Object.assign({}, prev), { decrypted_value: null, loading: true })));
19
22
  try {
20
- let decrypted_value = (_b = yield ((_a = props.decryptor) === null || _a === void 0 ? void 0 : _a.call(props, props.encrypted_value))) !== null && _b !== void 0 ? _b : props.encrypted_value;
21
- setState((prev) => (Object.assign(Object.assign({}, prev), { decrypted_value, loading: false })));
23
+ let { decrypted_value } = state;
24
+ if (!decrypted_value) {
25
+ setState((prev) => (Object.assign(Object.assign({}, prev), { loading: true })));
26
+ decrypted_value = (_b = yield ((_a = props.decryptor) === null || _a === void 0 ? void 0 : _a.call(props, props.value))) !== null && _b !== void 0 ? _b : props.value;
27
+ }
28
+ setState((prev) => ({ decrypted_value, show: !prev.show, loading: false }));
22
29
  }
23
30
  catch (error) {
24
31
  setState((prev) => (Object.assign(Object.assign({}, prev), { loading: false })));
25
32
  }
26
33
  });
27
- let placeholder = Array.from({ length: 8 }, (_, i) => (_jsx("img", { src: "https://static.namirasoft.com/image/concept/close/blue.svg", width: "12", height: "12", alt: "times" }, i + 1)));
28
- return (_jsxs(NSRow, { style: { alignItems: "center", gap: "0.5rem" }, children: [(props.sensitive && !state.loading) &&
29
- _jsx("button", { className: Styles.ns_button, onClick: () => {
30
- if (state.decrypted_value == null)
31
- decrypt();
32
- else
33
- setState((prev) => (Object.assign(Object.assign({}, prev), { show: !prev.show })));
34
- }, children: _jsx("img", { src: `https://static.namirasoft.com/image/concept/password/${state.show ? "show" : "hide"}.png`, width: "20", height: "20", alt: "password" }) }), (!props.sensitive || state.show) ?
34
+ let placeholder = Array.from({ length: 6 }, (_, i) => (_jsx("img", { src: "https://static.namirasoft.com/image/concept/close/blue.svg", width: "12", height: "12", alt: "times" }, i + 1)));
35
+ return (_jsxs(NSRow, { style: { alignItems: "center", gap: "0.25rem" }, children: [(props.sensitive && !state.loading) &&
36
+ _jsx("button", { onClick: () => decrypt(), className: Styles.ns_button, children: _jsx("img", { src: `https://static.namirasoft.com/image/concept/password/${state.show ? "show" : "hide"}.png`, width: "20", height: "20", alt: "password" }) }), state.show ?
35
37
  _jsx("span", { children: state.decrypted_value })
36
38
  :
37
39
  _jsx("div", { children: placeholder })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"NSLabelSensitive.js","sourceRoot":"","sources":["../../src/components/NSLabelSensitive.tsx"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,MAAM,MAAM,+BAA+B,CAAC;AAgBnD,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAEzD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAwB,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;IAEjH,MAAM,OAAO,GAAG,GAAS,EAAE;;QAEvB,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iCAAM,IAAI,KAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAG,CAAC,CAAC;QACxE,IACA,CAAC;YACG,IAAI,eAAe,GAAG,MAAA,MAAM,CAAA,MAAA,KAAK,CAAC,SAAS,sDAAG,KAAK,CAAC,eAAe,CAAC,CAAA,mCAAI,KAAK,CAAC,eAAe,CAAC;YAC9F,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iCAAM,IAAI,KAAE,eAAe,EAAE,OAAO,EAAE,KAAK,IAAG,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EACd,CAAC;YACG,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iCAAM,IAAI,KAAE,OAAO,EAAE,KAAK,IAAG,CAAC,CAAC;QACtD,CAAC;IACL,CAAC,CAAA,CAAA;IAED,IAAI,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAClD,cAEI,GAAG,EAAC,4DAA4D,EAChE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,GAAG,EAAC,OAAO,IAJN,CAAC,GAAG,CAAC,CAKZ,CACL,CAAC,CAAA;IAEF,OAAO,CACH,MAAC,KAAK,IAAC,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,aAE7C,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;gBACnC,iBACI,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,OAAO,EAAE,GAAG,EAAE;wBAEV,IAAI,KAAK,CAAC,eAAe,IAAI,IAAI;4BAC7B,OAAO,EAAE,CAAC;;4BAEV,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iCAAM,IAAI,KAAE,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,IAAG,CAAC,CAAA;oBAC3D,CAAC,YAED,cACI,GAAG,EAAE,wDAAwD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,EAC/F,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,GAAG,EAAC,UAAU,GAChB,GACG,EAGT,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9B,yBAAO,KAAK,CAAC,eAAe,GAAQ;gBACpC,CAAC;oBACD,wBAAM,WAAW,GAAO,IAE5B,CACX,CAAA;AACL,CAAC;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"NSLabelSensitive.js","sourceRoot":"","sources":["../../src/components/NSLabelSensitive.tsx"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,MAAM,MAAM,+BAA+B,CAAC;AAgBnD,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAEzD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAwB;QACtD,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS;QACtB,eAAe,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QACtD,OAAO,EAAE,KAAK;KACjB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,GAAS,EAAE;;QAEvB,IACA,CAAC;YACG,IAAI,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;YAEhC,IAAI,CAAC,eAAe,EACpB,CAAC;gBACG,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iCAAM,IAAI,KAAE,OAAO,EAAE,IAAI,IAAG,CAAC,CAAC;gBACjD,eAAe,GAAG,MAAA,MAAM,CAAA,MAAA,KAAK,CAAC,SAAS,sDAAG,KAAK,CAAC,KAAK,CAAC,CAAA,mCAAI,KAAK,CAAC,KAAK,CAAC;YAC1E,CAAC;YAED,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,KAAK,EACZ,CAAC;YACG,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iCAAM,IAAI,KAAE,OAAO,EAAE,KAAK,IAAG,CAAC,CAAC;QACtD,CAAC;IACL,CAAC,CAAA,CAAA;IAED,IAAI,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAClD,cAEI,GAAG,EAAC,4DAA4D,EAChE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,GAAG,EAAC,OAAO,IAJN,CAAC,GAAG,CAAC,CAKZ,CACL,CAAC,CAAA;IAEF,OAAO,CACH,MAAC,KAAK,IAAC,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,aAE9C,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;gBACnC,iBACI,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EACxB,SAAS,EAAE,MAAM,CAAC,SAAS,YAE3B,cACI,GAAG,EAAE,wDAAwD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,EAC/F,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,GAAG,EAAC,UAAU,GAChB,GACG,EAGT,KAAK,CAAC,IAAI,CAAC,CAAC;gBACR,yBAAO,KAAK,CAAC,eAAe,GAAQ;gBACpC,CAAC;oBACD,wBAAM,WAAW,GAAO,IAE5B,CACX,CAAA;AACL,CAAC;AAED,eAAe,gBAAgB,CAAC"}
@@ -11,7 +11,7 @@ export class SensitiveFormatter extends BaseColumnFormatter {
11
11
  format(value, col, row, printable) {
12
12
  try {
13
13
  if (!printable)
14
- return (_jsx(NSLabelSensitive, { sensitive: this.isSensitive(col, row), encrypted_value: value.encrypted_value, decryptor: this.decryptor }));
14
+ return (_jsx(NSLabelSensitive, { value: value, sensitive: this.isSensitive(col, row), decryptor: this.decryptor }));
15
15
  }
16
16
  catch (error) { }
17
17
  return value;
@@ -1 +1 @@
1
- {"version":3,"file":"SensitiveFormatter.js","sourceRoot":"","sources":["../../src/formatter/SensitiveFormatter.tsx"],"names":[],"mappings":";AAAA,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,OAAO,kBAAkC,SAAQ,mBAAmB;IAKtE,YAAY,SAA6C,EAAE,WAA0E,EAAE,QAAgB,OAAO;QAE1J,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IACQ,MAAM,CAAC,KAAU,EAAE,GAAoB,EAAE,GAA0B,EAAE,SAAkB;QAE5F,IACA,CAAC;YACG,IAAI,CAAC,SAAS;gBACV,OAAO,CACH,KAAC,gBAAgB,IACb,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EACrC,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,SAAS,EAAE,IAAI,CAAC,SAAS,GAC3B,CACL,CAAC;QACV,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC;QAEnB,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
1
+ {"version":3,"file":"SensitiveFormatter.js","sourceRoot":"","sources":["../../src/formatter/SensitiveFormatter.tsx"],"names":[],"mappings":";AAAA,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,OAAO,kBAAkC,SAAQ,mBAAmB;IAKtE,YAAY,SAA6C,EAAE,WAA0E,EAAE,QAAgB,OAAO;QAE1J,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IACQ,MAAM,CAAC,KAAU,EAAE,GAAoB,EAAE,GAA0B,EAAE,SAAkB;QAE5F,IACA,CAAC;YACG,IAAI,CAAC,SAAS;gBACV,OAAO,CACH,KAAC,gBAAgB,IACb,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EACrC,SAAS,EAAE,IAAI,CAAC,SAAS,GAC3B,CACL,CAAC;QACV,CAAC;QACD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC;QAEjB,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "framework": "npm",
9
9
  "application": "package",
10
10
  "private": false,
11
- "version": "1.4.506",
11
+ "version": "1.4.507",
12
12
  "author": "Amir Abolhasani",
13
13
  "license": "MIT",
14
14
  "main": "./dist/main.js",
package/src/App.tsx CHANGED
@@ -1,12 +1,26 @@
1
1
  import { Component, createRef } from 'react';
2
2
  import { NSLayout } from './components/NSLayout';
3
- import { NSBoxSensitive } from './main';
3
+ import { EmailFormatter, EncryptionOperation, IDFormatter, IntegerFormatter, NSBoxSensitive, NSColumn, NSTable, PhoneFormatter, SensitiveFormatter, StringFormatter, StringFormatterSizeType, TableRowInfo } from './main';
4
4
  import 'bootstrap/dist/css/bootstrap.min.css';
5
5
  import './App.css';
6
+ import { EncodingOperation, IStorageLocal } from 'namirasoft-core';
7
+ import { NamirasoftMap } from 'namirasoft-site-map';
6
8
 
7
9
  interface AppProps { }
8
10
  interface AppState { }
9
11
 
12
+ interface Row
13
+ {
14
+ id: string[],
15
+ first_name: string,
16
+ last_name: string,
17
+ age: number,
18
+ phone: string,
19
+ password: string,
20
+ sensitive: boolean,
21
+ email: string
22
+ }
23
+
10
24
  export class App extends Component<AppProps, AppState>
11
25
  {
12
26
  ref = createRef<NSBoxSensitive>();
@@ -19,6 +33,10 @@ export class App extends Component<AppProps, AppState>
19
33
 
20
34
  override render()
21
35
  {
36
+ let namirasoft = new NamirasoftMap();
37
+
38
+ EncryptionOperation.AES256GCMEncrypt("1234", EncodingOperation.Base64Encode("")).then(console.log);
39
+
22
40
  return (
23
41
  <NSLayout
24
42
  header={{
@@ -40,7 +58,103 @@ export class App extends Component<AppProps, AppState>
40
58
  notifier={{} as any}
41
59
  scope=''
42
60
  >
43
- <></>
61
+ <NSColumn style={{ alignItems: "center" }}>
62
+ <NSTable<Row>
63
+ name='users'
64
+ checkbox
65
+ getRows={async () => ({
66
+ count: 10,
67
+ rows: [
68
+ {
69
+ id: ["prd-c7836310e7e54170"], first_name: "Amin", last_name: "Pasban", gender: "Male", age: 27,
70
+ phone: "09117579093", email: "amin.cj0077@gmail.com",
71
+ password: "1234", sensitive: false,
72
+ },
73
+ {
74
+ id: ["prd-c7836310e7e54171"], first_name: "Sara", last_name: "Moradi", gender: "Female", age: 24,
75
+ phone: "09123456781", email: "sara.moradi@example.com",
76
+ password: "CKaKg94ACeR56eqJtZFXgidZQ+lbRTOuZfHxRjaqlPpMO+tWWnYdnEinONB+1oUWvLlLvIj0", sensitive: true,
77
+ },
78
+ {
79
+ id: ["prd-c7836310e7e54172"], first_name: "Reza", last_name: "Karimi", gender: "Male", age: 31,
80
+ phone: "09129876542", email: "reza.karimi@example.com",
81
+ password: "1234", sensitive: false,
82
+ },
83
+ {
84
+ id: ["prd-c7836310e7e54173"], first_name: "Niloofar", last_name: "Ahmadi", gender: "Female", age: 29,
85
+ phone: "09351234567", email: "niloofar.ahmadi@example.com",
86
+ password: "gNYeNtQQAPvc8SqiT7hQG77LjowyOsTM+oOX6J0GBv+XrYakhu7u9FDEi80yvgKjlK7gKMy1", sensitive: true,
87
+ },
88
+ {
89
+ id: ["prd-c7836310e7e54174"], first_name: "Hossein", last_name: "Bagheri", gender: "Male", age: 35,
90
+ phone: "09134561234", email: "hossein.bagheri@example.com",
91
+ password: "1234", sensitive: false,
92
+ },
93
+ {
94
+ id: ["prd-c7836310e7e54175"], first_name: "Maryam", last_name: "Shahbazi", gender: "Female", age: 26,
95
+ phone: "09141239876", email: "maryam.shahbazi@example.com",
96
+ password: "iKg0wY9m9xeUWSzx1UsVY4QBqR7CAlIuX3JAXmN9Y3tAdE2g/6jIkREh1xOVN3BV+3mNVgJp", sensitive: true,
97
+ },
98
+ {
99
+ id: ["prd-c7836310e7e54176"], first_name: "Ali", last_name: "Rostami", gender: "Male", age: 28,
100
+ phone: "09151237654", email: "ali.rostami@example.com",
101
+ password: "1234", sensitive: false,
102
+ },
103
+ {
104
+ id: ["prd-c7836310e7e54177"], first_name: "Fatemeh", last_name: "Jafari", gender: "Female", age: 30,
105
+ phone: "09361234589", email: "fatemeh.jafari@example.com",
106
+ password: "Z2SuGaena/4oXcvf0RL5Fh6dX4OqvwxY0RD9gnp07zwLYS1PJpE2Ftr9WiZYlwcKsOCRptiI", sensitive: true,
107
+ },
108
+ {
109
+ id: ["prd-c7836310e7e54178"], first_name: "Mohammad", last_name: "Esfandiari", gender: "Male", age: 33,
110
+ phone: "09162348752", email: "mohammad.esfandiari@example.com",
111
+ password: "1234", sensitive: false,
112
+ },
113
+ {
114
+ id: ["prd-c7836310e7e54179"], first_name: "Elham", last_name: "Khosravi", gender: "Female", age: 25,
115
+ phone: "09203456781", email: "elham.khosravi@example.com",
116
+ password: "G3E9av/PnhcCZMmU8t342TZbTmyxP0efWI9gV7rfPfVLEtekQoDmExdBP/Y61m8BFQHNgoFJ", sensitive: true,
117
+ },
118
+ {
119
+ id: ["prd-c7836310e7e54180"], first_name: "Mohammad", last_name: "Esfandiari", gender: "Male", age: 33,
120
+ phone: "09162348752", email: "mohammad.esfandiari@example.com",
121
+ password: "1234", sensitive: false,
122
+ },
123
+ {
124
+ id: ["prd-c7836310e7e54181"], first_name: "Elham", last_name: "Khosravi", gender: "Female", age: 25,
125
+ phone: "09203456781", email: "elham.khosravi@example.com",
126
+ password: "I69kFc3BYEOjf8tdbWxFlV1CTpfSGkVfRx/s54YoNeL7AO+321NF0ZmHEb+2c2i1vA8irJDw", sensitive: true,
127
+ },
128
+ ]
129
+ })}
130
+ getRowKey={(item) => item.value.id[0]}
131
+ columns={[
132
+ { index: 0, name: "id", text: "ID", table: { name: "users", text: "users" }, formatter: new IDFormatter(namirasoft, new IStorageLocal()) },
133
+ { index: 1, name: "first_name", text: "First Name", table: { name: "users", text: "users" }, formatter: new StringFormatter(StringFormatterSizeType.TwoWords) },
134
+ { index: 2, name: "last_name", text: "Last Name", table: { name: "users", text: "users" }, formatter: new StringFormatter(StringFormatterSizeType.TwoWords) },
135
+ { index: 3, name: "gender", text: "Gender", table: { name: "users", text: "users" }, formatter: new StringFormatter(StringFormatterSizeType.TwoWords) },
136
+ { index: 4, name: "age", text: "Age", table: { name: "users", text: "users" }, formatter: new IntegerFormatter() },
137
+ {
138
+ index: 4, name: "password", text: "Password", table: { name: "users", text: "users" },
139
+ formatter: new SensitiveFormatter(
140
+ async (value) =>
141
+ {
142
+ let decrypted = await EncryptionOperation.AES256GCMDecrypt("1234", value);
143
+ let decoded = EncodingOperation.Base64Decode(decrypted as string);
144
+ return decoded;
145
+ },
146
+ (_col, row: TableRowInfo<Row>) =>
147
+ {
148
+ return row.value.sensitive;
149
+ }
150
+ )
151
+ },
152
+ { index: 6, name: "phone", text: "Phone Number", table: { name: "users", text: "users" }, formatter: new PhoneFormatter() },
153
+ { index: 7, name: "email", text: "Email Address", table: { name: "users", text: "users" }, formatter: new EmailFormatter() },
154
+ ]}
155
+ scroll={false}
156
+ />
157
+ </NSColumn>
44
158
  </NSLayout>
45
159
  );
46
160
  }
@@ -5,8 +5,8 @@ import Styles from "./NSLabelSensitive.module.css";
5
5
 
6
6
  export interface NSLabelSensitiveProps
7
7
  {
8
+ value: string;
8
9
  sensitive: boolean;
9
- encrypted_value: string;
10
10
  decryptor?: (value: string) => Promise<string>;
11
11
  }
12
12
 
@@ -19,22 +19,33 @@ export interface NSLabelSensitiveState
19
19
 
20
20
  export function NSLabelSensitive(props: NSLabelSensitiveProps)
21
21
  {
22
- const [state, setState] = useState<NSLabelSensitiveState>({ show: false, decrypted_value: null, loading: false })
22
+ const [state, setState] = useState<NSLabelSensitiveState>({
23
+ show: !props.sensitive,
24
+ decrypted_value: !props.sensitive ? props.value : null,
25
+ loading: false,
26
+ });
23
27
 
24
28
  const decrypt = async () =>
25
29
  {
26
- setState((prev) => ({ ...prev, decrypted_value: null, loading: true }));
27
30
  try
28
31
  {
29
- let decrypted_value = await props.decryptor?.(props.encrypted_value) ?? props.encrypted_value;
30
- setState((prev) => ({ ...prev, decrypted_value, loading: false }));
31
- } catch (error)
32
+ let { decrypted_value } = state;
33
+
34
+ if (!decrypted_value)
35
+ {
36
+ setState((prev) => ({ ...prev, loading: true }));
37
+ decrypted_value = await props.decryptor?.(props.value) ?? props.value;
38
+ }
39
+
40
+ setState((prev) => ({ decrypted_value, show: !prev.show, loading: false }));
41
+ }
42
+ catch (error)
32
43
  {
33
44
  setState((prev) => ({ ...prev, loading: false }));
34
45
  }
35
46
  }
36
47
 
37
- let placeholder = Array.from({ length: 8 }, (_, i) => (
48
+ let placeholder = Array.from({ length: 6 }, (_, i) => (
38
49
  <img
39
50
  key={i + 1}
40
51
  src="https://static.namirasoft.com/image/concept/close/blue.svg"
@@ -45,18 +56,12 @@ export function NSLabelSensitive(props: NSLabelSensitiveProps)
45
56
  ))
46
57
 
47
58
  return (
48
- <NSRow style={{ alignItems: "center", gap: "0.5rem" }}>
59
+ <NSRow style={{ alignItems: "center", gap: "0.25rem" }}>
49
60
  {
50
61
  (props.sensitive && !state.loading) &&
51
62
  <button
63
+ onClick={() => decrypt()}
52
64
  className={Styles.ns_button}
53
- onClick={() =>
54
- {
55
- if (state.decrypted_value == null)
56
- decrypt();
57
- else
58
- setState((prev) => ({ ...prev, show: !prev.show }))
59
- }}
60
65
  >
61
66
  <img
62
67
  src={`https://static.namirasoft.com/image/concept/password/${state.show ? "show" : "hide"}.png`}
@@ -67,7 +72,7 @@ export function NSLabelSensitive(props: NSLabelSensitiveProps)
67
72
  </button>
68
73
  }
69
74
  {
70
- (!props.sensitive || state.show) ?
75
+ state.show ?
71
76
  <span>{state.decrypted_value}</span>
72
77
  :
73
78
  <div>{placeholder}</div>
@@ -21,12 +21,13 @@ export class SensitiveFormatter<RowType = any> extends BaseColumnFormatter
21
21
  if (!printable)
22
22
  return (
23
23
  <NSLabelSensitive
24
+ value={value}
24
25
  sensitive={this.isSensitive(col, row)}
25
- encrypted_value={value.encrypted_value}
26
26
  decryptor={this.decryptor}
27
27
  />
28
28
  );
29
- } catch (error) { }
29
+ }
30
+ catch (error) { }
30
31
 
31
32
  return value;
32
33
  }