@dartcom/ui-kit 10.1.17 → 10.1.19

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.
Files changed (100) hide show
  1. package/dist/components/buttons/edit/edit.d.ts.map +1 -1
  2. package/dist/components/buttons/index.d.ts +1 -0
  3. package/dist/components/buttons/index.d.ts.map +1 -1
  4. package/dist/components/buttons/move/index.d.ts +2 -0
  5. package/dist/components/buttons/move/index.d.ts.map +1 -0
  6. package/dist/components/buttons/move/move.d.ts +5 -0
  7. package/dist/components/buttons/move/move.d.ts.map +1 -0
  8. package/dist/components/buttons/move/move.stories.d.ts +8 -0
  9. package/dist/components/buttons/move/move.stories.d.ts.map +1 -0
  10. package/dist/components/buttons/move/types.d.ts +5 -0
  11. package/dist/components/buttons/move/types.d.ts.map +1 -0
  12. package/dist/components/layers/leaflet/config/constants.d.ts +3 -1
  13. package/dist/components/layers/leaflet/config/constants.d.ts.map +1 -1
  14. package/dist/components/layers/leaflet/config/index.d.ts +1 -0
  15. package/dist/components/layers/leaflet/config/index.d.ts.map +1 -1
  16. package/dist/components/layers/leaflet/config/schema.d.ts +4 -0
  17. package/dist/components/layers/leaflet/config/schema.d.ts.map +1 -1
  18. package/dist/components/layers/leaflet/config/styles.d.ts +3 -0
  19. package/dist/components/layers/leaflet/config/styles.d.ts.map +1 -0
  20. package/dist/components/layers/leaflet/layers/POI/utils.d.ts.map +1 -1
  21. package/dist/components/layers/leaflet/layers/admin-area/utils.d.ts.map +1 -1
  22. package/dist/components/layers/leaflet/layers/building/utils.d.ts.map +1 -1
  23. package/dist/components/layers/leaflet/layers/camera/config/constants.d.ts +8 -0
  24. package/dist/components/layers/leaflet/layers/camera/config/constants.d.ts.map +1 -0
  25. package/dist/components/layers/leaflet/layers/camera/config/index.d.ts +2 -0
  26. package/dist/components/layers/leaflet/layers/camera/config/index.d.ts.map +1 -0
  27. package/dist/components/layers/leaflet/layers/camera/index.d.ts +3 -1
  28. package/dist/components/layers/leaflet/layers/camera/index.d.ts.map +1 -1
  29. package/dist/components/layers/leaflet/layers/camera/lib/index.d.ts +3 -0
  30. package/dist/components/layers/leaflet/layers/camera/lib/index.d.ts.map +1 -0
  31. package/dist/components/layers/leaflet/layers/camera/lib/types.d.ts +19 -0
  32. package/dist/components/layers/leaflet/layers/camera/lib/types.d.ts.map +1 -0
  33. package/dist/components/layers/leaflet/layers/camera/lib/utils.d.ts +3 -0
  34. package/dist/components/layers/leaflet/layers/camera/lib/utils.d.ts.map +1 -0
  35. package/dist/components/layers/leaflet/layers/camera/ui/forms/create/create.d.ts +5 -0
  36. package/dist/components/layers/leaflet/layers/camera/ui/forms/create/create.d.ts.map +1 -0
  37. package/dist/components/layers/leaflet/layers/camera/ui/forms/create/create.stories.d.ts +7 -0
  38. package/dist/components/layers/leaflet/layers/camera/ui/forms/create/create.stories.d.ts.map +1 -0
  39. package/dist/components/layers/leaflet/layers/camera/ui/forms/create/index.d.ts +3 -0
  40. package/dist/components/layers/leaflet/layers/camera/ui/forms/create/index.d.ts.map +1 -0
  41. package/dist/components/layers/leaflet/layers/camera/ui/forms/create/schema.d.ts +4 -0
  42. package/dist/components/layers/leaflet/layers/camera/ui/forms/create/schema.d.ts.map +1 -0
  43. package/dist/components/layers/leaflet/layers/camera/ui/forms/create/types.d.ts +6 -0
  44. package/dist/components/layers/leaflet/layers/camera/ui/forms/create/types.d.ts.map +1 -0
  45. package/dist/components/layers/leaflet/layers/camera/ui/forms/index.d.ts +3 -0
  46. package/dist/components/layers/leaflet/layers/camera/ui/forms/index.d.ts.map +1 -0
  47. package/dist/components/layers/leaflet/layers/camera/ui/forms/schema.d.ts +16 -0
  48. package/dist/components/layers/leaflet/layers/camera/ui/forms/schema.d.ts.map +1 -0
  49. package/dist/components/layers/leaflet/layers/camera/ui/forms/update/index.d.ts +3 -0
  50. package/dist/components/layers/leaflet/layers/camera/ui/forms/update/index.d.ts.map +1 -0
  51. package/dist/components/layers/leaflet/layers/camera/ui/forms/update/schema.d.ts +4 -0
  52. package/dist/components/layers/leaflet/layers/camera/ui/forms/update/schema.d.ts.map +1 -0
  53. package/dist/components/layers/leaflet/layers/camera/ui/forms/update/types.d.ts +9 -0
  54. package/dist/components/layers/leaflet/layers/camera/ui/forms/update/types.d.ts.map +1 -0
  55. package/dist/components/layers/leaflet/layers/camera/ui/forms/update/update.d.ts +5 -0
  56. package/dist/components/layers/leaflet/layers/camera/ui/forms/update/update.d.ts.map +1 -0
  57. package/dist/components/layers/leaflet/layers/camera/ui/forms/update/update.stories.d.ts +7 -0
  58. package/dist/components/layers/leaflet/layers/camera/ui/forms/update/update.stories.d.ts.map +1 -0
  59. package/dist/components/layers/leaflet/layers/camera/ui/index.d.ts +2 -0
  60. package/dist/components/layers/leaflet/layers/camera/ui/index.d.ts.map +1 -0
  61. package/dist/components/layers/leaflet/layers/city-POI/utils.d.ts.map +1 -1
  62. package/dist/components/layers/leaflet/layers/condition/utils.d.ts.map +1 -1
  63. package/dist/components/layers/leaflet/layers/facility-area/utils.d.ts.map +1 -1
  64. package/dist/components/layers/leaflet/layers/landuse-area/utils.d.ts.map +1 -1
  65. package/dist/components/layers/leaflet/layers/link/utils.d.ts.map +1 -1
  66. package/dist/components/layers/leaflet/layers/nature-field/utils.d.ts.map +1 -1
  67. package/dist/components/layers/leaflet/layers/nature-forest/utils.d.ts.map +1 -1
  68. package/dist/components/layers/leaflet/layers/ocean-area/utils.d.ts.map +1 -1
  69. package/dist/components/layers/leaflet/layers/one-way/utils.d.ts.map +1 -1
  70. package/dist/components/layers/leaflet/layers/pillar/lib/utils.d.ts.map +1 -1
  71. package/dist/components/layers/leaflet/layers/railroad/utils.d.ts.map +1 -1
  72. package/dist/components/layers/leaflet/layers/traffic-sign/lib/types.d.ts +8 -9
  73. package/dist/components/layers/leaflet/layers/traffic-sign/lib/types.d.ts.map +1 -1
  74. package/dist/components/layers/leaflet/layers/traffic-sign/lib/utils.d.ts.map +1 -1
  75. package/dist/components/layers/leaflet/layers/traffic-sign/traffic-sign-dop/ui/forms/create/create.d.ts.map +1 -1
  76. package/dist/components/layers/leaflet/layers/traffic-sign/traffic-sign-dop/ui/forms/update/update.d.ts.map +1 -1
  77. package/dist/components/layers/leaflet/layers/traffic-sign/ui/forms/create/create.d.ts.map +1 -1
  78. package/dist/components/layers/leaflet/layers/traffic-sign/ui/forms/update/schema.d.ts.map +1 -1
  79. package/dist/components/layers/leaflet/layers/traffic-sign/ui/forms/update/types.d.ts +1 -0
  80. package/dist/components/layers/leaflet/layers/traffic-sign/ui/forms/update/types.d.ts.map +1 -1
  81. package/dist/components/layers/leaflet/layers/traffic-sign/ui/forms/update/update.d.ts.map +1 -1
  82. package/dist/components/layers/leaflet/layers/traffic-signal/lib/types.d.ts +4 -5
  83. package/dist/components/layers/leaflet/layers/traffic-signal/lib/types.d.ts.map +1 -1
  84. package/dist/components/layers/leaflet/layers/traffic-signal/lib/utils.d.ts.map +1 -1
  85. package/dist/components/layers/leaflet/layers/traffic-signal/ui/forms/create/create.d.ts.map +1 -1
  86. package/dist/components/layers/leaflet/layers/traffic-signal/ui/forms/update/schema.d.ts.map +1 -1
  87. package/dist/components/layers/leaflet/layers/traffic-signal/ui/forms/update/types.d.ts +1 -0
  88. package/dist/components/layers/leaflet/layers/traffic-signal/ui/forms/update/types.d.ts.map +1 -1
  89. package/dist/components/layers/leaflet/layers/traffic-signal/ui/forms/update/update.d.ts.map +1 -1
  90. package/dist/components/layers/leaflet/layers/water-area/utils.d.ts.map +1 -1
  91. package/dist/components/layers/leaflet/layers/water-link/utils.d.ts.map +1 -1
  92. package/dist/components/layers/leaflet/lib/types.d.ts +4 -0
  93. package/dist/components/layers/leaflet/lib/types.d.ts.map +1 -1
  94. package/dist/index.cjs +219 -91
  95. package/dist/index.cjs.map +1 -1
  96. package/dist/index.esm.js +4 -4
  97. package/dist/index.esm.js.map +1 -1
  98. package/dist/lib/utils.d.ts +3 -0
  99. package/dist/lib/utils.d.ts.map +1 -1
  100. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -7,6 +7,7 @@ var DeleteIcon = require('@mui/icons-material/Delete');
