drf-react-by-schema 0.28.1 → 0.28.3
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 +11 -0
- package/dist/components/DataGridBySchemaEditable/DataGridDesktop.d.ts.map +1 -1
- package/dist/components/DataGridBySchemaEditable/DataGridDesktop.js +5 -1
- package/dist/components/DataGridBySchemaEditable/GeoEditCell.d.ts +1 -1
- package/dist/components/DataGridBySchemaEditable/GeoEditCell.d.ts.map +1 -1
- package/dist/components/DataGridBySchemaEditable/GeoEditCell.js +10 -6
- package/dist/components/DataGridBySchemaEditable/GeoThumbCell.d.ts.map +1 -1
- package/dist/components/DataGridBySchemaEditable/GeoThumbCell.js +3 -0
- package/dist/components/DataGridBySchemaEditable/hooks/useProcessRowUpdate.d.ts.map +1 -1
- package/dist/components/DataGridBySchemaEditable/hooks/useProcessRowUpdate.js +17 -20
- package/dist/components/DataGridBySchemaEditable/utils/columnFactory.d.ts.map +1 -1
- package/dist/components/DataGridBySchemaEditable/utils/columnFactory.js +5 -1
- package/dist/components/DialogActions.d.ts.map +1 -1
- package/dist/components/DialogActions.js +8 -3
- package/dist/components/FileTypeIcon.d.ts +18 -0
- package/dist/components/FileTypeIcon.d.ts.map +1 -0
- package/dist/components/FileTypeIcon.js +48 -0
- package/dist/components/details/DetailFieldBySchema.d.ts.map +1 -1
- package/dist/components/details/DetailFieldBySchema.js +18 -3
- package/dist/components/forms/DialogFormBySchema.d.ts.map +1 -1
- package/dist/components/forms/DialogFormBySchema.js +7 -4
- package/dist/components/forms/FormActions.d.ts.map +1 -1
- package/dist/components/forms/FormActions.js +13 -9
- package/dist/components/forms/inputs/MapGeometryPicker.d.ts +1 -0
- package/dist/components/forms/inputs/MapGeometryPicker.d.ts.map +1 -1
- package/dist/components/forms/inputs/MapGeometryPicker.js +10 -3
- package/dist/components/forms/inputs/leafletMarker.d.ts +12 -0
- package/dist/components/forms/inputs/leafletMarker.d.ts.map +1 -0
- package/dist/components/forms/inputs/leafletMarker.js +52 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/styles/texts.d.ts +27 -0
- package/dist/styles/texts.d.ts.map +1 -0
- package/dist/styles/texts.js +34 -0
- package/dist/styles/theme.d.ts +7 -0
- package/dist/styles/theme.d.ts.map +1 -1
- package/dist/styles/theme.js +2 -0
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +10 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -45,6 +45,17 @@ read-only thumbnail map in the DataGrid.
|
|
|
45
45
|
See the complete table of field types and their widgets (including the geometry
|
|
46
46
|
behaviours — add/move/remove rules, GeoJSON text sync and fallbacks) in
|
|
47
47
|
**[`docs/FIELD_TYPES.md`](docs/FIELD_TYPES.md)**.
|
|
48
|
+
|
|
49
|
+
## Localization & theming
|
|
50
|
+
|
|
51
|
+
User-facing strings (geometry picker, form/dialog action buttons, …) are exposed through
|
|
52
|
+
the **MUI theme** (`theme.texts`), so you can localize every widget in your own `theme.ts`
|
|
53
|
+
— no provider changes. The package ships with sensible defaults and also localizes the
|
|
54
|
+
MUI components it renders (DataGrid, date pickers) to pt-BR.
|
|
55
|
+
|
|
56
|
+
See the full reference (namespaces, precedence, MUI locale setup, custom markers) in
|
|
57
|
+
**[`docs/localization.md`](docs/localization.md)**.
|
|
58
|
+
|
|
48
59
|
## Getting started
|
|
49
60
|
|
|
50
61
|
1. Build the Django model (a guide is available at https://pypi.org/project/drf-react-by-schema/)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridDesktop.d.ts","sourceRoot":"","sources":["../../../src/components/DataGridBySchemaEditable/DataGridDesktop.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DataGridDesktop.d.ts","sourceRoot":"","sources":["../../../src/components/DataGridBySchemaEditable/DataGridDesktop.tsx"],"names":[],"mappings":"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"}
|
|
@@ -156,11 +156,14 @@ function DataGridDesktop({ schema, apiRef, dataGridRows, setDataGridRows, rowCou
|
|
|
156
156
|
addExistingModel,
|
|
157
157
|
handleStopEditing,
|
|
158
158
|
});
|
|
159
|
+
// Column width grows with icon count; floor at 100 so the default two actions stay unchanged.
|
|
160
|
+
const actionCount = actions.length + ((customActions === null || customActions === void 0 ? void 0 : customActions.length) || 0);
|
|
161
|
+
const actionsColumnWidth = Math.max(100, actionCount * 40);
|
|
159
162
|
const actionColumn = (0, react_1.useMemo)(() => ({
|
|
160
163
|
field: 'actions',
|
|
161
164
|
type: 'actions',
|
|
162
165
|
headerName: '',
|
|
163
|
-
width:
|
|
166
|
+
width: actionsColumnWidth,
|
|
164
167
|
getActions: (params) => {
|
|
165
168
|
const { id } = params;
|
|
166
169
|
if (isRowEditing === id) {
|
|
@@ -242,6 +245,7 @@ function DataGridDesktop({ schema, apiRef, dataGridRows, setDataGridRows, rowCou
|
|
|
242
245
|
LinkComponent,
|
|
243
246
|
actions,
|
|
244
247
|
customActions,
|
|
248
|
+
actionsColumnWidth,
|
|
245
249
|
indexFieldBasePath,
|
|
246
250
|
indexFieldViewBasePath,
|
|
247
251
|
stateToLink,
|
|
@@ -5,6 +5,6 @@ interface GeoEditCellProps extends GridRenderEditCellParams {
|
|
|
5
5
|
geometry: GeometryFieldType;
|
|
6
6
|
height?: number;
|
|
7
7
|
}
|
|
8
|
-
export default function GeoEditCell({ id, field,
|
|
8
|
+
export default function GeoEditCell({ id, field, api, value, geometry, height, }: GeoEditCellProps): React.JSX.Element;
|
|
9
9
|
export {};
|
|
10
10
|
//# sourceMappingURL=GeoEditCell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeoEditCell.d.ts","sourceRoot":"","sources":["../../../src/components/DataGridBySchemaEditable/GeoEditCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"GeoEditCell.d.ts","sourceRoot":"","sources":["../../../src/components/DataGridBySchemaEditable/GeoEditCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAQxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAKjD,UAAU,gBAAiB,SAAQ,wBAAwB;IACzD,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,EAAE,EACF,KAAK,EACL,GAAG,EACH,KAAK,EACL,QAAQ,EACR,MAAY,GACb,EAAE,gBAAgB,qBA4DlB"}
|
|
@@ -44,9 +44,13 @@ const Button_1 = __importDefault(require("@mui/material/Button"));
|
|
|
44
44
|
const IconButton_1 = __importDefault(require("@mui/material/IconButton"));
|
|
45
45
|
const Modal_1 = __importDefault(require("@mui/material/Modal"));
|
|
46
46
|
const Close_1 = __importDefault(require("@mui/icons-material/Close"));
|
|
47
|
+
const styles_1 = require("@mui/material/styles");
|
|
47
48
|
const utils_1 = require("../../utils");
|
|
48
49
|
const MapGeometryPicker_1 = __importDefault(require("../forms/inputs/MapGeometryPicker"));
|
|
49
|
-
|
|
50
|
+
const texts_1 = require("../../styles/texts");
|
|
51
|
+
function GeoEditCell({ id, field, api, value, geometry, height = 360, }) {
|
|
52
|
+
const texts = (0, texts_1.getThemeTexts)((0, styles_1.useTheme)());
|
|
53
|
+
const geometryTexts = texts.geometry;
|
|
50
54
|
const [open, setOpen] = (0, react_1.useState)(false);
|
|
51
55
|
const [draft, setDraft] = (0, react_1.useState)((0, utils_1.geometryValueToString)(value));
|
|
52
56
|
const handleOpen = () => {
|
|
@@ -56,11 +60,11 @@ function GeoEditCell({ id, field, apiRef, value, geometry, height = 360, }) {
|
|
|
56
60
|
const handleChange = (geoJSON) => {
|
|
57
61
|
const next = geoJSON || '';
|
|
58
62
|
setDraft(next);
|
|
59
|
-
//
|
|
60
|
-
|
|
63
|
+
// Grid stores GeoJSON as an object (as the server + yup object schema send it).
|
|
64
|
+
api.setEditCellValue({ id, field, value: (0, utils_1.parseGeoJSON)(geometry, geoJSON) });
|
|
61
65
|
};
|
|
62
66
|
return (react_1.default.createElement(Box_1.default, { sx: { display: 'flex', alignItems: 'center' } },
|
|
63
|
-
react_1.default.createElement(Button_1.default, { size: "small", variant: "outlined", onClick: handleOpen }, value ?
|
|
67
|
+
react_1.default.createElement(Button_1.default, { size: "small", variant: "outlined", onClick: handleOpen }, value ? geometryTexts.edit : geometryTexts.define),
|
|
64
68
|
react_1.default.createElement(Modal_1.default, { open: open, onClose: () => setOpen(false), sx: { display: 'flex', alignItems: 'center', justifyContent: 'center', p: 2 } },
|
|
65
69
|
react_1.default.createElement(Box_1.default, { sx: {
|
|
66
70
|
width: '100%',
|
|
@@ -74,8 +78,8 @@ function GeoEditCell({ id, field, apiRef, value, geometry, height = 360, }) {
|
|
|
74
78
|
outline: 'none',
|
|
75
79
|
} },
|
|
76
80
|
react_1.default.createElement(Box_1.default, { sx: { display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 1 } },
|
|
77
|
-
react_1.default.createElement(Typography_1.default, { variant: "h6" },
|
|
78
|
-
react_1.default.createElement(IconButton_1.default, { onClick: () => setOpen(false), "aria-label":
|
|
81
|
+
react_1.default.createElement(Typography_1.default, { variant: "h6" }, geometryTexts.drawSelectTitle),
|
|
82
|
+
react_1.default.createElement(IconButton_1.default, { onClick: () => setOpen(false), "aria-label": geometryTexts.close, size: "small" },
|
|
79
83
|
react_1.default.createElement(Close_1.default, null))),
|
|
80
84
|
react_1.default.createElement(MapGeometryPicker_1.default, { geometry: geometry, value: draft, onChange: handleChange, height: height })))));
|
|
81
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeoThumbCell.d.ts","sourceRoot":"","sources":["../../../src/components/DataGridBySchemaEditable/GeoThumbCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"GeoThumbCell.d.ts","sourceRoot":"","sources":["../../../src/components/DataGridBySchemaEditable/GeoThumbCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAOzC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AA8B/D,UAAU,iBAAiB;IACzB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,QAAQ,EACR,KAAK,EACL,KAAwB,EACxB,MAAyB,GAC1B,EAAE,iBAAiB,qBAqCnB"}
|
|
@@ -41,8 +41,11 @@ const react_1 = __importStar(require("react"));
|
|
|
41
41
|
const Box_1 = __importDefault(require("@mui/material/Box"));
|
|
42
42
|
const react_leaflet_1 = require("react-leaflet");
|
|
43
43
|
const leaflet_1 = __importDefault(require("leaflet"));
|
|
44
|
+
const leafletMarker_1 = require("../forms/inputs/leafletMarker");
|
|
44
45
|
const utils_1 = require("../../utils");
|
|
45
46
|
const geoConstants_1 = require("./geoConstants");
|
|
47
|
+
// L.geoJSON point markers use L.Icon.Default; ensure it points at a servable icon.
|
|
48
|
+
(0, leafletMarker_1.applyDefaultLeafletIcon)();
|
|
46
49
|
// Fits the rendered geometry and keeps the thumb static (no pan/zoom).
|
|
47
50
|
function FitGeometry({ data }) {
|
|
48
51
|
const map = (0, react_leaflet_1.useMap)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useProcessRowUpdate.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGridBySchemaEditable/hooks/useProcessRowUpdate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAmB,MAAM,KAAK,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EACL,IAAI,EACJ,UAAU,EACV,EAAE,EACF,eAAe,EACf,eAAe,EACf,0BAA0B,EAC1B,QAAQ,EACR,MAAM,EACP,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"useProcessRowUpdate.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGridBySchemaEditable/hooks/useProcessRowUpdate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAmB,MAAM,KAAK,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EACL,IAAI,EACJ,UAAU,EACV,EAAE,EACF,eAAe,EACf,eAAe,EACf,0BAA0B,EAC1B,QAAQ,EACR,MAAM,EACP,MAAM,iBAAiB,CAAC;AAyBzB,UAAU,wBAAwB,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI;IACxD,eAAe,EAAE,0BAA0B,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;IACxD,mBAAmB,EAAE,SAAS,GAAG,IAAI,CAAC;IACtC,kBAAkB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxB,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;IACvD,mBAAmB,EAAE,KAAK,CAAC,QAAQ,CACjC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAChE,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACpC,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IAClE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACrC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CAC/C;AAED,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,MAAM,GAAG,IAAI,EAAE,uPAkB1D,wBAAwB,CAAC,CAAC,CAAC;kCAEe,IAAI,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC;CAoMzE,CAAC"}
|
|
@@ -21,6 +21,21 @@ const utils_2 = require("../utils");
|
|
|
21
21
|
function isYupValidationError(err) {
|
|
22
22
|
return err instanceof Error && err.name === 'ValidationError';
|
|
23
23
|
}
|
|
24
|
+
// Backends return choice fields as raw values; reshape them into
|
|
25
|
+
// {value, display_name} objects like populateValues does on list load, so every
|
|
26
|
+
// grid row (load + inline-save) stays consistent.
|
|
27
|
+
function enrichChoices(rawData, schema) {
|
|
28
|
+
const out = Object.assign({}, rawData);
|
|
29
|
+
for (const [key, field] of Object.entries(schema)) {
|
|
30
|
+
if (!(key in rawData) || (field === null || field === void 0 ? void 0 : field.type) !== 'choice')
|
|
31
|
+
continue;
|
|
32
|
+
const rawValue = rawData[key];
|
|
33
|
+
out[key] = rawValue
|
|
34
|
+
? { value: rawValue, display_name: (0, utils_1.getChoiceByValue)(rawValue, field.choices) }
|
|
35
|
+
: (0, utils_1.emptyByType)(field);
|
|
36
|
+
}
|
|
37
|
+
return out;
|
|
38
|
+
}
|
|
24
39
|
const useProcessRowUpdate = ({ preparedColumns, yupValidationSchema, setDataGridLoading, indexField, processingRow, setValidationErrors, modelParent, modelParentId, model, schema, addExistingModel, updateOptionsAC, apiRef, setDataGridRows, onProcessRow, handleStopEditing,
|
|
25
40
|
// extraValidators, // TODO: Check why this is missing
|
|
26
41
|
}) => {
|
|
@@ -133,25 +148,7 @@ const useProcessRowUpdate = ({ preparedColumns, yupValidationSchema, setDataGrid
|
|
|
133
148
|
return newState;
|
|
134
149
|
});
|
|
135
150
|
updateOptionsAC();
|
|
136
|
-
const
|
|
137
|
-
const untypedNewRow = Object.assign({}, newRowRaw);
|
|
138
|
-
for (const [key, field] of Object.entries(schema)) {
|
|
139
|
-
if (!(key in newRowRaw)) {
|
|
140
|
-
continue;
|
|
141
|
-
}
|
|
142
|
-
if ((field === null || field === void 0 ? void 0 : field.type) === 'choice') {
|
|
143
|
-
const rawValue = newRowRaw[key];
|
|
144
|
-
untypedNewRow[key] = rawValue
|
|
145
|
-
? {
|
|
146
|
-
value: rawValue,
|
|
147
|
-
display_name: (0, utils_1.getChoiceByValue)(rawValue, field.choices),
|
|
148
|
-
}
|
|
149
|
-
: (0, utils_1.emptyByType)(field);
|
|
150
|
-
continue;
|
|
151
|
-
}
|
|
152
|
-
untypedNewRow[key] = newRowRaw[key];
|
|
153
|
-
}
|
|
154
|
-
const newRow = untypedNewRow;
|
|
151
|
+
const newRow = enrichChoices('data' in response && 'schema' in response ? response.data : response, schema);
|
|
155
152
|
if (onProcessRow) {
|
|
156
153
|
onProcessRow(newRow);
|
|
157
154
|
}
|
|
@@ -197,7 +194,7 @@ const useProcessRowUpdate = ({ preparedColumns, yupValidationSchema, setDataGrid
|
|
|
197
194
|
return newState;
|
|
198
195
|
});
|
|
199
196
|
updateOptionsAC();
|
|
200
|
-
const newRow = 'data' in response && 'schema' in response ? response.data : response;
|
|
197
|
+
const newRow = enrichChoices('data' in response && 'schema' in response ? response.data : response, schema);
|
|
201
198
|
(0, utils_2.updateRow)({
|
|
202
199
|
newRow,
|
|
203
200
|
originalId: editedRow.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnFactory.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGridBySchemaEditable/utils/columnFactory.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"columnFactory.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGridBySchemaEditable/utils/columnFactory.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKzC,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAA4B,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EACL,UAAU,EACV,0BAA0B,EAC1B,SAAS,EACT,eAAe,EAEf,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,QAAQ,EACR,sBAAsB,EACtB,SAAS,EACT,MAAM,EACN,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAmB1E,MAAM,WAAW,yBAAyB,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI;IAChE,MAAM,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACpC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,OAAO,EAAE,0BAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;IACzC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC9C,sBAAsB,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACnD,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1D,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACnD,qBAAqB,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,KAAK,MAAM,CAAC;IAC5D,cAAc,EAAE,cAAc,CAAC;CAChC;AA4BD,wBAAsB,oBAAoB,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,EAAE,EAClE,MAAM,EACN,MAAM,EACN,OAAO,EACP,UAAU,EACV,OAAO,EACP,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,sBAAsB,EACtB,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,QAAQ,EACR,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,GACf,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,CAAC,CA2WzE"}
|
|
@@ -17,6 +17,7 @@ const react_1 = __importDefault(require("react"));
|
|
|
17
17
|
const dayjs_1 = __importDefault(require("dayjs"));
|
|
18
18
|
const string_mask_1 = __importDefault(require("string-mask"));
|
|
19
19
|
const Typography_1 = __importDefault(require("@mui/material/Typography"));
|
|
20
|
+
const Stack_1 = __importDefault(require("@mui/material/Stack"));
|
|
20
21
|
const utils_1 = require("../../../utils");
|
|
21
22
|
const utils_2 = require("../utils");
|
|
22
23
|
const geoConstants_1 = require("../geoConstants");
|
|
@@ -30,6 +31,7 @@ const GridGenericInput_1 = __importDefault(require("../GridGenericInput"));
|
|
|
30
31
|
const GridPatternInput_1 = __importDefault(require("../GridPatternInput"));
|
|
31
32
|
const GeoThumbCell_1 = __importDefault(require("../GeoThumbCell"));
|
|
32
33
|
const GeoEditCell_1 = __importDefault(require("../GeoEditCell"));
|
|
34
|
+
const FileTypeIcon_1 = __importDefault(require("../../FileTypeIcon"));
|
|
33
35
|
const ConditionalEditWrapper_1 = __importDefault(require("../ConditionalEditWrapper"));
|
|
34
36
|
/**
|
|
35
37
|
* Applies a `pattern_format` mask to a column, merging with any existing valueFormatter.
|
|
@@ -181,7 +183,9 @@ function buildPreparedColumns(_a) {
|
|
|
181
183
|
column.renderCell = (p) => {
|
|
182
184
|
var _a, _b;
|
|
183
185
|
return (react_1.default.createElement(react_1.default.Fragment, null, ((_a = p.value) === null || _a === void 0 ? void 0 : _a.name) &&
|
|
184
|
-
(((_b = p.value) === null || _b === void 0 ? void 0 : _b.url) && (fieldType === 'image upload' || fieldType === 'image') ? (react_1.default.createElement("img", { src: `${serverEndPoint === null || serverEndPoint === void 0 ? void 0 : serverEndPoint.url}${p.value.url}`, alt: p.value.name, style: { width: '100%', maxHeight: '100px', objectFit: 'cover' } })) : (react_1.default.createElement(
|
|
186
|
+
(((_b = p.value) === null || _b === void 0 ? void 0 : _b.url) && (fieldType === 'image upload' || fieldType === 'image') ? (react_1.default.createElement("img", { src: `${serverEndPoint === null || serverEndPoint === void 0 ? void 0 : serverEndPoint.url}${p.value.url}`, alt: p.value.name, style: { width: '100%', maxHeight: '100px', objectFit: 'cover' } })) : (react_1.default.createElement(Stack_1.default, { direction: "row", spacing: 0.5, alignItems: "center" },
|
|
187
|
+
react_1.default.createElement(FileTypeIcon_1.default, { name: p.value.name }),
|
|
188
|
+
react_1.default.createElement(Typography_1.default, { variant: "body2" }, p.value.name.split('/').pop()))))));
|
|
185
189
|
};
|
|
186
190
|
if (isEditable && !col.disabled) {
|
|
187
191
|
column.renderEditCell = (p) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogActions.d.ts","sourceRoot":"","sources":["../../src/components/DialogActions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DialogActions.d.ts","sourceRoot":"","sources":["../../src/components/DialogActions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D,UAAU,kBAAkB;IAC1B,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC5C,UAAU,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AACD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,SAAS,EACT,UAAU,EACV,SAAS,EACT,UAAU,GACX,EAAE,kBAAkB,qBAepB"}
|
|
@@ -6,10 +6,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.default = DialogActions;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const Button_1 = __importDefault(require("@mui/material/Button"));
|
|
9
|
-
|
|
9
|
+
const styles_1 = require("@mui/material/styles");
|
|
10
|
+
const texts_1 = require("../styles/texts");
|
|
11
|
+
function DialogActions({ setDialog, handleSave, btnCancel, btnConfirm, }) {
|
|
12
|
+
const formTexts = (0, texts_1.getThemeTexts)((0, styles_1.useTheme)()).forms;
|
|
13
|
+
const cancelLabel = btnCancel !== null && btnCancel !== void 0 ? btnCancel : formTexts.dialogCancel;
|
|
14
|
+
const confirmLabel = btnConfirm !== null && btnConfirm !== void 0 ? btnConfirm : formTexts.dialogSave;
|
|
10
15
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
11
16
|
react_1.default.createElement(Button_1.default, { onClick: () => {
|
|
12
17
|
setDialog({ open: false });
|
|
13
|
-
} },
|
|
14
|
-
handleSave && react_1.default.createElement(Button_1.default, { onClick: handleSave },
|
|
18
|
+
} }, cancelLabel),
|
|
19
|
+
handleSave && react_1.default.createElement(Button_1.default, { onClick: handleSave }, confirmLabel)));
|
|
15
20
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import SvgIcon from '@mui/material/SvgIcon';
|
|
3
|
+
/**
|
|
4
|
+
* File extension → icon, reused anywhere a stored file is shown (detail page,
|
|
5
|
+
* grid cells, mobile lists, ...). Kept here until a central constants module
|
|
6
|
+
* groups it with the other shared constants (as done with the types).
|
|
7
|
+
*/
|
|
8
|
+
export declare const FILE_TYPE_ICONS: Record<string, typeof SvgIcon>;
|
|
9
|
+
export declare const DEFAULT_FILE_ICON: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material/SvgIcon").SvgIconTypeMap<{}, "svg">> & {
|
|
10
|
+
muiName: string;
|
|
11
|
+
};
|
|
12
|
+
export interface FileTypeIconProps {
|
|
13
|
+
/** File name (or URL) whose extension selects the icon. */
|
|
14
|
+
name?: string;
|
|
15
|
+
}
|
|
16
|
+
/** Renders the small icon matching a stored file's extension. */
|
|
17
|
+
export default function FileTypeIcon({ name }: FileTypeIconProps): React.JSX.Element;
|
|
18
|
+
//# sourceMappingURL=FileTypeIcon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileTypeIcon.d.ts","sourceRoot":"","sources":["../../src/components/FileTypeIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,OAAO,MAAM,uBAAuB,CAAC;AAQ5C;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,OAAO,CAoB1D,CAAC;AAEF,eAAO,MAAM,iBAAiB;;CAAsB,CAAC;AAErD,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,iEAAiE;AACjE,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,iBAAiB,qBAI/D"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DEFAULT_FILE_ICON = exports.FILE_TYPE_ICONS = void 0;
|
|
7
|
+
exports.default = FileTypeIcon;
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const Description_1 = __importDefault(require("@mui/icons-material/Description"));
|
|
10
|
+
const FolderZip_1 = __importDefault(require("@mui/icons-material/FolderZip"));
|
|
11
|
+
const Image_1 = __importDefault(require("@mui/icons-material/Image"));
|
|
12
|
+
const InsertDriveFile_1 = __importDefault(require("@mui/icons-material/InsertDriveFile"));
|
|
13
|
+
const PictureAsPdf_1 = __importDefault(require("@mui/icons-material/PictureAsPdf"));
|
|
14
|
+
const TableChart_1 = __importDefault(require("@mui/icons-material/TableChart"));
|
|
15
|
+
/**
|
|
16
|
+
* File extension → icon, reused anywhere a stored file is shown (detail page,
|
|
17
|
+
* grid cells, mobile lists, ...). Kept here until a central constants module
|
|
18
|
+
* groups it with the other shared constants (as done with the types).
|
|
19
|
+
*/
|
|
20
|
+
exports.FILE_TYPE_ICONS = {
|
|
21
|
+
pdf: PictureAsPdf_1.default,
|
|
22
|
+
jpg: Image_1.default,
|
|
23
|
+
jpeg: Image_1.default,
|
|
24
|
+
png: Image_1.default,
|
|
25
|
+
gif: Image_1.default,
|
|
26
|
+
webp: Image_1.default,
|
|
27
|
+
doc: Description_1.default,
|
|
28
|
+
docx: Description_1.default,
|
|
29
|
+
txt: Description_1.default,
|
|
30
|
+
rtf: Description_1.default,
|
|
31
|
+
odt: Description_1.default,
|
|
32
|
+
xls: TableChart_1.default,
|
|
33
|
+
xlsx: TableChart_1.default,
|
|
34
|
+
csv: TableChart_1.default,
|
|
35
|
+
zip: FolderZip_1.default,
|
|
36
|
+
rar: FolderZip_1.default,
|
|
37
|
+
'7z': FolderZip_1.default,
|
|
38
|
+
tar: FolderZip_1.default,
|
|
39
|
+
gz: FolderZip_1.default,
|
|
40
|
+
};
|
|
41
|
+
exports.DEFAULT_FILE_ICON = InsertDriveFile_1.default;
|
|
42
|
+
/** Renders the small icon matching a stored file's extension. */
|
|
43
|
+
function FileTypeIcon({ name }) {
|
|
44
|
+
var _a;
|
|
45
|
+
const extension = (_a = (name !== null && name !== void 0 ? name : '').split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase();
|
|
46
|
+
const Icon = (extension && exports.FILE_TYPE_ICONS[extension]) || exports.DEFAULT_FILE_ICON;
|
|
47
|
+
return react_1.default.createElement(Icon, null);
|
|
48
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailFieldBySchema.d.ts","sourceRoot":"","sources":["../../../src/components/details/DetailFieldBySchema.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DetailFieldBySchema.d.ts","sourceRoot":"","sources":["../../../src/components/details/DetailFieldBySchema.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAQxD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,QAAQ,EACR,WAAW,EACX,KAAK,EACL,OAAO,EACP,OAAO,EACP,OAAO,EACP,WAAW,EACX,eAAe,EACf,mBAAmB,GACpB,EAAE,wBAAwB,4BA6K1B"}
|
|
@@ -11,10 +11,13 @@ const List_1 = __importDefault(require("@mui/material/List"));
|
|
|
11
11
|
const ListItem_1 = __importDefault(require("@mui/material/ListItem"));
|
|
12
12
|
const ListItemText_1 = __importDefault(require("@mui/material/ListItemText"));
|
|
13
13
|
const Button_1 = __importDefault(require("@mui/material/Button"));
|
|
14
|
+
const Stack_1 = __importDefault(require("@mui/material/Stack"));
|
|
14
15
|
const Download_1 = __importDefault(require("@mui/icons-material/Download"));
|
|
15
16
|
const DRFReactBySchemaContext_1 = require("../../context/DRFReactBySchemaContext");
|
|
16
17
|
const styles_1 = require("../../styles");
|
|
17
18
|
const Image_1 = __importDefault(require("../Image"));
|
|
19
|
+
const FileTypeIcon_1 = __importDefault(require("../FileTypeIcon"));
|
|
20
|
+
const GeoThumbCell_1 = __importDefault(require("../DataGridBySchemaEditable/GeoThumbCell"));
|
|
18
21
|
function DetailFieldBySchema({ fieldKey, fieldSchema, value, sxField, sxLabel, sxValue, sxValueList, sxValueListItem, sxValueListItemText, }) {
|
|
19
22
|
const { serverEndPoint } = (0, DRFReactBySchemaContext_1.useDRFReactBySchema)();
|
|
20
23
|
if (!fieldSchema) {
|
|
@@ -24,7 +27,8 @@ function DetailFieldBySchema({ fieldKey, fieldSchema, value, sxField, sxLabel, s
|
|
|
24
27
|
if (!value) {
|
|
25
28
|
return react_1.default.createElement(Box_1.default, { sx: sxField }, "-");
|
|
26
29
|
}
|
|
27
|
-
|
|
30
|
+
const fieldType = fieldSchema.type;
|
|
31
|
+
switch (fieldType) {
|
|
28
32
|
case 'nested object':
|
|
29
33
|
case 'field':
|
|
30
34
|
const multiple = fieldSchema.many || false;
|
|
@@ -39,7 +43,7 @@ function DetailFieldBySchema({ fieldKey, fieldSchema, value, sxField, sxLabel, s
|
|
|
39
43
|
react_1.default.createElement(Typography_1.default, { variant: "body2", sx: sxValue }, value.valueStr)));
|
|
40
44
|
case 'choice':
|
|
41
45
|
case 'list':
|
|
42
|
-
const multipleChoice =
|
|
46
|
+
const multipleChoice = fieldType === 'list' || fieldSchema.many ? true : false;
|
|
43
47
|
if (multipleChoice) {
|
|
44
48
|
return (react_1.default.createElement(Box_1.default, { sx: sxField },
|
|
45
49
|
react_1.default.createElement(Typography_1.default, { variant: "h5", sx: sxLabel }, value.title),
|
|
@@ -57,7 +61,10 @@ function DetailFieldBySchema({ fieldKey, fieldSchema, value, sxField, sxLabel, s
|
|
|
57
61
|
case 'file upload':
|
|
58
62
|
return (react_1.default.createElement(Box_1.default, { sx: sxField },
|
|
59
63
|
react_1.default.createElement(Typography_1.default, { variant: "h5", sx: sxLabel }, value.title),
|
|
60
|
-
react_1.default.createElement(
|
|
64
|
+
value.value ? (react_1.default.createElement(Stack_1.default, { direction: "row", spacing: 1, alignItems: "center" },
|
|
65
|
+
react_1.default.createElement(FileTypeIcon_1.default, { name: value.value.name }),
|
|
66
|
+
react_1.default.createElement(Typography_1.default, { variant: "body2", sx: sxValue },
|
|
67
|
+
react_1.default.createElement(Button_1.default, { href: `${serverEndPoint === null || serverEndPoint === void 0 ? void 0 : serverEndPoint.url}${value.value.url}`, target: "_blank", variant: "outlined", startIcon: react_1.default.createElement(Download_1.default, null) }, value.valueStr)))) : (react_1.default.createElement(Typography_1.default, { variant: "body2", sx: sxValue }, "-"))));
|
|
61
68
|
case 'image upload':
|
|
62
69
|
return (react_1.default.createElement(Box_1.default, { sx: sxField },
|
|
63
70
|
react_1.default.createElement(Typography_1.default, { variant: "h5", sx: sxLabel }, value.title),
|
|
@@ -65,6 +72,14 @@ function DetailFieldBySchema({ fieldKey, fieldSchema, value, sxField, sxLabel, s
|
|
|
65
72
|
react_1.default.createElement(Image_1.default, { sx: styles_1.Layout.detailFieldImg, src: `${serverEndPoint === null || serverEndPoint === void 0 ? void 0 : serverEndPoint.url}${value.value.url}`, alt: value.valueStr }),
|
|
66
73
|
react_1.default.createElement(Typography_1.default, { variant: "body2", sx: sxValue },
|
|
67
74
|
react_1.default.createElement(Button_1.default, { href: `${serverEndPoint === null || serverEndPoint === void 0 ? void 0 : serverEndPoint.url}${value.value.url}`, target: "_blank", variant: "contained", startIcon: react_1.default.createElement(Download_1.default, null) }, value.valueStr)))) : (react_1.default.createElement(Typography_1.default, { variant: "body2", sx: sxValue }, "-"))));
|
|
75
|
+
case 'point':
|
|
76
|
+
case 'polygon':
|
|
77
|
+
case 'multipoint':
|
|
78
|
+
case 'multipolygon':
|
|
79
|
+
case 'geometrycollection':
|
|
80
|
+
return (react_1.default.createElement(Box_1.default, { sx: sxField },
|
|
81
|
+
react_1.default.createElement(Typography_1.default, { variant: "h5", sx: sxLabel }, value.title),
|
|
82
|
+
react_1.default.createElement(GeoThumbCell_1.default, { geometry: fieldType, value: value.value })));
|
|
68
83
|
default:
|
|
69
84
|
return (react_1.default.createElement(Box_1.default, { sx: sxField },
|
|
70
85
|
react_1.default.createElement(Typography_1.default, { variant: "h5", sx: sxLabel }, value.title),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogFormBySchema.d.ts","sourceRoot":"","sources":["../../../src/components/forms/DialogFormBySchema.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiC,MAAM,OAAO,CAAC;AACtD,OAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"DialogFormBySchema.d.ts","sourceRoot":"","sources":["../../../src/components/forms/DialogFormBySchema.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiC,MAAM,OAAO,CAAC;AACtD,OAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,KAAK,CAAC;AAMtC,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,IAAI,EACJ,SAAS,EACT,UAAU,EACV,MAAM,EACP,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAI7D,UAAU,uBAAuB,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI;IACvD,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,gBAAgB,EAAE,eAAe,CAAC;IAClC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,eAAe,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC;IAC/D,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC5C,eAAe,EAAE,CACf,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EAAE,KACnB,OAAO,CAAC,gBAAgB,EAAE,GAAG,UAAU,CAAC,CAAC;IAC9C,YAAY,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IACpC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACzB,YAAY,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CAClD;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,EAAE,EAClE,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,SAAS,EACT,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,GACV,EAAE,uBAAuB,CAAC,CAAC,CAAC,qBAwF5B"}
|
|
@@ -52,10 +52,13 @@ const react_hook_form_1 = require("react-hook-form");
|
|
|
52
52
|
const yup_1 = require("@hookform/resolvers/yup");
|
|
53
53
|
const Box_1 = __importDefault(require("@mui/material/Box"));
|
|
54
54
|
const Button_1 = __importDefault(require("@mui/material/Button"));
|
|
55
|
-
const styles_1 = require("
|
|
55
|
+
const styles_1 = require("@mui/material/styles");
|
|
56
|
+
const styles_2 = require("../../styles");
|
|
56
57
|
const FormBySchema_1 = __importDefault(require("./FormBySchema"));
|
|
57
58
|
const utils_1 = require("../../utils");
|
|
59
|
+
const texts_1 = require("../../styles/texts");
|
|
58
60
|
function DialogFormBySchema({ schema, validationSchema, initialValues, onEditModelSave, setDialog, getAutoComplete, fieldsLayout, hiddenFields, isCancelDisabled, forceSaveEnabled, optionsAC, }) {
|
|
61
|
+
const formTexts = (0, texts_1.getThemeTexts)((0, styles_1.useTheme)()).forms;
|
|
59
62
|
const { control, handleSubmit, reset, getValues, setValue, setError, formState: { errors, isDirty }, } = (0, react_hook_form_1.useForm)({
|
|
60
63
|
mode: 'onBlur',
|
|
61
64
|
resolver: validationSchema ? (0, yup_1.yupResolver)(validationSchema) : undefined,
|
|
@@ -84,11 +87,11 @@ function DialogFormBySchema({ schema, validationSchema, initialValues, onEditMod
|
|
|
84
87
|
return (react_1.default.createElement(react_1.default.Fragment, null, initialValues && control && (react_1.default.createElement("form", { onSubmit: handleSubmit(handleSubmitWrapper) },
|
|
85
88
|
react_1.default.createElement(Box_1.default, null,
|
|
86
89
|
react_1.default.createElement(FormBySchema_1.default, { control: control, errors: errors, schema: schema, getValues: getValues, setValue: setValue, optionsAC: optionsAC, isolatedGetAutoComplete: getAutoComplete, fieldsLayout: fieldsLayout, hiddenFields: hiddenFields, relatedEditable: false })),
|
|
87
|
-
react_1.default.createElement(Box_1.default, { sx:
|
|
90
|
+
react_1.default.createElement(Box_1.default, { sx: styles_2.Layout.flexRow },
|
|
88
91
|
!isCancelDisabled && (react_1.default.createElement(Button_1.default, { variant: "contained", color: "primary", size: "small", sx: { ml: 1 }, onClick: () => {
|
|
89
92
|
setDialog({
|
|
90
93
|
open: false,
|
|
91
94
|
});
|
|
92
|
-
} },
|
|
93
|
-
react_1.default.createElement(Button_1.default, { variant: "contained", name: "exitOnSave", disabled: !forceSaveEnabled && !isDirty, type: "submit", color: "primary", size: "small" },
|
|
95
|
+
} }, formTexts.dialogCancel)),
|
|
96
|
+
react_1.default.createElement(Button_1.default, { variant: "contained", name: "exitOnSave", disabled: !forceSaveEnabled && !isDirty, type: "submit", color: "primary", size: "small" }, formTexts.dialogSave))))));
|
|
94
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormActions.d.ts","sourceRoot":"","sources":["../../../src/components/forms/FormActions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAAmB,EAAE,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"FormActions.d.ts","sourceRoot":"","sources":["../../../src/components/forms/FormActions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAAmB,EAAE,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,EAAE,CAAC;IACX,QAAQ,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACtD,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,IAAI,CAAC;IACnC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,EAAE,EAC3D,YAAY,EACZ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,eAAe,EACf,KAAK,EACL,SAAS,EACT,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,WAAW,GACZ,EAAE,gBAAgB,qBAiHlB"}
|
|
@@ -8,16 +8,20 @@ const react_1 = __importDefault(require("react"));
|
|
|
8
8
|
const Box_1 = __importDefault(require("@mui/material/Box"));
|
|
9
9
|
const Button_1 = __importDefault(require("@mui/material/Button"));
|
|
10
10
|
const Typography_1 = __importDefault(require("@mui/material/Typography"));
|
|
11
|
-
const styles_1 = require("
|
|
11
|
+
const styles_1 = require("@mui/material/styles");
|
|
12
|
+
const styles_2 = require("../../styles");
|
|
12
13
|
const utils_1 = require("../../utils");
|
|
13
14
|
const _types_1 = require("../../@types");
|
|
14
15
|
const APIWrapperContext_1 = require("../../context/APIWrapperContext");
|
|
16
|
+
const texts_1 = require("../../styles/texts");
|
|
15
17
|
function FormActions({ formDisabled, model, objId, onCancel, onDelete, exit, bottom, saveAndContinue, title, labelSave, labelSaveAndContinue, labelSaveAndCreateNew, labelCancel, labelRemove, }) {
|
|
16
18
|
const { onDeleteModel, isMobile } = (0, APIWrapperContext_1.useAPIWrapper)();
|
|
19
|
+
const texts = (0, texts_1.getThemeTexts)((0, styles_1.useTheme)());
|
|
20
|
+
const formTexts = texts.forms;
|
|
17
21
|
if (isMobile && !bottom) {
|
|
18
22
|
return react_1.default.createElement(react_1.default.Fragment, null);
|
|
19
23
|
}
|
|
20
|
-
const finalSx = Object.assign(Object.assign({},
|
|
24
|
+
const finalSx = Object.assign(Object.assign({}, styles_2.Layout.flexRowGrow), (bottom && !(0, utils_1.isTmpId)(objId)
|
|
21
25
|
? {
|
|
22
26
|
mb: 5,
|
|
23
27
|
pb: 2,
|
|
@@ -40,12 +44,12 @@ function FormActions({ formDisabled, model, objId, onCancel, onDelete, exit, bot
|
|
|
40
44
|
exit(objId);
|
|
41
45
|
};
|
|
42
46
|
return (react_1.default.createElement(Box_1.default, { sx: finalSx },
|
|
43
|
-
bottom ? (react_1.default.createElement(Button_1.default, { variant: "contained", type: "button", color: "error", size: "small", disabled: (0, utils_1.isTmpId)(objId) || !onDeleteModel, onClick: handleDelete }, labelRemove ||
|
|
44
|
-
isMobile ? (react_1.default.createElement(Box_1.default, { sx:
|
|
45
|
-
react_1.default.createElement(Button_1.default, { variant: "contained", name: _types_1.FormSaveActions.EXIT_ON_SAVE, type: "submit", color: "primary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, labelSave ||
|
|
46
|
-
react_1.default.createElement(Button_1.default, { variant: "contained", color: "primary", size: "small", sx: { ml: 1 }, onClick: handleCancel }, labelCancel ||
|
|
47
|
+
bottom ? (react_1.default.createElement(Button_1.default, { variant: "contained", type: "button", color: "error", size: "small", disabled: (0, utils_1.isTmpId)(objId) || !onDeleteModel, onClick: handleDelete }, labelRemove || formTexts.remove)) : title ? (react_1.default.createElement(Typography_1.default, { variant: "h5" }, title)) : (react_1.default.createElement(Box_1.default, null)),
|
|
48
|
+
isMobile ? (react_1.default.createElement(Box_1.default, { sx: styles_2.Layout.flexRow },
|
|
49
|
+
react_1.default.createElement(Button_1.default, { variant: "contained", name: _types_1.FormSaveActions.EXIT_ON_SAVE, type: "submit", color: "primary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, labelSave || formTexts.save))) : (react_1.default.createElement(Box_1.default, { sx: styles_2.Layout.flexRow },
|
|
50
|
+
react_1.default.createElement(Button_1.default, { variant: "contained", color: "primary", size: "small", sx: { ml: 1 }, onClick: handleCancel }, labelCancel || formTexts.cancel),
|
|
47
51
|
!isMobile && saveAndContinue && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
48
|
-
react_1.default.createElement(Button_1.default, { variant: "contained", name: _types_1.FormSaveActions.SAVE_AND_CREATE_NEW, type: "submit", color: "secondary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, labelSaveAndCreateNew ||
|
|
49
|
-
react_1.default.createElement(Button_1.default, { variant: "contained", name: _types_1.FormSaveActions.SAVE_AND_CONTINUE, type: "submit", color: "secondary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, labelSaveAndContinue ||
|
|
50
|
-
react_1.default.createElement(Button_1.default, { variant: "contained", name: _types_1.FormSaveActions.EXIT_ON_SAVE, type: "submit", color: "primary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, labelSave ||
|
|
52
|
+
react_1.default.createElement(Button_1.default, { variant: "contained", name: _types_1.FormSaveActions.SAVE_AND_CREATE_NEW, type: "submit", color: "secondary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, labelSaveAndCreateNew || formTexts.saveAndCreateNew),
|
|
53
|
+
react_1.default.createElement(Button_1.default, { variant: "contained", name: _types_1.FormSaveActions.SAVE_AND_CONTINUE, type: "submit", color: "secondary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, labelSaveAndContinue || formTexts.saveAndContinue))),
|
|
54
|
+
react_1.default.createElement(Button_1.default, { variant: "contained", name: _types_1.FormSaveActions.EXIT_ON_SAVE, type: "submit", color: "primary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, labelSave || formTexts.save)))));
|
|
51
55
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SxProps, Theme } from '@mui/material/styles';
|
|
3
3
|
import 'leaflet/dist/leaflet.css';
|
|
4
|
+
import 'leaflet-draw';
|
|
4
5
|
import 'leaflet-draw/dist/leaflet.draw.css';
|
|
5
6
|
import { GeometryFieldType } from '../../../@types';
|
|
6
7
|
interface MapGeometryPickerProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapGeometryPicker.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/inputs/MapGeometryPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAIjD,OAAO,EAAE,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"MapGeometryPicker.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/inputs/MapGeometryPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAIjD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAY,MAAM,sBAAsB,CAAC;AAGhE,OAAO,0BAA0B,CAAC;AAElC,OAAO,cAAc,CAAC;AACtB,OAAO,oCAAoC,CAAC;AAI5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAMpD,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA4LD,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,QAAQ,EACR,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,UAAU,EACV,EAAE,EACF,MAAY,GACb,EAAE,sBAAsB,qBAsDxB"}
|
|
@@ -41,11 +41,18 @@ const react_1 = __importStar(require("react"));
|
|
|
41
41
|
const Box_1 = __importDefault(require("@mui/material/Box"));
|
|
42
42
|
const TextField_1 = __importDefault(require("@mui/material/TextField"));
|
|
43
43
|
const FormHelperText_1 = __importDefault(require("@mui/material/FormHelperText"));
|
|
44
|
+
const styles_1 = require("@mui/material/styles");
|
|
44
45
|
const react_leaflet_1 = require("react-leaflet");
|
|
45
46
|
const leaflet_1 = __importDefault(require("leaflet"));
|
|
46
47
|
require("leaflet/dist/leaflet.css");
|
|
48
|
+
// leaflet-draw does not export; augments global L with Control.Draw.
|
|
49
|
+
require("leaflet-draw");
|
|
47
50
|
require("leaflet-draw/dist/leaflet.draw.css");
|
|
51
|
+
const leafletMarker_1 = require("./leafletMarker");
|
|
52
|
+
const texts_1 = require("../../../styles/texts");
|
|
48
53
|
const utils_1 = require("../../../utils");
|
|
54
|
+
// Markers need a servable icon; leaflet's stock icons 404 inside an SPA.
|
|
55
|
+
(0, leafletMarker_1.applyDefaultLeafletIcon)();
|
|
49
56
|
// Build the drf-react-by-schema geometry out of leaflet-draw features. Leaflet
|
|
50
57
|
// already parses/produces GeoJSON (L.geoJSON, FeatureGroup.toGeoJSON), so here
|
|
51
58
|
// we only reshape the resulting features into the right geometry type.
|
|
@@ -222,6 +229,8 @@ function DrawEditor({ geometry, value, onChange, }) {
|
|
|
222
229
|
return null;
|
|
223
230
|
}
|
|
224
231
|
function MapGeometryPicker({ geometry, value, label, onChange, error, helperText, sx, height = 340, }) {
|
|
232
|
+
const texts = (0, texts_1.getThemeTexts)((0, styles_1.useTheme)());
|
|
233
|
+
const geometryTexts = texts.geometry;
|
|
225
234
|
const valueText = value || '';
|
|
226
235
|
// Malformed detection: non-empty text that isn't GeoJSON (or of the wrong
|
|
227
236
|
// geometry type). Invalid input is flagged as an error instead of silently
|
|
@@ -239,9 +248,7 @@ function MapGeometryPicker({ geometry, value, label, onChange, error, helperText
|
|
|
239
248
|
react_1.default.createElement(react_leaflet_1.MapContainer, { center: [-14.235, -51.9253], zoom: 4, style: { height: '100%', width: '100%' }, zoomControl: true },
|
|
240
249
|
react_1.default.createElement(react_leaflet_1.TileLayer, { attribution: "\u00A9 OpenStreetMap contributors", url: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" }),
|
|
241
250
|
react_1.default.createElement(DrawEditor, { geometry: geometry, value: value, onChange: onChange }))),
|
|
242
|
-
react_1.default.createElement(TextField_1.default, { value: value, onChange: (e) => onChange(e.target.value || null), variant: "outlined", margin: "dense", fullWidth: true, size: "small", label: geometry === 'point' ?
|
|
243
|
-
? 'Dados malformados, corrija o GeoJSON para refletir no mapa.'
|
|
244
|
-
: 'O GeoJSON abaixo é sincronizado com o mapa.' }),
|
|
251
|
+
react_1.default.createElement(TextField_1.default, { value: value, onChange: (e) => onChange(e.target.value || null), variant: "outlined", margin: "dense", fullWidth: true, size: "small", label: geometry === 'point' ? geometryTexts.labelPoint : geometryTexts.labelOther, multiline: geometry !== 'point', minRows: geometry !== 'point' ? 3 : 1, sx: { mt: 1 }, error: malformed, helperText: malformed ? geometryTexts.malformed : geometryTexts.synced }),
|
|
245
252
|
label && react_1.default.createElement(FormHelperText_1.default, { sx: { mt: 0.5 } }, label),
|
|
246
253
|
(helperText || error) && (react_1.default.createElement(FormHelperText_1.default, { error: error, sx: { mt: 0.5 } }, helperText))));
|
|
247
254
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import L from 'leaflet';
|
|
2
|
+
export declare const DEFAULT_MARKER_PIN_SVG: string;
|
|
3
|
+
export declare const DEFAULT_MARKER_SHADOW_SVG: string;
|
|
4
|
+
export declare const DEFAULT_MARKER_ICON_URL: string;
|
|
5
|
+
export declare const DEFAULT_MARKER_SHADOW_URL: string;
|
|
6
|
+
/**
|
|
7
|
+
* Point L.Icon.Default at a servable marker so geometry widgets render points.
|
|
8
|
+
* No args: apply the built-in SVG icon once; skip if any icon is already set.
|
|
9
|
+
* With `userOptions`: always merge (custom marker wins).
|
|
10
|
+
*/
|
|
11
|
+
export declare function applyDefaultLeafletIcon(userOptions?: Partial<L.IconOptions>): void;
|
|
12
|
+
//# sourceMappingURL=leafletMarker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leafletMarker.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/inputs/leafletMarker.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,SAAS,CAAC;AAKxB,eAAO,MAAM,sBAAsB,QAIzB,CAAC;AAEX,eAAO,MAAM,yBAAyB,QAG5B,CAAC;AAIX,eAAO,MAAM,uBAAuB,QAAoC,CAAC;AACzE,eAAO,MAAM,yBAAyB,QAAuC,CAAC;AAgB9E;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI,CAalF"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DEFAULT_MARKER_SHADOW_URL = exports.DEFAULT_MARKER_ICON_URL = exports.DEFAULT_MARKER_SHADOW_SVG = exports.DEFAULT_MARKER_PIN_SVG = void 0;
|
|
7
|
+
exports.applyDefaultLeafletIcon = applyDefaultLeafletIcon;
|
|
8
|
+
const leaflet_1 = __importDefault(require("leaflet"));
|
|
9
|
+
// Leaflet's stock icons are page-relative PNGs that 404 inside an SPA. Use an
|
|
10
|
+
// inline-SVG data-URI default so markers render under any bundler with no assets.
|
|
11
|
+
exports.DEFAULT_MARKER_PIN_SVG = '<svg xmlns="http://www.w3.org/2000/svg" width="25" height="41" viewBox="0 0 25 41">' +
|
|
12
|
+
'<path d="M12.5 0C6.7 0 2.1 4.2 2.1 9.4c0 7.7 10.4 31.6 10.4 31.6S22.9 17.1 22.9 9.4C22.9 4.2 18.3 0 12.5 0z" fill="#3388ff" stroke="#ffffff" stroke-width="1.5" stroke-linejoin="round"/>' +
|
|
13
|
+
'<circle cx="12.5" cy="9" r="6.2" fill="#ffffff"/>' +
|
|
14
|
+
'</svg>';
|
|
15
|
+
exports.DEFAULT_MARKER_SHADOW_SVG = '<svg xmlns="http://www.w3.org/2000/svg" width="41" height="41" viewBox="0 0 41 41">' +
|
|
16
|
+
'<path d="M20.5 38c-5.4 0-9.7-1-9.9-2.2-.2-1.2 4.1-2.1 9.6-2.1 5.6 0 10.2 1 10 2.2-.2 1.2-4.3 2.1-9.7 2.1z" fill="rgba(0,0,0,0.4)"/>' +
|
|
17
|
+
'</svg>';
|
|
18
|
+
const toDataUri = (svg) => `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svg)}`;
|
|
19
|
+
exports.DEFAULT_MARKER_ICON_URL = toDataUri(exports.DEFAULT_MARKER_PIN_SVG);
|
|
20
|
+
exports.DEFAULT_MARKER_SHADOW_URL = toDataUri(exports.DEFAULT_MARKER_SHADOW_SVG);
|
|
21
|
+
let applied = false;
|
|
22
|
+
const DEFAULT_ICON_OPTIONS = {
|
|
23
|
+
iconUrl: exports.DEFAULT_MARKER_ICON_URL,
|
|
24
|
+
iconRetinaUrl: exports.DEFAULT_MARKER_ICON_URL, // SVG scales; stays crisp on retina
|
|
25
|
+
shadowUrl: exports.DEFAULT_MARKER_SHADOW_URL,
|
|
26
|
+
iconSize: leaflet_1.default.point(25, 41),
|
|
27
|
+
iconAnchor: leaflet_1.default.point(12, 41),
|
|
28
|
+
popupAnchor: leaflet_1.default.point(1, -34),
|
|
29
|
+
tooltipAnchor: leaflet_1.default.point(16, -28),
|
|
30
|
+
shadowSize: leaflet_1.default.point(41, 41),
|
|
31
|
+
shadowAnchor: leaflet_1.default.point(12, 41),
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Point L.Icon.Default at a servable marker so geometry widgets render points.
|
|
35
|
+
* No args: apply the built-in SVG icon once; skip if any icon is already set.
|
|
36
|
+
* With `userOptions`: always merge (custom marker wins).
|
|
37
|
+
*/
|
|
38
|
+
function applyDefaultLeafletIcon(userOptions) {
|
|
39
|
+
if (userOptions) {
|
|
40
|
+
leaflet_1.default.Icon.Default.mergeOptions(userOptions); // explicit custom icon wins
|
|
41
|
+
applied = true;
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (applied)
|
|
45
|
+
return;
|
|
46
|
+
if (leaflet_1.default.Icon.Default.prototype.options.iconUrl) {
|
|
47
|
+
applied = true; // consumer already picked their own icon; keep it
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
leaflet_1.default.Icon.Default.mergeOptions(DEFAULT_ICON_OPTIONS);
|
|
51
|
+
applied = true;
|
|
52
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ import GenericModelList from './components/GenericModelList';
|
|
|
9
9
|
import GenericRelatedModelList from './components/GenericRelatedModelList';
|
|
10
10
|
import DataTotals from './components/DataTotals';
|
|
11
11
|
import DialogActions from './components/DialogActions';
|
|
12
|
+
import FileTypeIcon from './components/FileTypeIcon';
|
|
12
13
|
import SelectEditInputCell from './components/DataGridBySchemaEditable/SelectEditInputCell';
|
|
13
14
|
import GridDateInput from './components/DataGridBySchemaEditable/GridDateInput';
|
|
14
15
|
import GridDecimalInput from './components/DataGridBySchemaEditable/GridDecimalInput';
|
|
@@ -24,8 +25,11 @@ import DesktopDateTimePickerBySchema from './components/forms/inputs/DesktopDate
|
|
|
24
25
|
import EditableAutocompleteFieldBySchema from './components/forms/inputs/EditableAutocompleteFieldBySchema';
|
|
25
26
|
import AutocompleteFieldBySchema from './components/forms/inputs/AutocompleteFieldBySchema';
|
|
26
27
|
import FloatFieldBySchema from './components/forms/inputs/FloatFieldBySchema';
|
|
28
|
+
export { applyDefaultLeafletIcon } from './components/forms/inputs/leafletMarker';
|
|
29
|
+
export { getThemeTexts } from './styles/texts';
|
|
30
|
+
export type { DRFReactBySchemaTexts, GeometryTexts, FormTexts } from './styles/texts';
|
|
27
31
|
import DetailBySchema from './components/details/DetailBySchema';
|
|
28
32
|
import DetailFieldBySchema from './components/details/DetailFieldBySchema';
|
|
29
|
-
export { DRFReactBySchemaProvider, useAPIWrapper, Form, DialogFormBySchema, DataGridBySchemaEditable, GenericModelList, GenericRelatedModelList, DataTotals, DialogActions, SelectEditInputCell, GridDateInput, GridDecimalInput, GridPatternInput, BooleanInputCell, FormWatcher, FormBySchema, FieldBySchema, TextFieldBySchema, BooleanFieldBySchema, DesktopDatePickerBySchema, DesktopDateTimePickerBySchema, EditableAutocompleteFieldBySchema, AutocompleteFieldBySchema, FloatFieldBySchema, DetailBySchema, DetailFieldBySchema, setAuthToken, emptyByType, getChoiceByValue, populateValues, buildGenericYupValidationSchema, errorProps, getFieldErrorsFromResponse, getTmpId, isTmpId, getPatternFormat, clearJWT, hasJWT, slugToCamelCase, AUTH_EXPIRED_EVENT, };
|
|
33
|
+
export { DRFReactBySchemaProvider, useAPIWrapper, Form, DialogFormBySchema, DataGridBySchemaEditable, GenericModelList, GenericRelatedModelList, DataTotals, DialogActions, FileTypeIcon, SelectEditInputCell, GridDateInput, GridDecimalInput, GridPatternInput, BooleanInputCell, FormWatcher, FormBySchema, FieldBySchema, TextFieldBySchema, BooleanFieldBySchema, DesktopDatePickerBySchema, DesktopDateTimePickerBySchema, EditableAutocompleteFieldBySchema, AutocompleteFieldBySchema, FloatFieldBySchema, DetailBySchema, DetailFieldBySchema, setAuthToken, emptyByType, getChoiceByValue, populateValues, buildGenericYupValidationSchema, errorProps, getFieldErrorsFromResponse, getTmpId, isTmpId, getPatternFormat, clearJWT, hasJWT, slugToCamelCase, AUTH_EXPIRED_EVENT, };
|
|
30
34
|
export * from './@types/index';
|
|
31
35
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,+BAA+B,EAC/B,UAAU,EACV,0BAA0B,EAC1B,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,eAAe,EAChB,MAAM,SAAS,CAAC;AAGjB,OAAO,wBAAwB,MAAM,oCAAoC,CAAC;AAG1E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,OAAO,IAAI,MAAM,yBAAyB,CAAC;AAC3C,OAAO,kBAAkB,MAAM,uCAAuC,CAAC;AAGvE,OAAO,wBAAwB,MAAM,uCAAuC,CAAC;AAC7E,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAC7D,OAAO,uBAAuB,MAAM,sCAAsC,CAAC;AAC3E,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,aAAa,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,+BAA+B,EAC/B,UAAU,EACV,0BAA0B,EAC1B,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,eAAe,EAChB,MAAM,SAAS,CAAC;AAGjB,OAAO,wBAAwB,MAAM,oCAAoC,CAAC;AAG1E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,OAAO,IAAI,MAAM,yBAAyB,CAAC;AAC3C,OAAO,kBAAkB,MAAM,uCAAuC,CAAC;AAGvE,OAAO,wBAAwB,MAAM,uCAAuC,CAAC;AAC7E,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAC7D,OAAO,uBAAuB,MAAM,sCAAsC,CAAC;AAC3E,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAGrD,OAAO,mBAAmB,MAAM,2DAA2D,CAAC;AAC5F,OAAO,aAAa,MAAM,qDAAqD,CAAC;AAChF,OAAO,gBAAgB,MAAM,wDAAwD,CAAC;AACtF,OAAO,gBAAgB,MAAM,wDAAwD,CAAC;AACtF,OAAO,gBAAgB,MAAM,wDAAwD,CAAC;AAGtF,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAC3D,OAAO,aAAa,MAAM,kCAAkC,CAAC;AAC7D,OAAO,iBAAiB,MAAM,6CAA6C,CAAC;AAC5E,OAAO,oBAAoB,MAAM,gDAAgD,CAAC;AAClF,OAAO,yBAAyB,MAAM,qDAAqD,CAAC;AAC5F,OAAO,6BAA6B,MAAM,yDAAyD,CAAC;AACpG,OAAO,iCAAiC,MAAM,6DAA6D,CAAC;AAC5G,OAAO,yBAAyB,MAAM,qDAAqD,CAAC;AAC5F,OAAO,kBAAkB,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGtF,OAAO,cAAc,MAAM,qCAAqC,CAAC;AACjE,OAAO,mBAAmB,MAAM,0CAA0C,CAAC;AAE3E,OAAO,EAEL,wBAAwB,EAGxB,aAAa,EAGb,IAAI,EACJ,kBAAkB,EAGlB,wBAAwB,EACxB,gBAAgB,EAChB,uBAAuB,EACvB,UAAU,EACV,aAAa,EAGb,YAAY,EAGZ,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAGhB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,6BAA6B,EAC7B,iCAAiC,EACjC,yBAAyB,EACzB,kBAAkB,EAGlB,cAAc,EACd,mBAAmB,EAGnB,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,+BAA+B,EAC/B,UAAU,EACV,0BAA0B,EAC1B,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACN,eAAe,EACf,kBAAkB,GACnB,CAAC;AAEF,cAAc,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.AUTH_EXPIRED_EVENT = exports.slugToCamelCase = exports.hasJWT = exports.clearJWT = exports.getPatternFormat = exports.isTmpId = exports.getTmpId = exports.getFieldErrorsFromResponse = exports.errorProps = exports.buildGenericYupValidationSchema = exports.populateValues = exports.getChoiceByValue = exports.emptyByType = exports.setAuthToken = exports.DetailFieldBySchema = exports.DetailBySchema = exports.FloatFieldBySchema = exports.AutocompleteFieldBySchema = exports.EditableAutocompleteFieldBySchema = exports.DesktopDateTimePickerBySchema = exports.DesktopDatePickerBySchema = exports.BooleanFieldBySchema = exports.TextFieldBySchema = exports.FieldBySchema = exports.FormBySchema = exports.FormWatcher = exports.BooleanInputCell = exports.GridPatternInput = exports.GridDecimalInput = exports.GridDateInput = exports.SelectEditInputCell = exports.DialogActions = exports.DataTotals = exports.GenericRelatedModelList = exports.GenericModelList = exports.DataGridBySchemaEditable = exports.DialogFormBySchema = exports.Form = exports.useAPIWrapper = exports.DRFReactBySchemaProvider = void 0;
|
|
20
|
+
exports.AUTH_EXPIRED_EVENT = exports.slugToCamelCase = exports.hasJWT = exports.clearJWT = exports.getPatternFormat = exports.isTmpId = exports.getTmpId = exports.getFieldErrorsFromResponse = exports.errorProps = exports.buildGenericYupValidationSchema = exports.populateValues = exports.getChoiceByValue = exports.emptyByType = exports.setAuthToken = exports.DetailFieldBySchema = exports.DetailBySchema = exports.FloatFieldBySchema = exports.AutocompleteFieldBySchema = exports.EditableAutocompleteFieldBySchema = exports.DesktopDateTimePickerBySchema = exports.DesktopDatePickerBySchema = exports.BooleanFieldBySchema = exports.TextFieldBySchema = exports.FieldBySchema = exports.FormBySchema = exports.FormWatcher = exports.BooleanInputCell = exports.GridPatternInput = exports.GridDecimalInput = exports.GridDateInput = exports.SelectEditInputCell = exports.FileTypeIcon = exports.DialogActions = exports.DataTotals = exports.GenericRelatedModelList = exports.GenericModelList = exports.DataGridBySchemaEditable = exports.DialogFormBySchema = exports.Form = exports.useAPIWrapper = exports.DRFReactBySchemaProvider = exports.getThemeTexts = exports.applyDefaultLeafletIcon = void 0;
|
|
21
21
|
// Methods:
|
|
22
22
|
const api_1 = require("./api");
|
|
23
23
|
Object.defineProperty(exports, "setAuthToken", { enumerable: true, get: function () { return api_1.setAuthToken; } });
|
|
@@ -57,6 +57,8 @@ const DataTotals_1 = __importDefault(require("./components/DataTotals"));
|
|
|
57
57
|
exports.DataTotals = DataTotals_1.default;
|
|
58
58
|
const DialogActions_1 = __importDefault(require("./components/DialogActions"));
|
|
59
59
|
exports.DialogActions = DialogActions_1.default;
|
|
60
|
+
const FileTypeIcon_1 = __importDefault(require("./components/FileTypeIcon"));
|
|
61
|
+
exports.FileTypeIcon = FileTypeIcon_1.default;
|
|
60
62
|
// DataGridBySchema Components:
|
|
61
63
|
const SelectEditInputCell_1 = __importDefault(require("./components/DataGridBySchemaEditable/SelectEditInputCell"));
|
|
62
64
|
exports.SelectEditInputCell = SelectEditInputCell_1.default;
|
|
@@ -89,6 +91,10 @@ const AutocompleteFieldBySchema_1 = __importDefault(require("./components/forms/
|
|
|
89
91
|
exports.AutocompleteFieldBySchema = AutocompleteFieldBySchema_1.default;
|
|
90
92
|
const FloatFieldBySchema_1 = __importDefault(require("./components/forms/inputs/FloatFieldBySchema"));
|
|
91
93
|
exports.FloatFieldBySchema = FloatFieldBySchema_1.default;
|
|
94
|
+
var leafletMarker_1 = require("./components/forms/inputs/leafletMarker");
|
|
95
|
+
Object.defineProperty(exports, "applyDefaultLeafletIcon", { enumerable: true, get: function () { return leafletMarker_1.applyDefaultLeafletIcon; } });
|
|
96
|
+
var texts_1 = require("./styles/texts");
|
|
97
|
+
Object.defineProperty(exports, "getThemeTexts", { enumerable: true, get: function () { return texts_1.getThemeTexts; } });
|
|
92
98
|
// DetailComponents
|
|
93
99
|
const DetailBySchema_1 = __importDefault(require("./components/details/DetailBySchema"));
|
|
94
100
|
exports.DetailBySchema = DetailBySchema_1.default;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Theme } from '@mui/material/styles';
|
|
2
|
+
export interface GeometryTexts {
|
|
3
|
+
labelPoint: string;
|
|
4
|
+
labelOther: string;
|
|
5
|
+
malformed: string;
|
|
6
|
+
synced: string;
|
|
7
|
+
edit: string;
|
|
8
|
+
define: string;
|
|
9
|
+
drawSelectTitle: string;
|
|
10
|
+
close: string;
|
|
11
|
+
}
|
|
12
|
+
export interface FormTexts {
|
|
13
|
+
save: string;
|
|
14
|
+
saveAndContinue: string;
|
|
15
|
+
saveAndCreateNew: string;
|
|
16
|
+
cancel: string;
|
|
17
|
+
remove: string;
|
|
18
|
+
dialogCancel: string;
|
|
19
|
+
dialogSave: string;
|
|
20
|
+
}
|
|
21
|
+
export interface DRFReactBySchemaTexts {
|
|
22
|
+
geometry: GeometryTexts;
|
|
23
|
+
forms: FormTexts;
|
|
24
|
+
}
|
|
25
|
+
export declare const DEFAULT_TEXTS: DRFReactBySchemaTexts;
|
|
26
|
+
export declare function getThemeTexts(theme: Theme): DRFReactBySchemaTexts;
|
|
27
|
+
//# sourceMappingURL=texts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texts.d.ts","sourceRoot":"","sources":["../../src/styles/texts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,SAAS,CAAC;CAClB;AAGD,eAAO,MAAM,aAAa,EAAE,qBAoB3B,CAAC;AAGF,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,qBAAqB,CAMjE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_TEXTS = void 0;
|
|
4
|
+
exports.getThemeTexts = getThemeTexts;
|
|
5
|
+
// Default widget strings (en). Apps override any namespace via their MUI theme.
|
|
6
|
+
exports.DEFAULT_TEXTS = {
|
|
7
|
+
geometry: {
|
|
8
|
+
labelPoint: 'Coordinates (GeoJSON)',
|
|
9
|
+
labelOther: 'GeoJSON (paste here)',
|
|
10
|
+
malformed: 'Malformed data, fix the GeoJSON to reflect on the map.',
|
|
11
|
+
synced: 'The GeoJSON below is synchronized with the map.',
|
|
12
|
+
edit: 'Edit geometry',
|
|
13
|
+
define: 'Define geometry',
|
|
14
|
+
drawSelectTitle: 'Draw / select geometry',
|
|
15
|
+
close: 'Close',
|
|
16
|
+
},
|
|
17
|
+
forms: {
|
|
18
|
+
save: 'Save',
|
|
19
|
+
saveAndContinue: 'Save and Continue',
|
|
20
|
+
saveAndCreateNew: 'Save and Create New',
|
|
21
|
+
cancel: 'Cancel',
|
|
22
|
+
remove: 'Remove',
|
|
23
|
+
dialogCancel: 'Cancel',
|
|
24
|
+
dialogSave: 'Save',
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
// Merge theme.texts over the defaults; theme.texts is absent under a bare ThemeProvider.
|
|
28
|
+
function getThemeTexts(theme) {
|
|
29
|
+
const custom = theme.texts;
|
|
30
|
+
return {
|
|
31
|
+
geometry: Object.assign(Object.assign({}, exports.DEFAULT_TEXTS.geometry), ((custom === null || custom === void 0 ? void 0 : custom.geometry) || {})),
|
|
32
|
+
forms: Object.assign(Object.assign({}, exports.DEFAULT_TEXTS.forms), ((custom === null || custom === void 0 ? void 0 : custom.forms) || {})),
|
|
33
|
+
};
|
|
34
|
+
}
|
package/dist/styles/theme.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DRFReactBySchemaTexts } from './texts';
|
|
1
2
|
declare module '@mui/material/styles' {
|
|
2
3
|
interface Palette {
|
|
3
4
|
avatars: string[];
|
|
@@ -13,6 +14,12 @@ declare module '@mui/material/styles' {
|
|
|
13
14
|
tableColumnHeader: Palette['primary'];
|
|
14
15
|
formCard: Palette['primary'];
|
|
15
16
|
}
|
|
17
|
+
interface Theme {
|
|
18
|
+
texts: DRFReactBySchemaTexts;
|
|
19
|
+
}
|
|
20
|
+
interface ThemeOptions {
|
|
21
|
+
texts?: Partial<DRFReactBySchemaTexts>;
|
|
22
|
+
}
|
|
16
23
|
interface PaletteColor {
|
|
17
24
|
semaphoric?: string;
|
|
18
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/styles/theme.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/styles/theme.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAiB,MAAM,SAAS,CAAC;AAE/D,OAAO,QAAQ,sBAAsB,CAAC;IAMpC,UAAU,OAAO;QACf,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACjC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7B,cAAc,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACnC,eAAe,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5B,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACjC,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAClC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACjC,iBAAiB,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACtC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;KAC9B;IAED,UAAU,KAAK;QACb,KAAK,EAAE,qBAAqB,CAAC;KAC9B;IACD,UAAU,YAAY;QACpB,KAAK,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;KACxC;IAKD,UAAU,YAAY;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB;CASF;AA4GD,QAAA,MAAM,YAAY,sCA2HjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
package/dist/styles/theme.js
CHANGED
|
@@ -4,6 +4,7 @@ const styles_1 = require("@mui/material/styles");
|
|
|
4
4
|
const locale_1 = require("@mui/material/locale");
|
|
5
5
|
const locales_1 = require("@mui/x-data-grid/locales");
|
|
6
6
|
const locales_2 = require("@mui/x-date-pickers/locales");
|
|
7
|
+
const texts_1 = require("./texts");
|
|
7
8
|
locales_1.ptBR.components.MuiDataGrid.defaultProps.localeText = Object.assign(Object.assign({}, locales_1.ptBR.components.MuiDataGrid.defaultProps.localeText), { toolbarQuickFilterPlaceholder: 'Buscar...', toolbarQuickFilterLabel: 'Buscar', toolbarQuickFilterDeleteIconLabel: 'Limpar busca' });
|
|
8
9
|
const palette = {
|
|
9
10
|
avatars: [
|
|
@@ -105,6 +106,7 @@ const palette = {
|
|
|
105
106
|
};
|
|
106
107
|
const defaultTheme = (0, styles_1.createTheme)({
|
|
107
108
|
palette,
|
|
109
|
+
texts: texts_1.DEFAULT_TEXTS,
|
|
108
110
|
components: {
|
|
109
111
|
MuiButton: {
|
|
110
112
|
styleOverrides: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EACL,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,KAAK,EAEL,eAAe,EACf,YAAY,EAEZ,iBAAiB,EACjB,0BAA0B,EAC1B,IAAI,EACJ,UAAU,EACV,MAAM,EACP,MAAM,WAAW,CAAC;AAEnB,eAAO,MAAM,WAAW,EAAE,YA4BzB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,WAAW,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,8BASrF,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,uBA8ClF;AAoFD,wBAAgB,+BAA+B,CAAC,EAC9C,IAAI,EACJ,MAAM,EACN,IAAY,EACZ,UAAe,EACf,eAAe,EACf,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;;;;;;wCAqEA;AAED,wBAAgB,wBAAwB,CAAC,EACvC,IAAI,EACJ,MAAM,EACN,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,eAAe,GAChB,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACvC,YAAY,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;;;;;;EAyCA;AAED,eAAO,MAAM,UAAU,GAAI,4CAKxB;IACD,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;;CAkBA,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,EAChE,QAAQ,EAAE,OAAO,EACjB,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GACrB,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBnD;AAED,eAAO,MAAM,QAAQ,cAEpB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,IAAI,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,YAK7D,CAAC;AAEF,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,YAQtE;AAED,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,WAqB5C,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,mDA0B7E;AAED,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,EAAE,sBAAoB,WAWhE,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,GAAG,IAAI,WAa1C,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,eAAe,GAAG,SAAS,EAC1C,MAAM,EAAE,eAAe,GAAG,SAAS,+BAwBpC;AAED,wBAAsB,eAAe,CAAC,EACpC,MAAM,EACN,OAAO,EACP,sBAAsB,GACvB,EAAE;IACD,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACtC,sBAAsB,CAAC,EAAE,CACvB,CAAC,EAAE,0BAA0B,KAC1B,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;CACvE;;;;;;;;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/utils.js
CHANGED
|
@@ -569,6 +569,16 @@ function initViewColumns(_a) {
|
|
|
569
569
|
column.valueFormatter = (value) => {
|
|
570
570
|
return !value ? '' : `${value.name.split('/').pop()} (${formatFileSize(value.size)})`;
|
|
571
571
|
};
|
|
572
|
+
break;
|
|
573
|
+
case 'point':
|
|
574
|
+
case 'polygon':
|
|
575
|
+
case 'multipoint':
|
|
576
|
+
case 'multipolygon':
|
|
577
|
+
case 'geometrycollection':
|
|
578
|
+
// PostGIS geometry (GeoJSON object) is not a renderable React child;
|
|
579
|
+
// stringify it for read-only views (detail page / mobile list).
|
|
580
|
+
column.valueFormatter = (value) => !value ? '' : typeof value === 'string' ? value : JSON.stringify(value);
|
|
581
|
+
break;
|
|
572
582
|
default:
|
|
573
583
|
if (fieldSchema.pattern_format) {
|
|
574
584
|
column.patternFormat = fieldSchema.pattern_format;
|
package/package.json
CHANGED