@blaze-cms/plugin-data-ui 0.146.0-rc-eagle.0 → 0.146.0-rc-eagle-3.2
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/README.md +9 -2
- package/lib/components/EntityManager/Entity/Entity.js +1 -1
- package/lib/components/EntityManager/Entity/Entity.js.map +1 -1
- package/lib/components/EntityManager/Entity/actions-handlers/create/submit.js +4 -15
- package/lib/components/EntityManager/Entity/actions-handlers/create/submit.js.map +1 -1
- package/lib/components/EntityManager/utils/entity.js +2 -3
- package/lib/components/EntityManager/utils/entity.js.map +1 -1
- package/lib/components/ListingTable/SearchFilter/RelationMultiSelectFilter.js +181 -0
- package/lib/components/ListingTable/SearchFilter/RelationMultiSelectFilter.js.map +1 -0
- package/lib/components/ListingTable/SearchFilter/SearchContainer.js +348 -52
- package/lib/components/ListingTable/SearchFilter/SearchContainer.js.map +1 -1
- package/lib/components/ListingTable/SearchFilter/SearchFilter.js +15 -3
- package/lib/components/ListingTable/SearchFilter/SearchFilter.js.map +1 -1
- package/lib/components/ListingTable/SearchFilter/helpers.js +41 -8
- package/lib/components/ListingTable/SearchFilter/helpers.js.map +1 -1
- package/lib/index.js +7 -0
- package/lib/index.js.map +1 -1
- package/lib/utils/build-create-entity-mutation.js +3 -19
- package/lib/utils/build-create-entity-mutation.js.map +1 -1
- package/lib/utils/get-default-query-params.js +17 -5
- package/lib/utils/get-default-query-params.js.map +1 -1
- package/lib-es/components/EntityDataListing/EntityDataListing.js +33 -0
- package/lib-es/components/EntityDataListing/EntityDataListing.js.map +1 -0
- package/lib-es/components/EntityDataListing/index.js +3 -0
- package/lib-es/components/EntityDataListing/index.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js +30 -0
- package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/index.js +3 -0
- package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/index.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/Entity.js +453 -0
- package/lib-es/components/EntityManager/Entity/Entity.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/EntityHeader/EntityHeader.js +103 -0
- package/lib-es/components/EntityManager/Entity/EntityHeader/EntityHeader.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js +47 -0
- package/lib-es/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/index.js +3 -0
- package/lib-es/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/index.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/EntityHeader/index.js +3 -0
- package/lib-es/components/EntityManager/Entity/EntityHeader/index.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js +30 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js +29 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js +49 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js +136 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js +36 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/create/index.js +5 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/create/index.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/create/submit.js +36 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/create/submit.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/delete/delete.js +32 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/delete/delete.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/delete/index.js +5 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/delete/index.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/index.js +12 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/index.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/shared/index.js +5 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/shared/index.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/shared/publish.js +39 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/shared/publish.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/update/index.js +5 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/update/index.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/update/submit.js +53 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/update/submit.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/index.js +3 -0
- package/lib-es/components/EntityManager/Entity/index.js.map +1 -0
- package/lib-es/components/EntityManager/EntityManager.js +133 -0
- package/lib-es/components/EntityManager/EntityManager.js.map +1 -0
- package/lib-es/components/EntityManager/index.js +3 -0
- package/lib-es/components/EntityManager/index.js.map +1 -0
- package/lib-es/components/EntityManager/utils/RecordEditContext/index.js +6 -0
- package/lib-es/components/EntityManager/utils/RecordEditContext/index.js.map +1 -0
- package/lib-es/components/EntityManager/utils/data-mappers.js +55 -0
- package/lib-es/components/EntityManager/utils/data-mappers.js.map +1 -0
- package/lib-es/components/EntityManager/utils/entity.js +69 -0
- package/lib-es/components/EntityManager/utils/entity.js.map +1 -0
- package/lib-es/components/EntityManager/utils/entityAvailableActions.js +56 -0
- package/lib-es/components/EntityManager/utils/entityAvailableActions.js.map +1 -0
- package/lib-es/components/EntityManager/utils/is-form-empty.js +9 -0
- package/lib-es/components/EntityManager/utils/is-form-empty.js.map +1 -0
- package/lib-es/components/EntityManager/utils/query.js +23 -0
- package/lib-es/components/EntityManager/utils/query.js.map +1 -0
- package/lib-es/components/InfoBoxes/InfoBoxTooltip.js +36 -0
- package/lib-es/components/InfoBoxes/InfoBoxTooltip.js.map +1 -0
- package/lib-es/components/InfoBoxes/InfoBoxes.js +28 -0
- package/lib-es/components/InfoBoxes/InfoBoxes.js.map +1 -0
- package/lib-es/components/InfoBoxes/container/InfoBoxContainer.js +38 -0
- package/lib-es/components/InfoBoxes/container/InfoBoxContainer.js.map +1 -0
- package/lib-es/components/InfoBoxes/helpers/build-dynamic-query.js +28 -0
- package/lib-es/components/InfoBoxes/helpers/build-dynamic-query.js.map +1 -0
- package/lib-es/components/InfoBoxes/hooks/useData.js +39 -0
- package/lib-es/components/InfoBoxes/hooks/useData.js.map +1 -0
- package/lib-es/components/InfoBoxes/hooks/useInfoBox.js +17 -0
- package/lib-es/components/InfoBoxes/hooks/useInfoBox.js.map +1 -0
- package/lib-es/components/InfoBoxes/index.js +3 -0
- package/lib-es/components/InfoBoxes/index.js.map +1 -0
- package/lib-es/components/InfoBoxes/presentational/InfoBox.js +40 -0
- package/lib-es/components/InfoBoxes/presentational/InfoBox.js.map +1 -0
- package/lib-es/components/InfoBoxes/presentational/InfoBoxLabel.js +12 -0
- package/lib-es/components/InfoBoxes/presentational/InfoBoxLabel.js.map +1 -0
- package/lib-es/components/InfoBoxes/presentational/InfoBoxValue.js +30 -0
- package/lib-es/components/InfoBoxes/presentational/InfoBoxValue.js.map +1 -0
- package/lib-es/components/ListingTable/ListingTable.js +208 -0
- package/lib-es/components/ListingTable/ListingTable.js.map +1 -0
- package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js +72 -0
- package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js.map +1 -0
- package/lib-es/components/ListingTable/ListingTableContent/index.js +3 -0
- package/lib-es/components/ListingTable/ListingTableContent/index.js.map +1 -0
- package/lib-es/components/ListingTable/SearchFilter/RelationMultiSelectFilter.js +173 -0
- package/lib-es/components/ListingTable/SearchFilter/RelationMultiSelectFilter.js.map +1 -0
- package/lib-es/components/ListingTable/SearchFilter/SearchContainer.js +503 -0
- package/lib-es/components/ListingTable/SearchFilter/SearchContainer.js.map +1 -0
- package/lib-es/components/ListingTable/SearchFilter/SearchFilter.js +52 -0
- package/lib-es/components/ListingTable/SearchFilter/SearchFilter.js.map +1 -0
- package/lib-es/components/ListingTable/SearchFilter/helpers.js +127 -0
- package/lib-es/components/ListingTable/SearchFilter/helpers.js.map +1 -0
- package/lib-es/components/ListingTable/SearchFilter/querys.js +8 -0
- package/lib-es/components/ListingTable/SearchFilter/querys.js.map +1 -0
- package/lib-es/components/ListingTable/TableActions/TableActions.js +34 -0
- package/lib-es/components/ListingTable/TableActions/TableActions.js.map +1 -0
- package/lib-es/components/ListingTable/TableActions/index.js +3 -0
- package/lib-es/components/ListingTable/TableActions/index.js.map +1 -0
- package/lib-es/components/ListingTable/index.js +3 -0
- package/lib-es/components/ListingTable/index.js.map +1 -0
- package/lib-es/components/ListingTable/mappers/populate-rows.js +140 -0
- package/lib-es/components/ListingTable/mappers/populate-rows.js.map +1 -0
- package/lib-es/components/ListingTable/service/index.js +87 -0
- package/lib-es/components/ListingTable/service/index.js.map +1 -0
- package/lib-es/components/Tabs/index.js +38 -0
- package/lib-es/components/Tabs/index.js.map +1 -0
- package/lib-es/components/hooks/useCallbackDebounce.js +12 -0
- package/lib-es/components/hooks/useCallbackDebounce.js.map +1 -0
- package/lib-es/constants.js +42 -0
- package/lib-es/constants.js.map +1 -0
- package/lib-es/icons/ContentIcon.js +80 -0
- package/lib-es/icons/ContentIcon.js.map +1 -0
- package/lib-es/icons/SettingsIcon.js +36 -0
- package/lib-es/icons/SettingsIcon.js.map +1 -0
- package/lib-es/icons/TaxonomyIcon.js +60 -0
- package/lib-es/icons/TaxonomyIcon.js.map +1 -0
- package/lib-es/icons/UsersIcon.js +33 -0
- package/lib-es/icons/UsersIcon.js.map +1 -0
- package/lib-es/icons/index.js +6 -0
- package/lib-es/icons/index.js.map +1 -0
- package/lib-es/index.js +93 -0
- package/lib-es/index.js.map +1 -0
- package/lib-es/utils/add-content-menu-items.js +72 -0
- package/lib-es/utils/add-content-menu-items.js.map +1 -0
- package/lib-es/utils/build-create-entity-mutation.js +7 -0
- package/lib-es/utils/build-create-entity-mutation.js.map +1 -0
- package/lib-es/utils/build-delete-entity-mutation.js +18 -0
- package/lib-es/utils/build-delete-entity-mutation.js.map +1 -0
- package/lib-es/utils/build-listing-query.js +28 -0
- package/lib-es/utils/build-listing-query.js.map +1 -0
- package/lib-es/utils/build-update-data-query.js +24 -0
- package/lib-es/utils/build-update-data-query.js.map +1 -0
- package/lib-es/utils/build-update-publish-unpublish-mutation.js +22 -0
- package/lib-es/utils/build-update-publish-unpublish-mutation.js.map +1 -0
- package/lib-es/utils/get-default-query-params.js +29 -0
- package/lib-es/utils/get-default-query-params.js.map +1 -0
- package/lib-es/utils/hoc/withContext.js +8 -0
- package/lib-es/utils/hoc/withContext.js.map +1 -0
- package/lib-es/utils/hooks/useToggle.js +8 -0
- package/lib-es/utils/hooks/useToggle.js.map +1 -0
- package/lib-es/utils/index.js +3 -0
- package/lib-es/utils/index.js.map +1 -0
- package/package.json +16 -12
- package/src/components/EntityManager/Entity/Entity.js +1 -1
- package/src/components/EntityManager/Entity/actions-handlers/create/submit.js +4 -11
- package/src/components/EntityManager/utils/entity.js +4 -10
- package/src/components/ListingTable/SearchFilter/RelationMultiSelectFilter.js +160 -0
- package/src/components/ListingTable/SearchFilter/SearchContainer.js +407 -74
- package/src/components/ListingTable/SearchFilter/SearchFilter.js +14 -3
- package/src/components/ListingTable/SearchFilter/helpers.js +55 -8
- package/src/index.js +2 -0
- package/src/utils/build-create-entity-mutation.js +5 -28
- package/src/utils/get-default-query-params.js +21 -9
- package/CHANGELOG.md +0 -1932
- package/babel.config.js +0 -3
- package/jest.config.js +0 -5
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { DEFAULT_FILTER_OPTION_LABEL } from '../../../constants';
|
|
2
|
+
const updateListFilters = (searchTerm, selectedFilters, setListFilters, fields = []) => {
|
|
3
|
+
const filters = [];
|
|
4
|
+
if (searchTerm) {
|
|
5
|
+
filters.push({
|
|
6
|
+
simple_query_string: {
|
|
7
|
+
query: `${searchTerm}`,
|
|
8
|
+
default_operator: 'AND',
|
|
9
|
+
fields: fields.map(field => field)
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
Object.entries(selectedFilters).forEach(([filterKey, filterValue]) => {
|
|
14
|
+
const isEmptyArray = Array.isArray(filterValue) && filterValue.length === 0;
|
|
15
|
+
if (filterValue == null || filterValue === '' || filterValue === DEFAULT_FILTER_OPTION_LABEL || isEmptyArray) return;
|
|
16
|
+
const field = `${filterKey}.keyword`;
|
|
17
|
+
if (Array.isArray(filterValue)) {
|
|
18
|
+
if (filterValue.length > 1) {
|
|
19
|
+
filters.push({
|
|
20
|
+
terms: {
|
|
21
|
+
[field]: filterValue
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
} else {
|
|
25
|
+
filters.push({
|
|
26
|
+
term: {
|
|
27
|
+
[field]: filterValue[0]
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
} else {
|
|
32
|
+
filters.push({
|
|
33
|
+
term: {
|
|
34
|
+
[field]: filterValue
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
setListFilters(filters);
|
|
40
|
+
};
|
|
41
|
+
const getKeywordSearchFilters = schema => {
|
|
42
|
+
if (!schema || !schema.properties) return [];
|
|
43
|
+
const {
|
|
44
|
+
properties = {},
|
|
45
|
+
dynamicProperties = {}
|
|
46
|
+
} = schema;
|
|
47
|
+
const propertyKeyword = Object.entries(properties).filter(isFilterKeywordItem);
|
|
48
|
+
const dynamicPropertyKeywords = Object.entries(dynamicProperties).filter(isFilterKeywordItem);
|
|
49
|
+
return [...propertyKeyword, ...dynamicPropertyKeywords];
|
|
50
|
+
};
|
|
51
|
+
const isFilterKeywordItem = ([, item]) => item.adminListingOptions && item.adminListingOptions.includeInKeywordSeach === true;
|
|
52
|
+
const findSelectFilters = schema => {
|
|
53
|
+
if (!schema || !schema.properties) return [];
|
|
54
|
+
const {
|
|
55
|
+
properties = {},
|
|
56
|
+
dynamicProperties = {}
|
|
57
|
+
} = schema;
|
|
58
|
+
const propertySelects = Object.entries(properties).filter(isFilterSelectItem);
|
|
59
|
+
const dynamicPropertySelects = Object.entries(dynamicProperties).filter(isFilterSelectItem);
|
|
60
|
+
return [...propertySelects, ...dynamicPropertySelects];
|
|
61
|
+
};
|
|
62
|
+
const findMultiSelectFilters = schema => {
|
|
63
|
+
if (!schema || !schema.properties) return [];
|
|
64
|
+
const {
|
|
65
|
+
properties = {},
|
|
66
|
+
dynamicProperties = {}
|
|
67
|
+
} = schema;
|
|
68
|
+
const propertyMultiSelect = Object.entries(properties).filter(isFilterMultiSelectItems);
|
|
69
|
+
const dynamicPropertyMultiSelect = Object.entries(dynamicProperties).filter(isFilterMultiSelectItems);
|
|
70
|
+
return [...propertyMultiSelect, ...dynamicPropertyMultiSelect];
|
|
71
|
+
};
|
|
72
|
+
const isFilterSelectItem = ([, item]) => item.adminListingOptions && item.adminListingOptions.filterType === 'select';
|
|
73
|
+
const isFilterMultiSelectItems = ([, item]) => item.adminListingOptions && item.adminListingOptions.filterType === 'multiSelect';
|
|
74
|
+
const buildQueryFields = (selectFilters, entityId) => {
|
|
75
|
+
if (!Array.isArray(selectFilters) || selectFilters.length === 0) {
|
|
76
|
+
return {
|
|
77
|
+
gqlFields: '',
|
|
78
|
+
rawQuery: '{}'
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
const aggs = {};
|
|
82
|
+
selectFilters.forEach(([property, details]) => {
|
|
83
|
+
aggs[property] = {
|
|
84
|
+
terms: {
|
|
85
|
+
field: `${property}.keyword`,
|
|
86
|
+
// todo: handle different field types
|
|
87
|
+
size: 1000,
|
|
88
|
+
// todo: customise size
|
|
89
|
+
order: {
|
|
90
|
+
_key: 'asc'
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
});
|
|
95
|
+
const docType = entityId;
|
|
96
|
+
const rawQueryObject = {
|
|
97
|
+
size: 0,
|
|
98
|
+
query: {
|
|
99
|
+
bool: {
|
|
100
|
+
filter: {
|
|
101
|
+
bool: {
|
|
102
|
+
must: [{
|
|
103
|
+
match: {
|
|
104
|
+
docType
|
|
105
|
+
}
|
|
106
|
+
}]
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
aggs
|
|
112
|
+
};
|
|
113
|
+
const rawQuery = JSON.stringify(rawQueryObject);
|
|
114
|
+
const gqlFields = `
|
|
115
|
+
rawResults
|
|
116
|
+
`;
|
|
117
|
+
return {
|
|
118
|
+
gqlFields,
|
|
119
|
+
rawQuery
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
const getTidyLabel = (value, tidy) => {
|
|
123
|
+
if (!tidy) return value;
|
|
124
|
+
return value.split(/[\s_-]+/).map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ');
|
|
125
|
+
};
|
|
126
|
+
export { buildQueryFields, updateListFilters, getKeywordSearchFilters, findSelectFilters, findMultiSelectFilters, getTidyLabel };
|
|
127
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["DEFAULT_FILTER_OPTION_LABEL","updateListFilters","searchTerm","selectedFilters","setListFilters","fields","filters","push","simple_query_string","query","default_operator","map","field","Object","entries","forEach","filterKey","filterValue","isEmptyArray","Array","isArray","length","terms","term","getKeywordSearchFilters","schema","properties","dynamicProperties","propertyKeyword","filter","isFilterKeywordItem","dynamicPropertyKeywords","item","adminListingOptions","includeInKeywordSeach","findSelectFilters","propertySelects","isFilterSelectItem","dynamicPropertySelects","findMultiSelectFilters","propertyMultiSelect","isFilterMultiSelectItems","dynamicPropertyMultiSelect","filterType","buildQueryFields","selectFilters","entityId","gqlFields","rawQuery","aggs","property","details","size","order","_key","docType","rawQueryObject","bool","must","match","JSON","stringify","getTidyLabel","value","tidy","split","word","charAt","toUpperCase","slice","join"],"sources":["../../../../src/components/ListingTable/SearchFilter/helpers.js"],"sourcesContent":["import { DEFAULT_FILTER_OPTION_LABEL } from '../../../constants';\n\nconst updateListFilters = (searchTerm, selectedFilters, setListFilters, fields = []) => {\n const filters = [];\n\n if (searchTerm) {\n filters.push({\n simple_query_string: {\n query: `${searchTerm}`,\n default_operator: 'AND',\n fields: fields.map(field => field)\n }\n });\n }\n\n Object.entries(selectedFilters).forEach(([filterKey, filterValue]) => {\n const isEmptyArray = Array.isArray(filterValue) && filterValue.length === 0;\n if (\n filterValue == null ||\n filterValue === '' ||\n filterValue === DEFAULT_FILTER_OPTION_LABEL ||\n isEmptyArray\n )\n return;\n\n const field = `${filterKey}.keyword`;\n\n if (Array.isArray(filterValue)) {\n if (filterValue.length > 1) {\n filters.push({\n terms: { [field]: filterValue }\n });\n } else {\n filters.push({\n term: { [field]: filterValue[0] }\n });\n }\n } else {\n filters.push({\n term: { [field]: filterValue }\n });\n }\n });\n\n setListFilters(filters);\n};\n\nconst getKeywordSearchFilters = schema => {\n if (!schema || !schema.properties) return [];\n\n const { properties = {}, dynamicProperties = {} } = schema;\n\n const propertyKeyword = Object.entries(properties).filter(isFilterKeywordItem);\n const dynamicPropertyKeywords = Object.entries(dynamicProperties).filter(isFilterKeywordItem);\n\n return [...propertyKeyword, ...dynamicPropertyKeywords];\n};\n\nconst isFilterKeywordItem = ([, item]) =>\n item.adminListingOptions && item.adminListingOptions.includeInKeywordSeach === true;\n\nconst findSelectFilters = schema => {\n if (!schema || !schema.properties) return [];\n\n const { properties = {}, dynamicProperties = {} } = schema;\n\n const propertySelects = Object.entries(properties).filter(isFilterSelectItem);\n const dynamicPropertySelects = Object.entries(dynamicProperties).filter(isFilterSelectItem);\n\n return [...propertySelects, ...dynamicPropertySelects];\n};\n\nconst findMultiSelectFilters = schema => {\n if (!schema || !schema.properties) return [];\n\n const { properties = {}, dynamicProperties = {} } = schema;\n const propertyMultiSelect = Object.entries(properties).filter(isFilterMultiSelectItems);\n const dynamicPropertyMultiSelect =\n Object.entries(dynamicProperties).filter(isFilterMultiSelectItems);\n return [...propertyMultiSelect, ...dynamicPropertyMultiSelect];\n};\n\nconst isFilterSelectItem = ([, item]) =>\n item.adminListingOptions && item.adminListingOptions.filterType === 'select';\n\nconst isFilterMultiSelectItems = ([, item]) =>\n item.adminListingOptions && item.adminListingOptions.filterType === 'multiSelect';\n\nconst buildQueryFields = (selectFilters, entityId) => {\n if (!Array.isArray(selectFilters) || selectFilters.length === 0) {\n return { gqlFields: '', rawQuery: '{}' };\n }\n\n const aggs = {};\n selectFilters.forEach(([property, details]) => {\n aggs[property] = {\n terms: {\n field: `${property}.keyword`, // todo: handle different field types\n size: 1000, // todo: customise size\n order: {\n _key: 'asc'\n }\n }\n };\n });\n\n const docType = entityId;\n const rawQueryObject = {\n size: 0,\n query: {\n bool: {\n filter: {\n bool: {\n must: [{ match: { docType } }]\n }\n }\n }\n },\n aggs\n };\n const rawQuery = JSON.stringify(rawQueryObject);\n\n const gqlFields = `\n rawResults\n `;\n\n return { gqlFields, rawQuery };\n};\n\nconst getTidyLabel = (value, tidy) => {\n if (!tidy) return value;\n\n return value\n .split(/[\\s_-]+/)\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n};\n\nexport {\n buildQueryFields,\n updateListFilters,\n getKeywordSearchFilters,\n findSelectFilters,\n findMultiSelectFilters,\n getTidyLabel\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"querys.js","names":["gql","NOOP_QUERY"],"sources":["../../../../src/components/ListingTable/SearchFilter/querys.js"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst NOOP_QUERY = gql`\n query NoOp {\n __typename\n }\n`;\n\nexport { NOOP_QUERY };\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,MAAMC,UAAU,GAAGD,GAAG;AACtB;AACA;AACA;AACA,CAAC;AAED,SAASC,UAAU","ignoreList":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Link } from 'react-router-dom';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import More from '@blaze-react/more';
|
|
5
|
+
import Button from '@blaze-react/button';
|
|
6
|
+
const TableActions = ({
|
|
7
|
+
editUrl,
|
|
8
|
+
data,
|
|
9
|
+
showDeleteModal
|
|
10
|
+
}) => /*#__PURE__*/React.createElement("div", {
|
|
11
|
+
className: "more-menu__wrapper"
|
|
12
|
+
}, /*#__PURE__*/React.createElement(More, {
|
|
13
|
+
isMoreMenu: true
|
|
14
|
+
}, /*#__PURE__*/React.createElement(More.Avatar, {
|
|
15
|
+
isMoreMenu: true
|
|
16
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
17
|
+
className: "material-icons"
|
|
18
|
+
}, "more_vert")), /*#__PURE__*/React.createElement(More.Content, {
|
|
19
|
+
isMoreMenu: true
|
|
20
|
+
}, /*#__PURE__*/React.createElement(Link, {
|
|
21
|
+
to: editUrl,
|
|
22
|
+
className: "more-menu__link",
|
|
23
|
+
role: "button"
|
|
24
|
+
}, "Edit"), /*#__PURE__*/React.createElement(Button, {
|
|
25
|
+
className: "more-menu__link",
|
|
26
|
+
onClick: () => showDeleteModal(data)
|
|
27
|
+
}, "Delete"))));
|
|
28
|
+
TableActions.propTypes = {
|
|
29
|
+
editUrl: PropTypes.string.isRequired,
|
|
30
|
+
showDeleteModal: PropTypes.func.isRequired,
|
|
31
|
+
data: PropTypes.object.isRequired
|
|
32
|
+
};
|
|
33
|
+
export default TableActions;
|
|
34
|
+
//# sourceMappingURL=TableActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableActions.js","names":["React","Link","PropTypes","More","Button","TableActions","editUrl","data","showDeleteModal","createElement","className","isMoreMenu","Avatar","Content","to","role","onClick","propTypes","string","isRequired","func","object"],"sources":["../../../../src/components/ListingTable/TableActions/TableActions.js"],"sourcesContent":["import React from 'react';\nimport { Link } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport More from '@blaze-react/more';\nimport Button from '@blaze-react/button';\n\nconst TableActions = ({ editUrl, data, showDeleteModal }) => (\n <div className=\"more-menu__wrapper\">\n <More isMoreMenu>\n <More.Avatar isMoreMenu>\n <span className=\"material-icons\">more_vert</span>\n </More.Avatar>\n <More.Content isMoreMenu>\n <Link to={editUrl} className=\"more-menu__link\" role=\"button\">\n Edit\n </Link>\n <Button className=\"more-menu__link\" onClick={() => showDeleteModal(data)}>\n Delete\n </Button>\n </More.Content>\n </More>\n </div>\n);\n\nTableActions.propTypes = {\n editUrl: PropTypes.string.isRequired,\n showDeleteModal: PropTypes.func.isRequired,\n data: PropTypes.object.isRequired\n};\n\nexport default TableActions;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,kBAAkB;AACvC,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,IAAI,MAAM,mBAAmB;AACpC,OAAOC,MAAM,MAAM,qBAAqB;AAExC,MAAMC,YAAY,GAAGA,CAAC;EAAEC,OAAO;EAAEC,IAAI;EAAEC;AAAgB,CAAC,kBACtDR,KAAA,CAAAS,aAAA;EAAKC,SAAS,EAAC;AAAoB,gBACjCV,KAAA,CAAAS,aAAA,CAACN,IAAI;EAACQ,UAAU;AAAA,gBACdX,KAAA,CAAAS,aAAA,CAACN,IAAI,CAACS,MAAM;EAACD,UAAU;AAAA,gBACrBX,KAAA,CAAAS,aAAA;EAAMC,SAAS,EAAC;AAAgB,GAAC,WAAe,CACrC,CAAC,eACdV,KAAA,CAAAS,aAAA,CAACN,IAAI,CAACU,OAAO;EAACF,UAAU;AAAA,gBACtBX,KAAA,CAAAS,aAAA,CAACR,IAAI;EAACa,EAAE,EAAER,OAAQ;EAACI,SAAS,EAAC,iBAAiB;EAACK,IAAI,EAAC;AAAQ,GAAC,MAEvD,CAAC,eACPf,KAAA,CAAAS,aAAA,CAACL,MAAM;EAACM,SAAS,EAAC,iBAAiB;EAACM,OAAO,EAAEA,CAAA,KAAMR,eAAe,CAACD,IAAI;AAAE,GAAC,QAElE,CACI,CACV,CACH,CACN;AAEDF,YAAY,CAACY,SAAS,GAAG;EACvBX,OAAO,EAAEJ,SAAS,CAACgB,MAAM,CAACC,UAAU;EACpCX,eAAe,EAAEN,SAAS,CAACkB,IAAI,CAACD,UAAU;EAC1CZ,IAAI,EAAEL,SAAS,CAACmB,MAAM,CAACF;AACzB,CAAC;AAED,eAAed,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["TableActions"],"sources":["../../../../src/components/ListingTable/TableActions/index.js"],"sourcesContent":["import TableActions from './TableActions';\n\nexport default TableActions;\n"],"mappings":"AAAA,OAAOA,YAAY,MAAM,gBAAgB;AAEzC,eAAeA,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["ListingTable"],"sources":["../../../src/components/ListingTable/index.js"],"sourcesContent":["import ListingTable from './ListingTable';\n\nexport default ListingTable;\n"],"mappings":"AAAA,OAAOA,YAAY,MAAM,gBAAgB;AAEzC,eAAeA,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { Link } from 'react-router-dom';
|
|
6
|
+
import { RenderHook } from '@blaze-cms/plugin-render-hooks-ui';
|
|
7
|
+
import TableActions from '../TableActions';
|
|
8
|
+
import { ACTIONS } from '../../../constants';
|
|
9
|
+
import InfoBoxValue from '../../InfoBoxes/presentational/InfoBoxValue';
|
|
10
|
+
import InfoBoxLabel from '../../InfoBoxes/presentational/InfoBoxLabel';
|
|
11
|
+
import InfoBoxTooltip from '../../InfoBoxes/InfoBoxTooltip';
|
|
12
|
+
const formatRows = ({
|
|
13
|
+
rows,
|
|
14
|
+
url,
|
|
15
|
+
toggleModal,
|
|
16
|
+
label,
|
|
17
|
+
firstColumn = 'name',
|
|
18
|
+
isEnquiry,
|
|
19
|
+
entitySchema
|
|
20
|
+
}) => rows.map(data => {
|
|
21
|
+
const editUrl = `${url}/update/${data.id}`;
|
|
22
|
+
const rowProps = _objectSpread(_objectSpread({}, data), {}, {
|
|
23
|
+
[firstColumn]: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Link, {
|
|
24
|
+
to: editUrl,
|
|
25
|
+
role: "button"
|
|
26
|
+
}, data[firstColumn]), /*#__PURE__*/React.createElement(RenderHook, {
|
|
27
|
+
hookKey: "entity:listing:table:row:column:after",
|
|
28
|
+
schema: entitySchema,
|
|
29
|
+
data: data,
|
|
30
|
+
value: data[firstColumn],
|
|
31
|
+
column: firstColumn
|
|
32
|
+
}))
|
|
33
|
+
});
|
|
34
|
+
if (!isEnquiry) rowProps.actions = /*#__PURE__*/React.createElement(TableActions, {
|
|
35
|
+
editUrl: editUrl,
|
|
36
|
+
data: data,
|
|
37
|
+
showDeleteModal: toggleModal
|
|
38
|
+
});
|
|
39
|
+
return rowProps;
|
|
40
|
+
});
|
|
41
|
+
const getSanitizedColumnLabel = columnProp => {
|
|
42
|
+
let sanitizedChar = '';
|
|
43
|
+
for (let index = 0; index < columnProp.length; index += 1) {
|
|
44
|
+
if (index && columnProp[index] === columnProp[index].toUpperCase()) sanitizedChar = `${sanitizedChar} ${columnProp[index].toLowerCase()}`;else sanitizedChar += columnProp[index];
|
|
45
|
+
}
|
|
46
|
+
return sanitizedChar;
|
|
47
|
+
};
|
|
48
|
+
const buildArrayRowContent = rowData => /*#__PURE__*/React.createElement("div", {
|
|
49
|
+
className: "table-row-list"
|
|
50
|
+
}, rowData.map(rowGroup => {
|
|
51
|
+
if (!rowGroup.length) return null;
|
|
52
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
53
|
+
className: "table-row-list__group"
|
|
54
|
+
}, rowGroup.map(item => /*#__PURE__*/React.createElement("div", {
|
|
55
|
+
className: "table-row-list__group__item"
|
|
56
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
57
|
+
className: "table-row-list__group__item__label"
|
|
58
|
+
}, /*#__PURE__*/React.createElement(InfoBoxLabel, {
|
|
59
|
+
item: item
|
|
60
|
+
})), /*#__PURE__*/React.createElement("span", {
|
|
61
|
+
className: "table-row-list__group__item__value"
|
|
62
|
+
}, /*#__PURE__*/React.createElement(InfoBoxValue, {
|
|
63
|
+
item: item
|
|
64
|
+
}), /*#__PURE__*/React.createElement(InfoBoxTooltip, {
|
|
65
|
+
info: item
|
|
66
|
+
})))));
|
|
67
|
+
}));
|
|
68
|
+
const buildArrayRowData = rowData => {
|
|
69
|
+
const groupSize = Math.ceil(rowData.length / 3);
|
|
70
|
+
const group1 = rowData.slice(0, groupSize);
|
|
71
|
+
const group2 = rowData.slice(groupSize, groupSize * 2);
|
|
72
|
+
const group3 = rowData.slice(groupSize * 2);
|
|
73
|
+
const dataGroups = [group1, group2, group3];
|
|
74
|
+
return buildArrayRowContent(dataGroups);
|
|
75
|
+
};
|
|
76
|
+
const getParsedRowData = rows => rows.map(rowData => Object.keys(rowData).reduce((acc, key) => {
|
|
77
|
+
const parsedData = Array.isArray(rowData[key]) ? buildArrayRowData(rowData[key]) : rowData[key];
|
|
78
|
+
return _objectSpread(_objectSpread({}, acc), {}, {
|
|
79
|
+
[key]: parsedData
|
|
80
|
+
});
|
|
81
|
+
}, {}));
|
|
82
|
+
const getColumnsAndLabels = (listingProperties, allProperties, rows) => {
|
|
83
|
+
const columns = [];
|
|
84
|
+
const labels = {};
|
|
85
|
+
listingProperties.forEach(listingProperty => {
|
|
86
|
+
const propKey = listingProperty.includes(' ') ? listingProperty.split(' ')[0] : listingProperty;
|
|
87
|
+
const {
|
|
88
|
+
label
|
|
89
|
+
} = allProperties[propKey] || {};
|
|
90
|
+
columns.push(propKey);
|
|
91
|
+
labels[propKey] = label || getSanitizedColumnLabel(propKey);
|
|
92
|
+
});
|
|
93
|
+
const parsedRowData = getParsedRowData(rows);
|
|
94
|
+
return {
|
|
95
|
+
columns,
|
|
96
|
+
labels,
|
|
97
|
+
parsedRowData
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
const populateRows = ({
|
|
101
|
+
toggleModal,
|
|
102
|
+
url,
|
|
103
|
+
entitySchema,
|
|
104
|
+
rows
|
|
105
|
+
}) => {
|
|
106
|
+
const {
|
|
107
|
+
id: schemaId,
|
|
108
|
+
listingProperties,
|
|
109
|
+
properties,
|
|
110
|
+
dynamicProperties = {},
|
|
111
|
+
formProperties
|
|
112
|
+
} = entitySchema;
|
|
113
|
+
const isEnquiry = schemaId === 'enquiry';
|
|
114
|
+
const columnOptions = !isEnquiry ? [...listingProperties, ACTIONS] : [...listingProperties];
|
|
115
|
+
const allProperties = _objectSpread(_objectSpread({}, properties), dynamicProperties);
|
|
116
|
+
const {
|
|
117
|
+
columns,
|
|
118
|
+
labels,
|
|
119
|
+
parsedRowData
|
|
120
|
+
} = getColumnsAndLabels(columnOptions, allProperties, rows);
|
|
121
|
+
const [firstColumn] = columns;
|
|
122
|
+
return {
|
|
123
|
+
identification: 'id',
|
|
124
|
+
sort: null,
|
|
125
|
+
columns,
|
|
126
|
+
labels,
|
|
127
|
+
orderBy: [...formProperties],
|
|
128
|
+
rows: formatRows({
|
|
129
|
+
firstColumn,
|
|
130
|
+
rows: parsedRowData,
|
|
131
|
+
url,
|
|
132
|
+
toggleModal,
|
|
133
|
+
isEnquiry,
|
|
134
|
+
entitySchema
|
|
135
|
+
}),
|
|
136
|
+
isEnquiry
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
export { populateRows, formatRows, getParsedRowData };
|
|
140
|
+
//# sourceMappingURL=populate-rows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"populate-rows.js","names":["React","Link","RenderHook","TableActions","ACTIONS","InfoBoxValue","InfoBoxLabel","InfoBoxTooltip","formatRows","rows","url","toggleModal","label","firstColumn","isEnquiry","entitySchema","map","data","editUrl","id","rowProps","_objectSpread","createElement","Fragment","to","role","hookKey","schema","value","column","actions","showDeleteModal","getSanitizedColumnLabel","columnProp","sanitizedChar","index","length","toUpperCase","toLowerCase","buildArrayRowContent","rowData","className","rowGroup","item","info","buildArrayRowData","groupSize","Math","ceil","group1","slice","group2","group3","dataGroups","getParsedRowData","Object","keys","reduce","acc","key","parsedData","Array","isArray","getColumnsAndLabels","listingProperties","allProperties","columns","labels","forEach","listingProperty","propKey","includes","split","push","parsedRowData","populateRows","schemaId","properties","dynamicProperties","formProperties","columnOptions","identification","sort","orderBy"],"sources":["../../../../src/components/ListingTable/mappers/populate-rows.js"],"sourcesContent":["import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { RenderHook } from '@blaze-cms/plugin-render-hooks-ui';\nimport TableActions from '../TableActions';\nimport { ACTIONS } from '../../../constants';\nimport InfoBoxValue from '../../InfoBoxes/presentational/InfoBoxValue';\nimport InfoBoxLabel from '../../InfoBoxes/presentational/InfoBoxLabel';\nimport InfoBoxTooltip from '../../InfoBoxes/InfoBoxTooltip';\n\nconst formatRows = ({\n rows,\n url,\n toggleModal,\n label,\n firstColumn = 'name',\n isEnquiry,\n entitySchema\n}) =>\n rows.map(data => {\n const editUrl = `${url}/update/${data.id}`;\n\n const rowProps = {\n ...data,\n [firstColumn]: (\n <>\n <Link to={editUrl} role=\"button\">\n {data[firstColumn]}\n </Link>\n <RenderHook\n hookKey=\"entity:listing:table:row:column:after\"\n schema={entitySchema}\n data={data}\n value={data[firstColumn]}\n column={firstColumn}\n />\n </>\n )\n };\n if (!isEnquiry)\n rowProps.actions = (\n <TableActions editUrl={editUrl} data={data} showDeleteModal={toggleModal} />\n );\n return rowProps;\n });\n\nconst getSanitizedColumnLabel = columnProp => {\n let sanitizedChar = '';\n\n for (let index = 0; index < columnProp.length; index += 1) {\n if (index && columnProp[index] === columnProp[index].toUpperCase())\n sanitizedChar = `${sanitizedChar} ${columnProp[index].toLowerCase()}`;\n else sanitizedChar += columnProp[index];\n }\n return sanitizedChar;\n};\n\nconst buildArrayRowContent = rowData => (\n <div className=\"table-row-list\">\n {rowData.map(rowGroup => {\n if (!rowGroup.length) return null;\n return (\n <div className=\"table-row-list__group\">\n {rowGroup.map(item => (\n <div className=\"table-row-list__group__item\">\n <span className=\"table-row-list__group__item__label\">\n <InfoBoxLabel item={item} />\n </span>\n <span className=\"table-row-list__group__item__value\">\n <InfoBoxValue item={item} />\n <InfoBoxTooltip info={item} />\n </span>\n </div>\n ))}\n </div>\n );\n })}\n </div>\n);\n\nconst buildArrayRowData = rowData => {\n const groupSize = Math.ceil(rowData.length / 3);\n const group1 = rowData.slice(0, groupSize);\n const group2 = rowData.slice(groupSize, groupSize * 2);\n const group3 = rowData.slice(groupSize * 2);\n const dataGroups = [group1, group2, group3];\n\n return buildArrayRowContent(dataGroups);\n};\n\nconst getParsedRowData = rows =>\n rows.map(rowData =>\n Object.keys(rowData).reduce((acc, key) => {\n const parsedData = Array.isArray(rowData[key])\n ? buildArrayRowData(rowData[key])\n : rowData[key];\n return { ...acc, [key]: parsedData };\n }, {})\n );\n\nconst getColumnsAndLabels = (listingProperties, allProperties, rows) => {\n const columns = [];\n const labels = {};\n\n listingProperties.forEach(listingProperty => {\n const propKey = listingProperty.includes(' ') ? listingProperty.split(' ')[0] : listingProperty;\n const { label } = allProperties[propKey] || {};\n columns.push(propKey);\n labels[propKey] = label || getSanitizedColumnLabel(propKey);\n });\n const parsedRowData = getParsedRowData(rows);\n\n return { columns, labels, parsedRowData };\n};\n\nconst populateRows = ({ toggleModal, url, entitySchema, rows }) => {\n const {\n id: schemaId,\n listingProperties,\n properties,\n dynamicProperties = {},\n formProperties\n } = entitySchema;\n\n const isEnquiry = schemaId === 'enquiry';\n const columnOptions = !isEnquiry ? [...listingProperties, ACTIONS] : [...listingProperties];\n\n const allProperties = { ...properties, ...dynamicProperties };\n const { columns, labels, parsedRowData } = getColumnsAndLabels(\n columnOptions,\n allProperties,\n rows\n );\n const [firstColumn] = columns;\n\n return {\n identification: 'id',\n sort: null,\n columns,\n labels,\n orderBy: [...formProperties],\n rows: formatRows({\n firstColumn,\n rows: parsedRowData,\n url,\n toggleModal,\n isEnquiry,\n entitySchema\n }),\n isEnquiry\n };\n};\n\nexport { populateRows, formatRows, getParsedRowData };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
+
import buildListingQuery from '../../../utils/build-listing-query';
|
|
5
|
+
function buildVariables({
|
|
6
|
+
entitySchema,
|
|
7
|
+
isSearchQuery,
|
|
8
|
+
listFilters = [],
|
|
9
|
+
queryParams = {}
|
|
10
|
+
}) {
|
|
11
|
+
const {
|
|
12
|
+
identifier
|
|
13
|
+
} = entitySchema;
|
|
14
|
+
const {
|
|
15
|
+
sort,
|
|
16
|
+
offset,
|
|
17
|
+
limit,
|
|
18
|
+
where
|
|
19
|
+
} = queryParams;
|
|
20
|
+
const [{
|
|
21
|
+
property,
|
|
22
|
+
direction
|
|
23
|
+
}] = sort;
|
|
24
|
+
const parsedOffset = `${property}:${direction}`;
|
|
25
|
+
if (!isSearchQuery) return _objectSpread(_objectSpread({}, queryParams), {}, {
|
|
26
|
+
where: !Array.isArray(listFilters) ? listFilters : where
|
|
27
|
+
});
|
|
28
|
+
const rawQuery = {
|
|
29
|
+
bool: {
|
|
30
|
+
must: listFilters || [],
|
|
31
|
+
filter: [{
|
|
32
|
+
term: {
|
|
33
|
+
entityIdentifier: identifier
|
|
34
|
+
}
|
|
35
|
+
}]
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
return {
|
|
39
|
+
limit,
|
|
40
|
+
offset,
|
|
41
|
+
sort: parsedOffset,
|
|
42
|
+
where: JSON.stringify(rawQuery)
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
const fetchData = async ({
|
|
46
|
+
client,
|
|
47
|
+
querySettings: {
|
|
48
|
+
entitySchema,
|
|
49
|
+
queryParams
|
|
50
|
+
},
|
|
51
|
+
listFilters
|
|
52
|
+
}) => {
|
|
53
|
+
const {
|
|
54
|
+
displayProperties: {
|
|
55
|
+
adminListings: {
|
|
56
|
+
dataSource: {
|
|
57
|
+
source,
|
|
58
|
+
index
|
|
59
|
+
} = {}
|
|
60
|
+
} = {}
|
|
61
|
+
} = {}
|
|
62
|
+
} = entitySchema;
|
|
63
|
+
const isSearchQuery = source === 'search';
|
|
64
|
+
const query = buildListingQuery(entitySchema, index, isSearchQuery);
|
|
65
|
+
const variables = buildVariables({
|
|
66
|
+
entitySchema,
|
|
67
|
+
listFilters,
|
|
68
|
+
queryParams,
|
|
69
|
+
isSearchQuery
|
|
70
|
+
});
|
|
71
|
+
const {
|
|
72
|
+
data = {}
|
|
73
|
+
} = await client.query({
|
|
74
|
+
query,
|
|
75
|
+
variables,
|
|
76
|
+
fetchPolicy: 'network-only'
|
|
77
|
+
});
|
|
78
|
+
if (data.searchResults) {
|
|
79
|
+
return {
|
|
80
|
+
listingData: data.searchResults.results,
|
|
81
|
+
totalRecords: data.searchResults.total
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
return data;
|
|
85
|
+
};
|
|
86
|
+
export { fetchData };
|
|
87
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["buildListingQuery","buildVariables","entitySchema","isSearchQuery","listFilters","queryParams","identifier","sort","offset","limit","where","property","direction","parsedOffset","_objectSpread","Array","isArray","rawQuery","bool","must","filter","term","entityIdentifier","JSON","stringify","fetchData","client","querySettings","displayProperties","adminListings","dataSource","source","index","query","variables","data","fetchPolicy","searchResults","listingData","results","totalRecords","total"],"sources":["../../../../src/components/ListingTable/service/index.js"],"sourcesContent":["import buildListingQuery from '../../../utils/build-listing-query';\n\nfunction buildVariables({ entitySchema, isSearchQuery, listFilters = [], queryParams = {} }) {\n const { identifier } = entitySchema;\n const { sort, offset, limit, where } = queryParams;\n const [{ property, direction }] = sort;\n const parsedOffset = `${property}:${direction}`;\n\n if (!isSearchQuery)\n return {\n ...queryParams,\n where: !Array.isArray(listFilters) ? listFilters : where\n };\n\n const rawQuery = {\n bool: {\n must: listFilters || [],\n filter: [\n {\n term: {\n entityIdentifier: identifier\n }\n }\n ]\n }\n };\n\n return {\n limit,\n offset,\n sort: parsedOffset,\n where: JSON.stringify(rawQuery)\n };\n}\n\nconst fetchData = async ({ client, querySettings: { entitySchema, queryParams }, listFilters }) => {\n const { displayProperties: { adminListings: { dataSource: { source, index } = {} } = {} } = {} } =\n entitySchema;\n\n const isSearchQuery = source === 'search';\n const query = buildListingQuery(entitySchema, index, isSearchQuery);\n const variables = buildVariables({ entitySchema, listFilters, queryParams, isSearchQuery });\n\n const { data = {} } = await client.query({\n query,\n variables,\n fetchPolicy: 'network-only'\n });\n\n if (data.searchResults) {\n return {\n listingData: data.searchResults.results,\n totalRecords: data.searchResults.total\n };\n }\n return data;\n};\n\nexport { fetchData };\n"],"mappings":";;;AAAA,OAAOA,iBAAiB,MAAM,oCAAoC;AAElE,SAASC,cAAcA,CAAC;EAAEC,YAAY;EAAEC,aAAa;EAAEC,WAAW,GAAG,EAAE;EAAEC,WAAW,GAAG,CAAC;AAAE,CAAC,EAAE;EAC3F,MAAM;IAAEC;EAAW,CAAC,GAAGJ,YAAY;EACnC,MAAM;IAAEK,IAAI;IAAEC,MAAM;IAAEC,KAAK;IAAEC;EAAM,CAAC,GAAGL,WAAW;EAClD,MAAM,CAAC;IAAEM,QAAQ;IAAEC;EAAU,CAAC,CAAC,GAAGL,IAAI;EACtC,MAAMM,YAAY,GAAG,GAAGF,QAAQ,IAAIC,SAAS,EAAE;EAE/C,IAAI,CAACT,aAAa,EAChB,OAAAW,aAAA,CAAAA,aAAA,KACKT,WAAW;IACdK,KAAK,EAAE,CAACK,KAAK,CAACC,OAAO,CAACZ,WAAW,CAAC,GAAGA,WAAW,GAAGM;EAAK;EAG5D,MAAMO,QAAQ,GAAG;IACfC,IAAI,EAAE;MACJC,IAAI,EAAEf,WAAW,IAAI,EAAE;MACvBgB,MAAM,EAAE,CACN;QACEC,IAAI,EAAE;UACJC,gBAAgB,EAAEhB;QACpB;MACF,CAAC;IAEL;EACF,CAAC;EAED,OAAO;IACLG,KAAK;IACLD,MAAM;IACND,IAAI,EAAEM,YAAY;IAClBH,KAAK,EAAEa,IAAI,CAACC,SAAS,CAACP,QAAQ;EAChC,CAAC;AACH;AAEA,MAAMQ,SAAS,GAAG,MAAAA,CAAO;EAAEC,MAAM;EAAEC,aAAa,EAAE;IAAEzB,YAAY;IAAEG;EAAY,CAAC;EAAED;AAAY,CAAC,KAAK;EACjG,MAAM;IAAEwB,iBAAiB,EAAE;MAAEC,aAAa,EAAE;QAAEC,UAAU,EAAE;UAAEC,MAAM;UAAEC;QAAM,CAAC,GAAG,CAAC;MAAE,CAAC,GAAG,CAAC;IAAE,CAAC,GAAG,CAAC;EAAE,CAAC,GAC9F9B,YAAY;EAEd,MAAMC,aAAa,GAAG4B,MAAM,KAAK,QAAQ;EACzC,MAAME,KAAK,GAAGjC,iBAAiB,CAACE,YAAY,EAAE8B,KAAK,EAAE7B,aAAa,CAAC;EACnE,MAAM+B,SAAS,GAAGjC,cAAc,CAAC;IAAEC,YAAY;IAAEE,WAAW;IAAEC,WAAW;IAAEF;EAAc,CAAC,CAAC;EAE3F,MAAM;IAAEgC,IAAI,GAAG,CAAC;EAAE,CAAC,GAAG,MAAMT,MAAM,CAACO,KAAK,CAAC;IACvCA,KAAK;IACLC,SAAS;IACTE,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,IAAID,IAAI,CAACE,aAAa,EAAE;IACtB,OAAO;MACLC,WAAW,EAAEH,IAAI,CAACE,aAAa,CAACE,OAAO;MACvCC,YAAY,EAAEL,IAAI,CAACE,aAAa,CAACI;IACnC,CAAC;EACH;EACA,OAAON,IAAI;AACb,CAAC;AAED,SAASV,SAAS","ignoreList":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { Tab, TabItem } from '@blaze-react/tab';
|
|
4
|
+
import { useTabsContext, TabsContextProvider } from '@blaze-cms/admin-ui-utils';
|
|
5
|
+
import { PAGE_BUILDER_TAB, PAGE_BUILDER_TAB_INDEX, EDITOR_VIEW_TAB, EDITOR_VIEW_TAB_INDEX } from '../../constants';
|
|
6
|
+
const Tabs = ({
|
|
7
|
+
children,
|
|
8
|
+
onTabChange,
|
|
9
|
+
enabled
|
|
10
|
+
}) => {
|
|
11
|
+
const {
|
|
12
|
+
currentTabId = EDITOR_VIEW_TAB_INDEX
|
|
13
|
+
} = useTabsContext() || {};
|
|
14
|
+
const [activeAccordions, setActiveAccordions] = useState([]);
|
|
15
|
+
if (!enabled) return children;
|
|
16
|
+
return /*#__PURE__*/React.createElement(TabsContextProvider, {
|
|
17
|
+
value: {
|
|
18
|
+
currentTabId,
|
|
19
|
+
activeAccordions,
|
|
20
|
+
setActiveAccordions
|
|
21
|
+
}
|
|
22
|
+
}, /*#__PURE__*/React.createElement(Tab, {
|
|
23
|
+
selected: currentTabId
|
|
24
|
+
}, /*#__PURE__*/React.createElement(TabItem, {
|
|
25
|
+
title: EDITOR_VIEW_TAB,
|
|
26
|
+
action: () => onTabChange(EDITOR_VIEW_TAB_INDEX)
|
|
27
|
+
}, children), /*#__PURE__*/React.createElement(TabItem, {
|
|
28
|
+
title: PAGE_BUILDER_TAB,
|
|
29
|
+
action: () => onTabChange(PAGE_BUILDER_TAB_INDEX)
|
|
30
|
+
}, children)));
|
|
31
|
+
};
|
|
32
|
+
Tabs.propTypes = {
|
|
33
|
+
children: PropTypes.oneOfType([PropTypes.object, PropTypes.arrayOf(PropTypes.object)]).isRequired,
|
|
34
|
+
onTabChange: PropTypes.func.isRequired,
|
|
35
|
+
enabled: PropTypes.bool.isRequired
|
|
36
|
+
};
|
|
37
|
+
export default Tabs;
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useState","PropTypes","Tab","TabItem","useTabsContext","TabsContextProvider","PAGE_BUILDER_TAB","PAGE_BUILDER_TAB_INDEX","EDITOR_VIEW_TAB","EDITOR_VIEW_TAB_INDEX","Tabs","children","onTabChange","enabled","currentTabId","activeAccordions","setActiveAccordions","createElement","value","selected","title","action","propTypes","oneOfType","object","arrayOf","isRequired","func","bool"],"sources":["../../../src/components/Tabs/index.js"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Tab, TabItem } from '@blaze-react/tab';\nimport { useTabsContext, TabsContextProvider } from '@blaze-cms/admin-ui-utils';\nimport {\n PAGE_BUILDER_TAB,\n PAGE_BUILDER_TAB_INDEX,\n EDITOR_VIEW_TAB,\n EDITOR_VIEW_TAB_INDEX\n} from '../../constants';\n\nconst Tabs = ({ children, onTabChange, enabled }) => {\n const { currentTabId = EDITOR_VIEW_TAB_INDEX } = useTabsContext() || {};\n const [activeAccordions, setActiveAccordions] = useState([]);\n\n if (!enabled) return children;\n\n return (\n <TabsContextProvider value={{ currentTabId, activeAccordions, setActiveAccordions }}>\n <Tab selected={currentTabId}>\n <TabItem title={EDITOR_VIEW_TAB} action={() => onTabChange(EDITOR_VIEW_TAB_INDEX)}>\n {children}\n </TabItem>\n <TabItem title={PAGE_BUILDER_TAB} action={() => onTabChange(PAGE_BUILDER_TAB_INDEX)}>\n {children}\n </TabItem>\n </Tab>\n </TabsContextProvider>\n );\n};\n\nTabs.propTypes = {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.arrayOf(PropTypes.object)]).isRequired,\n onTabChange: PropTypes.func.isRequired,\n enabled: PropTypes.bool.isRequired\n};\n\nexport default Tabs;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,GAAG,EAAEC,OAAO,QAAQ,kBAAkB;AAC/C,SAASC,cAAc,EAAEC,mBAAmB,QAAQ,2BAA2B;AAC/E,SACEC,gBAAgB,EAChBC,sBAAsB,EACtBC,eAAe,EACfC,qBAAqB,QAChB,iBAAiB;AAExB,MAAMC,IAAI,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,WAAW;EAAEC;AAAQ,CAAC,KAAK;EACnD,MAAM;IAAEC,YAAY,GAAGL;EAAsB,CAAC,GAAGL,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC;EACvE,MAAM,CAACW,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGhB,QAAQ,CAAC,EAAE,CAAC;EAE5D,IAAI,CAACa,OAAO,EAAE,OAAOF,QAAQ;EAE7B,oBACEZ,KAAA,CAAAkB,aAAA,CAACZ,mBAAmB;IAACa,KAAK,EAAE;MAAEJ,YAAY;MAAEC,gBAAgB;MAAEC;IAAoB;EAAE,gBAClFjB,KAAA,CAAAkB,aAAA,CAACf,GAAG;IAACiB,QAAQ,EAAEL;EAAa,gBAC1Bf,KAAA,CAAAkB,aAAA,CAACd,OAAO;IAACiB,KAAK,EAAEZ,eAAgB;IAACa,MAAM,EAAEA,CAAA,KAAMT,WAAW,CAACH,qBAAqB;EAAE,GAC/EE,QACM,CAAC,eACVZ,KAAA,CAAAkB,aAAA,CAACd,OAAO;IAACiB,KAAK,EAAEd,gBAAiB;IAACe,MAAM,EAAEA,CAAA,KAAMT,WAAW,CAACL,sBAAsB;EAAE,GACjFI,QACM,CACN,CACc,CAAC;AAE1B,CAAC;AAEDD,IAAI,CAACY,SAAS,GAAG;EACfX,QAAQ,EAAEV,SAAS,CAACsB,SAAS,CAAC,CAACtB,SAAS,CAACuB,MAAM,EAAEvB,SAAS,CAACwB,OAAO,CAACxB,SAAS,CAACuB,MAAM,CAAC,CAAC,CAAC,CAACE,UAAU;EACjGd,WAAW,EAAEX,SAAS,CAAC0B,IAAI,CAACD,UAAU;EACtCb,OAAO,EAAEZ,SAAS,CAAC2B,IAAI,CAACF;AAC1B,CAAC;AAED,eAAehB,IAAI","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
function useCallbackDebounce(callback, delay, dependencies, skip) {
|
|
3
|
+
useEffect(() => {
|
|
4
|
+
if (skip) return;
|
|
5
|
+
const timer = setTimeout(callback, delay);
|
|
6
|
+
return () => clearTimeout(timer);
|
|
7
|
+
},
|
|
8
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
9
|
+
dependencies);
|
|
10
|
+
}
|
|
11
|
+
export default useCallbackDebounce;
|
|
12
|
+
//# sourceMappingURL=useCallbackDebounce.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCallbackDebounce.js","names":["useEffect","useCallbackDebounce","callback","delay","dependencies","skip","timer","setTimeout","clearTimeout"],"sources":["../../../src/components/hooks/useCallbackDebounce.js"],"sourcesContent":["import { useEffect } from 'react';\n\nfunction useCallbackDebounce(callback, delay, dependencies, skip) {\n useEffect(\n () => {\n if (skip) return;\n const timer = setTimeout(callback, delay);\n return () => clearTimeout(timer);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n dependencies\n );\n}\n\nexport default useCallbackDebounce;\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AAEjC,SAASC,mBAAmBA,CAACC,QAAQ,EAAEC,KAAK,EAAEC,YAAY,EAAEC,IAAI,EAAE;EAChEL,SAAS,CACP,MAAM;IACJ,IAAIK,IAAI,EAAE;IACV,MAAMC,KAAK,GAAGC,UAAU,CAACL,QAAQ,EAAEC,KAAK,CAAC;IACzC,OAAO,MAAMK,YAAY,CAACF,KAAK,CAAC;EAClC,CAAC;EACD;EACAF,YACF,CAAC;AACH;AAEA,eAAeH,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const PLUGIN_NAME = 'data-ui';
|
|
2
|
+
const DATA_LISTING_PREFIX = '/data-listing';
|
|
3
|
+
const PAGE_BUILDER = 'pageBuilder';
|
|
4
|
+
const TEXT_CONTENT_TYPE = 'Publish';
|
|
5
|
+
const ENTITY_PUBLISHED = 'published';
|
|
6
|
+
const SELECT_DEFAULT_VALUE = 'Please Choose...';
|
|
7
|
+
const LEAVE_PAGE_MESSAGE = 'You are going to leave without saving. Are you sure you want to leave?';
|
|
8
|
+
const KEY_TO_CHECK = 'values.slug';
|
|
9
|
+
const MENU_PERMISSIONS = ['update:any', 'update:own', 'create:any', 'create:own'];
|
|
10
|
+
const PREVIEW_INTERFACE = 'preview/can-preview';
|
|
11
|
+
const PAGE_BUILDER_FIELD_ID = 'pageBuilder';
|
|
12
|
+
const PAGE_BUILDER_TEMPLATE_FIELD_ID = 'pageBuilderTemplateId';
|
|
13
|
+
const ERROR = 'error';
|
|
14
|
+
const SUCCESS = 'success';
|
|
15
|
+
const PUBLISHED = 'published';
|
|
16
|
+
const UNPUBLISHED = 'unpublished';
|
|
17
|
+
const SAVE_BUTTON_TEXTS = {
|
|
18
|
+
save: 'save',
|
|
19
|
+
saved: 'saved',
|
|
20
|
+
saving: 'saving'
|
|
21
|
+
};
|
|
22
|
+
const ACTIONS = 'actions';
|
|
23
|
+
const UNPUBLISHED_WARNING = 'Page already unpublished';
|
|
24
|
+
const PAGE_NOT_FOUND = 'Page not found';
|
|
25
|
+
const SAVE_BEFORE_PUBLISH_MESSAGE = 'You have to click save to create the record before you can publish';
|
|
26
|
+
const PAGE_BUILDER_TAB = 'Page builder';
|
|
27
|
+
const PAGE_BUILDER_TAB_INDEX = 1;
|
|
28
|
+
const EDITOR_VIEW_TAB = 'Editor view';
|
|
29
|
+
const EDITOR_VIEW_TAB_INDEX = 0;
|
|
30
|
+
const ENTER_KEY = 'Enter';
|
|
31
|
+
const ICON_SIZE = {
|
|
32
|
+
WIDTH: '25px',
|
|
33
|
+
HEIGHT: '25px'
|
|
34
|
+
};
|
|
35
|
+
const ICON_COLOR = {
|
|
36
|
+
STROKE: '#63779C',
|
|
37
|
+
FILL: '#63779C'
|
|
38
|
+
};
|
|
39
|
+
const DEFAULT_FILTER_OPTION_LABEL = 'Any';
|
|
40
|
+
const DEBUG_PARAM = 'blaze_debug=1';
|
|
41
|
+
export { DATA_LISTING_PREFIX, DEBUG_PARAM, ENTITY_PUBLISHED, KEY_TO_CHECK, LEAVE_PAGE_MESSAGE, MENU_PERMISSIONS, PAGE_BUILDER, PLUGIN_NAME, PREVIEW_INTERFACE, SELECT_DEFAULT_VALUE, TEXT_CONTENT_TYPE, PAGE_BUILDER_FIELD_ID, PAGE_BUILDER_TEMPLATE_FIELD_ID, ERROR, SUCCESS, PUBLISHED, UNPUBLISHED, SAVE_BUTTON_TEXTS, ACTIONS, PAGE_BUILDER_TAB_INDEX, EDITOR_VIEW_TAB_INDEX, EDITOR_VIEW_TAB, PAGE_BUILDER_TAB, UNPUBLISHED_WARNING, SAVE_BEFORE_PUBLISH_MESSAGE, ICON_SIZE, ICON_COLOR, PAGE_NOT_FOUND, ENTER_KEY, DEFAULT_FILTER_OPTION_LABEL };
|
|
42
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","names":["PLUGIN_NAME","DATA_LISTING_PREFIX","PAGE_BUILDER","TEXT_CONTENT_TYPE","ENTITY_PUBLISHED","SELECT_DEFAULT_VALUE","LEAVE_PAGE_MESSAGE","KEY_TO_CHECK","MENU_PERMISSIONS","PREVIEW_INTERFACE","PAGE_BUILDER_FIELD_ID","PAGE_BUILDER_TEMPLATE_FIELD_ID","ERROR","SUCCESS","PUBLISHED","UNPUBLISHED","SAVE_BUTTON_TEXTS","save","saved","saving","ACTIONS","UNPUBLISHED_WARNING","PAGE_NOT_FOUND","SAVE_BEFORE_PUBLISH_MESSAGE","PAGE_BUILDER_TAB","PAGE_BUILDER_TAB_INDEX","EDITOR_VIEW_TAB","EDITOR_VIEW_TAB_INDEX","ENTER_KEY","ICON_SIZE","WIDTH","HEIGHT","ICON_COLOR","STROKE","FILL","DEFAULT_FILTER_OPTION_LABEL","DEBUG_PARAM"],"sources":["../src/constants.js"],"sourcesContent":["const PLUGIN_NAME = 'data-ui';\nconst DATA_LISTING_PREFIX = '/data-listing';\nconst PAGE_BUILDER = 'pageBuilder';\nconst TEXT_CONTENT_TYPE = 'Publish';\nconst ENTITY_PUBLISHED = 'published';\nconst SELECT_DEFAULT_VALUE = 'Please Choose...';\nconst LEAVE_PAGE_MESSAGE = 'You are going to leave without saving. Are you sure you want to leave?';\nconst KEY_TO_CHECK = 'values.slug';\nconst MENU_PERMISSIONS = ['update:any', 'update:own', 'create:any', 'create:own'];\nconst PREVIEW_INTERFACE = 'preview/can-preview';\nconst PAGE_BUILDER_FIELD_ID = 'pageBuilder';\nconst PAGE_BUILDER_TEMPLATE_FIELD_ID = 'pageBuilderTemplateId';\nconst ERROR = 'error';\nconst SUCCESS = 'success';\nconst PUBLISHED = 'published';\nconst UNPUBLISHED = 'unpublished';\nconst SAVE_BUTTON_TEXTS = { save: 'save', saved: 'saved', saving: 'saving' };\nconst ACTIONS = 'actions';\nconst UNPUBLISHED_WARNING = 'Page already unpublished';\nconst PAGE_NOT_FOUND = 'Page not found';\nconst SAVE_BEFORE_PUBLISH_MESSAGE =\n 'You have to click save to create the record before you can publish';\n\nconst PAGE_BUILDER_TAB = 'Page builder';\nconst PAGE_BUILDER_TAB_INDEX = 1;\nconst EDITOR_VIEW_TAB = 'Editor view';\nconst EDITOR_VIEW_TAB_INDEX = 0;\n\nconst ENTER_KEY = 'Enter';\n\nconst ICON_SIZE = {\n WIDTH: '25px',\n HEIGHT: '25px'\n};\n\nconst ICON_COLOR = {\n STROKE: '#63779C',\n FILL: '#63779C'\n};\n\nconst DEFAULT_FILTER_OPTION_LABEL = 'Any';\nconst DEBUG_PARAM = 'blaze_debug=1';\n\nexport {\n DATA_LISTING_PREFIX,\n DEBUG_PARAM,\n ENTITY_PUBLISHED,\n KEY_TO_CHECK,\n LEAVE_PAGE_MESSAGE,\n MENU_PERMISSIONS,\n PAGE_BUILDER,\n PLUGIN_NAME,\n PREVIEW_INTERFACE,\n SELECT_DEFAULT_VALUE,\n TEXT_CONTENT_TYPE,\n PAGE_BUILDER_FIELD_ID,\n PAGE_BUILDER_TEMPLATE_FIELD_ID,\n ERROR,\n SUCCESS,\n PUBLISHED,\n UNPUBLISHED,\n SAVE_BUTTON_TEXTS,\n ACTIONS,\n PAGE_BUILDER_TAB_INDEX,\n EDITOR_VIEW_TAB_INDEX,\n EDITOR_VIEW_TAB,\n PAGE_BUILDER_TAB,\n UNPUBLISHED_WARNING,\n SAVE_BEFORE_PUBLISH_MESSAGE,\n ICON_SIZE,\n ICON_COLOR,\n PAGE_NOT_FOUND,\n ENTER_KEY,\n DEFAULT_FILTER_OPTION_LABEL\n};\n"],"mappings":"AAAA,MAAMA,WAAW,GAAG,SAAS;AAC7B,MAAMC,mBAAmB,GAAG,eAAe;AAC3C,MAAMC,YAAY,GAAG,aAAa;AAClC,MAAMC,iBAAiB,GAAG,SAAS;AACnC,MAAMC,gBAAgB,GAAG,WAAW;AACpC,MAAMC,oBAAoB,GAAG,kBAAkB;AAC/C,MAAMC,kBAAkB,GAAG,wEAAwE;AACnG,MAAMC,YAAY,GAAG,aAAa;AAClC,MAAMC,gBAAgB,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;AACjF,MAAMC,iBAAiB,GAAG,qBAAqB;AAC/C,MAAMC,qBAAqB,GAAG,aAAa;AAC3C,MAAMC,8BAA8B,GAAG,uBAAuB;AAC9D,MAAMC,KAAK,GAAG,OAAO;AACrB,MAAMC,OAAO,GAAG,SAAS;AACzB,MAAMC,SAAS,GAAG,WAAW;AAC7B,MAAMC,WAAW,GAAG,aAAa;AACjC,MAAMC,iBAAiB,GAAG;EAAEC,IAAI,EAAE,MAAM;EAAEC,KAAK,EAAE,OAAO;EAAEC,MAAM,EAAE;AAAS,CAAC;AAC5E,MAAMC,OAAO,GAAG,SAAS;AACzB,MAAMC,mBAAmB,GAAG,0BAA0B;AACtD,MAAMC,cAAc,GAAG,gBAAgB;AACvC,MAAMC,2BAA2B,GAC/B,oEAAoE;AAEtE,MAAMC,gBAAgB,GAAG,cAAc;AACvC,MAAMC,sBAAsB,GAAG,CAAC;AAChC,MAAMC,eAAe,GAAG,aAAa;AACrC,MAAMC,qBAAqB,GAAG,CAAC;AAE/B,MAAMC,SAAS,GAAG,OAAO;AAEzB,MAAMC,SAAS,GAAG;EAChBC,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,UAAU,GAAG;EACjBC,MAAM,EAAE,SAAS;EACjBC,IAAI,EAAE;AACR,CAAC;AAED,MAAMC,2BAA2B,GAAG,KAAK;AACzC,MAAMC,WAAW,GAAG,eAAe;AAEnC,SACEnC,mBAAmB,EACnBmC,WAAW,EACXhC,gBAAgB,EAChBG,YAAY,EACZD,kBAAkB,EAClBE,gBAAgB,EAChBN,YAAY,EACZF,WAAW,EACXS,iBAAiB,EACjBJ,oBAAoB,EACpBF,iBAAiB,EACjBO,qBAAqB,EACrBC,8BAA8B,EAC9BC,KAAK,EACLC,OAAO,EACPC,SAAS,EACTC,WAAW,EACXC,iBAAiB,EACjBI,OAAO,EACPK,sBAAsB,EACtBE,qBAAqB,EACrBD,eAAe,EACfF,gBAAgB,EAChBH,mBAAmB,EACnBE,2BAA2B,EAC3BM,SAAS,EACTG,UAAU,EACVV,cAAc,EACdM,SAAS,EACTO,2BAA2B","ignoreList":[]}
|