7
7
  var EditIcon = require('@mui/icons-material/Edit');
8
8
  var IconButton = require('@mui/material/IconButton');
9
9
  var CloudUploadIcon = require('@mui/icons-material/CloudUpload');
10
+ var MovingIcon = require('@mui/icons-material/Moving');
10
11
  var Checkbox = require('@mui/material/Checkbox');
11
12
  var FormControlLabel = require('@mui/material/FormControlLabel');
12
13
  var styles$2 = require('@mui/material/styles');
@@ -100,7 +101,7 @@ const DeleteButton = ({ notification, onDelete, }) => {
100
101
 
101
102
  const EditButton = (props) => {
102
103
  const buttonId = React__namespace.useId();
103
- return (jsxRuntime.jsx(React__namespace.Fragment, { children: jsxRuntime.jsx(material.IconButton, { id: buttonId, ...props, children: jsxRuntime.jsx(EditIcon, { fontSize: "small", color: "primary" }) }) }));
104
+ return (jsxRuntime.jsx(material.IconButton, { id: buttonId, ...props, children: jsxRuntime.jsx(EditIcon, { fontSize: "small", color: "primary" }) }));
104
105
  };
105
106
 
106
107
  const Button = (props) => {
@@ -140,6 +141,14 @@ const UploadButton = ({ children, accept, onFilesLoad, ...props }) => {
140
141
  }, multiple: true })] }));
141
142
  };
142
143
 
144
+ const MoveButton = ({ title, ...props }) => {
145
+ const buttonId = React__namespace.useId();
146
+ if (title) {
147
+ return (jsxRuntime.jsx(material.Tooltip, { title: title, children: jsxRuntime.jsx(material.IconButton, { id: buttonId, ...props, children: jsxRuntime.jsx(MovingIcon, { fontSize: "medium", color: "primary" }) }) }));
148
+ }
149
+ return (jsxRuntime.jsx(material.IconButton, { id: buttonId, ...props, children: jsxRuntime.jsx(MovingIcon, { fontSize: "medium", color: "primary" }) }));
150
+ };
151
+
143
152
  var isCheckBoxInput = (element) => element.type === 'checkbox';
144
153
 
145
154
  var isDateObject = (value) => value instanceof Date;
@@ -9301,6 +9310,13 @@ const getUniqueKey = () => {
9301
9310
  const uniqueKey = uuid();
9302
9311
  return uniqueKey;
9303
9312
  };
9313
+ const getCoordinateByLatLng = (latLng) => {
9314
+ const coordinate = {
9315
+ lat: latLng.lat,
9316
+ lon: latLng.lat,
9317
+ };
9318
+ return coordinate;
9319
+ };
9304
9320
 
