@dartcom/ui-kit 10.1.12 → 10.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/accordion/accordion.d.ts +11 -0
- package/dist/components/accordion/accordion.d.ts.map +1 -0
- package/dist/components/accordion/accordion.stories.d.ts +8 -0
- package/dist/components/accordion/accordion.stories.d.ts.map +1 -0
- package/dist/components/accordion/index.d.ts +2 -0
- package/dist/components/accordion/index.d.ts.map +1 -0
- package/dist/components/accordion/types.d.ts +10 -0
- package/dist/components/accordion/types.d.ts.map +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/layers/leaflet/layers/traffic-sign/config/constants.d.ts +7 -0
- package/dist/components/layers/leaflet/layers/traffic-sign/config/constants.d.ts.map +1 -1
- package/dist/components/layers/leaflet/layers/traffic-sign/traffic-sign-dop/ui/forms/create/create.d.ts.map +1 -1
- package/dist/components/layers/leaflet/layers/traffic-sign/traffic-sign-dop/ui/forms/update/update.d.ts.map +1 -1
- package/dist/components/layers/leaflet/layers/traffic-sign/ui/buttons/add-dop/add-dop.d.ts +9 -0
- package/dist/components/layers/leaflet/layers/traffic-sign/ui/buttons/add-dop/add-dop.d.ts.map +1 -0
- package/dist/components/layers/leaflet/layers/traffic-sign/ui/buttons/add-dop/index.d.ts +2 -0
- package/dist/components/layers/leaflet/layers/traffic-sign/ui/buttons/add-dop/index.d.ts.map +1 -0
- package/dist/components/layers/leaflet/layers/traffic-sign/ui/buttons/index.d.ts +2 -0
- package/dist/components/layers/leaflet/layers/traffic-sign/ui/buttons/index.d.ts.map +1 -0
- package/dist/components/layers/leaflet/layers/traffic-sign/ui/forms/create/create.d.ts.map +1 -1
- package/dist/components/layers/leaflet/layers/traffic-sign/ui/forms/create/schema.d.ts.map +1 -1
- package/dist/components/layers/leaflet/layers/traffic-sign/ui/forms/update/schema.d.ts.map +1 -1
- package/dist/components/layers/leaflet/layers/traffic-sign/ui/forms/update/update.d.ts.map +1 -1
- package/dist/components/layers/leaflet/layers/traffic-sign/ui/index.d.ts +1 -0
- package/dist/components/layers/leaflet/layers/traffic-sign/ui/index.d.ts.map +1 -1
- package/dist/components/layers/leaflet/lib/hooks/useGetLeafletLayer.d.ts +8 -12
- package/dist/components/layers/leaflet/lib/hooks/useGetLeafletLayer.d.ts.map +1 -1
- package/dist/components/layers/leaflet/lib/types.d.ts +6 -5
- package/dist/components/layers/leaflet/lib/types.d.ts.map +1 -1
- package/dist/components/tabs/index.d.ts +2 -0
- package/dist/components/tabs/index.d.ts.map +1 -0
- package/dist/components/tabs/tabs.d.ts +11 -0
- package/dist/components/tabs/tabs.d.ts.map +1 -0
- package/dist/components/tabs/tabs.stories.d.ts +7 -0
- package/dist/components/tabs/tabs.stories.d.ts.map +1 -0
- package/dist/components/tabs/types.d.ts +7 -0
- package/dist/components/tabs/types.d.ts.map +1 -0
- package/dist/index.cjs +314 -260
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +4 -4
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -15,8 +15,8 @@ var reactDom = require('react-dom');
|
|
|
15
15
|
var axios = require('axios');
|
|
16
16
|
var xDatePickers = require('@mui/x-date-pickers');
|
|
17
17
|
var AdapterDateFns = require('@mui/x-date-pickers/AdapterDateFns');
|
|
18
|
-
var DateField$1 = require('@mui/x-date-pickers/DateField');
|
|
19
18
|
var ArrowDownwardIcon = require('@mui/icons-material/ArrowDownward');
|
|
19
|
+
var DateField$1 = require('@mui/x-date-pickers/DateField');
|
|
20
20
|
var lab = require('@mui/lab');
|
|
21
21
|
var Box = require('@mui/material/Box');
|
|
22
22
|
var Modal = require('@mui/material/Modal');
|
|
@@ -23361,6 +23361,13 @@ const trafficSignDateFields = [
|
|
|
23361
23361
|
'warranty_expr_date',
|
|
23362
23362
|
];
|
|
23363
23363
|
const trafficSignDateFormat = 'dd.MM.yyyy';
|
|
23364
|
+
const maxTrafficSignDopsCount = 2;
|
|
23365
|
+
const trafficSignWords = {
|
|
23366
|
+
title: 'Дорожные знаки',
|
|
23367
|
+
};
|
|
23368
|
+
const trafficSignDopWords = {
|
|
23369
|
+
title: 'Дополнительная информация',
|
|
23370
|
+
};
|
|
23364
23371
|
|
|
23365
23372
|
const getTrafficSignLayers = (source) => {
|
|
23366
23373
|
const layers = [];
|
|
@@ -27093,6 +27100,33 @@ const TrafficSignTable = ({ pageSize = 15, defaultValues, filtered = {}, onSelec
|
|
|
27093
27100
|
};
|
|
27094
27101
|
var TrafficSignTable$1 = observer(TrafficSignTable);
|
|
27095
27102
|
|
|
27103
|
+
const Accordion = ({ items, onOpen, defaultValue = null, }) => {
|
|
27104
|
+
const [currentValue, setCurrentValue] = React__namespace.useState(defaultValue);
|
|
27105
|
+
const handleClose = React__namespace.useCallback(() => {
|
|
27106
|
+
setCurrentValue(null);
|
|
27107
|
+
}, []);
|
|
27108
|
+
React__namespace.useEffect(() => {
|
|
27109
|
+
if (defaultValue) {
|
|
27110
|
+
setCurrentValue(defaultValue);
|
|
27111
|
+
}
|
|
27112
|
+
}, [defaultValue]);
|
|
27113
|
+
const id = React__namespace.useId();
|
|
27114
|
+
return (jsxRuntime.jsx(material.Box, { id: id, children: items.map(({ value, summary, getDetails }) => {
|
|
27115
|
+
const key = `${id}-accordion-${value}`;
|
|
27116
|
+
return (jsxRuntime.jsxs(material.Accordion, { expanded: value === currentValue, children: [jsxRuntime.jsx(material.AccordionSummary, { expandIcon: jsxRuntime.jsx(ArrowDownwardIcon, {}), onClick: () => {
|
|
27117
|
+
setCurrentValue((prevState) => {
|
|
27118
|
+
if (prevState === value) {
|
|
27119
|
+
return null;
|
|
27120
|
+
}
|
|
27121
|
+
onOpen?.(value);
|
|
27122
|
+
return value;
|
|
27123
|
+
});
|
|
27124
|
+
}, "aria-controls": `${key}-content`, id: `${key}-header`, children: summary }), jsxRuntime.jsx(material.AccordionDetails, { children: getDetails({
|
|
27125
|
+
onClose: handleClose,
|
|
27126
|
+
}) })] }, key));
|
|
27127
|
+
}) }));
|
|
27128
|
+
};
|
|
27129
|
+
|
|
27096
27130
|
const CustomCard = ({ children, sx = {}, ...props }) => {
|
|
27097
27131
|
return (jsxRuntime.jsx(material.Box, { ...props, sx: {
|
|
27098
27132
|
padding: '20px 15px',
|
|
@@ -27115,33 +27149,60 @@ function DateField({ name, ...props }) {
|
|
|
27115
27149
|
} }));
|
|
27116
27150
|
}
|
|
27117
27151
|
|
|
27152
|
+
const Tabs = ({ items, initialValue, onChange }) => {
|
|
27153
|
+
const [value, setValue] = React__namespace.useState(() => initialValue ?? items[0].value);
|
|
27154
|
+
const id = React__namespace.useId();
|
|
27155
|
+
React__namespace.useEffect(() => {
|
|
27156
|
+
if (initialValue) {
|
|
27157
|
+
setValue(initialValue);
|
|
27158
|
+
}
|
|
27159
|
+
}, [initialValue]);
|
|
27160
|
+
return (jsxRuntime.jsxs(lab.TabContext, { value: value, children: [jsxRuntime.jsx(material.Box, { sx: { borderBottom: 1, borderColor: 'divider' }, children: jsxRuntime.jsx(lab.TabList, { "aria-label": `tabs-${id}`, onChange: (_, value) => {
|
|
27161
|
+
setValue(value);
|
|
27162
|
+
onChange?.(value);
|
|
27163
|
+
}, children: items.map(({ label, value }) => {
|
|
27164
|
+
const key = `${id}-tab-${value}`;
|
|
27165
|
+
return (jsxRuntime.jsx(material.Tab, { label: label, value: value, sx: {
|
|
27166
|
+
textTransform: 'none',
|
|
27167
|
+
} }, key));
|
|
27168
|
+
}) }) }), items.map(({ content, value }) => {
|
|
27169
|
+
const key = `${id}-tab-panel-${value}`;
|
|
27170
|
+
return (jsxRuntime.jsx(lab.TabPanel, { value: value, children: content }, key));
|
|
27171
|
+
})] }));
|
|
27172
|
+
};
|
|
27173
|
+
|
|
27118
27174
|
const fieldName$1 = 'oldDops';
|
|
27119
27175
|
const TrafficSignDopUpdateForm = ({ index, onDelete, onUpdate, }) => {
|
|
27120
|
-
const [expanded, setExpanded] = React__namespace.useState(false);
|
|
27121
27176
|
const { register, setValue, watch } = useFormContext$1();
|
|
27122
27177
|
const trafficSign = watch(`${fieldName$1}.${index}`);
|
|
27123
27178
|
const { dop_sign_number } = trafficSign;
|
|
27124
27179
|
return (jsxRuntime.jsxs(material.Box, { sx: {
|
|
27125
27180
|
display: 'grid',
|
|
27126
27181
|
gap: '12px',
|
|
27127
|
-
}, children: [jsxRuntime.
|
|
27128
|
-
|
|
27129
|
-
|
|
27182
|
+
}, children: [jsxRuntime.jsx(Accordion, { items: [
|
|
27183
|
+
{
|
|
27184
|
+
value: 1,
|
|
27185
|
+
summary: (jsxRuntime.jsxs(material.Box, { sx: {
|
|
27130
27186
|
display: 'flex',
|
|
27131
27187
|
alignItems: 'center',
|
|
27132
27188
|
gap: '12px',
|
|
27133
27189
|
}, children: [jsxRuntime.jsx(DeleteButton, { notification: {
|
|
27134
|
-
title: 'Удалить
|
|
27135
|
-
description: 'Вы действительно хотите удалить
|
|
27190
|
+
title: 'Удалить табличку',
|
|
27191
|
+
description: 'Вы действительно хотите удалить данную табличку?',
|
|
27136
27192
|
}, onDelete: () => {
|
|
27137
27193
|
onDelete(trafficSign);
|
|
27138
|
-
} }), jsxRuntime.jsx(TrafficSignPreviewTitle$1, { number: dop_sign_number })] })
|
|
27139
|
-
|
|
27140
|
-
|
|
27141
|
-
|
|
27142
|
-
|
|
27143
|
-
|
|
27144
|
-
|
|
27194
|
+
} }), jsxRuntime.jsx(TrafficSignPreviewTitle$1, { number: dop_sign_number })] })),
|
|
27195
|
+
getDetails: ({ onClose }) => {
|
|
27196
|
+
return (jsxRuntime.jsx(TrafficSignTable$1, { pageSize: 5, filtered: {
|
|
27197
|
+
type: false,
|
|
27198
|
+
}, trafficSigns: trafficSignsDop, onSelect: ({ title, number }) => {
|
|
27199
|
+
setValue(`${fieldName$1}.${index}.dop_sign_number`, number);
|
|
27200
|
+
setValue(`${fieldName$1}.${index}.dop_sign_title`, title);
|
|
27201
|
+
onClose();
|
|
27202
|
+
} }));
|
|
27203
|
+
},
|
|
27204
|
+
},
|
|
27205
|
+
] }), jsxRuntime.jsx(FormSelect, { ...register(`${fieldName$1}.${index}.status`), label: trafficSignFieldsTitles.status, items: trafficSignStatusOptions, getKey: ({ value }) => value, getLabel: ({ label }) => label, getValue: ({ value }) => value }), jsxRuntime.jsx(CustomInput, { ...register(`${fieldName$1}.${index}.comment`), label: trafficSignFieldsTitles.comment }), jsxRuntime.jsx(CustomInput, { ...register(`${fieldName$1}.${index}.dop_sign_text`), label: trafficSignFieldsTitles.dop_sign_text }), jsxRuntime.jsxs(material.Box, { sx: {
|
|
27145
27206
|
display: 'grid',
|
|
27146
27207
|
gridTemplateColumns: 'repeat(2, 1fr)',
|
|
27147
27208
|
gap: '12px',
|
|
@@ -27153,33 +27214,34 @@ var TrafficSignDopUpdateForm$1 = observer(TrafficSignDopUpdateForm);
|
|
|
27153
27214
|
|
|
27154
27215
|
const fieldName = 'newDops';
|
|
27155
27216
|
const TrafficSignDopCreateForm = ({ index, onDelete, }) => {
|
|
27156
|
-
const { palette } = material.useTheme();
|
|
27157
|
-
const [expanded, setExpanded] = React__namespace.useState(false);
|
|
27158
27217
|
const { setValue, register, watch } = useFormContext$1();
|
|
27159
27218
|
const trafficSign = watch(`${fieldName}.${index}`);
|
|
27160
27219
|
const { dop_sign_number } = trafficSign;
|
|
27161
27220
|
return (jsxRuntime.jsxs(material.Box, { sx: {
|
|
27162
27221
|
display: 'grid',
|
|
27163
27222
|
gap: '12px',
|
|
27164
|
-
}, children: [jsxRuntime.
|
|
27165
|
-
|
|
27166
|
-
|
|
27223
|
+
}, children: [jsxRuntime.jsx(Accordion, { items: [
|
|
27224
|
+
{
|
|
27225
|
+
value: 1,
|
|
27226
|
+
summary: (jsxRuntime.jsxs(material.Box, { sx: {
|
|
27167
27227
|
display: 'flex',
|
|
27168
27228
|
alignItems: 'center',
|
|
27169
27229
|
gap: '12px',
|
|
27170
|
-
}, children: [jsxRuntime.jsx(
|
|
27171
|
-
|
|
27172
|
-
|
|
27173
|
-
},
|
|
27174
|
-
|
|
27175
|
-
|
|
27176
|
-
|
|
27177
|
-
|
|
27178
|
-
|
|
27179
|
-
|
|
27180
|
-
|
|
27181
|
-
|
|
27182
|
-
|
|
27230
|
+
}, children: [jsxRuntime.jsx(DeleteButton, { notification: {
|
|
27231
|
+
title: 'Удалить табличку',
|
|
27232
|
+
description: 'Вы действительно хотите удалить данную табличку?',
|
|
27233
|
+
}, onDelete: onDelete }), jsxRuntime.jsx(TrafficSignPreviewTitle$1, { number: dop_sign_number })] })),
|
|
27234
|
+
getDetails: ({ onClose }) => {
|
|
27235
|
+
return (jsxRuntime.jsx(TrafficSignTable$1, { pageSize: 5, filtered: {
|
|
27236
|
+
type: false,
|
|
27237
|
+
}, trafficSigns: trafficSignsDop, onSelect: ({ title, number }) => {
|
|
27238
|
+
setValue(`${fieldName}.${index}.dop_sign_number`, number);
|
|
27239
|
+
setValue(`${fieldName}.${index}.dop_sign_title`, title);
|
|
27240
|
+
onClose();
|
|
27241
|
+
} }));
|
|
27242
|
+
},
|
|
27243
|
+
},
|
|
27244
|
+
] }), jsxRuntime.jsx(FormSelect, { ...register(`${fieldName}.${index}.status`), label: trafficSignFieldsTitles.status, items: trafficSignStatusOptions, getKey: ({ value }) => value, getLabel: ({ label }) => label, getValue: ({ value }) => value }), jsxRuntime.jsx(CustomInput, { ...register(`${fieldName}.${index}.comment`), label: trafficSignFieldsTitles.comment }), jsxRuntime.jsx(CustomInput, { ...register(`${fieldName}.${index}.dop_sign_text`), label: trafficSignFieldsTitles.dop_sign_text }), jsxRuntime.jsxs(material.Box, { sx: {
|
|
27183
27245
|
display: 'grid',
|
|
27184
27246
|
gridTemplateColumns: 'repeat(2, 1fr)',
|
|
27185
27247
|
gap: '12px',
|
|
@@ -27187,6 +27249,13 @@ const TrafficSignDopCreateForm = ({ index, onDelete, }) => {
|
|
|
27187
27249
|
};
|
|
27188
27250
|
var TrafficSignDopCreateForm$1 = observer(TrafficSignDopCreateForm);
|
|
27189
27251
|
|
|
27252
|
+
const TrafficSignAddDopButton = ({ disabled = false, onClick, }) => {
|
|
27253
|
+
return (jsxRuntime.jsx(Button, { sx: {
|
|
27254
|
+
margin: '0 auto',
|
|
27255
|
+
}, onClick: onClick, disabled: disabled, children: "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0442\u0430\u0431\u043B\u0438\u0447\u043A\u0443" }));
|
|
27256
|
+
};
|
|
27257
|
+
var TrafficSignAddDopButton$1 = observer(TrafficSignAddDopButton);
|
|
27258
|
+
|
|
27190
27259
|
const TrafficSignPreviewTitle = ({ number, }) => {
|
|
27191
27260
|
const title = getTrafficSignTitleByNumber(number);
|
|
27192
27261
|
return (jsxRuntime.jsxs(material.Box, { sx: {
|
|
@@ -29846,8 +29915,14 @@ const schema$2 = create$3()
|
|
|
29846
29915
|
...mainFieldsSchema,
|
|
29847
29916
|
...datesFieldsSchema,
|
|
29848
29917
|
...idsFieldsSchema,
|
|
29849
|
-
oldDops: create$2()
|
|
29850
|
-
|
|
29918
|
+
oldDops: create$2()
|
|
29919
|
+
.max(maxTrafficSignDopsCount)
|
|
29920
|
+
.of(updatedTrafficSignDopSchema)
|
|
29921
|
+
.required(),
|
|
29922
|
+
newDops: create$2()
|
|
29923
|
+
.max(maxTrafficSignDopsCount)
|
|
29924
|
+
.of(createdTrafficSignDopSchema)
|
|
29925
|
+
.required(),
|
|
29851
29926
|
});
|
|
29852
29927
|
|
|
29853
29928
|
const r=(t,r,o)=>{if(t&&"reportValidity"in t){const s=get(o,r);t.setCustomValidity(s&&s.message||""),t.reportValidity();}},o$1=(e,t)=>{for(const o in t.fields){const s=t.fields[o];s&&s.ref&&"reportValidity"in s.ref?r(s.ref,o,e):s&&s.refs&&s.refs.forEach(t=>r(t,o,e));}},s=(r,s)=>{s.shouldUseNativeValidation&&o$1(r,s);const n={};for(const o in r){const f=get(s.fields,o),c=Object.assign(r[o]||{},{ref:f&&f.ref});if(i$1(s.names||Object.keys(r),o)){const r=Object.assign({},get(n,o));set(r,"root",c),set(n,o,r);}else set(n,o,c);}return n},i$1=(e,t)=>{const r=n(t);return e.some(e=>n(e).match(`^${r}\\.\\d+`))};function n(e){return e.replace(/\]|\[/g,"")}
|
|
@@ -29855,11 +29930,6 @@ const r=(t,r,o)=>{if(t&&"reportValidity"in t){const s=get(o,r);t.setCustomValidi
|
|
|
29855
29930
|
function o(o,n,s$1){return void 0===s$1&&(s$1={}),function(a,i,c){try{return Promise.resolve(function(t,r){try{var u=(null!=n&&n.context&&"development"===process.env.NODE_ENV&&console.warn("You should not used the yup options context. Please, use the 'useForm' context object instead"),Promise.resolve(o["sync"===s$1.mode?"validateSync":"validate"](a,Object.assign({abortEarly:!1},n,{context:i}))).then(function(t){return c.shouldUseNativeValidation&&o$1({},c),{values:s$1.raw?Object.assign({},a):t,errors:{}}}));}catch(e){return r(e)}return u&&u.then?u.then(void 0,r):u}(0,function(e){if(!e.inner)throw e;return {values:{},errors:s((o=e,n=!c.shouldUseNativeValidation&&"all"===c.criteriaMode,(o.inner||[]).reduce(function(e,t){if(e[t.path]||(e[t.path]={message:t.message,type:t.type}),n){var o=e[t.path].types,s=o&&o[t.type];e[t.path]=appendErrors(t.path,n,e,t.type,s?[].concat(s,t.message):t.message);}return e},{})),c)};var o,n;}))}catch(e){return Promise.reject(e)}}}
|
|
29856
29931
|
|
|
29857
29932
|
const TrafficSignUpdateForm = ({ trafficSign, onSubmit, onDelete, onDeleteDop, onUpdateDop, }) => {
|
|
29858
|
-
const [tabsValue, setTabsValue] = React__namespace.useState('1');
|
|
29859
|
-
const handleChange = React__namespace.useCallback((_, newValue) => {
|
|
29860
|
-
setTabsValue(newValue);
|
|
29861
|
-
}, []);
|
|
29862
|
-
const [expanded, setExpanded] = React__namespace.useState(false);
|
|
29863
29933
|
const defaultValues = React__namespace.useMemo(() => {
|
|
29864
29934
|
const { dops, traffic_sign_id } = trafficSign;
|
|
29865
29935
|
const defaultValues = {
|
|
@@ -29887,6 +29957,15 @@ const TrafficSignUpdateForm = ({ trafficSign, onSubmit, onDelete, onDeleteDop, o
|
|
|
29887
29957
|
control,
|
|
29888
29958
|
name: 'newDops',
|
|
29889
29959
|
});
|
|
29960
|
+
const isAddNewDop = React__namespace.useMemo(() => {
|
|
29961
|
+
const isAddNewDop = oldDopsFieldArray.fields.length + newDopsFieldArray.fields.length <
|
|
29962
|
+
maxTrafficSignDopsCount;
|
|
29963
|
+
return isAddNewDop;
|
|
29964
|
+
}, [
|
|
29965
|
+
oldDopsFieldArray.fields.length,
|
|
29966
|
+
newDopsFieldArray.fields.length,
|
|
29967
|
+
maxTrafficSignDopsCount,
|
|
29968
|
+
]);
|
|
29890
29969
|
const number = watch('traffic_sign_number');
|
|
29891
29970
|
React__namespace.useEffect(() => {
|
|
29892
29971
|
const isErrors = Object.keys(errors).length > 0;
|
|
@@ -29901,43 +29980,56 @@ const TrafficSignUpdateForm = ({ trafficSign, onSubmit, onDelete, onDeleteDop, o
|
|
|
29901
29980
|
React__namespace.useEffect(() => {
|
|
29902
29981
|
reset(defaultValues);
|
|
29903
29982
|
}, [trafficSign]);
|
|
29904
|
-
return (jsxRuntime.jsxs(CustomForm, { form: form, onSubmit: onSubmit, children: [jsxRuntime.
|
|
29905
|
-
|
|
29906
|
-
|
|
29907
|
-
|
|
29908
|
-
|
|
29983
|
+
return (jsxRuntime.jsxs(CustomForm, { form: form, onSubmit: onSubmit, children: [jsxRuntime.jsx(Tabs, { items: [
|
|
29984
|
+
{
|
|
29985
|
+
label: trafficSignWords.title,
|
|
29986
|
+
value: 1,
|
|
29987
|
+
content: (jsxRuntime.jsxs(material.Box, { sx: {
|
|
29909
29988
|
display: 'grid',
|
|
29910
29989
|
gap: '12px',
|
|
29911
|
-
}, children: [jsxRuntime.
|
|
29912
|
-
|
|
29913
|
-
|
|
29990
|
+
}, children: [jsxRuntime.jsx(Accordion, { items: [
|
|
29991
|
+
{
|
|
29992
|
+
value: 1,
|
|
29993
|
+
summary: (jsxRuntime.jsxs(material.Box, { sx: {
|
|
29914
29994
|
display: 'flex',
|
|
29915
29995
|
alignItems: 'center',
|
|
29916
29996
|
gap: '12px',
|
|
29917
29997
|
}, children: [jsxRuntime.jsx(DeleteButton, { notification: {
|
|
29918
|
-
title: 'Удалить
|
|
29919
|
-
description: 'Вы действительно хотите удалить данный
|
|
29998
|
+
title: 'Удалить дорожный знак',
|
|
29999
|
+
description: 'Вы действительно хотите удалить данный дорожный знак?',
|
|
29920
30000
|
}, onDelete: () => {
|
|
29921
30001
|
onDelete(trafficSign);
|
|
29922
|
-
} }), jsxRuntime.jsx(TrafficSignPreviewTitle$1, { number: number })] })
|
|
29923
|
-
|
|
29924
|
-
|
|
29925
|
-
|
|
29926
|
-
|
|
29927
|
-
|
|
30002
|
+
} }), jsxRuntime.jsx(TrafficSignPreviewTitle$1, { number: number })] })),
|
|
30003
|
+
getDetails: ({ onClose }) => {
|
|
30004
|
+
return (jsxRuntime.jsx(TrafficSignTable$1, { trafficSigns: trafficSigns, pageSize: 5, onSelect: ({ title, number, type }) => {
|
|
30005
|
+
setValue('traffic_sign_number', number);
|
|
30006
|
+
setValue('traffic_sign_title', title);
|
|
30007
|
+
setValue('traffic_sign_type', type);
|
|
30008
|
+
onClose();
|
|
30009
|
+
} }));
|
|
30010
|
+
},
|
|
30011
|
+
},
|
|
30012
|
+
] }), jsxRuntime.jsx(FormSelect, { ...register('status'), label: trafficSignFieldsTitles.status, items: trafficSignStatusOptions, getKey: ({ value }) => value, getLabel: ({ label }) => label, getValue: ({ value }) => value }), jsxRuntime.jsx(CustomInput, { ...register('traffic_sign_value'), label: trafficSignFieldsTitles.traffic_sign_value }), jsxRuntime.jsx(CustomInput, { ...register('comment'), label: trafficSignFieldsTitles.comment }), jsxRuntime.jsx(CustomInput, { ...register('direction'), label: trafficSignFieldsTitles.direction, type: "number" }), jsxRuntime.jsxs(material.Box, { sx: {
|
|
29928
30013
|
display: 'grid',
|
|
29929
30014
|
gridTemplateColumns: 'repeat(2, 1fr)',
|
|
29930
30015
|
gap: '12px',
|
|
29931
|
-
}, children: [jsxRuntime.jsx(DateField, { ...register('placement_date'), label: trafficSignFieldsTitles.placement_date, format: trafficSignDateFormat }), jsxRuntime.jsx(DateField, { ...register('verification_date'), label: trafficSignFieldsTitles.verification_date, format: trafficSignDateFormat }), jsxRuntime.jsx(DateField, { ...register('future_maintanance_date'), label: trafficSignFieldsTitles.future_maintanance_date, format: trafficSignDateFormat }), jsxRuntime.jsx(DateField, { ...register('rapair_performed_date'), label: trafficSignFieldsTitles.rapair_performed_date, format: trafficSignDateFormat }), jsxRuntime.jsx(DateField, { ...register('warranty_expr_date'), label: trafficSignFieldsTitles.warranty_expr_date, format: trafficSignDateFormat })] })] })
|
|
30016
|
+
}, children: [jsxRuntime.jsx(DateField, { ...register('placement_date'), label: trafficSignFieldsTitles.placement_date, format: trafficSignDateFormat }), jsxRuntime.jsx(DateField, { ...register('verification_date'), label: trafficSignFieldsTitles.verification_date, format: trafficSignDateFormat }), jsxRuntime.jsx(DateField, { ...register('future_maintanance_date'), label: trafficSignFieldsTitles.future_maintanance_date, format: trafficSignDateFormat }), jsxRuntime.jsx(DateField, { ...register('rapair_performed_date'), label: trafficSignFieldsTitles.rapair_performed_date, format: trafficSignDateFormat }), jsxRuntime.jsx(DateField, { ...register('warranty_expr_date'), label: trafficSignFieldsTitles.warranty_expr_date, format: trafficSignDateFormat })] })] })),
|
|
30017
|
+
},
|
|
30018
|
+
{
|
|
30019
|
+
label: trafficSignDopWords.title,
|
|
30020
|
+
value: 2,
|
|
30021
|
+
content: (jsxRuntime.jsxs(material.Box, { sx: {
|
|
29932
30022
|
display: 'grid',
|
|
29933
30023
|
gap: '24px',
|
|
29934
|
-
}, children: [jsxRuntime.jsx(
|
|
29935
|
-
|
|
29936
|
-
|
|
29937
|
-
|
|
29938
|
-
|
|
30024
|
+
}, children: [jsxRuntime.jsx(TrafficSignAddDopButton$1, { disabled: !isAddNewDop, onClick: () => {
|
|
30025
|
+
newDopsFieldArray.append({
|
|
30026
|
+
...createdTrafficSignDop,
|
|
30027
|
+
});
|
|
30028
|
+
} }), oldDopsFieldArray.fields.map(({ id }, index) => (jsxRuntime.jsx(CustomCard, { children: jsxRuntime.jsx(TrafficSignDopUpdateForm$1, { index: index, onDelete: onDeleteDop, onUpdate: onUpdateDop }) }, id))), newDopsFieldArray.fields.map(({ id }, index) => (jsxRuntime.jsx(CustomCard, { children: jsxRuntime.jsx(TrafficSignDopCreateForm$1, { onDelete: () => {
|
|
29939
30029
|
newDopsFieldArray.remove(index);
|
|
29940
|
-
}, index: index }) }, id)))] })
|
|
30030
|
+
}, index: index }) }, id)))] })),
|
|
30031
|
+
},
|
|
30032
|
+
] }), jsxRuntime.jsx(Button, { type: "submit", children: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C" })] }));
|
|
29941
30033
|
};
|
|
29942
30034
|
var update = observer(TrafficSignUpdateForm);
|
|
29943
30035
|
|
|
@@ -29945,15 +30037,13 @@ const schema$1 = create$3()
|
|
|
29945
30037
|
.shape({
|
|
29946
30038
|
...mainFieldsSchema,
|
|
29947
30039
|
...datesFieldsSchema,
|
|
29948
|
-
newDops: create$2()
|
|
30040
|
+
newDops: create$2()
|
|
30041
|
+
.max(maxTrafficSignDopsCount)
|
|
30042
|
+
.of(createdTrafficSignDopSchema)
|
|
30043
|
+
.required(),
|
|
29949
30044
|
});
|
|
29950
30045
|
|
|
29951
30046
|
const TrafficSignCreateForm = ({ onSubmit, }) => {
|
|
29952
|
-
const [tabsValue, setTabsValue] = React__namespace.useState('1');
|
|
29953
|
-
const handleChange = (event, newValue) => {
|
|
29954
|
-
setTabsValue(newValue);
|
|
29955
|
-
};
|
|
29956
|
-
const [expanded, setExpanded] = React__namespace.useState(false);
|
|
29957
30047
|
const form = useForm({
|
|
29958
30048
|
resolver: o(schema$1),
|
|
29959
30049
|
defaultValues: {
|
|
@@ -29976,34 +30066,47 @@ const TrafficSignCreateForm = ({ onSubmit, }) => {
|
|
|
29976
30066
|
});
|
|
29977
30067
|
}
|
|
29978
30068
|
}, [errors]);
|
|
29979
|
-
return (jsxRuntime.jsxs(CustomForm, { form: form, onSubmit: onSubmit, children: [jsxRuntime.
|
|
29980
|
-
|
|
29981
|
-
|
|
29982
|
-
|
|
29983
|
-
|
|
30069
|
+
return (jsxRuntime.jsxs(CustomForm, { form: form, onSubmit: onSubmit, children: [jsxRuntime.jsx(Tabs, { items: [
|
|
30070
|
+
{
|
|
30071
|
+
label: trafficSignWords.title,
|
|
30072
|
+
value: 1,
|
|
30073
|
+
content: (jsxRuntime.jsxs(material.Box, { sx: {
|
|
29984
30074
|
display: 'grid',
|
|
29985
30075
|
gap: '12px',
|
|
29986
|
-
}, children: [jsxRuntime.
|
|
29987
|
-
|
|
29988
|
-
|
|
29989
|
-
|
|
29990
|
-
|
|
29991
|
-
|
|
29992
|
-
|
|
29993
|
-
|
|
30076
|
+
}, children: [jsxRuntime.jsx(Accordion, { items: [
|
|
30077
|
+
{
|
|
30078
|
+
value: 1,
|
|
30079
|
+
summary: jsxRuntime.jsx(TrafficSignPreviewTitle$1, { number: number }),
|
|
30080
|
+
getDetails: ({ onClose }) => {
|
|
30081
|
+
return (jsxRuntime.jsx(TrafficSignTable$1, { trafficSigns: trafficSigns, pageSize: 5, onSelect: ({ title, number, type }) => {
|
|
30082
|
+
setValue('traffic_sign_number', number);
|
|
30083
|
+
setValue('traffic_sign_title', title);
|
|
30084
|
+
setValue('traffic_sign_type', type);
|
|
30085
|
+
onClose();
|
|
30086
|
+
} }));
|
|
30087
|
+
},
|
|
30088
|
+
},
|
|
30089
|
+
] }), jsxRuntime.jsx(FormSelect, { ...register('status'), label: trafficSignFieldsTitles.status, items: trafficSignStatusOptions, getKey: ({ value }) => value, getLabel: ({ label }) => label, getValue: ({ value }) => value }), jsxRuntime.jsx(CustomInput, { ...register('traffic_sign_value'), label: trafficSignFieldsTitles.traffic_sign_value }), jsxRuntime.jsx(CustomInput, { ...register('comment'), label: trafficSignFieldsTitles.comment }), jsxRuntime.jsx(CustomInput, { ...register('direction'), label: trafficSignFieldsTitles.direction, type: "number" }), jsxRuntime.jsxs(material.Box, { sx: {
|
|
29994
30090
|
display: 'grid',
|
|
29995
30091
|
gridTemplateColumns: 'repeat(2, 1fr)',
|
|
29996
30092
|
gap: '12px',
|
|
29997
|
-
}, children: [jsxRuntime.jsx(DateField, { ...register('placement_date'), label: trafficSignFieldsTitles.placement_date, format: trafficSignDateFormat }), jsxRuntime.jsx(DateField, { ...register('verification_date'), label: trafficSignFieldsTitles.verification_date, format: trafficSignDateFormat }), jsxRuntime.jsx(DateField, { ...register('future_maintanance_date'), label: trafficSignFieldsTitles.future_maintanance_date, format: trafficSignDateFormat }), jsxRuntime.jsx(DateField, { ...register('rapair_performed_date'), label: trafficSignFieldsTitles.rapair_performed_date, format: trafficSignDateFormat }), jsxRuntime.jsx(DateField, { ...register('warranty_expr_date'), label: trafficSignFieldsTitles.warranty_expr_date, format: trafficSignDateFormat })] })] })
|
|
30093
|
+
}, children: [jsxRuntime.jsx(DateField, { ...register('placement_date'), label: trafficSignFieldsTitles.placement_date, format: trafficSignDateFormat }), jsxRuntime.jsx(DateField, { ...register('verification_date'), label: trafficSignFieldsTitles.verification_date, format: trafficSignDateFormat }), jsxRuntime.jsx(DateField, { ...register('future_maintanance_date'), label: trafficSignFieldsTitles.future_maintanance_date, format: trafficSignDateFormat }), jsxRuntime.jsx(DateField, { ...register('rapair_performed_date'), label: trafficSignFieldsTitles.rapair_performed_date, format: trafficSignDateFormat }), jsxRuntime.jsx(DateField, { ...register('warranty_expr_date'), label: trafficSignFieldsTitles.warranty_expr_date, format: trafficSignDateFormat })] })] })),
|
|
30094
|
+
},
|
|
30095
|
+
{
|
|
30096
|
+
label: trafficSignDopWords.title,
|
|
30097
|
+
value: 2,
|
|
30098
|
+
content: (jsxRuntime.jsxs(material.Box, { sx: {
|
|
29998
30099
|
display: 'grid',
|
|
29999
30100
|
gap: '24px',
|
|
30000
|
-
}, children: [jsxRuntime.jsx(
|
|
30001
|
-
|
|
30002
|
-
|
|
30003
|
-
|
|
30004
|
-
|
|
30101
|
+
}, children: [jsxRuntime.jsx(TrafficSignAddDopButton$1, { disabled: newDopsFieldArray.fields.length === maxTrafficSignDopsCount, onClick: () => {
|
|
30102
|
+
newDopsFieldArray.append({
|
|
30103
|
+
...createdTrafficSignDop,
|
|
30104
|
+
});
|
|
30105
|
+
} }), newDopsFieldArray.fields.map(({ id }, index) => (jsxRuntime.jsx(CustomCard, { children: jsxRuntime.jsx(TrafficSignDopCreateForm$1, { onDelete: () => {
|
|
30005
30106
|
newDopsFieldArray.remove(index);
|
|
30006
|
-
}, index: index }) }, id)))] })
|
|
30107
|
+
}, index: index }) }, id)))] })),
|
|
30108
|
+
},
|
|
30109
|
+
] }), jsxRuntime.jsx(Button, { type: "submit", children: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C" })] }));
|
|
30007
30110
|
};
|
|
30008
30111
|
var create = observer(TrafficSignCreateForm);
|
|
30009
30112
|
|
|
@@ -30299,16 +30402,14 @@ const getAllLayers = (source) => {
|
|
|
30299
30402
|
};
|
|
30300
30403
|
|
|
30301
30404
|
const useGetLeafletLayer = ({ eventHandlers, }) => {
|
|
30302
|
-
const { instance: { isValidApiKey }, } = GlobalConfig;
|
|
30303
30405
|
const [layer, setLayer] = React__namespace.useState(null);
|
|
30406
|
+
const [config, setConfig] = React__namespace.useState(null);
|
|
30304
30407
|
const scene = React__namespace.useMemo(() => {
|
|
30305
|
-
if (layer)
|
|
30306
|
-
|
|
30307
|
-
|
|
30308
|
-
|
|
30309
|
-
return null;
|
|
30408
|
+
if (layer === null)
|
|
30409
|
+
return null;
|
|
30410
|
+
const { scene } = layer;
|
|
30411
|
+
return scene;
|
|
30310
30412
|
}, [layer]);
|
|
30311
|
-
const [config, setConfig] = React__namespace.useState(null);
|
|
30312
30413
|
const getLeafletLayer = React__namespace.useCallback(() => {
|
|
30313
30414
|
Promise.resolve().then(function () { return tangram_min; }).then(() => {
|
|
30314
30415
|
if (window.Tangram) {
|
|
@@ -30347,206 +30448,153 @@ const useGetLeafletLayer = ({ eventHandlers, }) => {
|
|
|
30347
30448
|
}
|
|
30348
30449
|
});
|
|
30349
30450
|
}, [eventHandlers]);
|
|
30350
|
-
const
|
|
30351
|
-
if (
|
|
30352
|
-
|
|
30353
|
-
message: 'Scene не инициализирована',
|
|
30354
|
-
});
|
|
30355
|
-
return;
|
|
30451
|
+
const checkConfig = React__namespace.useCallback((callback) => {
|
|
30452
|
+
if (config) {
|
|
30453
|
+
callback(config);
|
|
30356
30454
|
}
|
|
30357
|
-
|
|
30455
|
+
else {
|
|
30358
30456
|
loggerService.warn({
|
|
30359
30457
|
message: 'Config не инициализирована',
|
|
30360
30458
|
});
|
|
30361
|
-
return;
|
|
30362
30459
|
}
|
|
30363
|
-
|
|
30364
|
-
|
|
30365
|
-
|
|
30366
|
-
|
|
30367
|
-
|
|
30368
|
-
|
|
30369
|
-
|
|
30370
|
-
|
|
30460
|
+
}, [config]);
|
|
30461
|
+
const checkScene = React__namespace.useCallback((callback) => {
|
|
30462
|
+
checkConfig((config) => {
|
|
30463
|
+
if (scene) {
|
|
30464
|
+
callback({
|
|
30465
|
+
config,
|
|
30466
|
+
scene,
|
|
30467
|
+
});
|
|
30468
|
+
}
|
|
30469
|
+
else {
|
|
30470
|
+
loggerService.warn({
|
|
30471
|
+
message: 'Scene не инициализирована',
|
|
30472
|
+
});
|
|
30473
|
+
}
|
|
30474
|
+
});
|
|
30475
|
+
}, [checkConfig, scene]);
|
|
30476
|
+
const addSource = React__namespace.useCallback((sourceName) => {
|
|
30477
|
+
checkScene(({ config, scene }) => {
|
|
30478
|
+
const url = sourceUrl[sourceName];
|
|
30479
|
+
config.sources[sourceName] = {
|
|
30480
|
+
tile_size,
|
|
30481
|
+
url,
|
|
30482
|
+
type: 'MVT',
|
|
30483
|
+
};
|
|
30484
|
+
scene.updateConfig({ rebuild: true });
|
|
30485
|
+
});
|
|
30486
|
+
}, [checkScene]);
|
|
30371
30487
|
const deleteSource = React__namespace.useCallback((sourceName) => {
|
|
30372
|
-
|
|
30373
|
-
|
|
30374
|
-
|
|
30375
|
-
|
|
30376
|
-
|
|
30377
|
-
}
|
|
30378
|
-
if (!config) {
|
|
30379
|
-
loggerService.warn({
|
|
30380
|
-
message: 'Config не инициализирована',
|
|
30381
|
-
});
|
|
30382
|
-
return;
|
|
30383
|
-
}
|
|
30384
|
-
delete config.sources[sourceName];
|
|
30385
|
-
scene.updateConfig({ rebuild: true });
|
|
30386
|
-
}, [scene, config]);
|
|
30488
|
+
checkScene(({ config, scene }) => {
|
|
30489
|
+
delete config.sources[sourceName];
|
|
30490
|
+
scene.updateConfig({ rebuild: true });
|
|
30491
|
+
});
|
|
30492
|
+
}, [checkScene]);
|
|
30387
30493
|
const getSource = React__namespace.useCallback((sourceName) => {
|
|
30388
|
-
|
|
30389
|
-
|
|
30390
|
-
|
|
30391
|
-
|
|
30392
|
-
return;
|
|
30393
|
-
}
|
|
30394
|
-
const source = structuredClone(config.sources[sourceName]);
|
|
30494
|
+
let source = null;
|
|
30495
|
+
checkConfig((config) => {
|
|
30496
|
+
source = structuredClone(config.sources[sourceName]);
|
|
30497
|
+
});
|
|
30395
30498
|
return source;
|
|
30396
|
-
}, [
|
|
30499
|
+
}, [checkConfig]);
|
|
30397
30500
|
const updateSource = React__namespace.useCallback((sourceName, newUrl) => {
|
|
30398
|
-
|
|
30399
|
-
|
|
30400
|
-
|
|
30401
|
-
|
|
30402
|
-
|
|
30403
|
-
}
|
|
30404
|
-
if (!config) {
|
|
30405
|
-
loggerService.warn({
|
|
30406
|
-
message: 'Config не инициализирована',
|
|
30407
|
-
});
|
|
30408
|
-
return;
|
|
30409
|
-
}
|
|
30410
|
-
config.sources[sourceName].url = newUrl;
|
|
30411
|
-
scene.updateConfig({ rebuild: true });
|
|
30412
|
-
}, [config, scene]);
|
|
30501
|
+
checkScene(({ config, scene }) => {
|
|
30502
|
+
config.sources[sourceName].url = newUrl;
|
|
30503
|
+
scene.updateConfig({ rebuild: true });
|
|
30504
|
+
});
|
|
30505
|
+
}, [checkScene]);
|
|
30413
30506
|
const reloadSource = React__namespace.useCallback((sourceName) => {
|
|
30414
30507
|
deleteSource(sourceName);
|
|
30415
30508
|
addSource(sourceName);
|
|
30416
|
-
}, [
|
|
30509
|
+
}, [deleteSource, addSource]);
|
|
30417
30510
|
const addLayer = React__namespace.useCallback((layer) => {
|
|
30418
|
-
|
|
30419
|
-
|
|
30420
|
-
|
|
30421
|
-
|
|
30422
|
-
|
|
30423
|
-
|
|
30424
|
-
if (!config) {
|
|
30425
|
-
loggerService.warn({
|
|
30426
|
-
message: 'Config не инициализирован',
|
|
30511
|
+
checkScene(({ config, scene }) => {
|
|
30512
|
+
const order = getLayers().length + 1;
|
|
30513
|
+
const validLayer = getValidLayer({
|
|
30514
|
+
layer,
|
|
30515
|
+
order,
|
|
30516
|
+
eventHandlers,
|
|
30427
30517
|
});
|
|
30428
|
-
|
|
30429
|
-
|
|
30430
|
-
|
|
30431
|
-
|
|
30432
|
-
|
|
30433
|
-
|
|
30434
|
-
|
|
30435
|
-
|
|
30436
|
-
|
|
30437
|
-
|
|
30438
|
-
if (draw) {
|
|
30439
|
-
const { styles } = draw;
|
|
30440
|
-
if (styles) {
|
|
30441
|
-
validLayer.draw = {
|
|
30442
|
-
...structuredClone(validLayer.draw),
|
|
30443
|
-
...structuredClone(styles),
|
|
30444
|
-
};
|
|
30518
|
+
const layerName = getLayerName(validLayer);
|
|
30519
|
+
const { sublayers, draw, textures } = validLayer;
|
|
30520
|
+
if (draw) {
|
|
30521
|
+
const { styles } = draw;
|
|
30522
|
+
if (styles) {
|
|
30523
|
+
validLayer.draw = {
|
|
30524
|
+
...structuredClone(validLayer.draw),
|
|
30525
|
+
...structuredClone(styles),
|
|
30526
|
+
};
|
|
30527
|
+
}
|
|
30445
30528
|
}
|
|
30446
|
-
|
|
30447
|
-
|
|
30448
|
-
|
|
30449
|
-
|
|
30450
|
-
|
|
30451
|
-
|
|
30452
|
-
|
|
30453
|
-
|
|
30454
|
-
|
|
30455
|
-
|
|
30456
|
-
|
|
30457
|
-
}, [config, scene, eventHandlers]);
|
|
30529
|
+
config.layers[layerName] = {
|
|
30530
|
+
...structuredClone(validLayer),
|
|
30531
|
+
...structuredClone(sublayers),
|
|
30532
|
+
};
|
|
30533
|
+
config.textures = {
|
|
30534
|
+
...structuredClone(config.textures),
|
|
30535
|
+
...structuredClone(textures),
|
|
30536
|
+
};
|
|
30537
|
+
scene.updateConfig({ rebuild: true });
|
|
30538
|
+
});
|
|
30539
|
+
}, [checkScene]);
|
|
30458
30540
|
const removeLayer = React__namespace.useCallback((layer) => {
|
|
30459
|
-
if (!scene) {
|
|
30460
|
-
loggerService.warn({
|
|
30461
|
-
message: 'Scene не инициализирован',
|
|
30462
|
-
});
|
|
30463
|
-
return;
|
|
30464
|
-
}
|
|
30465
|
-
if (!config) {
|
|
30466
|
-
loggerService.warn({
|
|
30467
|
-
message: 'Config не инициализирован',
|
|
30468
|
-
});
|
|
30469
|
-
return;
|
|
30470
|
-
}
|
|
30471
30541
|
const layerName = getLayerName(layer);
|
|
30472
|
-
|
|
30542
|
+
checkScene(({ config, scene }) => {
|
|
30473
30543
|
delete config.layers[layerName];
|
|
30474
|
-
|
|
30475
|
-
|
|
30476
|
-
|
|
30477
|
-
}, [config, scene]);
|
|
30544
|
+
scene.updateConfig({ rebuild: true });
|
|
30545
|
+
});
|
|
30546
|
+
}, [checkScene]);
|
|
30478
30547
|
const addStyle = React__namespace.useCallback(({ name, style }) => {
|
|
30479
|
-
|
|
30480
|
-
|
|
30481
|
-
|
|
30482
|
-
|
|
30483
|
-
|
|
30484
|
-
}
|
|
30485
|
-
if (!config) {
|
|
30486
|
-
loggerService.warn({
|
|
30487
|
-
message: 'Config не инициализирована',
|
|
30488
|
-
});
|
|
30489
|
-
return;
|
|
30490
|
-
}
|
|
30491
|
-
config.styles[name] = structuredClone(style);
|
|
30492
|
-
scene.updateConfig({ rebuild: true });
|
|
30493
|
-
}, [config, scene]);
|
|
30548
|
+
checkScene(({ config, scene }) => {
|
|
30549
|
+
config.styles[name] = structuredClone(style);
|
|
30550
|
+
scene.updateConfig({ rebuild: true });
|
|
30551
|
+
});
|
|
30552
|
+
}, [checkScene]);
|
|
30494
30553
|
const getLayerVisibility = React__namespace.useCallback((layer) => {
|
|
30495
|
-
|
|
30496
|
-
loggerService.warn({
|
|
30497
|
-
message: 'Config не инициализирована',
|
|
30498
|
-
});
|
|
30499
|
-
return;
|
|
30500
|
-
}
|
|
30554
|
+
let layerVisibility = true;
|
|
30501
30555
|
const layerName = getLayerName(layer);
|
|
30502
|
-
|
|
30556
|
+
checkConfig((config) => {
|
|
30557
|
+
const { visible = true } = config.layers[layerName];
|
|
30558
|
+
layerVisibility = visible;
|
|
30559
|
+
});
|
|
30503
30560
|
return layerVisibility;
|
|
30504
|
-
}, [
|
|
30561
|
+
}, [getLayerName, checkConfig]);
|
|
30505
30562
|
const toggleLayerVisibility = React__namespace.useCallback(({ layer, visible }) => {
|
|
30506
|
-
if (!scene) {
|
|
30507
|
-
loggerService.warn({
|
|
30508
|
-
message: 'Config не инициализирована',
|
|
30509
|
-
});
|
|
30510
|
-
return;
|
|
30511
|
-
}
|
|
30512
|
-
if (!config) {
|
|
30513
|
-
loggerService.warn({
|
|
30514
|
-
message: 'Config не инициализирована',
|
|
30515
|
-
});
|
|
30516
|
-
return;
|
|
30517
|
-
}
|
|
30518
30563
|
const layerName = getLayerName(layer);
|
|
30519
|
-
config
|
|
30520
|
-
|
|
30521
|
-
|
|
30522
|
-
|
|
30564
|
+
checkScene(({ config, scene }) => {
|
|
30565
|
+
config.layers[layerName].visible = visible;
|
|
30566
|
+
scene.updateConfig({ rebuild: true });
|
|
30567
|
+
});
|
|
30568
|
+
}, [checkScene]);
|
|
30523
30569
|
const getLayers = React__namespace.useCallback(() => {
|
|
30524
|
-
|
|
30525
|
-
|
|
30526
|
-
|
|
30527
|
-
|
|
30528
|
-
|
|
30570
|
+
const layers = [];
|
|
30571
|
+
checkConfig((config) => {
|
|
30572
|
+
layers.push(...Object.keys(config.layers));
|
|
30573
|
+
});
|
|
30574
|
+
return layers;
|
|
30575
|
+
}, [checkConfig]);
|
|
30529
30576
|
const removeLayers = React__namespace.useCallback(() => {
|
|
30530
|
-
|
|
30531
|
-
|
|
30532
|
-
|
|
30533
|
-
|
|
30534
|
-
}, [
|
|
30577
|
+
checkConfig((config) => {
|
|
30578
|
+
const { layers } = config;
|
|
30579
|
+
Object.values(layers).forEach(removeLayer);
|
|
30580
|
+
});
|
|
30581
|
+
}, [checkConfig, removeLayer]);
|
|
30535
30582
|
const getSources = React__namespace.useCallback(() => {
|
|
30536
|
-
|
|
30537
|
-
|
|
30538
|
-
|
|
30539
|
-
|
|
30583
|
+
const sources = [];
|
|
30584
|
+
checkConfig((config) => {
|
|
30585
|
+
sources.push(...Object.keys(config.sources));
|
|
30586
|
+
});
|
|
30587
|
+
return sources;
|
|
30540
30588
|
}, [config]);
|
|
30541
30589
|
React__namespace.useEffect(() => {
|
|
30542
|
-
if (isValidApiKey) {
|
|
30590
|
+
if (GlobalConfig.instance.isValidApiKey) {
|
|
30543
30591
|
getLeafletLayer();
|
|
30544
30592
|
}
|
|
30545
30593
|
return () => {
|
|
30546
30594
|
setLayer(null);
|
|
30547
30595
|
setConfig(null);
|
|
30548
30596
|
};
|
|
30549
|
-
}, [isValidApiKey]);
|
|
30597
|
+
}, [GlobalConfig.instance.isValidApiKey]);
|
|
30550
30598
|
React__namespace.useEffect(() => {
|
|
30551
30599
|
addStyle({
|
|
30552
30600
|
name: 'zebra_crossing',
|
|
@@ -33329,6 +33377,7 @@ var tangram_min = /*#__PURE__*/Object.freeze({
|
|
|
33329
33377
|
__proto__: null
|
|
33330
33378
|
});
|
|
33331
33379
|
|
|
33380
|
+
exports.Accordion = Accordion;
|
|
33332
33381
|
exports.ApiService = ApiService;
|
|
33333
33382
|
exports.AuthPage = AuthPage;
|
|
33334
33383
|
exports.AuthStore = AuthStore;
|
|
@@ -33358,6 +33407,8 @@ exports.NoData = NoData;
|
|
|
33358
33407
|
exports.QueryProvider = QueryProvider;
|
|
33359
33408
|
exports.Select = FormSelect;
|
|
33360
33409
|
exports.StoreContext = StoreContext;
|
|
33410
|
+
exports.Tabs = Tabs;
|
|
33411
|
+
exports.TrafficSignAddDopButton = TrafficSignAddDopButton$1;
|
|
33361
33412
|
exports.TrafficSignCreateForm = create;
|
|
33362
33413
|
exports.TrafficSignDopCreateForm = TrafficSignDopCreateForm$1;
|
|
33363
33414
|
exports.TrafficSignDopUpdateForm = TrafficSignDopUpdateForm$1;
|
|
@@ -33421,6 +33472,7 @@ exports.getWaterAreaLayers = getWaterAreaLayers;
|
|
|
33421
33472
|
exports.getWaterLinkLayers = getWaterLinkLayers;
|
|
33422
33473
|
exports.imagesPath = imagesPath;
|
|
33423
33474
|
exports.loggerService = loggerService;
|
|
33475
|
+
exports.maxTrafficSignDopsCount = maxTrafficSignDopsCount;
|
|
33424
33476
|
exports.modalStore = modalStore;
|
|
33425
33477
|
exports.modalStyle = modalStyle;
|
|
33426
33478
|
exports.parseTrafficSignCSVFile = parseTrafficSignCSVFile;
|
|
@@ -33433,6 +33485,7 @@ exports.trafficSignBackendDates = trafficSignBackendDates;
|
|
|
33433
33485
|
exports.trafficSignDateFields = trafficSignDateFields;
|
|
33434
33486
|
exports.trafficSignDateFormat = trafficSignDateFormat;
|
|
33435
33487
|
exports.trafficSignDopMainFields = trafficSignDopMainFields;
|
|
33488
|
+
exports.trafficSignDopWords = trafficSignDopWords;
|
|
33436
33489
|
exports.trafficSignExtension = trafficSignExtension;
|
|
33437
33490
|
exports.trafficSignFieldsTitles = trafficSignFieldsTitles;
|
|
33438
33491
|
exports.trafficSignFrontendDates = trafficSignFrontendDates;
|
|
@@ -33440,6 +33493,7 @@ exports.trafficSignLayerName = trafficSignLayerName;
|
|
|
33440
33493
|
exports.trafficSignMainFields = trafficSignMainFields;
|
|
33441
33494
|
exports.trafficSignStatusOptions = trafficSignStatusOptions;
|
|
33442
33495
|
exports.trafficSignWidths = trafficSignWidths;
|
|
33496
|
+
exports.trafficSignWords = trafficSignWords;
|
|
33443
33497
|
exports.trafficSigns = trafficSigns;
|
|
33444
33498
|
exports.trafficSignsDop = trafficSignsDop;
|
|
33445
33499
|
exports.updatedTrafficSign = updatedTrafficSign;
|