@evergis/react 4.0.65 → 4.0.66

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/react.esm.js CHANGED
@@ -5745,6 +5745,49 @@ const usePythonTask = () => {
5745
5745
  };
5746
5746
  };
5747
5747
 
5748
+ const useRemoteTask = ({ onUpdate } = {}) => {
5749
+ const { api } = useGlobalContext();
5750
+ const { addSubscription, connection, unsubscribeById } = useServerNotificationsContext();
5751
+ const runTask = useCallback((prototype) => new Promise((resolve, reject) => {
5752
+ const start = async () => {
5753
+ const resourceId = prototype.subTaskSettings?.[0]?.startParameters?.resourceId;
5754
+ let prototypeId = await api.remoteTaskManager.createTaskPrototype(prototype);
5755
+ prototypeId = prototypeId.replace(/["']+/g, "");
5756
+ const { id: taskId, success } = await api.remoteTaskManager.startTask1(prototypeId);
5757
+ if (!success || !taskId) {
5758
+ reject(new Error("startTask returned no taskId"));
5759
+ return;
5760
+ }
5761
+ const subscriptionId = await addSubscription({
5762
+ tag: "python_task_progress_event",
5763
+ resourceId,
5764
+ });
5765
+ const onNotification = ({ data }) => {
5766
+ if (data?.taskId !== taskId) {
5767
+ return;
5768
+ }
5769
+ onUpdate?.({ status: data.status, log: data.log });
5770
+ const isCompleted = data.status === RemoteTaskStatus.Completed;
5771
+ const isError = data.status === RemoteTaskStatus.Error;
5772
+ if (isCompleted || isError) {
5773
+ connection?.off(SERVER_NOTIFICATION_EVENT.PythonProgressNotification, onNotification);
5774
+ if (subscriptionId) {
5775
+ unsubscribeById(subscriptionId);
5776
+ }
5777
+ resolve({
5778
+ taskId,
5779
+ status: isCompleted ? RemoteTaskStatus.Completed : RemoteTaskStatus.Error,
5780
+ log: data.log,
5781
+ });
5782
+ }
5783
+ };
5784
+ connection?.on(SERVER_NOTIFICATION_EVENT.PythonProgressNotification, onNotification);
5785
+ };
5786
+ start().catch(reject);
5787
+ }), [api, addSubscription, connection, unsubscribeById, onUpdate]);
5788
+ return { runTask };
5789
+ };
5790
+
5748
5791
  const useAppHeight = () => {
5749
5792
  useEffect(() => {
5750
5793
  const setAppHeight = () => {
@@ -12411,6 +12454,112 @@ const useDiffPage = (type) => {
12411
12454
  return useMemo(() => isDiffPage, [isDiffPage]);
12412
12455
  };
12413
12456
 
12457
+ const SAVE_HOOK_RESULT_DURATION = 4000;
12458
+ const NOTIFICATION_ID_RADIX = 36;
12459
+ const NOTIFICATION_ID_LENGTH = 8;
12460
+ const isHookActive = (hook) => !!hook && (!!hook.resourceId || !!hook.fileName);
12461
+ const createSaveNotificationId = () => `save-hook-${Date.now()}-${Math.random().toString(NOTIFICATION_ID_RADIX).slice(2, NOTIFICATION_ID_LENGTH)}`;
12462
+
12463
+ const useAfterSave = (hook, buildPrototype) => {
12464
+ const { t, notification } = useGlobalContext();
12465
+ const { runTask } = useRemoteTask();
12466
+ return useCallback(async (input) => {
12467
+ if (!isHookActive(hook)) {
12468
+ return;
12469
+ }
12470
+ const notificationId = createSaveNotificationId();
12471
+ notification?.add({
12472
+ id: notificationId,
12473
+ title: t("afterSaveProgress", { ns: "dashboard", defaultValue: "Выполняется действие после сохранения" }),
12474
+ progress: true,
12475
+ duration: Number.MAX_SAFE_INTEGER,
12476
+ });
12477
+ try {
12478
+ const { status, log } = await runTask(buildPrototype(hook, input));
12479
+ if (status === RemoteTaskStatus.Completed) {
12480
+ notification?.update({
12481
+ id: notificationId,
12482
+ title: t("afterSaveSuccess", { ns: "dashboard", defaultValue: "Действие после сохранения выполнено" }),
12483
+ success: true,
12484
+ progress: false,
12485
+ duration: SAVE_HOOK_RESULT_DURATION,
12486
+ });
12487
+ return;
12488
+ }
12489
+ notification?.update({
12490
+ id: notificationId,
12491
+ title: t("afterSaveError", { ns: "dashboard", defaultValue: "Не удалось выполнить действие после сохранения" }),
12492
+ description: log,
12493
+ error: true,
12494
+ progress: false,
12495
+ duration: SAVE_HOOK_RESULT_DURATION,
12496
+ });
12497
+ }
12498
+ catch (error) {
12499
+ const description = error instanceof Error ? error.message : undefined;
12500
+ notification?.update({
12501
+ id: notificationId,
12502
+ title: t("afterSaveError", { ns: "dashboard", defaultValue: "Не удалось выполнить действие после сохранения" }),
12503
+ description,
12504
+ error: true,
12505
+ progress: false,
12506
+ duration: SAVE_HOOK_RESULT_DURATION,
12507
+ });
12508
+ }
12509
+ }, [hook, buildPrototype, runTask, notification, t]);
12510
+ };
12511
+
12512
+ const useBeforeSave = (hook, buildPrototype) => {
12513
+ const { t, notification } = useGlobalContext();
12514
+ const { runTask } = useRemoteTask();
12515
+ return useCallback(async (input) => {
12516
+ if (!isHookActive(hook)) {
12517
+ return true;
12518
+ }
12519
+ const notificationId = createSaveNotificationId();
12520
+ notification?.add({
12521
+ id: notificationId,
12522
+ title: t("beforeSaveProgress", { ns: "dashboard", defaultValue: "Выполняется проверка перед сохранением" }),
12523
+ progress: true,
12524
+ duration: Number.MAX_SAFE_INTEGER,
12525
+ });
12526
+ try {
12527
+ const { status, log } = await runTask(buildPrototype(hook, input));
12528
+ if (status === RemoteTaskStatus.Completed) {
12529
+ notification?.update({
12530
+ id: notificationId,
12531
+ title: t("beforeSaveSuccess", { ns: "dashboard", defaultValue: "Проверка перед сохранением пройдена" }),
12532
+ success: true,
12533
+ progress: false,
12534
+ duration: SAVE_HOOK_RESULT_DURATION,
12535
+ });
12536
+ return true;
12537
+ }
12538
+ notification?.update({
12539
+ id: notificationId,
12540
+ title: t("beforeSaveError", { ns: "dashboard", defaultValue: "Не удалось выполнить проверку перед сохранением" }),
12541
+ description: log,
12542
+ error: true,
12543
+ progress: false,
12544
+ duration: SAVE_HOOK_RESULT_DURATION,
12545
+ });
12546
+ return false;
12547
+ }
12548
+ catch (error) {
12549
+ const description = error instanceof Error ? error.message : undefined;
12550
+ notification?.update({
12551
+ id: notificationId,
12552
+ title: t("beforeSaveError", { ns: "dashboard", defaultValue: "Не удалось выполнить проверку перед сохранением" }),
12553
+ description,
12554
+ error: true,
12555
+ progress: false,
12556
+ duration: SAVE_HOOK_RESULT_DURATION,
12557
+ });
12558
+ return false;
12559
+ }
12560
+ }, [hook, buildPrototype, runTask, notification, t]);
12561
+ };
12562
+
12414
12563
  const useExpandableContainers = () => {
12415
12564
  const [expandedContainers, setExpandedContainers] = useState({});
12416
12565
  const expandContainer = useCallback((id, expanded) => {
@@ -12518,6 +12667,83 @@ const useExportPdf = (id, margin = 20) => {
12518
12667
  return { loading, onExport };
12519
12668
  };
12520
12669
 
12670
+ const useSavePrototypeBuilder = () => {
12671
+ const { ewktGeometry } = useGlobalContext();
12672
+ const { layerInfo, attributes, dataSources, filters: selectedFilters, } = useWidgetContext(WidgetType.FeatureCard);
12673
+ const { projectInfo, dataSources: projectDataSources } = useWidgetContext(WidgetType.Dashboard);
12674
+ const { currentPage } = useWidgetPage(WidgetType.FeatureCard);
12675
+ return useCallback((hook, input) => {
12676
+ const resolvedParameters = applyQueryFilters({
12677
+ parameters: hook.parameters ?? {},
12678
+ filters: currentPage?.filters ?? [],
12679
+ selectedFilters,
12680
+ geometry: ewktGeometry,
12681
+ attributes,
12682
+ layerInfo,
12683
+ dataSources,
12684
+ projectDataSources,
12685
+ });
12686
+ const scriptParameters = {
12687
+ projectName: projectInfo?.name,
12688
+ layerName: layerInfo?.name,
12689
+ featureId: input.featureId,
12690
+ properties: input.changedProperties,
12691
+ ...resolvedParameters,
12692
+ };
12693
+ return {
12694
+ enabled: true,
12695
+ startIfPreviousError: true,
12696
+ startIfPreviousNotFinished: true,
12697
+ subTaskSettings: [
12698
+ {
12699
+ type: "pythonService",
12700
+ startParameters: {
12701
+ resourceId: hook.resourceId,
12702
+ fileName: hook.fileName,
12703
+ methodName: hook.methodName,
12704
+ parameters: scriptParameters,
12705
+ method: "pythonrunner/run",
12706
+ },
12707
+ },
12708
+ ],
12709
+ };
12710
+ }, [
12711
+ attributes,
12712
+ currentPage?.filters,
12713
+ dataSources,
12714
+ ewktGeometry,
12715
+ layerInfo,
12716
+ projectDataSources,
12717
+ projectInfo?.name,
12718
+ selectedFilters,
12719
+ ]);
12720
+ };
12721
+
12722
+ /**
12723
+ * Орchestrator-хук для серверных `beforeSave` / `afterSave` python-скриптов,
12724
+ * описанных в `layerInfo.configuration.editConfiguration.options` слоя.
12725
+ *
12726
+ * - `runBeforeSave(input)` — `Promise<boolean>`, resolves `false` если
12727
+ * серверная проверка не прошла; сохранение должно быть отменено.
12728
+ * - `runAfterSave(input)` — fire-and-forget после успешного save.
12729
+ *
12730
+ * Активируется только если у потребителя в GlobalProvider переданы
12731
+ * `api`, `notification` и `t`, а приложение обёрнуто в
12732
+ * `<ServerNotificationsProvider>` (для SignalR-подписки на прогресс).
12733
+ */
12734
+ const useFeatureSaveHooks = () => {
12735
+ const { layerInfo } = useWidgetContext(WidgetType.FeatureCard);
12736
+ const options = useMemo(() => layerInfo?.configuration
12737
+ ?.editConfiguration?.options, [layerInfo?.configuration]);
12738
+ const buildPrototype = useSavePrototypeBuilder();
12739
+ const runBeforeSave = useBeforeSave(options?.beforeSave, buildPrototype);
12740
+ const runAfterSave = useAfterSave(options?.afterSave, buildPrototype);
12741
+ return {
12742
+ runBeforeSave,
12743
+ runAfterSave,
12744
+ };
12745
+ };
12746
+
12521
12747
  const getMinMaxFromStringValue = (items, value, current, type) => {
12522
12748
  const valueIndex = items.findIndex(item => item.value === (type === "min" ? value.min : value.max));
12523
12749
  const currentIndex = items.findIndex(item => item.value === (type === "min" ? value.min : value.max));
@@ -13656,5 +13882,5 @@ const Map$1 = ({ zIndex, lowerSiblings, upperSiblings, onError, children, ...res
13656
13882
  }, children: children }), upperSiblings] }));
13657
13883
  };
13658
13884
 
13659
- export { ALIGNMENTS, AddFeatureButton, AddFeatureContainer, AlertIconContainer, AttachmentContainer, AttributeGalleryContainer, AttributeLabel, BASE_CONTAINER_STYLE, BaseMapTheme, CHART_TYPES, CONFIG_PAGES_ID, CONFIG_PAGE_ID, CameraContainer, Chart, ChartContainer, ChartLegend, ChartLoading, Container, ContainerChildren, ContainerLoading, ContainerTemplate, ContainerWrapper, ContainersGroupContainer, DEFAULT_ATTRIBUTE_NAME, DEFAULT_BARCHART_RADIUS, DEFAULT_BASE_MAP, DEFAULT_CHART_ANGLE, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, DEFAULT_CIRCLE_PAINT, DEFAULT_DASHBOARD_CONFIG, DEFAULT_DATA_SOURCE_LIMIT, DEFAULT_DROPDOWN_WIDTH, DEFAULT_FILL_EXTRUSION_PAINT, DEFAULT_FILL_PAINT, DEFAULT_FILTER_PADDING, DEFAULT_ID_ATTRIBUTE_NAME, DEFAULT_LAT, DEFAULT_LINE_PAINT, DEFAULT_LNG, DEFAULT_PAGES_CONFIG, DEFAULT_PIECHART_RADIUS, DEFAULT_ZOOM, Dashboard, DashboardCheckbox, DashboardChip, DashboardContent, DashboardContext, DashboardDefaultHeader, DashboardHeader, DashboardLoading, DashboardPlaceholder, DashboardPlaceholderWrap, DashboardProvider, DashboardWrapper, DataSourceContainer, DataSourceError, DataSourceErrorContainer, DataSourceInnerContainer, DataSourceProgressContainer, DateFormat, DefaultAttributesContainer, DefaultHeaderContainer, DefaultHeaderWrapper, DividerContainer, EditGeometryType, ElementButton, ElementCamera, ElementChart, ElementChips, ElementControl, ElementIcon, ElementImage, ElementLegend, ElementLink, ElementMarkdown, ElementSlideshow, ElementSvg, ElementTooltip, ElementValueWrapper, ExpandableTitle, FEATURE_CARD_DEFAULT_COLORS, FEATURE_CARD_OTHER_COLOR, FILTERED_VALUE_OPACITY, FILTER_PREFIX, FeatureCardBackgroundHeader, FeatureCardButtons, FeatureCardContext, FeatureCardDefaultHeader, FeatureCardHeader, FeatureCardProvider, FeatureCardSlideshowHeader, FeatureCardTitle, FeatureControls, FeatureTitleContainer, FiltersContainer, GEOMETRY_ATTRIBUTE, GlobalContext, GlobalProvider, Header, HeaderContainer, HeaderFontColorMixin, HeaderFrontView, HeaderTemplate, HeaderTitleContainer, HiddenTitleItems, IconContainer, ImageContainer, LEFT_PANEL_HEADER_HEIGHT, Layer, LayerDescription, LayerGroup, LayerGroupList, LayerIcon, LayerIconContainer, LayerListContainer, LayerTree, LayersContainer, LayersListWrapper, LinearProgressContainer, LogTerminal, LogoContainer, MAX_CHART_WIDTH, Map$1 as Map, MapContext, MapProvider, NO_CONTENT_VALUE, NUMERIC_ATTRIBUTE_TYPES, NoLiveSnapshotContainer, OneColumnContainer, POLL_SUBTASK_INTERVAL_MS, POLL_SUBTASK_TIMEOUT_MS, PROVIDER_PREFIX, PageNavigator, PageTitle, PageTitleContainer, PagesContainer, Pagination, PresentationHeader, PresentationHeaderButtons, PresentationHeaderTools, PresentationPanelContainer, PresentationPanelWrapper, PresentationWrapper, ProgressContainer, ProviderPrefix, RoundedBackgroundContainer, SERVER_NOTIFICATION_EVENT, STACK_BAR_TOTAL_HEIGHT, ScalingFactor, ServerNotificationsContext, ServerNotificationsProvider, SlideshowContainer, SmallPreviewContainer$1 as SmallPreviewContainer, SmallPreviewControl, SmallPreviewCounter, SmallPreviewImages, SmallPreviewLeft, SmallPreviewRight, StackBar, SvgImage, TIME_ZONE_FORMAT, TabsContainer, TextTrim, ThemeName, TitleContainer, TopContainer, TopContainerButtons, TwoColumnContainer, UploadContainer, VIEW_MODES, WidgetType, addDataSource, addDataSources, adjustColor, applyFiltersToCondition, applyQueryFilters, applyVarsToCondition, asAttributeName, asChartId, asContainerId, asDataSourceName, asFilterName, asLayerName, asModalId, asResourceId, asTabId, checkEqualOrIncludes, checkIsLoading, createConfigLayer, createConfigPage, createNewPageId, createTreeNode, dateOptions, debounce, decimalOpacityToHex, eqlParametersToPayload, findAttributeInExpression, formatArea, formatAttributeValue, formatChartRelatedValue, formatConditionValue, formatDataSourceCondition, formatDate$1 as formatDate, formatElementValue, formatLength, formatNumber, formatPolygonMeasure, getActualExtrusionHeight, getAttributeByName, getAttributeValue, getAttributesConfiguration, getChartAxes, getChartFilterName, getChartMarkers, getConfigFilter, getContainerComponent, getDashboardHeader, getDataFromAttributes, getDataFromRelatedFeatures, getDataSource, getDataSourceFilterValue, getDate, getDefaultConfig, getDisplayTemplateNameFromAttribute, getElementValue, getFeatureAttributes, getFeatureCardHeader, getFilterComponent, getFilterSelectedItems, getFilterValue, getFormattedAttributes, getGradientColors, getLayerInfo, getLayerInfoFromDataSources, getPagesFromConfig, getPagesFromProjectInfo, getProxyService, getRelatedAttribute, getRenderElement, getResourceUrl, getRootElementId, getSelectedFilterValue, getSlideshowImages, getSvgUrl, getTemplateNameFromAttribute, getThemeByName, getTotalFromAttributes, getTotalFromRelatedFeatures, hexToRgba, isEmptyElementValue, isEmptyValue, isHiddenEmptyValue, isLayerService, isNotValidSelectedTab, isNumeric, isObject, isProxyService, isVisibleContainer, metersPerPixel, numberOptions, parseClientStyle, parseIconNames, parseIconNamesFromClientStyle, pieChartTooltipFromAttributes, pieChartTooltipFromRelatedFeatures, pointOptions, removeDataSource, rgbToHex, roundTotalSum, sliceShownOtherItems, timeOptions, toRenderableValue, tooltipNameFromAttributes, tooltipValueFromAttributes, tooltipValueFromRelatedFeatures, transparentizeColor, treeNodesToProjectItems, updateDataSource, useAppHeight, useAttachmentItems, useAttachmentPreviewImages, useAutoCompleteControl, useChartChange, useChartData, useContainerAttributes, useCurrentPageLayers, useCustomFeatureSelect, useDashboardHeader, useDataSources, useDebouncedCallback, useDiffPage, useEditGroupAttributes, useExpandableContainers, useExportPdf, useFetchImageWithAuth, useFetchWithAuth, useGetConfigLayer, useGlobalContext, useHeaderRender, useHideIfEmptyDataSource, useIconsFromLayers, useLayerHiddenAttributes, useLayerParams, useMapContext, useMapDraw, useMapImages, useMaxZoomTo, useProjectDashboardInit, usePythonSandbox, usePythonTask, useRedrawLayer, useRelatedDataSourceAttributes, useRenderElement, useServerNotificationsContext, useShownOtherItems, useToggle, useUpdateDataSource, useVisibleProjectItems, useWidgetConfig, useWidgetContext, useWidgetFilters, useWidgetPage, useWindowResize, useZoomToFeatures, useZoomToPoint };
13885
+ export { ALIGNMENTS, AddFeatureButton, AddFeatureContainer, AlertIconContainer, AttachmentContainer, AttributeGalleryContainer, AttributeLabel, BASE_CONTAINER_STYLE, BaseMapTheme, CHART_TYPES, CONFIG_PAGES_ID, CONFIG_PAGE_ID, CameraContainer, Chart, ChartContainer, ChartLegend, ChartLoading, Container, ContainerChildren, ContainerLoading, ContainerTemplate, ContainerWrapper, ContainersGroupContainer, DEFAULT_ATTRIBUTE_NAME, DEFAULT_BARCHART_RADIUS, DEFAULT_BASE_MAP, DEFAULT_CHART_ANGLE, DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH, DEFAULT_CIRCLE_PAINT, DEFAULT_DASHBOARD_CONFIG, DEFAULT_DATA_SOURCE_LIMIT, DEFAULT_DROPDOWN_WIDTH, DEFAULT_FILL_EXTRUSION_PAINT, DEFAULT_FILL_PAINT, DEFAULT_FILTER_PADDING, DEFAULT_ID_ATTRIBUTE_NAME, DEFAULT_LAT, DEFAULT_LINE_PAINT, DEFAULT_LNG, DEFAULT_PAGES_CONFIG, DEFAULT_PIECHART_RADIUS, DEFAULT_ZOOM, Dashboard, DashboardCheckbox, DashboardChip, DashboardContent, DashboardContext, DashboardDefaultHeader, DashboardHeader, DashboardLoading, DashboardPlaceholder, DashboardPlaceholderWrap, DashboardProvider, DashboardWrapper, DataSourceContainer, DataSourceError, DataSourceErrorContainer, DataSourceInnerContainer, DataSourceProgressContainer, DateFormat, DefaultAttributesContainer, DefaultHeaderContainer, DefaultHeaderWrapper, DividerContainer, EditGeometryType, ElementButton, ElementCamera, ElementChart, ElementChips, ElementControl, ElementIcon, ElementImage, ElementLegend, ElementLink, ElementMarkdown, ElementSlideshow, ElementSvg, ElementTooltip, ElementValueWrapper, ExpandableTitle, FEATURE_CARD_DEFAULT_COLORS, FEATURE_CARD_OTHER_COLOR, FILTERED_VALUE_OPACITY, FILTER_PREFIX, FeatureCardBackgroundHeader, FeatureCardButtons, FeatureCardContext, FeatureCardDefaultHeader, FeatureCardHeader, FeatureCardProvider, FeatureCardSlideshowHeader, FeatureCardTitle, FeatureControls, FeatureTitleContainer, FiltersContainer, GEOMETRY_ATTRIBUTE, GlobalContext, GlobalProvider, Header, HeaderContainer, HeaderFontColorMixin, HeaderFrontView, HeaderTemplate, HeaderTitleContainer, HiddenTitleItems, IconContainer, ImageContainer, LEFT_PANEL_HEADER_HEIGHT, Layer, LayerDescription, LayerGroup, LayerGroupList, LayerIcon, LayerIconContainer, LayerListContainer, LayerTree, LayersContainer, LayersListWrapper, LinearProgressContainer, LogTerminal, LogoContainer, MAX_CHART_WIDTH, Map$1 as Map, MapContext, MapProvider, NO_CONTENT_VALUE, NUMERIC_ATTRIBUTE_TYPES, NoLiveSnapshotContainer, OneColumnContainer, POLL_SUBTASK_INTERVAL_MS, POLL_SUBTASK_TIMEOUT_MS, PROVIDER_PREFIX, PageNavigator, PageTitle, PageTitleContainer, PagesContainer, Pagination, PresentationHeader, PresentationHeaderButtons, PresentationHeaderTools, PresentationPanelContainer, PresentationPanelWrapper, PresentationWrapper, ProgressContainer, ProviderPrefix, RoundedBackgroundContainer, SAVE_HOOK_RESULT_DURATION, SERVER_NOTIFICATION_EVENT, STACK_BAR_TOTAL_HEIGHT, ScalingFactor, ServerNotificationsContext, ServerNotificationsProvider, SlideshowContainer, SmallPreviewContainer$1 as SmallPreviewContainer, SmallPreviewControl, SmallPreviewCounter, SmallPreviewImages, SmallPreviewLeft, SmallPreviewRight, StackBar, SvgImage, TIME_ZONE_FORMAT, TabsContainer, TextTrim, ThemeName, TitleContainer, TopContainer, TopContainerButtons, TwoColumnContainer, UploadContainer, VIEW_MODES, WidgetType, addDataSource, addDataSources, adjustColor, applyFiltersToCondition, applyQueryFilters, applyVarsToCondition, asAttributeName, asChartId, asContainerId, asDataSourceName, asFilterName, asLayerName, asModalId, asResourceId, asTabId, checkEqualOrIncludes, checkIsLoading, createConfigLayer, createConfigPage, createNewPageId, createSaveNotificationId, createTreeNode, dateOptions, debounce, decimalOpacityToHex, eqlParametersToPayload, findAttributeInExpression, formatArea, formatAttributeValue, formatChartRelatedValue, formatConditionValue, formatDataSourceCondition, formatDate$1 as formatDate, formatElementValue, formatLength, formatNumber, formatPolygonMeasure, getActualExtrusionHeight, getAttributeByName, getAttributeValue, getAttributesConfiguration, getChartAxes, getChartFilterName, getChartMarkers, getConfigFilter, getContainerComponent, getDashboardHeader, getDataFromAttributes, getDataFromRelatedFeatures, getDataSource, getDataSourceFilterValue, getDate, getDefaultConfig, getDisplayTemplateNameFromAttribute, getElementValue, getFeatureAttributes, getFeatureCardHeader, getFilterComponent, getFilterSelectedItems, getFilterValue, getFormattedAttributes, getGradientColors, getLayerInfo, getLayerInfoFromDataSources, getPagesFromConfig, getPagesFromProjectInfo, getProxyService, getRelatedAttribute, getRenderElement, getResourceUrl, getRootElementId, getSelectedFilterValue, getSlideshowImages, getSvgUrl, getTemplateNameFromAttribute, getThemeByName, getTotalFromAttributes, getTotalFromRelatedFeatures, hexToRgba, isEmptyElementValue, isEmptyValue, isHiddenEmptyValue, isHookActive, isLayerService, isNotValidSelectedTab, isNumeric, isObject, isProxyService, isVisibleContainer, metersPerPixel, numberOptions, parseClientStyle, parseIconNames, parseIconNamesFromClientStyle, pieChartTooltipFromAttributes, pieChartTooltipFromRelatedFeatures, pointOptions, removeDataSource, rgbToHex, roundTotalSum, sliceShownOtherItems, timeOptions, toRenderableValue, tooltipNameFromAttributes, tooltipValueFromAttributes, tooltipValueFromRelatedFeatures, transparentizeColor, treeNodesToProjectItems, updateDataSource, useAfterSave, useAppHeight, useAttachmentItems, useAttachmentPreviewImages, useAutoCompleteControl, useBeforeSave, useChartChange, useChartData, useContainerAttributes, useCurrentPageLayers, useCustomFeatureSelect, useDashboardHeader, useDataSources, useDebouncedCallback, useDiffPage, useEditGroupAttributes, useExpandableContainers, useExportPdf, useFeatureSaveHooks, useFetchImageWithAuth, useFetchWithAuth, useGetConfigLayer, useGlobalContext, useHeaderRender, useHideIfEmptyDataSource, useIconsFromLayers, useLayerHiddenAttributes, useLayerParams, useMapContext, useMapDraw, useMapImages, useMaxZoomTo, useProjectDashboardInit, usePythonSandbox, usePythonTask, useRedrawLayer, useRelatedDataSourceAttributes, useRemoteTask, useRenderElement, useSavePrototypeBuilder, useServerNotificationsContext, useShownOtherItems, useToggle, useUpdateDataSource, useVisibleProjectItems, useWidgetConfig, useWidgetContext, useWidgetFilters, useWidgetPage, useWindowResize, useZoomToFeatures, useZoomToPoint };
13660
13886
  //# sourceMappingURL=react.esm.js.map