9305
9321
  var niceErrors = {
9306
9322
  0: "Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'",
@@ -15499,6 +15515,7 @@ const trafficStatusOptions = Object.values(exports.TrafficStatus).map((status) =
15499
15515
  const trafficTitles = {
15500
15516
  traffic_signal_id: '',
15501
15517
  traffic_sign_id: '',
15518
+ camera_id: '',
15502
15519
  dit_id: '',
15503
15520
  dop_id: '',
15504
15521
  tsodd_id: '',
@@ -15507,6 +15524,7 @@ const trafficTitles = {
15507
15524
  signal_model: 'Модель',
15508
15525
  comment: 'Комментарий',
15509
15526
  direction: 'Направление',
15527
+ status: 'Статус',
15510
15528
  traffic_sign_number: 'Номер знака',
15511
15529
  traffic_sign_title: 'Название знака',
15512
15530
  traffic_sign_value: 'Значение',
@@ -15518,10 +15536,11 @@ const trafficTitles = {
15518
15536
  rapair_performed_date: 'Дата последнего ремонта',
15519
15537
  verification_date: 'Дата поверки',
15520
15538
  warranty_expr_date: 'Дата окончания гарантии',
15521
- status: 'Статус',
15522
15539
  dop_sign_number: 'Номер знака',
15523
15540
  dop_sign_text: 'Текст на табличке',
15524
15541
  dop_sign_title: 'Название знака',
15542
+ camera_model: 'Модель',
15543
+ fixing_type: 'Тип',
15525
15544
  };
15526
15545
  const layerDateFormat = 'dd.MM.yyyy';
15527
15546
 
@@ -17932,7 +17951,7 @@ class ObjectSchema extends Schema {
17932
17951
  }
17933
17952
  create$3.prototype = ObjectSchema.prototype;
17934
17953
 
17935
- function create$2(type) {
17954
+ function create$2$1(type) {
17936
17955
  return new ArraySchema(type);
17937
17956
  }
17938
17957
  class ArraySchema extends Schema {
@@ -18117,7 +18136,7 @@ class ArraySchema extends Schema {
18117
18136
  return base;
18118
18137
  }
18119
18138
  }
18120
- create$2.prototype = ArraySchema.prototype;
18139
+ create$2$1.prototype = ArraySchema.prototype;
18121
18140
 
18122
18141
  const layerDatesFieldsSchema = {
18123
18142
  future_maintanance_date: create$4().required(),
@@ -18126,6 +18145,28 @@ const layerDatesFieldsSchema = {
18126
18145
  verification_date: create$4().required(),
18127
18146
  warranty_expr_date: create$4().required(),
18128
18147
  };
18148
+ const layerCoordinateSchema = {
18149
+ lat: create$5().required(),
18150
+ lon: create$5().required(),
18151
+ };
18152
+
18153
+ const LayerDatesContainer = material.styled(material.Box)(() => {
18154
+ const { spacing } = material.useTheme();
18155
+ return {
18156
+ display: 'grid',
18157
+ gridTemplateColumns: 'repeat(2, 1fr)',
18158
+ gap: spacing(2),
18159
+ };
18160
+ });
18161
+ const LayerButtonsContainer = material.styled(material.Box)(() => {
18162
+ const { spacing } = material.useTheme();
18163
+ return {
18164
+ display: 'grid',
18165
+ gridTemplateColumns: 'repeat(2, 1fr)',
18166
+ gap: spacing(2),
18167
+ justifyItems: 'flex-start',
18168
+ };
18169
+ });
18129
18170
 
18130
18171
  var data = { global:{ links:{ getIsConstruction:"function (feature) {\n const { construction } = feature;\n\n return construction;\n}\n",
18131
18172
  getIsFunctionalClass:"function (feature) {\n const { functional_class, access_id } = feature;\n\n return functional_class === 5 && access_id === 32;\n}\n",
@@ -29791,11 +29832,7 @@ const TrafficSignDopUpdateForm = ({ index, onDelete, onUpdate, }) => {
29791
29832
  } }));
29792
29833
  },
29793
29834
  },
29794
- ] }), jsxRuntime.jsx(FormSelect, { ...register(`${fieldName$1}.${index}.status`), label: trafficTitles.status, items: trafficStatusOptions, getKey: ({ value }) => value, getLabel: ({ label }) => label, getValue: ({ value }) => value }), jsxRuntime.jsx(CustomInput, { ...register(`${fieldName$1}.${index}.comment`), label: trafficTitles.comment }), jsxRuntime.jsx(CustomInput, { ...register(`${fieldName$1}.${index}.dop_sign_text`), label: trafficTitles.dop_sign_text }), jsxRuntime.jsx(material.Box, { sx: {
29795
- display: 'grid',
29796
- gridTemplateColumns: 'repeat(2, 1fr)',
29797
- gap: '12px',
29798
- }, children: layerDatesFields.map((name) => (jsxRuntime.jsx(DateField, { ...register(`${fieldName$1}.${index}.${name}`), label: trafficTitles[name], format: layerDateFormat }, `${id}-${name}`))) }), jsxRuntime.jsx(Button, { onClick: () => {
29835
+ ] }), jsxRuntime.jsx(FormSelect, { ...register(`${fieldName$1}.${index}.status`), label: trafficTitles.status, items: trafficStatusOptions, getKey: ({ value }) => value, getLabel: ({ label }) => label, getValue: ({ value }) => value }), jsxRuntime.jsx(CustomInput, { ...register(`${fieldName$1}.${index}.comment`), label: trafficTitles.comment }), jsxRuntime.jsx(CustomInput, { ...register(`${fieldName$1}.${index}.dop_sign_text`), label: trafficTitles.dop_sign_text }), jsxRuntime.jsx(LayerDatesContainer, { children: layerDatesFields.map((name) => (jsxRuntime.jsx(DateField, { ...register(`${fieldName$1}.${index}.${name}`), label: trafficTitles[name], format: layerDateFormat }, `${id}-${name}`))) }), jsxRuntime.jsx(Button, { onClick: () => {
29799
29836
  onUpdate(trafficSign);
29800
29837
  }, children: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C" })] }));
29801
29838
  };
@@ -29831,11 +29868,7 @@ const TrafficSignDopCreateForm = ({ index, onDelete, }) => {
29831
29868
  } }));
29832
29869
  },
29833
29870
  },
29834
- ] }), jsxRuntime.jsx(FormSelect, { ...register(`${fieldName}.${index}.status`), label: trafficTitles.status, items: trafficStatusOptions, getKey: ({ value }) => value, getLabel: ({ label }) => label, getValue: ({ value }) => value }), jsxRuntime.jsx(CustomInput, { ...register(`${fieldName}.${index}.comment`), label: trafficTitles.comment }), jsxRuntime.jsx(CustomInput, { ...register(`${fieldName}.${index}.dop_sign_text`), label: trafficTitles.dop_sign_text }), jsxRuntime.jsx(material.Box, { sx: {
29835
- display: 'grid',
29836
- gridTemplateColumns: 'repeat(2, 1fr)',
29837
- gap: '12px',
29838
- }, children: layerDatesFields.map((name) => (jsxRuntime.jsx(DateField, { ...register(`${fieldName}.${index}.${name}`), label: trafficTitles[name], format: layerDateFormat }, `${id}-${name}`))) })] }));
29871
+ ] }), jsxRuntime.jsx(FormSelect, { ...register(`${fieldName}.${index}.status`), label: trafficTitles.status, items: trafficStatusOptions, getKey: ({ value }) => value, getLabel: ({ label }) => label, getValue: ({ value }) => value }), jsxRuntime.jsx(CustomInput, { ...register(`${fieldName}.${index}.comment`), label: trafficTitles.comment }), jsxRuntime.jsx(CustomInput, { ...register(`${fieldName}.${index}.dop_sign_text`), label: trafficTitles.dop_sign_text }), jsxRuntime.jsx(LayerDatesContainer, { children: layerDatesFields.map((name) => (jsxRuntime.jsx(DateField, { ...register(`${fieldName}.${index}.${name}`), label: trafficTitles[name], format: layerDateFormat }, `${id}-${name}`))) })] }));
29839
29872
  };
