@visns-studio/visns-components 3.0.7 → 3.0.9
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.
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Link } from 'react-router-dom';
|
|
3
|
+
import { CircleChevronRight } from 'akar-icons';
|
|
4
|
+
|
|
5
|
+
function Breadcrumb({ data, page }) {
|
|
6
|
+
return (
|
|
7
|
+
<h1>
|
|
8
|
+
<Link to={page && page.previousUrl ? page.previousUrl : null}>
|
|
9
|
+
{page && page.title ? page.title : null}
|
|
10
|
+
</Link>{' '}
|
|
11
|
+
{data && data[page.titleKey] ? (
|
|
12
|
+
<>
|
|
13
|
+
<CircleChevronRight strokeWidth={2} size={18} />{' '}
|
|
14
|
+
{data[page.titleKey]}
|
|
15
|
+
</>
|
|
16
|
+
) : null}
|
|
17
|
+
</h1>
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export default Breadcrumb;
|
|
@@ -573,8 +573,6 @@ const DataGrid = forwardRef(
|
|
|
573
573
|
const sortTrigger = () => {
|
|
574
574
|
const url = form.url.replace('/ajax', '');
|
|
575
575
|
|
|
576
|
-
console.info(ajaxSetting, columns, form);
|
|
577
|
-
|
|
578
576
|
const newState = {
|
|
579
577
|
form: form,
|
|
580
578
|
page: {
|
|
@@ -979,7 +977,9 @@ const DataGrid = forwardRef(
|
|
|
979
977
|
filterEditorProps = (props, { index }) => {
|
|
980
978
|
return {
|
|
981
979
|
dateFormat: 'DD-MM-YYYY',
|
|
982
|
-
placeholder:
|
|
980
|
+
placeholder: column.filter.placeholder
|
|
981
|
+
? column.filter.placeholder
|
|
982
|
+
: 'Select Date',
|
|
983
983
|
};
|
|
984
984
|
};
|
|
985
985
|
break;
|
|
@@ -1013,6 +1013,8 @@ const DataGrid = forwardRef(
|
|
|
1013
1013
|
return {
|
|
1014
1014
|
...commonProps,
|
|
1015
1015
|
name: `${column.type}.${column.id}`,
|
|
1016
|
+
filterEditor: filterEditor,
|
|
1017
|
+
filterEditorProps: filterEditorProps,
|
|
1016
1018
|
render: ({ data }) => {
|
|
1017
1019
|
const addressFields = [
|
|
1018
1020
|
'address1',
|
|
@@ -1853,7 +1855,11 @@ const DataGrid = forwardRef(
|
|
|
1853
1855
|
''
|
|
1854
1856
|
);
|
|
1855
1857
|
} else {
|
|
1856
|
-
|
|
1858
|
+
if (column.type === 'address') {
|
|
1859
|
+
filterName = `address.${column.id}`;
|
|
1860
|
+
} else {
|
|
1861
|
+
filterName = column.id;
|
|
1862
|
+
}
|
|
1857
1863
|
}
|
|
1858
1864
|
|
|
1859
1865
|
if (column.nameFrom) {
|
|
@@ -1879,99 +1885,79 @@ const DataGrid = forwardRef(
|
|
|
1879
1885
|
}
|
|
1880
1886
|
}, [filterValue]);
|
|
1881
1887
|
|
|
1888
|
+
const createFilterName = (column) => {
|
|
1889
|
+
let filterName = Array.isArray(column.id)
|
|
1890
|
+
? column.id.join('.') + '.'
|
|
1891
|
+
: column.id;
|
|
1892
|
+
|
|
1893
|
+
if (column.nameFrom) {
|
|
1894
|
+
filterName += column.nameFrom;
|
|
1895
|
+
}
|
|
1896
|
+
|
|
1897
|
+
if (column.jsonData) {
|
|
1898
|
+
filterName += column.jsonData;
|
|
1899
|
+
}
|
|
1900
|
+
|
|
1901
|
+
return filterName;
|
|
1902
|
+
};
|
|
1903
|
+
|
|
1904
|
+
const updateFilterDataSource = (filterName, data) => {
|
|
1905
|
+
const filterIndex = filterDataSource.findIndex(
|
|
1906
|
+
(filter) => filter.id === filterName
|
|
1907
|
+
);
|
|
1908
|
+
|
|
1909
|
+
if (filterIndex >= 0) {
|
|
1910
|
+
const updatedFilter = {
|
|
1911
|
+
...filterDataSource[filterIndex],
|
|
1912
|
+
dataset: data,
|
|
1913
|
+
};
|
|
1914
|
+
setFilterDataSource([
|
|
1915
|
+
...filterDataSource.slice(0, filterIndex),
|
|
1916
|
+
updatedFilter,
|
|
1917
|
+
...filterDataSource.slice(filterIndex + 1),
|
|
1918
|
+
]);
|
|
1919
|
+
} else {
|
|
1920
|
+
const newFilter = {
|
|
1921
|
+
id: filterName,
|
|
1922
|
+
dataset: data,
|
|
1923
|
+
};
|
|
1924
|
+
setFilterDataSource((prevState) => [...prevState, newFilter]);
|
|
1925
|
+
}
|
|
1926
|
+
};
|
|
1927
|
+
|
|
1882
1928
|
useEffect(() => {
|
|
1883
1929
|
columns.forEach((column) => {
|
|
1884
1930
|
if (column.filter && column.filter.url) {
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
if (column.filter.where) {
|
|
1888
|
-
filterWhere = {
|
|
1889
|
-
...filterWhere,
|
|
1931
|
+
const filterWhere = {
|
|
1932
|
+
...(column.filter.where && {
|
|
1890
1933
|
where: column.filter.where,
|
|
1891
|
-
}
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
if (column.filter.fields) {
|
|
1895
|
-
filterWhere = {
|
|
1896
|
-
...filterWhere,
|
|
1934
|
+
}),
|
|
1935
|
+
...(column.filter.fields && {
|
|
1897
1936
|
fields: column.filter.fields,
|
|
1898
|
-
}
|
|
1899
|
-
|
|
1937
|
+
}),
|
|
1938
|
+
...(column.filter.order && {
|
|
1939
|
+
order: column.filter.order,
|
|
1940
|
+
}),
|
|
1941
|
+
...(column.filter.orderBy && {
|
|
1942
|
+
orderBy: column.filter.orderBy,
|
|
1943
|
+
}),
|
|
1944
|
+
};
|
|
1900
1945
|
|
|
1901
1946
|
CustomFetch(
|
|
1902
1947
|
column.filter.url,
|
|
1903
1948
|
'POST',
|
|
1904
1949
|
filterWhere,
|
|
1905
1950
|
(res) => {
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
const concatenatedIds = column.id.reduce(
|
|
1909
|
-
(acc, id) => acc + `${id}.`,
|
|
1910
|
-
''
|
|
1911
|
-
);
|
|
1912
|
-
filterName = column.nameFrom
|
|
1913
|
-
? concatenatedIds + column.nameFrom
|
|
1914
|
-
: concatenatedIds;
|
|
1915
|
-
} else {
|
|
1916
|
-
filterName = column.nameFrom
|
|
1917
|
-
? column.id + column.nameFrom
|
|
1918
|
-
: column.id;
|
|
1919
|
-
}
|
|
1920
|
-
|
|
1921
|
-
if (column.jsonData) {
|
|
1922
|
-
filterName += column.jsonData;
|
|
1923
|
-
}
|
|
1924
|
-
|
|
1925
|
-
const filterIndex = filterDataSource.findIndex(
|
|
1926
|
-
(filter) => filter.id === filterName
|
|
1927
|
-
);
|
|
1928
|
-
if (filterIndex >= 0) {
|
|
1929
|
-
const updatedFilter = {
|
|
1930
|
-
...filterDataSource[filterIndex],
|
|
1931
|
-
dataset: res.data,
|
|
1932
|
-
};
|
|
1933
|
-
const updatedDataSource = [
|
|
1934
|
-
...filterDataSource.slice(0, filterIndex),
|
|
1935
|
-
updatedFilter,
|
|
1936
|
-
...filterDataSource.slice(filterIndex + 1),
|
|
1937
|
-
];
|
|
1938
|
-
setFilterDataSource(updatedDataSource);
|
|
1939
|
-
} else {
|
|
1940
|
-
const newFilter = {
|
|
1941
|
-
id: filterName,
|
|
1942
|
-
dataset: res.data,
|
|
1943
|
-
};
|
|
1944
|
-
setFilterDataSource((prevState) => [
|
|
1945
|
-
...prevState,
|
|
1946
|
-
newFilter,
|
|
1947
|
-
]);
|
|
1948
|
-
}
|
|
1951
|
+
const filterName = createFilterName(column);
|
|
1952
|
+
updateFilterDataSource(filterName, res.data);
|
|
1949
1953
|
}
|
|
1950
1954
|
);
|
|
1951
1955
|
} else if (column.filter && column.filter.options) {
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
: column.id;
|
|
1955
|
-
|
|
1956
|
-
if (column.nameFrom) {
|
|
1957
|
-
filterName += column.nameFrom;
|
|
1958
|
-
}
|
|
1959
|
-
|
|
1960
|
-
if (column.jsonData) {
|
|
1961
|
-
filterName += column.jsonData;
|
|
1962
|
-
}
|
|
1963
|
-
|
|
1964
|
-
const newFilter = {
|
|
1965
|
-
id: filterName,
|
|
1966
|
-
dataset: column.filter.options,
|
|
1967
|
-
};
|
|
1968
|
-
setFilterDataSource((prevState) => [
|
|
1969
|
-
...prevState,
|
|
1970
|
-
newFilter,
|
|
1971
|
-
]);
|
|
1956
|
+
const filterName = createFilterName(column);
|
|
1957
|
+
updateFilterDataSource(filterName, column.filter.options);
|
|
1972
1958
|
}
|
|
1973
1959
|
});
|
|
1974
|
-
}, []);
|
|
1960
|
+
}, [columns]);
|
|
1975
1961
|
|
|
1976
1962
|
// Data Grid Styling
|
|
1977
1963
|
const [windowHeight, setWindowHeight] = useState(window.innerHeight);
|
|
@@ -1994,34 +1980,23 @@ const DataGrid = forwardRef(
|
|
|
1994
1980
|
};
|
|
1995
1981
|
|
|
1996
1982
|
useEffect(() => {
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
}));
|
|
2010
|
-
|
|
2011
|
-
let dgHeight =
|
|
2012
|
-
gridHeight && gridHeight > 0
|
|
2013
|
-
? gridHeight
|
|
2014
|
-
: dataCount > 5
|
|
2015
|
-
? dataCount > 8
|
|
2016
|
-
? windowHeight * 0.7 > 550
|
|
2017
|
-
? windowHeight * 0.7
|
|
2018
|
-
: 550
|
|
2019
|
-
: 450
|
|
2020
|
-
: 400;
|
|
1983
|
+
const getMinimumHeight = () => {
|
|
1984
|
+
if (gridHeight > 0) return gridHeight;
|
|
1985
|
+
if (dataCount > 0) {
|
|
1986
|
+
if (dataCount <= 5) return 400;
|
|
1987
|
+
if (dataCount <= 8) return 450;
|
|
1988
|
+
}
|
|
1989
|
+
return Math.max(window.innerHeight * 0.7, 550);
|
|
1990
|
+
};
|
|
1991
|
+
|
|
1992
|
+
const calculateRows = (height) => Math.floor((height - 100) / 40);
|
|
1993
|
+
|
|
1994
|
+
const minHeight = getMinimumHeight();
|
|
1995
|
+
setGridStyle((prevState) => ({ ...prevState, minHeight }));
|
|
2021
1996
|
|
|
2022
|
-
|
|
1997
|
+
const rowCount = calculateRows(minHeight);
|
|
2023
1998
|
setLimit(rowCount);
|
|
2024
|
-
}, [dataCount]);
|
|
1999
|
+
}, [dataCount, gridHeight, window.innerHeight]);
|
|
2025
2000
|
|
|
2026
2001
|
useEffect(() => {
|
|
2027
2002
|
const handleResize = () => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
|
2
2
|
import { usePromiseTracker } from 'react-promise-tracker';
|
|
3
3
|
|
|
4
|
-
function VisnsLoader(
|
|
4
|
+
function VisnsLoader({}) {
|
|
5
5
|
const { promiseInProgress } = usePromiseTracker();
|
|
6
6
|
const [loaderStyle, setLoaderStyle] = useState({
|
|
7
7
|
opacity: 0,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useEffect, useState } from 'react';
|
|
2
|
-
import { useParams
|
|
2
|
+
import { useParams } from 'react-router-dom';
|
|
3
3
|
import moment from 'moment';
|
|
4
4
|
import parse from 'html-react-parser';
|
|
5
5
|
import Popup from 'reactjs-popup';
|
|
@@ -8,16 +8,11 @@ import Dropzone from 'react-dropzone';
|
|
|
8
8
|
import { confirmAlert } from 'react-confirm-alert';
|
|
9
9
|
import truncate from 'truncate';
|
|
10
10
|
import { CopyToClipboard } from 'react-copy-to-clipboard';
|
|
11
|
-
import {
|
|
12
|
-
CircleCheck,
|
|
13
|
-
CircleChevronRight,
|
|
14
|
-
Copy,
|
|
15
|
-
File,
|
|
16
|
-
TrashCan,
|
|
17
|
-
} from 'akar-icons';
|
|
11
|
+
import { CircleCheck, Copy, File, TrashCan } from 'akar-icons';
|
|
18
12
|
|
|
19
13
|
import 'react-confirm-alert/src/react-confirm-alert.css';
|
|
20
14
|
|
|
15
|
+
import Breadcrumb from '../Breadcrumb';
|
|
21
16
|
import CustomFetch from '../Fetch';
|
|
22
17
|
import Form from '../Form';
|
|
23
18
|
import QrCode from '../QrCode';
|
|
@@ -876,26 +871,7 @@ function GenericDetail({ setting, urlParam, userProfile }) {
|
|
|
876
871
|
<div className="grid">
|
|
877
872
|
<div className="grid__row">
|
|
878
873
|
<div className="grid__full crmtitle">
|
|
879
|
-
<
|
|
880
|
-
<Link
|
|
881
|
-
to={
|
|
882
|
-
page && page.previousUrl
|
|
883
|
-
? page.previousUrl
|
|
884
|
-
: null
|
|
885
|
-
}
|
|
886
|
-
>
|
|
887
|
-
{page && page.title ? page.title : null}
|
|
888
|
-
</Link>{' '}
|
|
889
|
-
{data && data[page.titleKey] ? (
|
|
890
|
-
<>
|
|
891
|
-
<CircleChevronRight
|
|
892
|
-
strokeWidth={2}
|
|
893
|
-
size={18}
|
|
894
|
-
/>{' '}
|
|
895
|
-
{data[page.titleKey]}
|
|
896
|
-
</>
|
|
897
|
-
) : null}
|
|
898
|
-
</h1>
|
|
874
|
+
<Breadcrumb data={data} page={page} />
|
|
899
875
|
{total > 0 && (
|
|
900
876
|
<div className="titleInfo">
|
|
901
877
|
<span>
|
package/index.js
CHANGED
|
@@ -7,6 +7,7 @@ import SortableList from './components/cms/sorting/List';
|
|
|
7
7
|
/** CRM Components */
|
|
8
8
|
import AsyncSelect from './components/crm/AsyncSelect';
|
|
9
9
|
import Autocomplete from './components/crm/Autocomplete';
|
|
10
|
+
import Breadcrumb from './components/crm/Breadcrumb';
|
|
10
11
|
import Call from './components/crm/Call';
|
|
11
12
|
import CustomFetch from './components/crm/Fetch';
|
|
12
13
|
import Download from './components/crm/Download';
|
|
@@ -41,6 +42,7 @@ import NotificationList from './components/crm/generic/NotificationList';
|
|
|
41
42
|
export {
|
|
42
43
|
AsyncSelect,
|
|
43
44
|
Autocomplete,
|
|
45
|
+
Breadcrumb,
|
|
44
46
|
Call,
|
|
45
47
|
CmsDetail,
|
|
46
48
|
CmsForm,
|
package/package.json
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"akar-icons": "^1.9.30",
|
|
7
7
|
"array-move": "^4.0.0",
|
|
8
8
|
"awesome-debounce-promise": "^2.1.0",
|
|
9
|
-
"axios": "^1.6.
|
|
10
|
-
"framer-motion": "^10.
|
|
11
|
-
"html-react-parser": "^5.0
|
|
9
|
+
"axios": "^1.6.5",
|
|
10
|
+
"framer-motion": "^10.18.0",
|
|
11
|
+
"html-react-parser": "^5.1.0",
|
|
12
12
|
"lodash": "^4.17.21",
|
|
13
13
|
"moment": "^2.30.1",
|
|
14
|
-
"motion": "^10.
|
|
14
|
+
"motion": "^10.17.0",
|
|
15
15
|
"numeral": "^2.0.6",
|
|
16
16
|
"quill-image-uploader": "^1.3.0",
|
|
17
17
|
"react-color": "^2.19.3",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"react-dom": "^17.0.1"
|
|
47
47
|
},
|
|
48
48
|
"name": "@visns-studio/visns-components",
|
|
49
|
-
"version": "3.0.
|
|
49
|
+
"version": "3.0.9",
|
|
50
50
|
"description": "Various packages to assist in the development of our Custom Applications.",
|
|
51
51
|
"main": "index.js",
|
|
52
52
|
"scripts": {
|