@digigov/react-modules 1.2.0-2177f152 → 1.2.0-2271444d
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/Faq/Results.d.ts +9 -0
- package/Faq/Results.js +34 -0
- package/Faq/hooks.d.ts +15 -0
- package/Faq/hooks.js +54 -0
- package/Faq/index.d.ts +43 -0
- package/Faq/index.js +197 -0
- package/Faq/slug.d.ts +1 -0
- package/Faq/slug.js +94 -0
- package/Faq/utils.d.ts +1 -0
- package/Faq/utils.js +3 -0
- package/FilteredResults/DataTable.js +12 -0
- package/FilteredResults/FilterChips.js +34 -0
- package/FilteredResults/FilterFields.js +13 -0
- package/FilteredResults/hooks.d.ts +1 -1
- package/FilteredResults/hooks.js +78 -0
- package/FilteredResults/index.js +96 -112
- package/index.d.ts +2 -1
- package/index.js +3 -3
- package/lazy.d.ts +13 -12
- package/lazy.js +28 -0
- package/package.json +32 -13
- package/registry.d.ts +6 -1
- package/registry.js +34 -0
- package/src/Faq/Faq.stories.js +7 -0
- package/src/Faq/Results.tsx +53 -0
- package/src/Faq/__stories__/Default.tsx +292 -0
- package/src/Faq/hooks.ts +89 -0
- package/src/Faq/index.test.tsx +24 -0
- package/src/Faq/index.tsx +286 -0
- package/src/Faq/slug.ts +140 -0
- package/src/Faq/splitted.test.tsx +19 -0
- package/src/Faq/utils.ts +5 -0
- package/src/FilteredResults/__stories__/Default.tsx +1 -1
- package/src/FilteredResults/index.test.tsx +14 -11
- package/src/FilteredResults/splitted.test.tsx +9 -5
- package/src/index.ts +1 -0
- package/src/lazy.ts +11 -0
- package/src/registry.ts +43 -0
- package/FilteredResults/DataTable/index.js +0 -18
- package/FilteredResults/DataTable/package.json +0 -6
- package/FilteredResults/DataTable.js.map +0 -7
- package/FilteredResults/FilterChips/index.js +0 -52
- package/FilteredResults/FilterChips/package.json +0 -6
- package/FilteredResults/FilterChips.js.map +0 -7
- package/FilteredResults/FilterFields/index.js +0 -11
- package/FilteredResults/FilterFields/package.json +0 -6
- package/FilteredResults/FilterFields.js.map +0 -7
- package/FilteredResults/FilteredResults.stories/index.js +0 -12
- package/FilteredResults/FilteredResults.stories/package.json +0 -6
- package/FilteredResults/FilteredResults.stories.d.ts +0 -8
- package/FilteredResults/FilteredResults.stories.js.map +0 -7
- package/FilteredResults/__stories__/Default/index.js +0 -220
- package/FilteredResults/__stories__/Default/package.json +0 -6
- package/FilteredResults/__stories__/Default.d.ts +0 -2
- package/FilteredResults/__stories__/Default.js.map +0 -7
- package/FilteredResults/hooks/index.js +0 -105
- package/FilteredResults/hooks/package.json +0 -6
- package/FilteredResults/hooks.js.map +0 -7
- package/FilteredResults/index.js.map +0 -7
- package/FilteredResults/index.test.d.ts +0 -1
- package/FilteredResults/package.json +0 -6
- package/FilteredResults/splitted.test.d.ts +0 -1
- package/ReactModules.stories/index.js +0 -7
- package/ReactModules.stories/package.json +0 -6
- package/ReactModules.stories.d.ts +0 -4
- package/ReactModules.stories.js.map +0 -7
- package/cjs/FilteredResults/DataTable/index.js +0 -42
- package/cjs/FilteredResults/DataTable.js.map +0 -7
- package/cjs/FilteredResults/FilterChips/index.js +0 -82
- package/cjs/FilteredResults/FilterChips.js.map +0 -7
- package/cjs/FilteredResults/FilterFields/index.js +0 -44
- package/cjs/FilteredResults/FilterFields.js.map +0 -7
- package/cjs/FilteredResults/FilteredResults.stories/index.js +0 -45
- package/cjs/FilteredResults/FilteredResults.stories.js.map +0 -7
- package/cjs/FilteredResults/__stories__/Default/index.js +0 -250
- package/cjs/FilteredResults/__stories__/Default.js.map +0 -7
- package/cjs/FilteredResults/hooks/index.js +0 -132
- package/cjs/FilteredResults/hooks.js.map +0 -7
- package/cjs/FilteredResults/index.js +0 -153
- package/cjs/FilteredResults/index.js.map +0 -7
- package/cjs/ReactModules.stories/index.js +0 -26
- package/cjs/ReactModules.stories.js.map +0 -7
- package/cjs/index.js +0 -22
- package/cjs/index.js.map +0 -7
- package/cjs/lazy/index.js +0 -71
- package/cjs/lazy.js.map +0 -7
- package/cjs/registry/index.js +0 -73
- package/cjs/registry.js.map +0 -7
- package/index.js.map +0 -7
- package/lazy/index.js +0 -42
- package/lazy/package.json +0 -6
- package/lazy.js.map +0 -7
- package/registry/index.js +0 -44
- package/registry/package.json +0 -6
- package/registry.js.map +0 -7
- package/src/lazy.js +0 -38
- package/src/registry.js +0 -41
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/FilteredResults/FilterChips.tsx"],
|
|
4
|
-
"sourcesContent": ["import React from 'react';\nimport { useFormContext, useFormValues } from '@digigov/form/FormBuilder';\nimport { getOptionLabelForSelectValue } from '@digigov/react-modules/FilteredResults/hooks';\nimport {\n FilterSelectedHeading,\n FilterSelectedSection,\n} from '@digigov/ui/app/FilterContainer';\nimport { Chip, ChipContainer } from '@digigov/ui/content/Chip';\nimport { Button } from '@digigov/ui/form/Button';\n\nexport const FilterChips = () => {\n const { fieldsMap, reset, resetField, submit } = useFormContext();\n const values = useFormValues();\n const enabledFilters = Object.keys(values).filter((v) => values[v]);\n if (enabledFilters.length === 0) return null;\n return (\n <FilterSelectedSection m={0} mb={6}>\n <FilterSelectedHeading mb={0}>\n <ChipContainer>\n {enabledFilters.map((filterKey) => {\n return (\n <Chip\n mb={0}\n key={filterKey}\n onDelete={() => {\n resetField(filterKey);\n submit();\n }}\n >\n <b>{fieldsMap[filterKey].label?.primary}</b> {': '}\n {getOptionLabelForSelectValue(\n fieldsMap[filterKey],\n values[filterKey]\n )}\n </Chip>\n );\n })}\n </ChipContainer>\n <Button\n onClick={(e) => {\n e.preventDefault();\n reset();\n submit();\n }}\n variant=\"link\"\n >\n \u0395\u03C0\u03B1\u03BD\u03B1\u03C6\u03BF\u03C1\u03AC \u0395\u03C0\u03B9\u03BB\u03BF\u03B3\u03CE\u03BD\n </Button>\n </FilterSelectedHeading>\n </FilterSelectedSection>\n );\n};\n\nexport default FilterChips;\n"],
|
|
5
|
-
"mappings": "AAAA,OAAO,WAAW;AAClB,SAAS,gBAAgB,qBAAqB;AAC9C,SAAS,oCAAoC;AAC7C;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,MAAM,qBAAqB;AACpC,SAAS,cAAc;AAEhB,MAAM,cAAc,MAAM;AAC/B,QAAM,EAAE,WAAW,OAAO,YAAY,OAAO,IAAI,eAAe;AAChE,QAAM,SAAS,cAAc;AAC7B,QAAM,iBAAiB,OAAO,KAAK,MAAM,EAAE,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC;AAClE,MAAI,eAAe,WAAW,EAAG,QAAO;AACxC,SACE,oCAAC,yBAAsB,GAAG,GAAG,IAAI,KAC/B,oCAAC,yBAAsB,IAAI,KACzB,oCAAC,qBACE,eAAe,IAAI,CAAC,cAAc;AACjC,WACE;AAAA,MAAC;AAAA;AAAA,QACC,IAAI;AAAA,QACJ,KAAK;AAAA,QACL,UAAU,MAAM;AACd,qBAAW,SAAS;AACpB,iBAAO;AAAA,QACT;AAAA;AAAA,MAEA,oCAAC,WAAG,UAAU,SAAS,EAAE,OAAO,OAAQ;AAAA,MAAI;AAAA,MAAE;AAAA,MAC7C;AAAA,QACC,UAAU,SAAS;AAAA,QACnB,OAAO,SAAS;AAAA,MAClB;AAAA,IACF;AAAA,EAEJ,CAAC,CACH,GACA;AAAA,IAAC;AAAA;AAAA,MACC,SAAS,CAAC,MAAM;AACd,UAAE,eAAe;AACjB,cAAM;AACN,eAAO;AAAA,MACT;AAAA,MACA,SAAQ;AAAA;AAAA,IACT;AAAA,EAED,CACF,CACF;AAEJ;AAEA,IAAO,sBAAQ;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import Field from "@digigov/form/Field";
|
|
3
|
-
import { FilterOptionsSection } from "@digigov/ui/app/FilterContainer";
|
|
4
|
-
import { Button } from "@digigov/ui/form/Button";
|
|
5
|
-
const FilterFields = ({ fields, horizontal }) => {
|
|
6
|
-
return /* @__PURE__ */ React.createElement(FilterOptionsSection, { horizontal }, fields.map((field) => /* @__PURE__ */ React.createElement(Field, { key: field.key, name: field.key })), /* @__PURE__ */ React.createElement(Button, { type: "submit" }, "\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7"));
|
|
7
|
-
};
|
|
8
|
-
export {
|
|
9
|
-
FilterFields
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=FilterFields.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/FilteredResults/FilterFields.tsx"],
|
|
4
|
-
"sourcesContent": ["import React from 'react';\nimport Field from '@digigov/form/Field';\nimport { FilterOptionsSection } from '@digigov/ui/app/FilterContainer';\nimport { Button } from '@digigov/ui/form/Button';\n\nexport const FilterFields = ({ fields, horizontal }) => {\n return (\n <FilterOptionsSection horizontal={horizontal}>\n {fields.map((field) => (\n <Field key={field.key} name={field.key} />\n ))}\n <Button type=\"submit\">\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7</Button>\n </FilterOptionsSection>\n );\n};\n"],
|
|
5
|
-
"mappings": "AAAA,OAAO,WAAW;AAClB,OAAO,WAAW;AAClB,SAAS,4BAA4B;AACrC,SAAS,cAAc;AAEhB,MAAM,eAAe,CAAC,EAAE,QAAQ,WAAW,MAAM;AACtD,SACE,oCAAC,wBAAqB,cACnB,OAAO,IAAI,CAAC,UACX,oCAAC,SAAM,KAAK,MAAM,KAAK,MAAM,MAAM,KAAK,CACzC,GACD,oCAAC,UAAO,MAAK,YAAS,wDAAS,CACjC;AAEJ;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import FilteredResults from "@digigov/react-modules/FilteredResults";
|
|
2
|
-
var FilteredResults_stories_default = {
|
|
3
|
-
title: "Digigov React Modules/FilteredResults",
|
|
4
|
-
component: FilteredResults,
|
|
5
|
-
displayName: "FilteredResults"
|
|
6
|
-
};
|
|
7
|
-
import { Default } from "@digigov/react-modules/FilteredResults/__stories__/Default";
|
|
8
|
-
export {
|
|
9
|
-
Default,
|
|
10
|
-
FilteredResults_stories_default as default
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=FilteredResults.stories.js.map
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
declare namespace _default {
|
|
2
|
-
export let title: string;
|
|
3
|
-
export { FilteredResults as component };
|
|
4
|
-
export let displayName: string;
|
|
5
|
-
}
|
|
6
|
-
export default _default;
|
|
7
|
-
export { Default } from "@digigov/react-modules/FilteredResults/__stories__/Default";
|
|
8
|
-
import FilteredResults from '@digigov/react-modules/FilteredResults';
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/FilteredResults/FilteredResults.stories.js"],
|
|
4
|
-
"sourcesContent": ["import FilteredResults from '@digigov/react-modules/FilteredResults';\nexport default {\n title: 'Digigov React Modules/FilteredResults',\n component: FilteredResults,\n displayName: 'FilteredResults',\n};\nexport { Default } from '@digigov/react-modules/FilteredResults/__stories__/Default';\n"],
|
|
5
|
-
"mappings": "AAAA,OAAO,qBAAqB;AAC5B,IAAO,kCAAQ;AAAA,EACb,OAAO;AAAA,EACP,WAAW;AAAA,EACX,aAAa;AACf;AACA,SAAS,eAAe;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import FilteredResults from "@digigov/react-modules/FilteredResults";
|
|
3
|
-
import { DataTable } from "@digigov/react-modules/FilteredResults/DataTable";
|
|
4
|
-
import {
|
|
5
|
-
useURLParamsSearch,
|
|
6
|
-
useStaticSearch
|
|
7
|
-
} from "@digigov/react-modules/FilteredResults/hooks";
|
|
8
|
-
import { CheckIcon, UncheckIcon } from "@digigov/ui/icons";
|
|
9
|
-
import Link from "@digigov/ui/navigation/Link";
|
|
10
|
-
const fields = [
|
|
11
|
-
{
|
|
12
|
-
type: "string",
|
|
13
|
-
key: "text",
|
|
14
|
-
label: {
|
|
15
|
-
primary: "\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7 \u03BB\u03AD\u03BE\u03B7\u03C2"
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
type: "choice:single",
|
|
20
|
-
key: "name",
|
|
21
|
-
label: {
|
|
22
|
-
primary: "\u038C\u03BD\u03BF\u03BC\u03B1"
|
|
23
|
-
},
|
|
24
|
-
extra: {
|
|
25
|
-
component: "Select",
|
|
26
|
-
options: [
|
|
27
|
-
{
|
|
28
|
-
label: {
|
|
29
|
-
primary: ""
|
|
30
|
-
},
|
|
31
|
-
value: ""
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
label: {
|
|
35
|
-
primary: "\u039A\u03B1\u03BB\u03BB\u03B9\u03CC\u03C0\u03B7 \u03A0\u03B1\u03C0\u03B1\u03B4\u03BF\u03C0\u03BF\u03CD\u03BB\u03BF\u03C5"
|
|
36
|
-
},
|
|
37
|
-
value: "Kalliopi Papadopoulou"
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
label: {
|
|
41
|
-
primary: "\u039C\u03AC\u03C1\u03B9\u03BF\u03C2 \u039C\u03B5\u03BD\u03B5\u03BE\u03AD\u03C2"
|
|
42
|
-
},
|
|
43
|
-
value: "Marios Menekses"
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
label: {
|
|
47
|
-
primary: "\u039C\u03B1\u03C1\u03AF\u03B1 \u03A6\u03BB\u03BF\u03CD\u03C0\u03B7"
|
|
48
|
-
},
|
|
49
|
-
value: "Maria Floupi"
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
label: {
|
|
53
|
-
primary: "\u0397\u03BB\u03AD\u03BA\u03C4\u03C1\u03B1 \u0391\u03C0\u03BF\u03C3\u03C4\u03CC\u03BB\u03BF\u03C5"
|
|
54
|
-
},
|
|
55
|
-
value: "Ilektra Apostolou"
|
|
56
|
-
}
|
|
57
|
-
]
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
type: "choice:single",
|
|
62
|
-
key: "role",
|
|
63
|
-
label: {
|
|
64
|
-
primary: "\u03A1\u03CC\u03BB\u03BF\u03C2"
|
|
65
|
-
},
|
|
66
|
-
extra: {
|
|
67
|
-
component: "Select",
|
|
68
|
-
options: [
|
|
69
|
-
{
|
|
70
|
-
label: {
|
|
71
|
-
primary: ""
|
|
72
|
-
},
|
|
73
|
-
value: ""
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
label: {
|
|
77
|
-
primary: "\u0394\u03B9\u03B1\u03C7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE\u03C2"
|
|
78
|
-
},
|
|
79
|
-
value: "admin"
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
label: {
|
|
83
|
-
primary: "\u03A7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE\u03C2"
|
|
84
|
-
},
|
|
85
|
-
value: "user"
|
|
86
|
-
}
|
|
87
|
-
]
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
type: "choice:single",
|
|
92
|
-
key: "rights",
|
|
93
|
-
label: {
|
|
94
|
-
primary: "\u0394\u03B9\u03BA\u03B1\u03B9\u03CE\u03BC\u03B1\u03C4\u03B1"
|
|
95
|
-
},
|
|
96
|
-
extra: {
|
|
97
|
-
component: "Select",
|
|
98
|
-
options: [
|
|
99
|
-
{
|
|
100
|
-
label: {
|
|
101
|
-
primary: ""
|
|
102
|
-
},
|
|
103
|
-
value: ""
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
label: {
|
|
107
|
-
primary: "\u039D\u03B1\u03B9"
|
|
108
|
-
},
|
|
109
|
-
value: true
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
label: {
|
|
113
|
-
primary: "\u038C\u03C7\u03B9"
|
|
114
|
-
},
|
|
115
|
-
value: false
|
|
116
|
-
}
|
|
117
|
-
]
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
];
|
|
121
|
-
const displayLink = (value) => {
|
|
122
|
-
return /* @__PURE__ */ React.createElement(Link, { href: `#/${value}` }, value);
|
|
123
|
-
};
|
|
124
|
-
const displayRights = (value) => {
|
|
125
|
-
return /* @__PURE__ */ React.createElement(React.Fragment, null, value ? /* @__PURE__ */ React.createElement(CheckIcon, null) : /* @__PURE__ */ React.createElement(UncheckIcon, null));
|
|
126
|
-
};
|
|
127
|
-
const data = [
|
|
128
|
-
{
|
|
129
|
-
name: "\u039C\u03AC\u03C1\u03B9\u03BF\u03C2 \u039C\u03B5\u03BD\u03B5\u03BE\u03AD\u03C2",
|
|
130
|
-
case_id: 123,
|
|
131
|
-
role: "\u03A7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE\u03C2",
|
|
132
|
-
email: "marios@mail.com",
|
|
133
|
-
rights: false
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
name: "\u039A\u03B1\u03BB\u03BB\u03B9\u03CC\u03C0\u03B7 \u03A0\u03B1\u03C0\u03B1\u03B4\u03BF\u03C0\u03BF\u03CD\u03BB\u03BF\u03C5",
|
|
137
|
-
case_id: 124,
|
|
138
|
-
role: "\u03A7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE\u03C2",
|
|
139
|
-
email: "kalliopi@mail.com",
|
|
140
|
-
rights: false
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
name: "\u039C\u03B1\u03C1\u03AF\u03B1 \u03A6\u03BB\u03BF\u03CD\u03C0\u03B7",
|
|
144
|
-
case_id: 125,
|
|
145
|
-
role: "\u0394\u03B9\u03B1\u03C7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE\u03C2",
|
|
146
|
-
email: "maria@mail.com",
|
|
147
|
-
rights: true
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
name: "\u0397\u03BB\u03AD\u03BA\u03C4\u03C1\u03B1 \u0391\u03C0\u03BF\u03C3\u03C4\u03CC\u03BB\u03BF\u03C5",
|
|
151
|
-
case_id: 126,
|
|
152
|
-
role: "\u0394\u03B9\u03B1\u03C7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE\u03C2",
|
|
153
|
-
email: "ilektra@mail.com",
|
|
154
|
-
rights: true
|
|
155
|
-
}
|
|
156
|
-
];
|
|
157
|
-
const dataConfig = [
|
|
158
|
-
{
|
|
159
|
-
key: "name",
|
|
160
|
-
title: "\u038C\u03BD\u03BF\u03BC\u03B1"
|
|
161
|
-
},
|
|
162
|
-
{
|
|
163
|
-
key: "case_id",
|
|
164
|
-
title: "\u0391\u03C1. \u03A5\u03C0\u03CC\u03B8\u03B5\u03C3\u03B7\u03C2",
|
|
165
|
-
displayComponent: displayLink
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
key: "role",
|
|
169
|
-
title: "\u03A1\u03CC\u03BB\u03BF\u03C2"
|
|
170
|
-
},
|
|
171
|
-
{
|
|
172
|
-
key: "email",
|
|
173
|
-
title: "Email"
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
key: "rights",
|
|
177
|
-
title: "\u0394\u03B9\u03BA\u03B1\u03B9\u03CE\u03BC\u03B1\u03C4\u03B1",
|
|
178
|
-
displayComponent: displayRights
|
|
179
|
-
}
|
|
180
|
-
];
|
|
181
|
-
const initialFilters = {
|
|
182
|
-
name: "",
|
|
183
|
-
case_id: "",
|
|
184
|
-
role: "",
|
|
185
|
-
text: "",
|
|
186
|
-
rights: ""
|
|
187
|
-
};
|
|
188
|
-
const Default = () => {
|
|
189
|
-
const { search, results } = useStaticSearch({
|
|
190
|
-
fields,
|
|
191
|
-
data,
|
|
192
|
-
initialFilters
|
|
193
|
-
});
|
|
194
|
-
const navigate = (url) => {
|
|
195
|
-
if (window.history.pushState) {
|
|
196
|
-
const newUrl = window.location.protocol + "//" + window.location.host + window.location.pathname + url;
|
|
197
|
-
window.history.pushState({ path: newUrl }, "", newUrl);
|
|
198
|
-
}
|
|
199
|
-
};
|
|
200
|
-
const { search: urlSearch, values } = useURLParamsSearch(search, {
|
|
201
|
-
navigate,
|
|
202
|
-
fields
|
|
203
|
-
});
|
|
204
|
-
return /* @__PURE__ */ React.createElement(
|
|
205
|
-
FilteredResults,
|
|
206
|
-
{
|
|
207
|
-
data: results,
|
|
208
|
-
variant: "block",
|
|
209
|
-
currentFilters: values,
|
|
210
|
-
defaultFilters: initialFilters,
|
|
211
|
-
fields,
|
|
212
|
-
onSearch: urlSearch
|
|
213
|
-
},
|
|
214
|
-
/* @__PURE__ */ React.createElement(DataTable, { dataConfig, data: results })
|
|
215
|
-
);
|
|
216
|
-
};
|
|
217
|
-
export {
|
|
218
|
-
Default
|
|
219
|
-
};
|
|
220
|
-
//# sourceMappingURL=Default.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/FilteredResults/__stories__/Default.tsx"],
|
|
4
|
-
"sourcesContent": ["import React from 'react';\nimport { FieldSpec } from '@digigov/form/types';\nimport FilteredResults, {\n DataConfigType,\n} from '@digigov/react-modules/FilteredResults';\nimport { DataTable } from '@digigov/react-modules/FilteredResults/DataTable';\nimport {\n useURLParamsSearch,\n useStaticSearch,\n} from '@digigov/react-modules/FilteredResults/hooks';\nimport { CheckIcon, UncheckIcon } from '@digigov/ui/icons';\nimport Link from '@digigov/ui/navigation/Link';\n\nconst fields: FieldSpec[] = [\n {\n type: 'string',\n key: 'text',\n label: {\n primary: '\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7 \u03BB\u03AD\u03BE\u03B7\u03C2',\n },\n },\n {\n type: 'choice:single',\n key: 'name',\n label: {\n primary: '\u038C\u03BD\u03BF\u03BC\u03B1',\n },\n extra: {\n component: 'Select',\n options: [\n {\n label: {\n primary: '',\n },\n value: '',\n },\n {\n label: {\n primary: '\u039A\u03B1\u03BB\u03BB\u03B9\u03CC\u03C0\u03B7 \u03A0\u03B1\u03C0\u03B1\u03B4\u03BF\u03C0\u03BF\u03CD\u03BB\u03BF\u03C5',\n },\n value: 'Kalliopi Papadopoulou',\n },\n {\n label: {\n primary: '\u039C\u03AC\u03C1\u03B9\u03BF\u03C2 \u039C\u03B5\u03BD\u03B5\u03BE\u03AD\u03C2',\n },\n value: 'Marios Menekses',\n },\n {\n label: {\n primary: '\u039C\u03B1\u03C1\u03AF\u03B1 \u03A6\u03BB\u03BF\u03CD\u03C0\u03B7',\n },\n value: 'Maria Floupi',\n },\n {\n label: {\n primary: '\u0397\u03BB\u03AD\u03BA\u03C4\u03C1\u03B1 \u0391\u03C0\u03BF\u03C3\u03C4\u03CC\u03BB\u03BF\u03C5',\n },\n value: 'Ilektra Apostolou',\n },\n ],\n },\n },\n {\n type: 'choice:single',\n key: 'role',\n label: {\n primary: '\u03A1\u03CC\u03BB\u03BF\u03C2',\n },\n extra: {\n component: 'Select',\n options: [\n {\n label: {\n primary: '',\n },\n value: '',\n },\n {\n label: {\n primary: '\u0394\u03B9\u03B1\u03C7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE\u03C2',\n },\n value: 'admin',\n },\n {\n label: {\n primary: '\u03A7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE\u03C2',\n },\n value: 'user',\n },\n ],\n },\n },\n {\n type: 'choice:single',\n key: 'rights',\n label: {\n primary: '\u0394\u03B9\u03BA\u03B1\u03B9\u03CE\u03BC\u03B1\u03C4\u03B1',\n },\n extra: {\n component: 'Select',\n options: [\n {\n label: {\n primary: '',\n },\n value: '',\n },\n {\n label: {\n primary: '\u039D\u03B1\u03B9',\n },\n value: true,\n },\n {\n label: {\n primary: '\u038C\u03C7\u03B9',\n },\n value: false,\n },\n ],\n },\n },\n];\n\nconst displayLink = (value) => {\n return <Link href={`#/${value}`}>{value}</Link>;\n};\nconst displayRights = (value) => {\n return <>{value ? <CheckIcon /> : <UncheckIcon />}</>;\n};\n\ninterface DataType {\n name: string;\n case_id: number;\n role: string;\n email: string;\n rights: boolean;\n}\n\nconst data: DataType[] = [\n {\n name: '\u039C\u03AC\u03C1\u03B9\u03BF\u03C2 \u039C\u03B5\u03BD\u03B5\u03BE\u03AD\u03C2',\n case_id: 123,\n role: '\u03A7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE\u03C2',\n email: 'marios@mail.com',\n rights: false,\n },\n {\n name: '\u039A\u03B1\u03BB\u03BB\u03B9\u03CC\u03C0\u03B7 \u03A0\u03B1\u03C0\u03B1\u03B4\u03BF\u03C0\u03BF\u03CD\u03BB\u03BF\u03C5',\n case_id: 124,\n role: '\u03A7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE\u03C2',\n email: 'kalliopi@mail.com',\n rights: false,\n },\n {\n name: '\u039C\u03B1\u03C1\u03AF\u03B1 \u03A6\u03BB\u03BF\u03CD\u03C0\u03B7',\n case_id: 125,\n role: '\u0394\u03B9\u03B1\u03C7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE\u03C2',\n email: 'maria@mail.com',\n rights: true,\n },\n {\n name: '\u0397\u03BB\u03AD\u03BA\u03C4\u03C1\u03B1 \u0391\u03C0\u03BF\u03C3\u03C4\u03CC\u03BB\u03BF\u03C5',\n case_id: 126,\n role: '\u0394\u03B9\u03B1\u03C7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE\u03C2',\n email: 'ilektra@mail.com',\n rights: true,\n },\n];\n\nconst dataConfig: DataConfigType[] = [\n {\n key: 'name',\n title: '\u038C\u03BD\u03BF\u03BC\u03B1',\n },\n {\n key: 'case_id',\n title: '\u0391\u03C1. \u03A5\u03C0\u03CC\u03B8\u03B5\u03C3\u03B7\u03C2',\n displayComponent: displayLink,\n },\n {\n key: 'role',\n title: '\u03A1\u03CC\u03BB\u03BF\u03C2',\n },\n {\n key: 'email',\n title: 'Email',\n },\n {\n key: 'rights',\n title: '\u0394\u03B9\u03BA\u03B1\u03B9\u03CE\u03BC\u03B1\u03C4\u03B1',\n displayComponent: displayRights,\n },\n];\n\ntype InitialFiltersType = Record<(typeof dataConfig)[number]['key'], string>;\n\nconst initialFilters: InitialFiltersType = {\n name: '',\n case_id: '',\n role: '',\n text: '',\n rights: '',\n};\n\nexport const Default = () => {\n const { search, results } = useStaticSearch<\n Record<string, any>,\n InitialFiltersType\n >({\n fields,\n data,\n initialFilters,\n });\n const navigate = (url) => {\n if (window.history.pushState) {\n const newUrl =\n window.location.protocol +\n '//' +\n window.location.host +\n window.location.pathname +\n url;\n window.history.pushState({ path: newUrl }, '', newUrl);\n }\n };\n const { search: urlSearch, values } = useURLParamsSearch(search, {\n navigate,\n fields,\n });\n\n return (\n <FilteredResults\n data={results}\n variant=\"block\"\n currentFilters={values}\n defaultFilters={initialFilters}\n fields={fields}\n onSearch={urlSearch}\n >\n <DataTable dataConfig={dataConfig} data={results} />\n </FilteredResults>\n );\n};\n"],
|
|
5
|
-
"mappings": "AAAA,OAAO,WAAW;AAElB,OAAO,qBAEA;AACP,SAAS,iBAAiB;AAC1B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,WAAW,mBAAmB;AACvC,OAAO,UAAU;AAEjB,MAAM,SAAsB;AAAA,EAC1B;AAAA,IACE,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,MACL,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACL,WAAW;AAAA,MACX,SAAS;AAAA,QACP;AAAA,UACE,OAAO;AAAA,YACL,SAAS;AAAA,UACX;AAAA,UACA,OAAO;AAAA,QACT;AAAA,QACA;AAAA,UACE,OAAO;AAAA,YACL,SAAS;AAAA,UACX;AAAA,UACA,OAAO;AAAA,QACT;AAAA,QACA;AAAA,UACE,OAAO;AAAA,YACL,SAAS;AAAA,UACX;AAAA,UACA,OAAO;AAAA,QACT;AAAA,QACA;AAAA,UACE,OAAO;AAAA,YACL,SAAS;AAAA,UACX;AAAA,UACA,OAAO;AAAA,QACT;AAAA,QACA;AAAA,UACE,OAAO;AAAA,YACL,SAAS;AAAA,UACX;AAAA,UACA,OAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACL,WAAW;AAAA,MACX,SAAS;AAAA,QACP;AAAA,UACE,OAAO;AAAA,YACL,SAAS;AAAA,UACX;AAAA,UACA,OAAO;AAAA,QACT;AAAA,QACA;AAAA,UACE,OAAO;AAAA,YACL,SAAS;AAAA,UACX;AAAA,UACA,OAAO;AAAA,QACT;AAAA,QACA;AAAA,UACE,OAAO;AAAA,YACL,SAAS;AAAA,UACX;AAAA,UACA,OAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACL,WAAW;AAAA,MACX,SAAS;AAAA,QACP;AAAA,UACE,OAAO;AAAA,YACL,SAAS;AAAA,UACX;AAAA,UACA,OAAO;AAAA,QACT;AAAA,QACA;AAAA,UACE,OAAO;AAAA,YACL,SAAS;AAAA,UACX;AAAA,UACA,OAAO;AAAA,QACT;AAAA,QACA;AAAA,UACE,OAAO;AAAA,YACL,SAAS;AAAA,UACX;AAAA,UACA,OAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,MAAM,cAAc,CAAC,UAAU;AAC7B,SAAO,oCAAC,QAAK,MAAM,KAAK,KAAK,MAAK,KAAM;AAC1C;AACA,MAAM,gBAAgB,CAAC,UAAU;AAC/B,SAAO,0DAAG,QAAQ,oCAAC,eAAU,IAAK,oCAAC,iBAAY,CAAG;AACpD;AAUA,MAAM,OAAmB;AAAA,EACvB;AAAA,IACE,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AACF;AAEA,MAAM,aAA+B;AAAA,EACnC;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,kBAAkB;AAAA,EACpB;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,kBAAkB;AAAA,EACpB;AACF;AAIA,MAAM,iBAAqC;AAAA,EACzC,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,MAAM;AAAA,EACN,QAAQ;AACV;AAEO,MAAM,UAAU,MAAM;AAC3B,QAAM,EAAE,QAAQ,QAAQ,IAAI,gBAG1B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,WAAW,CAAC,QAAQ;AACxB,QAAI,OAAO,QAAQ,WAAW;AAC5B,YAAM,SACJ,OAAO,SAAS,WAChB,OACA,OAAO,SAAS,OAChB,OAAO,SAAS,WAChB;AACF,aAAO,QAAQ,UAAU,EAAE,MAAM,OAAO,GAAG,IAAI,MAAM;AAAA,IACvD;AAAA,EACF;AACA,QAAM,EAAE,QAAQ,WAAW,OAAO,IAAI,mBAAmB,QAAQ;AAAA,IAC/D;AAAA,IACA;AAAA,EACF,CAAC;AAED,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,SAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,MAChB;AAAA,MACA,UAAU;AAAA;AAAA,IAEV,oCAAC,aAAU,YAAwB,MAAM,SAAS;AAAA,EACpD;AAEJ;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { useState, useEffect, useMemo } from "react";
|
|
2
|
-
function isBooleanString(str) {
|
|
3
|
-
return /^(true|false)$/i.test(str);
|
|
4
|
-
}
|
|
5
|
-
function normalizeText(text) {
|
|
6
|
-
return text.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
|
|
7
|
-
}
|
|
8
|
-
const getOptionLabelForSelectValue = (field, value) => {
|
|
9
|
-
if (field.extra?.options) {
|
|
10
|
-
const matchedOption = field.extra.options.find(
|
|
11
|
-
(option) => option.value.toString() === value?.toString()
|
|
12
|
-
);
|
|
13
|
-
if (matchedOption) {
|
|
14
|
-
return matchedOption.label.primary;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
return value;
|
|
18
|
-
};
|
|
19
|
-
const useURLParamsSearch = (searchFunc, { navigate, fields }) => {
|
|
20
|
-
const urlParams = new URLSearchParams(window.location.search);
|
|
21
|
-
const currentParams = Object.fromEntries(urlParams.entries());
|
|
22
|
-
const values = fields.reduce((newValues, field) => {
|
|
23
|
-
if (currentParams[field.key]) {
|
|
24
|
-
newValues[field.key] = currentParams[field.key];
|
|
25
|
-
}
|
|
26
|
-
return newValues;
|
|
27
|
-
}, {});
|
|
28
|
-
const search = (params) => {
|
|
29
|
-
navigate(
|
|
30
|
-
"?" + new URLSearchParams(
|
|
31
|
-
// @ts-ignore
|
|
32
|
-
Object.entries({ ...currentParams, ...params }).filter(
|
|
33
|
-
([, value]) => !!value
|
|
34
|
-
)
|
|
35
|
-
).toString()
|
|
36
|
-
);
|
|
37
|
-
return searchFunc(params);
|
|
38
|
-
};
|
|
39
|
-
return { search, values };
|
|
40
|
-
};
|
|
41
|
-
function useStaticSearch({ fields, data, initialFilters }) {
|
|
42
|
-
const [results, setResults] = useState(data);
|
|
43
|
-
useEffect(() => {
|
|
44
|
-
search(initialFilters);
|
|
45
|
-
}, [initialFilters]);
|
|
46
|
-
const search = (filters) => {
|
|
47
|
-
if (!filters || Object.keys(filters).every((key) => filters[key] === "")) {
|
|
48
|
-
setResults(data);
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
const newResults = data.filter((row) => {
|
|
52
|
-
const filterKeys = Object.keys(filters);
|
|
53
|
-
const enabledFilters = filterKeys.filter(
|
|
54
|
-
(filterKey) => filters[filterKey]?.toString() && row[filterKey]?.toString()
|
|
55
|
-
);
|
|
56
|
-
const freeTextFilters = filterKeys.filter(
|
|
57
|
-
(filterKey) => filters[filterKey]?.toString() && !row[filterKey]?.toString()
|
|
58
|
-
);
|
|
59
|
-
let filtersMatchingValue = false;
|
|
60
|
-
if (enabledFilters.length > 0) {
|
|
61
|
-
filtersMatchingValue = enabledFilters.every((filterKey) => {
|
|
62
|
-
if (filters[filterKey]?.toString() !== row[filterKey]?.toString()) {
|
|
63
|
-
const field = fields.find((f) => f.key === filterKey);
|
|
64
|
-
const optionsObj = field?.extra?.options.find(
|
|
65
|
-
(option) => option?.label?.primary === row[filterKey]
|
|
66
|
-
);
|
|
67
|
-
return optionsObj?.value.toString() === filters[filterKey]?.toString();
|
|
68
|
-
}
|
|
69
|
-
filtersMatchingValue = true;
|
|
70
|
-
return filtersMatchingValue;
|
|
71
|
-
});
|
|
72
|
-
if (!filtersMatchingValue) {
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
if (freeTextFilters.length > 0) {
|
|
77
|
-
return freeTextFilters.every((filterKey) => {
|
|
78
|
-
return Object.values(row).some((value) => {
|
|
79
|
-
if (typeof value !== "string") {
|
|
80
|
-
return false;
|
|
81
|
-
}
|
|
82
|
-
const normalizedItemValue = normalizeText(
|
|
83
|
-
value.toString().toLowerCase()
|
|
84
|
-
);
|
|
85
|
-
const normalizedFilterValue = normalizeText(
|
|
86
|
-
filters[filterKey]?.toString().toLowerCase().trim() || ""
|
|
87
|
-
);
|
|
88
|
-
return normalizedItemValue.includes(normalizedFilterValue);
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
return filtersMatchingValue;
|
|
93
|
-
});
|
|
94
|
-
setResults(newResults);
|
|
95
|
-
};
|
|
96
|
-
return useMemo(() => ({ search, results }), [search, results]);
|
|
97
|
-
}
|
|
98
|
-
export {
|
|
99
|
-
getOptionLabelForSelectValue,
|
|
100
|
-
isBooleanString,
|
|
101
|
-
normalizeText,
|
|
102
|
-
useStaticSearch,
|
|
103
|
-
useURLParamsSearch
|
|
104
|
-
};
|
|
105
|
-
//# sourceMappingURL=hooks.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/FilteredResults/hooks.ts"],
|
|
4
|
-
"sourcesContent": ["import { useState, useEffect, useMemo } from 'react';\nimport { FieldSpec } from '@digigov/form/types';\nimport { ScalarType } from '@digigov/react-modules/FilteredResults';\n\nexport function isBooleanString(str: string): boolean {\n return /^(true|false)$/i.test(str);\n}\n\nexport function normalizeText(text: string): string {\n return text.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n}\n\nexport const getOptionLabelForSelectValue = (field, value) => {\n if (field.extra?.options) {\n const matchedOption = field.extra.options.find(\n (option) => option.value.toString() === value?.toString()\n );\n if (matchedOption) {\n return matchedOption.label.primary;\n }\n }\n return value;\n};\n\nexport const useURLParamsSearch = (searchFunc, { navigate, fields }) => {\n const urlParams = new URLSearchParams(window.location.search);\n const currentParams = Object.fromEntries(urlParams.entries());\n const values = fields.reduce((newValues, field) => {\n if (currentParams[field.key]) {\n newValues[field.key] = currentParams[field.key];\n }\n return newValues;\n }, {});\n\n const search = (params) => {\n navigate(\n '?' +\n new URLSearchParams(\n // @ts-ignore\n Object.entries({ ...currentParams, ...params }).filter(\n ([, value]) => !!value\n )\n ).toString()\n );\n return searchFunc(params);\n };\n return { search, values };\n};\n\ninterface UseStaticSearchProps<\n DT extends Record<string, ScalarType>,\n FT extends Record<string, ScalarType>,\n> {\n fields: FieldSpec[];\n data: DT[];\n initialFilters: FT;\n}\n\nexport function useStaticSearch<\n DT extends Record<string, ScalarType>,\n FT extends Record<string, ScalarType>,\n>({ fields, data, initialFilters }: UseStaticSearchProps<DT, FT>) {\n const [results, setResults] = useState<DT[]>(data);\n\n useEffect(() => {\n search(initialFilters);\n }, [initialFilters]);\n\n const search = (filters: FT) => {\n if (!filters || Object.keys(filters).every((key) => filters[key] === '')) {\n setResults(data);\n return;\n }\n\n const newResults = data.filter((row) => {\n const filterKeys = Object.keys(filters);\n const enabledFilters = filterKeys.filter(\n (filterKey) =>\n filters[filterKey]?.toString() && row[filterKey]?.toString()\n );\n const freeTextFilters = filterKeys.filter(\n (filterKey) =>\n filters[filterKey]?.toString() && !row[filterKey]?.toString()\n );\n let filtersMatchingValue = false;\n\n // Filter the fields that exists as columns in table\n if (enabledFilters.length > 0) {\n filtersMatchingValue = enabledFilters.every((filterKey) => {\n if (filters[filterKey]?.toString() !== row[filterKey]?.toString()) {\n const field = fields.find((f) => f.key === filterKey);\n const optionsObj = field?.extra?.options.find(\n (option) => option?.label?.primary === row[filterKey]\n );\n return (\n optionsObj?.value.toString() === filters[filterKey]?.toString()\n );\n }\n filtersMatchingValue = true;\n return filtersMatchingValue;\n });\n if (!filtersMatchingValue) {\n return false;\n }\n }\n // Filter the free text fields (doesn't exist as columns)\n if (freeTextFilters.length > 0) {\n return freeTextFilters.every((filterKey) => {\n return Object.values(row).some((value) => {\n if (typeof value !== 'string') {\n return false;\n }\n const normalizedItemValue = normalizeText(\n value.toString().toLowerCase()\n );\n\n const normalizedFilterValue = normalizeText(\n filters[filterKey]?.toString().toLowerCase().trim() || ''\n );\n return normalizedItemValue.includes(normalizedFilterValue);\n });\n });\n }\n return filtersMatchingValue;\n });\n\n setResults(newResults);\n };\n\n return useMemo(() => ({ search, results }), [search, results]);\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/FilteredResults/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useContext, useEffect } from 'react';\nimport FormBuilder from '@digigov/form/FormBuilder';\nimport { FormContext } from '@digigov/form/FormContext';\nimport { FieldSpec } from '@digigov/form/types';\nimport { FilterChips } from '@digigov/react-modules/FilteredResults/FilterChips';\nimport { FilterFields } from '@digigov/react-modules/FilteredResults/FilterFields';\nimport FilterContainer, {\n FilterContent,\n FilterHeadingContainer,\n} from '@digigov/ui/app/FilterContainer';\nimport { Button } from '@digigov/ui/form/Button';\nimport { Grid } from '@digigov/ui/layouts/Grid';\nimport { SectionBreak } from '@digigov/ui/layouts/SectionBreak';\nimport { Drawer, DrawerHeading } from '@digigov/ui/navigation/Drawer';\nimport { useDrawer } from '@digigov/ui/navigation/Drawer/hooks';\nimport { Heading } from '@digigov/ui/typography/Heading';\n\nexport type ScalarType = string | number | boolean | null | undefined;\n\nexport interface DataConfigType {\n key: string;\n title: string;\n displayComponent?: (value: string | number | boolean) => React.ReactNode;\n}\nexport interface FilteredResultsProps<\n DT extends Record<string, ScalarType>,\n FT extends Record<string, ScalarType>,\n> {\n fields: FieldSpec[];\n data: DT[];\n variant?: 'drawer-left' | 'drawer-right' | 'block';\n defaultFilters?: FT;\n currentFilters?: FT;\n onSearch: (filters: unknown) => void;\n children?: React.ReactNode;\n}\n\nexport const FormBuilderSyncValues = ({ values, autoSubmit }) => {\n const form = useContext(FormContext);\n const previousValues = form.getValues();\n useEffect(() => {\n const mergedObject = { ...values, ...previousValues };\n let shouldSubmit = false;\n for (const key in mergedObject) {\n // catching the filters that have been parsed from url & avoid continuous submitting\n if (values[key] !== undefined && previousValues[key] !== values[key]) {\n shouldSubmit = true;\n previousValues[key] = values[key];\n form.setValue(key, values[key]);\n }\n }\n if (autoSubmit && shouldSubmit) {\n form.submit();\n }\n }, [values]);\n return <></>;\n};\n\nexport const DrawerFilteredResults = React.forwardRef<HTMLDivElement, unknown>(\n function DrawerFilteredResults(\n { fields, direction = 'left', ...props },\n ref\n ) {\n const { registerDrawer, registerAction, currentOpen } = useDrawer();\n\n return (\n <>\n {currentOpen && (\n <Grid item xs={12} md={12} lg={4} ref={ref}>\n <Drawer\n {...registerDrawer('filters-drawer', {\n upRelative: 'lg',\n direction,\n })}\n >\n <DrawerHeading {...registerAction('filters-drawer', 'close')}>\n <Heading size=\"md\">\u03A6\u03AF\u03BB\u03C4\u03C1\u03B1</Heading>\n </DrawerHeading>\n <FilterContent>\n <FilterFields fields={fields} horizontal={false} />\n </FilterContent>\n </Drawer>\n </Grid>\n )}\n <Grid item xs={12} md={12} lg={currentOpen ? 8 : 12}>\n <Button\n mb={4}\n {...registerAction(\n 'filters-drawer',\n currentOpen === 'filters-drawer' ? 'close' : 'open'\n )}\n color=\"secondary\"\n >\n \u03A6\u03AF\u03BB\u03C4\u03C1\u03B1\n </Button>\n <FilterChips />\n {props.children}\n </Grid>\n </>\n );\n }\n);\n\nexport const BlockFilteredResults = React.forwardRef<HTMLDivElement, unknown>(\n function BlockFilteredResults({ fields, ...props }, ref) {\n const [open, setOpen] = React.useState(true);\n return (\n <Grid item xs={12} ref={ref}>\n <FilterContainer open={open}>\n <FilterHeadingContainer onClick={() => setOpen(false)}>\n <Heading size=\"md\">\u03A6\u03AF\u03BB\u03C4\u03C1\u03B1</Heading>\n </FilterHeadingContainer>\n <FilterContent>\n <FilterChips />\n <FilterFields fields={fields} horizontal={true} />\n </FilterContent>\n </FilterContainer>\n <Button\n color=\"secondary\"\n mdUpHidden\n mb={4}\n onClick={() => setOpen(true)}\n >\n \u03A6\u03AF\u03BB\u03C4\u03C1\u03B1\n </Button>\n <SectionBreak size=\"md\" visible={false} />\n {props.children}\n </Grid>\n );\n }\n);\n\nexport const FilteredResults = React.forwardRef<\n HTMLFormElement,\n FilteredResultsProps<Record<string, ScalarType>, Record<string, ScalarType>>\n>(function FilteredResults(\n {\n fields,\n onSearch,\n variant = 'block',\n defaultFilters,\n currentFilters,\n children,\n },\n ref\n) {\n const isDrawer = variant.startsWith('drawer-');\n return (\n <FormBuilder\n onSubmit={onSearch}\n initial={defaultFilters}\n fields={fields}\n grid\n ref={ref}\n >\n {currentFilters && (\n <FormBuilderSyncValues values={currentFilters} autoSubmit={true} />\n )}\n {isDrawer ? (\n // @ts-ignore\n <DrawerFilteredResults\n fields={fields}\n direction={variant.split('-')[1]}\n >\n {children}\n </DrawerFilteredResults>\n ) : (\n // @ts-ignore\n <BlockFilteredResults fields={fields}>{children}</BlockFilteredResults>\n )}\n </FormBuilder>\n );\n});\n\nexport default FilteredResults;\n"],
|
|
5
|
-
"mappings": "AAAA,OAAO,SAAS,YAAY,iBAAiB;AAC7C,OAAO,iBAAiB;AACxB,SAAS,mBAAmB;AAE5B,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAC7B,OAAO;AAAA,EACL;AAAA,EACA;AAAA,OACK;AACP,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,oBAAoB;AAC7B,SAAS,QAAQ,qBAAqB;AACtC,SAAS,iBAAiB;AAC1B,SAAS,eAAe;AAsBjB,MAAM,wBAAwB,CAAC,EAAE,QAAQ,WAAW,MAAM;AAC/D,QAAM,OAAO,WAAW,WAAW;AACnC,QAAM,iBAAiB,KAAK,UAAU;AACtC,YAAU,MAAM;AACd,UAAM,eAAe,EAAE,GAAG,QAAQ,GAAG,eAAe;AACpD,QAAI,eAAe;AACnB,eAAW,OAAO,cAAc;AAE9B,UAAI,OAAO,GAAG,MAAM,UAAa,eAAe,GAAG,MAAM,OAAO,GAAG,GAAG;AACpE,uBAAe;AACf,uBAAe,GAAG,IAAI,OAAO,GAAG;AAChC,aAAK,SAAS,KAAK,OAAO,GAAG,CAAC;AAAA,MAChC;AAAA,IACF;AACA,QAAI,cAAc,cAAc;AAC9B,WAAK,OAAO;AAAA,IACd;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AACX,SAAO,wDAAE;AACX;AAEO,MAAM,wBAAwB,MAAM;AAAA,EACzC,SAASA,uBACP,EAAE,QAAQ,YAAY,QAAQ,GAAG,MAAM,GACvC,KACA;AACA,UAAM,EAAE,gBAAgB,gBAAgB,YAAY,IAAI,UAAU;AAElE,WACE,0DACG,eACC,oCAAC,QAAK,MAAI,MAAC,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,OAChC;AAAA,MAAC;AAAA;AAAA,QACE,GAAG,eAAe,kBAAkB;AAAA,UACnC,YAAY;AAAA,UACZ;AAAA,QACF,CAAC;AAAA;AAAA,MAED,oCAAC,iBAAe,GAAG,eAAe,kBAAkB,OAAO,KACzD,oCAAC,WAAQ,MAAK,QAAK,sCAAM,CAC3B;AAAA,MACA,oCAAC,qBACC,oCAAC,gBAAa,QAAgB,YAAY,OAAO,CACnD;AAAA,IACF,CACF,GAEF,oCAAC,QAAK,MAAI,MAAC,IAAI,IAAI,IAAI,IAAI,IAAI,cAAc,IAAI,MAC/C;AAAA,MAAC;AAAA;AAAA,QACC,IAAI;AAAA,QACH,GAAG;AAAA,UACF;AAAA,UACA,gBAAgB,mBAAmB,UAAU;AAAA,QAC/C;AAAA,QACA,OAAM;AAAA;AAAA,MACP;AAAA,IAED,GACA,oCAAC,iBAAY,GACZ,MAAM,QACT,CACF;AAAA,EAEJ;AACF;AAEO,MAAM,uBAAuB,MAAM;AAAA,EACxC,SAASC,sBAAqB,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK;AACvD,UAAM,CAAC,MAAM,OAAO,IAAI,MAAM,SAAS,IAAI;AAC3C,WACE,oCAAC,QAAK,MAAI,MAAC,IAAI,IAAI,OACjB,oCAAC,mBAAgB,QACf,oCAAC,0BAAuB,SAAS,MAAM,QAAQ,KAAK,KAClD,oCAAC,WAAQ,MAAK,QAAK,sCAAM,CAC3B,GACA,oCAAC,qBACC,oCAAC,iBAAY,GACb,oCAAC,gBAAa,QAAgB,YAAY,MAAM,CAClD,CACF,GACA;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,YAAU;AAAA,QACV,IAAI;AAAA,QACJ,SAAS,MAAM,QAAQ,IAAI;AAAA;AAAA,MAC5B;AAAA,IAED,GACA,oCAAC,gBAAa,MAAK,MAAK,SAAS,OAAO,GACvC,MAAM,QACT;AAAA,EAEJ;AACF;AAEO,MAAM,kBAAkB,MAAM,WAGnC,SAASC,iBACT;AAAA,EACE;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AACF,GACA,KACA;AACA,QAAM,WAAW,QAAQ,WAAW,SAAS;AAC7C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAU;AAAA,MACV,SAAS;AAAA,MACT;AAAA,MACA,MAAI;AAAA,MACJ;AAAA;AAAA,IAEC,kBACC,oCAAC,yBAAsB,QAAQ,gBAAgB,YAAY,MAAM;AAAA,IAElE;AAAA;AAAA,MAEC;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,WAAW,QAAQ,MAAM,GAAG,EAAE,CAAC;AAAA;AAAA,QAE9B;AAAA,MACH;AAAA;AAAA;AAAA,MAGA,oCAAC,wBAAqB,UAAiB,QAAS;AAAA;AAAA,EAEpD;AAEJ,CAAC;AAED,IAAO,0BAAQ;",
|
|
6
|
-
"names": ["DrawerFilteredResults", "BlockFilteredResults", "FilteredResults"]
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
-
mod
|
|
26
|
-
));
|
|
27
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
-
var DataTable_exports = {};
|
|
29
|
-
__export(DataTable_exports, {
|
|
30
|
-
DataTable: () => DataTable
|
|
31
|
-
});
|
|
32
|
-
module.exports = __toCommonJS(DataTable_exports);
|
|
33
|
-
var import_react = __toESM(require("react"));
|
|
34
|
-
var import_Table = require("@digigov/ui/content/Table");
|
|
35
|
-
function DataTable({ dataConfig, data }) {
|
|
36
|
-
return /* @__PURE__ */ import_react.default.createElement(import_Table.TableContainer, null, /* @__PURE__ */ import_react.default.createElement(import_Table.Table, null, /* @__PURE__ */ import_react.default.createElement(import_Table.TableHead, null, /* @__PURE__ */ import_react.default.createElement(import_Table.TableRow, null, dataConfig.map((itenConfig) => /* @__PURE__ */ import_react.default.createElement(import_Table.TableHeadCell, { key: itenConfig.key }, itenConfig.title)))), /* @__PURE__ */ import_react.default.createElement(import_Table.TableBody, null, data.length > 0 ? data.map((item, index) => /* @__PURE__ */ import_react.default.createElement(import_Table.TableRow, { key: index }, dataConfig.map((itemConfig, idx) => /* @__PURE__ */ import_react.default.createElement(import_Table.TableDataCell, { key: idx }, itemConfig.displayComponent ? itemConfig.displayComponent(item[itemConfig.key]) : item[itemConfig.key])))) : /* @__PURE__ */ import_react.default.createElement(import_Table.TableNoDataRow, null, "\u0394\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03BF\u03C5\u03BD \u03B1\u03C0\u03BF\u03C4\u03B5\u03BB\u03AD\u03C3\u03BC\u03B1\u03C4\u03B1"))));
|
|
37
|
-
}
|
|
38
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
39
|
-
0 && (module.exports = {
|
|
40
|
-
DataTable
|
|
41
|
-
});
|
|
42
|
-
//# sourceMappingURL=DataTable.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/FilteredResults/DataTable.tsx"],
|
|
4
|
-
"sourcesContent": ["import React from 'react';\n\nimport {\n Table,\n TableBody,\n TableContainer,\n TableDataCell,\n TableHead,\n TableHeadCell,\n TableNoDataRow,\n TableRow,\n} from '@digigov/ui/content/Table';\n\nexport function DataTable({ dataConfig, data }) {\n return (\n <TableContainer>\n <Table>\n <TableHead>\n <TableRow>\n {dataConfig.map((itenConfig) => (\n <TableHeadCell key={itenConfig.key}>\n {itenConfig.title}\n </TableHeadCell>\n ))}\n </TableRow>\n </TableHead>\n <TableBody>\n {data.length > 0 ? (\n data.map((item, index) => (\n <TableRow key={index}>\n {dataConfig.map((itemConfig, idx) => (\n <TableDataCell key={idx}>\n {itemConfig.displayComponent\n ? itemConfig.displayComponent(item[itemConfig.key])\n : item[itemConfig.key]}\n </TableDataCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableNoDataRow>\u0394\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03BF\u03C5\u03BD \u03B1\u03C0\u03BF\u03C4\u03B5\u03BB\u03AD\u03C3\u03BC\u03B1\u03C4\u03B1</TableNoDataRow>\n )}\n </TableBody>\n </Table>\n </TableContainer>\n );\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAElB,mBASO;AAEA,SAAS,UAAU,EAAE,YAAY,KAAK,GAAG;AAC9C,SACE,6BAAAA,QAAA,cAAC,mCACC,6BAAAA,QAAA,cAAC,0BACC,6BAAAA,QAAA,cAAC,8BACC,6BAAAA,QAAA,cAAC,6BACE,WAAW,IAAI,CAAC,eACf,6BAAAA,QAAA,cAAC,8BAAc,KAAK,WAAW,OAC5B,WAAW,KACd,CACD,CACH,CACF,GACA,6BAAAA,QAAA,cAAC,8BACE,KAAK,SAAS,IACb,KAAK,IAAI,CAAC,MAAM,UACd,6BAAAA,QAAA,cAAC,yBAAS,KAAK,SACZ,WAAW,IAAI,CAAC,YAAY,QAC3B,6BAAAA,QAAA,cAAC,8BAAc,KAAK,OACjB,WAAW,mBACR,WAAW,iBAAiB,KAAK,WAAW,GAAG,CAAC,IAChD,KAAK,WAAW,GAAG,CACzB,CACD,CACH,CACD,IAED,6BAAAA,QAAA,cAAC,mCAAe,8IAAyB,CAE7C,CACF,CACF;AAEJ;",
|
|
6
|
-
"names": ["React"]
|
|
7
|
-
}
|