29840
29873
  var TrafficSignDopCreateForm$1 = observer(TrafficSignDopCreateForm);
29841
29874
 
@@ -29876,7 +29909,7 @@ const createdTrafficSignDopSchema = create$3().shape({
29876
29909
  ...trafficSignDopMainFieldsSchema,
29877
29910
  ...layerDatesFieldsSchema,
29878
29911
  });
29879
- const mainFieldsSchema$1 = {
29912
+ const mainFieldsSchema$2 = {
29880
29913
  traffic_sign_type: create$6().required(),
29881
29914
  traffic_sign_number: create$6().required(),
29882
29915
  traffic_sign_title: create$6().required(),
@@ -29885,23 +29918,24 @@ const mainFieldsSchema$1 = {
29885
29918
  traffic_sign_value: create$6().nullable(),
29886
29919
  direction: create$5().nullable(),
29887
29920
  };
29888
- const idsFieldsSchema$1 = {
29921
+ const idsFieldsSchema$2 = {
29889
29922
  traffic_sign_id: create$6().required(),
29890
29923
  dit_id: create$5().required(),
29891
29924
  tsodd_id: create$5().required(),
29892
29925
  pillar_id: create$6().nullable(),
29893
29926
  };
29894
29927
 
29895
- const schema$4 = create$3()
29928
+ const schema$6 = create$3()
29896
29929
  .shape({
29897
- ...idsFieldsSchema$1,
29898
- ...mainFieldsSchema$1,
29899
29930
  ...layerDatesFieldsSchema,
29900
- oldDops: create$2()
29931
+ ...layerCoordinateSchema,
29932
+ ...idsFieldsSchema$2,
29933
+ ...mainFieldsSchema$2,
29934
+ oldDops: create$2$1()
29901
29935
  .max(maxTrafficSignDopsCount)
29902
29936
  .of(updatedTrafficSignDopSchema)
29903
29937
  .required(),
29904
- newDops: create$2()
29938
+ newDops: create$2$1()
29905
29939
  .max(maxTrafficSignDopsCount)
29906
29940
  .of(createdTrafficSignDopSchema)
29907
29941
  .required(),
@@ -29911,7 +29945,7 @@ const r=(t,r,o)=>{if(t&&"reportValidity"in t){const s=get(o,r);t.setCustomValidi
29911
29945
 
29912
29946
  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)}}}
29913
29947
 
29914
- const TrafficSignUpdateForm = ({ trafficSign, onSubmit, onDelete, onDeleteDop, onUpdateDop, }) => {
29948
+ const TrafficSignUpdateForm = ({ trafficSign, onSubmit, onDelete, onDeleteDop, onUpdateDop, getButtons, }) => {
29915
29949
  const id = React__namespace.useId();
29916
29950
  const defaultValues = React__namespace.useMemo(() => {
29917
29951
  const { dops, traffic_sign_id } = trafficSign;
@@ -29928,7 +29962,7 @@ const TrafficSignUpdateForm = ({ trafficSign, onSubmit, onDelete, onDeleteDop, o
29928
29962
  return defaultValues;
29929
29963
  }, [trafficSign]);
29930
29964
  const form = useForm({
29931
- resolver: o(schema$4),
29965
+ resolver: o(schema$6),
29932
29966
  defaultValues,
29933
29967
  });
29934
29968
  const { reset, control, register, setValue, watch, formState: { errors }, } = form;
@@ -29992,11 +30026,7 @@ const TrafficSignUpdateForm = ({ trafficSign, onSubmit, onDelete, onDeleteDop, o
29992
30026
  } }));
29993
30027
  },
29994
30028
  },
29995
- ] }), jsxRuntime.jsx(FormSelect, { ...register('status'), label: trafficTitles.status, items: trafficStatusOptions, getKey: ({ value }) => value, getLabel: ({ label }) => label, getValue: ({ value }) => value }), jsxRuntime.jsx(CustomInput, { ...register('traffic_sign_value'), label: trafficTitles.traffic_sign_value }), jsxRuntime.jsx(CustomInput, { ...register('comment'), label: trafficTitles.comment }), jsxRuntime.jsx(CustomInput, { ...register('direction'), label: trafficTitles.direction, type: "number" }), jsxRuntime.jsx(material.Box, { sx: {
29996
- display: 'grid',
29997
- gridTemplateColumns: 'repeat(2, 1fr)',
29998
- gap: '12px',
29999
- }, children: layerDatesFields.map((name) => (jsxRuntime.jsx(DateField, { ...register(name), label: trafficTitles[name], format: layerDateFormat }, `${id}-${name}`))) })] })),
30029
+ ] }), jsxRuntime.jsx(FormSelect, { ...register('status'), label: trafficTitles.status, items: trafficStatusOptions, getKey: ({ value }) => value, getLabel: ({ label }) => label, getValue: ({ value }) => value }), jsxRuntime.jsx(CustomInput, { ...register('traffic_sign_value'), label: trafficTitles.traffic_sign_value }), jsxRuntime.jsx(CustomInput, { ...register('comment'), label: trafficTitles.comment }), jsxRuntime.jsx(CustomInput, { ...register('direction'), label: trafficTitles.direction, type: "number" }), jsxRuntime.jsx(LayerDatesContainer, { children: layerDatesFields.map((name) => (jsxRuntime.jsx(DateField, { ...register(name), label: trafficTitles[name], format: layerDateFormat }, `${id}-${name}`))) })] })),
30000
30030
  },
30001
30031
  {
30002
30032
  label: trafficSignDopWords.title,
@@ -30012,17 +30042,17 @@ const TrafficSignUpdateForm = ({ trafficSign, onSubmit, onDelete, onDeleteDop, o
30012
30042
  newDopsFieldArray.remove(index);
30013
30043
  }, index: index }) }, id)))] })),
30014
30044
  },
30015
- ] }), jsxRuntime.jsx(Button, { type: "submit", children: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C" })] }));
30045
+ ] }), jsxRuntime.jsxs(LayerButtonsContainer, { children: [jsxRuntime.jsx(Button, { type: "submit", children: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C" }), getButtons?.(trafficSign)] })] }));
30016
30046
  };
30017
- var update$1 = observer(TrafficSignUpdateForm);
30047
+ var update$2 = observer(TrafficSignUpdateForm);
30018
30048
 
30019
- const schema$3 = create$3()
30049
+ const schema$5 = create$3()
30020
30050
  .shape({
30021
- dit_id: idsFieldsSchema$1.dit_id,
30022
- tsodd_id: idsFieldsSchema$1.tsodd_id,
30023
- ...mainFieldsSchema$1,
30051
+ dit_id: idsFieldsSchema$2.dit_id,
30052
+ tsodd_id: idsFieldsSchema$2.tsodd_id,
30053
+ ...mainFieldsSchema$2,
30024
30054
  ...layerDatesFieldsSchema,
30025
- newDops: create$2()
30055
+ newDops: create$2$1()
30026
30056
  .max(maxTrafficSignDopsCount)
30027
30057
  .of(createdTrafficSignDopSchema)
30028
30058
  .required(),
@@ -30031,7 +30061,7 @@ const schema$3 = create$3()
30031
30061
  const TrafficSignCreateForm = ({ onSubmit, }) => {
30032
30062
  const id = React__namespace.useId();
30033
30063
  const form = useForm({
30034
- resolver: o(schema$3),
30064
+ resolver: o(schema$5),
30035
30065
  defaultValues: {
30036
30066
  ...defaultTrafficSign,
30037
30067
  },
@@ -30072,11 +30102,7 @@ const TrafficSignCreateForm = ({ onSubmit, }) => {
30072
30102
  } }));
30073
30103
  },
30074
30104
  },
30075
- ] }), jsxRuntime.jsx(FormSelect, { ...register('status'), label: trafficTitles.status, items: trafficStatusOptions, getKey: ({ value }) => value, getLabel: ({ label }) => label, getValue: ({ value }) => value }), jsxRuntime.jsx(CustomInput, { ...register('traffic_sign_value'), label: trafficTitles.traffic_sign_value }), jsxRuntime.jsx(CustomInput, { ...register('comment'), label: trafficTitles.comment }), jsxRuntime.jsx(CustomInput, { ...register('direction'), label: trafficTitles.direction, type: "number" }), jsxRuntime.jsx(material.Box, { sx: {
30076
- display: 'grid',
30077
- gridTemplateColumns: 'repeat(2, 1fr)',
30078
- gap: '12px',
30079
- }, children: layerDatesFields.map((name) => (jsxRuntime.jsx(DateField, { ...register(name), label: trafficTitles[name], format: layerDateFormat }, `${id}-${name}`))) })] })),
30105
+ ] }), jsxRuntime.jsx(FormSelect, { ...register('status'), label: trafficTitles.status, items: trafficStatusOptions, getKey: ({ value }) => value, getLabel: ({ label }) => label, getValue: ({ value }) => value }), jsxRuntime.jsx(CustomInput, { ...register('traffic_sign_value'), label: trafficTitles.traffic_sign_value }), jsxRuntime.jsx(CustomInput, { ...register('comment'), label: trafficTitles.comment }), jsxRuntime.jsx(CustomInput, { ...register('direction'), label: trafficTitles.direction, type: "number" }), jsxRuntime.jsx(LayerDatesContainer, { children: layerDatesFields.map((name) => (jsxRuntime.jsx(DateField, { ...register(name), label: trafficTitles[name], format: layerDateFormat }, `${id}-${name}`))) })] })),
30080
30106
  },
30081
30107
  {
30082
30108
  label: trafficSignDopWords.title,
@@ -30094,10 +30120,10 @@ const TrafficSignCreateForm = ({ onSubmit, }) => {
30094
30120
  },
30095
30121
  ] }), jsxRuntime.jsx(Button, { type: "submit", children: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C" })] }));
30096
30122
  };
30097
- var create$1 = observer(TrafficSignCreateForm);
30123
+ var create$2 = observer(TrafficSignCreateForm);
30098
30124
 
30099
- const size$1 = 20;
30100
- const extension$1 = 'svg';
30125
+ const size = 20;
30126
+ const extension = 'svg';
30101
30127
  const trafficSignalMainFields = {
30102
30128
  direction: 0,
30103
30129
  status: exports.TrafficStatus.ACTIVE,
@@ -30117,12 +30143,12 @@ const getTrafficSignalLayers = (source) => {
30117
30143
  const textures = {};
30118
30144
  const sublayers = {};
30119
30145
  const texture = `traffic_signal`;
30120
- const textureUrl = `${imagesPath}/msk/${texture}/${texture}_${size$1}.${extension$1}`;
30146
+ const textureUrl = `${imagesPath}/msk/${texture}/${texture}_${size}.${extension}`;
30121
30147
  textures[texture] = {
30122
30148
  url: textureUrl,
30123
30149
  filtering: 'mipmap',
30124
30150
  sprites: {
30125
- base: [0, 0, size$1, size$1],
30151
+ base: [0, 0, size, size],
30126
30152
  },
30127
30153
  };
30128
30154
  const layer = {
@@ -30132,7 +30158,7 @@ const getTrafficSignalLayers = (source) => {
30132
30158
  points: {
30133
30159
  collide: false,
30134
30160
  texture,
30135
- size: size$1,
30161
+ size,
30136
30162
  sprite: 'base',
30137
30163
  placement: 'midpoint',
30138
30164
  },
@@ -30144,27 +30170,28 @@ const getTrafficSignalLayers = (source) => {
30144
30170
  return layers;
30145
30171
  };
30146
30172
 
30147
- const mainFieldsSchema = {
30173
+ const mainFieldsSchema$1 = {
30148
30174
  signal_model: create$6().nullable(),
30149
30175
  status: create$6().required(),
30150
30176
  comment: create$6().nullable(),
30151
30177
  direction: create$5().nullable(),
30152
30178
  };
30153
- const idsFieldsSchema = {
30179
+ const idsFieldsSchema$1 = {
30154
30180
  traffic_signal_id: create$6().required(),
30155
30181
  dit_id: create$5().required(),
30156
30182
  tsodd_id: create$5().required(),
30157
30183
  pillar_id: create$6().nullable(),
30158
30184
  };
30159
30185
 
30160
- const schema$2 = create$3()
30186
+ const schema$4 = create$3()
30161
30187
  .shape({
30162
- ...idsFieldsSchema,
30163
- ...mainFieldsSchema,
30188
+ ...idsFieldsSchema$1,
30164
30189
  ...layerDatesFieldsSchema,
30190
+ ...layerCoordinateSchema,
30191
+ ...mainFieldsSchema$1,
30165
30192
  });
30166
30193
 
30167
- const TrafficSignalUpdateForm = ({ trafficSignal, onSubmit, onDelete, }) => {
30194
+ const TrafficSignalUpdateForm = ({ trafficSignal, onSubmit, onDelete, getButtons, }) => {
30168
30195
  const id = React__namespace.useId();
30169
30196
  const defaultValues = React__namespace.useMemo(() => {
30170
30197
  const defaultValues = {
@@ -30174,7 +30201,7 @@ const TrafficSignalUpdateForm = ({ trafficSignal, onSubmit, onDelete, }) => {
30174
30201
  return defaultValues;
30175
30202
  }, [trafficSignal]);
30176
30203
  const form = useForm({
30177
- resolver: o(schema$2),
30204
+ resolver: o(schema$4),
30178
30205
  defaultValues,
30179
30206
  });
30180
30207
  const { reset, register, formState: { errors }, } = form;
@@ -30191,35 +30218,27 @@ const TrafficSignalUpdateForm = ({ trafficSignal, onSubmit, onDelete, }) => {
30191
30218
  React__namespace.useEffect(() => {
30192
30219
  reset(defaultValues);
30193
30220
  }, [defaultValues]);
30194
- return (jsxRuntime.jsxs(CustomForm, { form: form, onSubmit: onSubmit, children: [jsxRuntime.jsx(FormSelect, { ...register('status'), label: trafficTitles.status, items: trafficStatusOptions, getKey: ({ value }) => value, getLabel: ({ label }) => label, getValue: ({ value }) => value }), jsxRuntime.jsx(CustomInput, { ...register('signal_model'), label: trafficTitles.signal_model }), jsxRuntime.jsx(CustomInput, { ...register('comment'), label: trafficTitles.comment }), jsxRuntime.jsx(CustomInput, { ...register('direction'), label: trafficTitles.direction, type: "number" }), jsxRuntime.jsx(material.Box, { sx: {
30195
- display: 'grid',
30196
- gridTemplateColumns: 'repeat(2, 1fr)',
30197
- gap: '12px',
30198
- }, children: layerDatesFields.map((name) => (jsxRuntime.jsx(DateField, { ...register(name), label: trafficTitles[name], format: layerDateFormat }, `${id}-${name}`))) }), jsxRuntime.jsxs(material.Box, { sx: ({ spacing }) => ({
30199
- display: 'grid',
30200
- gridTemplateColumns: 'repeat(2, 1fr)',
30201
- gap: spacing(4),
30202
- }), children: [jsxRuntime.jsx(Button, { type: "submit", children: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C" }), jsxRuntime.jsx(material.Box, { children: jsxRuntime.jsx(DeleteButton, { notification: {
30203
- title: 'Удалить светофор',
30204
- description: 'Вы действительно хотите удалить данный светофор?',
30205
- }, onDelete: () => {
30206
- onDelete(trafficSignal);
30207
- } }) })] })] }));
30221
+ return (jsxRuntime.jsxs(CustomForm, { form: form, onSubmit: onSubmit, children: [jsxRuntime.jsx(FormSelect, { ...register('status'), label: trafficTitles.status, items: trafficStatusOptions, getKey: ({ value }) => value, getLabel: ({ label }) => label, getValue: ({ value }) => value }), jsxRuntime.jsx(CustomInput, { ...register('signal_model'), label: trafficTitles.signal_model }), jsxRuntime.jsx(CustomInput, { ...register('comment'), label: trafficTitles.comment }), jsxRuntime.jsx(CustomInput, { ...register('direction'), label: trafficTitles.direction, type: "number" }), jsxRuntime.jsx(LayerDatesContainer, { children: layerDatesFields.map((name) => (jsxRuntime.jsx(DateField, { ...register(name), label: trafficTitles[name], format: layerDateFormat }, `${id}-${name}`))) }), jsxRuntime.jsxs(LayerButtonsContainer, { children: [jsxRuntime.jsx(Button, { type: "submit", fullWidth: true, children: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C" }), jsxRuntime.jsxs(LayerButtonsContainer, { children: [jsxRuntime.jsx(DeleteButton, { notification: {
30222
+ title: 'Удалить светофор',
30223
+ description: 'Вы действительно хотите удалить данный светофор?',
30224
+ }, onDelete: () => {
30225
+ onDelete(trafficSignal);
30226
+ } }), getButtons?.(trafficSignal)] })] })] }));
30208
30227
  };
30209
- var update = observer(TrafficSignalUpdateForm);
30228
+ var update$1 = observer(TrafficSignalUpdateForm);
30210
30229
 
30211
- const schema$1 = create$3()
30230
+ const schema$3 = create$3()
30212
30231
  .shape({
30213
- dit_id: idsFieldsSchema.dit_id,
30214
- tsodd_id: idsFieldsSchema.tsodd_id,
30215
- ...mainFieldsSchema,
30232
+ dit_id: idsFieldsSchema$1.dit_id,
30233
+ tsodd_id: idsFieldsSchema$1.tsodd_id,
30234
+ ...mainFieldsSchema$1,
30216
30235
  ...layerDatesFieldsSchema,
30217
30236
  });
30218
30237
 
30219
30238
  const TrafficSignalCreateForm = ({ onSubmit, }) => {
30220
30239
  const id = React__namespace.useId();
30221
30240
  const form = useForm({
30222
- resolver: o(schema$1),
30241
+ resolver: o(schema$3),
30223
30242
  defaultValues: {
30224
30243
  ...defaultTrafficSignal,
30225
30244
  },
@@ -30235,16 +30254,26 @@ const TrafficSignalCreateForm = ({ onSubmit, }) => {
30235
30254
  });
30236
30255
  }
30237
30256
  }, [errors]);
30238
- return (jsxRuntime.jsxs(CustomForm, { form: form, onSubmit: onSubmit, children: [jsxRuntime.jsx(FormSelect, { ...register('status'), label: trafficTitles.status, items: trafficStatusOptions, getKey: ({ value }) => value, getLabel: ({ label }) => label, getValue: ({ value }) => value }), jsxRuntime.jsx(CustomInput, { ...register('signal_model'), label: trafficTitles.signal_model }), jsxRuntime.jsx(CustomInput, { ...register('comment'), label: trafficTitles.comment }), jsxRuntime.jsx(CustomInput, { ...register('direction'), label: trafficTitles.direction, type: "number" }), jsxRuntime.jsx(material.Box, { sx: {
30239
- display: 'grid',
30240
- gridTemplateColumns: 'repeat(2, 1fr)',
30241
- gap: '12px',
30242
- }, children: layerDatesFields.map((name) => (jsxRuntime.jsx(DateField, { ...register(name), label: trafficTitles[name], format: layerDateFormat }, `${id}-${name}`))) }), jsxRuntime.jsx(Button, { type: "submit", children: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C" })] }));
30257
+ return (jsxRuntime.jsxs(CustomForm, { form: form, onSubmit: onSubmit, children: [jsxRuntime.jsx(FormSelect, { ...register('status'), label: trafficTitles.status, items: trafficStatusOptions, getKey: ({ value }) => value, getLabel: ({ label }) => label, getValue: ({ value }) => value }), jsxRuntime.jsx(CustomInput, { ...register('signal_model'), label: trafficTitles.signal_model }), jsxRuntime.jsx(CustomInput, { ...register('comment'), label: trafficTitles.comment }), jsxRuntime.jsx(CustomInput, { ...register('direction'), label: trafficTitles.direction, type: "number" }), jsxRuntime.jsx(LayerDatesContainer, { children: layerDatesFields.map((name) => (jsxRuntime.jsx(DateField, { ...register(name), label: trafficTitles[name], format: layerDateFormat }, `${id}-${name}`))) }), jsxRuntime.jsx(Button, { type: "submit", children: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C" })] }));
30243
30258
  };
30244
- var create = observer(TrafficSignalCreateForm);
30259
+ var create$1 = observer(TrafficSignalCreateForm);
30245
30260
 
30246
- const size = 20;
30247
- const extension = 'png';
30261
+ const cameraConfig = {
30262
+ size: 20,
30263
+ extension: 'png',
30264
+ };
30265
+ const cameraMainFields = {
30266
+ comment: null,
30267
+ camera_model: null,
30268
+ fixing_type: null,
30269
+ direction: 0,
30270
+ status: exports.TrafficStatus.ACTIVE,
30271
+ };
30272
+ const defaultCamera = {
30273
+ ...layerServiceIds,
30274
+ ...layerDefaultFrontendDates,
30275
+ ...cameraMainFields,
30276
+ };
30248
30277
 
30249
30278
  const getCameraLayers = (source) => {
30250
30279
  const layers = [];
@@ -30256,10 +30285,10 @@ const getCameraLayers = (source) => {
30256
30285
  const sublayers = {};
30257
30286
  const texture = `camera`;
30258
30287
  textures[texture] = {
30259
- url: `${imagesPath}/msk/${texture}/${texture}_${size}.${extension}`,
30288
+ url: `${imagesPath}/msk/${texture}/${texture}_${cameraConfig.size}.${cameraConfig.extension}`,
30260
30289
  filtering: 'mipmap',
30261
30290
  sprites: {
30262
- base: [0, 0, size, size],
30291
+ base: [0, 0, cameraConfig.size, cameraConfig.size],
30263
30292
  },
30264
30293
  };
30265
30294
  const layer = {
@@ -30269,7 +30298,7 @@ const getCameraLayers = (source) => {
30269
30298
  points: {
30270
30299
  collide: false,
30271
30300
  texture,
30272
- size,
30301
+ size: cameraConfig.size,
30273
30302
  sprite: 'base',
30274
30303
  placement: 'midpoint',
30275
30304
  },
@@ -30281,6 +30310,95 @@ const getCameraLayers = (source) => {
30281
30310
  return layers;
30282
30311
  };
30283
30312
 
30313
+ const mainFieldsSchema = {
30314
+ camera_model: create$6().nullable(),
30315
+ fixing_type: create$6().nullable(),
30316
+ status: create$6().required(),
30317
+ comment: create$6().nullable(),
30318
+ direction: create$5().nullable(),
30319
+ };
30320
+ const idsFieldsSchema = {
30321
+ camera_id: create$6().required(),
30322
+ dit_id: create$5().required(),
30323
+ tsodd_id: create$5().required(),
30324
+ pillar_id: create$6().nullable(),
30325
+ };
30326
+
30327
+ const schema$2 = create$3()
30328
+ .shape({
30329
+ ...layerDatesFieldsSchema,
30330
+ ...layerCoordinateSchema,
30331
+ ...idsFieldsSchema,
30332
+ ...mainFieldsSchema,
30333
+ });
30334
+
30335
+ const CameraUpdateForm = ({ camera, getButtons, onSubmit, onDelete, }) => {
30336
+ const id = React__namespace.useId();
30337
+ const defaultValues = React__namespace.useMemo(() => {
30338
+ const defaultValues = {
30339
+ ...camera,
30340
+ ...getLayerFrontendDates(camera),
30341
+ };
30342
+ return defaultValues;
30343
+ }, [camera]);
30344
+ const form = useForm({
30345
+ resolver: o(schema$2),
30346
+ defaultValues,
30347
+ });
30348
+ const { reset, register, formState: { errors }, } = form;
30349
+ React__namespace.useEffect(() => {
30350
+ const isErrors = Object.keys(errors).length > 0;
30351
+ if (isErrors) {
30352
+ loggerService.warn({
30353
+ message: 'Ошибки валидации формы',
30354
+ context: 'TrafficSignUpdateForm',
30355
+ meta: errors,
30356
+ });
30357
+ }
30358
+ }, [errors]);
30359
+ React__namespace.useEffect(() => {
30360
+ reset(defaultValues);
30361
+ }, [defaultValues]);
30362
+ return (jsxRuntime.jsxs(CustomForm, { form: form, onSubmit: onSubmit, children: [jsxRuntime.jsx(FormSelect, { ...register('status'), label: trafficTitles.status, items: trafficStatusOptions, getKey: ({ value }) => value, getLabel: ({ label }) => label, getValue: ({ value }) => value }), jsxRuntime.jsx(CustomInput, { ...register('camera_model'), label: trafficTitles.signal_model }), jsxRuntime.jsx(CustomInput, { ...register('comment'), label: trafficTitles.comment }), jsxRuntime.jsx(CustomInput, { ...register('direction'), label: trafficTitles.direction, type: "number" }), jsxRuntime.jsx(LayerDatesContainer, { children: layerDatesFields.map((name) => (jsxRuntime.jsx(DateField, { ...register(name), label: trafficTitles[name], format: layerDateFormat }, `${id}-${name}`))) }), jsxRuntime.jsxs(LayerButtonsContainer, { children: [jsxRuntime.jsx(Button, { type: "submit", fullWidth: true, children: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C" }), jsxRuntime.jsxs(LayerButtonsContainer, { children: [jsxRuntime.jsx(DeleteButton, { notification: {
30363
+ title: 'Удалить камеру',
30364
+ description: 'Вы действительно хотите удалить данную камеру?',
30365
+ }, onDelete: () => {
30366
+ onDelete(camera);
30367
+ } }), getButtons?.(camera)] })] })] }));
30368
+ };
30369
+ var update = observer(CameraUpdateForm);
30370
+
30371
+ const schema$1 = create$3()
30372
+ .shape({
30373
+ dit_id: idsFieldsSchema.dit_id,
30374
+ tsodd_id: idsFieldsSchema.tsodd_id,
30375
+ ...mainFieldsSchema,
30376
+ ...layerDatesFieldsSchema,
30377
+ });
30378
+
30379
+ const CameraCreateForm = ({ onSubmit }) => {
30380
+ const id = React__namespace.useId();
30381
+ const form = useForm({
30382
+ resolver: o(schema$1),
30383
+ defaultValues: {
30384
+ ...defaultCamera,
30385
+ },
30386
+ });
30387
+ const { register, formState: { errors }, } = form;
30388
+ React__namespace.useEffect(() => {
30389
+ const isErrors = Object.keys(errors).length > 0;
30390
+ if (isErrors) {
30391
+ loggerService.warn({
30392
+ message: 'Ошибки валидации формы',
30393
+ context: 'TrafficSignCreateForm',
30394
+ meta: errors,
30395
+ });
30396
+ }
30397
+ }, [errors]);
30398
+ return (jsxRuntime.jsxs(CustomForm, { form: form, onSubmit: onSubmit, children: [jsxRuntime.jsx(FormSelect, { ...register('status'), label: trafficTitles.status, items: trafficStatusOptions, getKey: ({ value }) => value, getLabel: ({ label }) => label, getValue: ({ value }) => value }), jsxRuntime.jsx(CustomInput, { ...register('camera_model'), label: trafficTitles.camera_model }), jsxRuntime.jsx(CustomInput, { ...register('comment'), label: trafficTitles.comment }), jsxRuntime.jsx(CustomInput, { ...register('direction'), label: trafficTitles.direction, type: "number" }), jsxRuntime.jsx(LayerDatesContainer, { children: layerDatesFields.map((name) => (jsxRuntime.jsx(DateField, { ...register(name), label: trafficTitles[name], format: layerDateFormat }, `${id}-${name}`))) }), jsxRuntime.jsx(Button, { type: "submit", children: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C" })] }));
30399
+ };
30400
+ var create = observer(CameraCreateForm);
30401
+
30284
30402
  const pillarConfig = {
30285
30403
  size: 20,
30286
30404
  extension: 'png',
@@ -33502,6 +33620,8 @@ exports.AuthPage = AuthPage;
33502
33620
  exports.AuthStore = AuthStore;
33503
33621
  exports.Button = Button;
33504
33622
  exports.CSVUploader = CSVUploader;
33623
+ exports.CameraCreateForm = create;
33624
+ exports.CameraUpdateForm = update;
33505
33625
  exports.Card = CustomCard;
33506
33626
  exports.Checkbox = CustomCheckbox;
33507
33627
  exports.DartcomAuthProvider = auth;
@@ -33516,12 +33636,15 @@ exports.ExcelUploader = ExcelUploader;
33516
33636
  exports.Form = CustomForm;
33517
33637
  exports.GlobalConfig = GlobalConfig;
33518
33638
  exports.Input = CustomInput;
33639
+ exports.LayerButtonsContainer = LayerButtonsContainer;
33640
+ exports.LayerDatesContainer = LayerDatesContainer;
33519
33641
  exports.LeafletLayer = LeafletLayer;
33520
33642
  exports.List = CustomList;
33521
33643
  exports.Loader = Loader;
33522
33644
  exports.LocalizationProvider = Provider;
33523
33645
  exports.Modal = modal;
33524
33646
  exports.ModalStore = ModalStore;
33647
+ exports.MoveButton = MoveButton;
33525
33648
  exports.NoData = NoData;
33526
33649
  exports.QueryProvider = QueryProvider;
33527
33650
  exports.RootStore = RootStore;
@@ -33529,30 +33652,33 @@ exports.Select = FormSelect;
33529
33652
  exports.StoreContext = StoreContext;
33530
33653
  exports.Tabs = Tabs;
33531
33654
  exports.TrafficSignAddDopButton = TrafficSignAddDopButton$1;
33532
- exports.TrafficSignCreateForm = create$1;
33655
+ exports.TrafficSignCreateForm = create$2;
33533
33656
  exports.TrafficSignDopCreateForm = TrafficSignDopCreateForm$1;
33534
33657
  exports.TrafficSignDopUpdateForm = TrafficSignDopUpdateForm$1;
33535
33658
  exports.TrafficSignPreviewImage = TrafficSignPreviewImage$1;
33536
33659
  exports.TrafficSignPreviewTitle = TrafficSignPreviewTitle$1;
33537
33660
  exports.TrafficSignTable = TrafficSignTable$1;
33538
- exports.TrafficSignUpdateForm = update$1;
33539
- exports.TrafficSignalCreateForm = create;
33540
- exports.TrafficSignalUpdateForm = update;
33661
+ exports.TrafficSignUpdateForm = update$2;
33662
+ exports.TrafficSignalCreateForm = create$1;
33663
+ exports.TrafficSignalUpdateForm = update$1;
33541
33664
  exports.UploadButton = UploadButton;
33542
33665
  exports._backendUrl = _backendUrl;
33543
33666
  exports._testApiKeys = _testApiKeys;
33544
33667
  exports.allTrafficSigns = allTrafficSigns;
33545
33668
  exports.authStore = authStore;
33669
+ exports.cameraConfig = cameraConfig;
33670
+ exports.cameraMainFields = cameraMainFields;
33546
33671
  exports.catIds = catIds;
33547
33672
  exports.copyInformation = copyInformation;
33548
33673
  exports.createApiService = createApiService;
33674
+ exports.defaultCamera = defaultCamera;
33549
33675
  exports.defaultTrafficSign = defaultTrafficSign;
33550
33676
  exports.defaultTrafficSignDop = defaultTrafficSignDop;
33551
33677
  exports.defaultTrafficSignDopIds = defaultTrafficSignDopIds;
33552
33678
  exports.defaultTrafficSignIds = defaultTrafficSignIds;
33553
33679
  exports.defaultTrafficSignal = defaultTrafficSignal;
33554
33680
  exports.encodeString = encodeString;
33555
- exports.extension = extension$1;
33681
+ exports.extension = extension;
33556
33682
  exports.getAdminAreaLayers = getAdminAreaLayers;
33557
33683
  exports.getAllLayers = getAllLayers;
33558
33684
  exports.getAllPointLayers = getAllPointLayers;
@@ -33564,6 +33690,7 @@ exports.getBuiltupAreaLayers = getBuiltupAreaLayers;
33564
33690
  exports.getCameraLayers = getCameraLayers;
33565
33691
  exports.getCityPOILayers = getCityPOILayers;
33566
33692
  exports.getConditionLayers = getConditionLayers;
33693
+ exports.getCoordinateByLatLng = getCoordinateByLatLng;
33567
33694
  exports.getDefaultPOI = getDefaultPOI;
33568
33695
  exports.getFacilityAreaLayers = getFacilityAreaLayers;
33569
33696
  exports.getLanduseAreaLayers = getLanduseAreaLayers;
@@ -33595,6 +33722,7 @@ exports.getValidLayer = getValidLayer;
33595
33722
  exports.getWaterAreaLayers = getWaterAreaLayers;
33596
33723
  exports.getWaterLinkLayers = getWaterLinkLayers;
33597
33724
  exports.imagesPath = imagesPath;
33725
+ exports.layerCoordinateSchema = layerCoordinateSchema;
33598
33726
  exports.layerDateFormat = layerDateFormat;
33599
33727
  exports.layerDatesFields = layerDatesFields;
33600
33728
  exports.layerDatesFieldsSchema = layerDatesFieldsSchema;
@@ -33610,7 +33738,7 @@ exports.pillarConfig = pillarConfig;
33610
33738
  exports.queryClient = queryClient;
33611
33739
  exports.rootStore = rootStore;
33612
33740
  exports.showSnackbar = showSnackbar;
33613
- exports.size = size$1;
33741
+ exports.size = size;
33614
33742
  exports.sourceUrl = sourceUrl;
33615
33743
  exports.text_source = text_source;
33616
33744
  exports.tile_size = tile_size;