ebta-workflow-prod 1.1.2 → 4.0.1
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/.eslintrc.js +7 -0
- package/.vscode/extensions.json +3 -0
- package/.vscode/settings.json +3 -0
- package/README.md +26 -0
- package/build/2983859c0d77824ec8db.svg +1 -0
- package/build/4168d659d55fd94368bc.svg +1 -0
- package/build/641b2c17e92b0e885b9f.svg +1 -0
- package/build/882445a26a4f3964786f.svg +1 -0
- package/build/activitypack.json +1 -1
- package/build/b280e967312a55101032.svg +1 -0
- package/build/main.js +2 -2
- package/build/main.js.LICENSE.txt +99 -0
- package/certs/localhost+2-key.pem +28 -0
- package/certs/localhost+2.pem +26 -0
- package/index.html +58 -0
- package/package.json +43 -7
- package/public/img/background.svg +3 -3
- package/public/img/compass.svg +3 -3
- package/public/img/grab.svg +3 -3
- package/public/img/grabbing.svg +3 -3
- package/public/img/sprites.svg +14 -14
- package/src/activities/AppendObjects.ts +40 -0
- package/src/activities/Base64ToFile.ts +56 -0
- package/src/activities/CreateGraphicLayer.ts +85 -0
- package/src/activities/DrapGeometry.ts +99 -0
- package/src/activities/GetElementByDataLayoutID.ts +58 -0
- package/src/activities/GetSesionStorage.ts +36 -0
- package/src/activities/GetTaskStatus.ts +56 -0
- package/src/activities/GetUserToken.ts +102 -0
- package/src/activities/GetvGISDetails copy.ts +110 -0
- package/src/activities/GetvGISDetails.ts +110 -0
- package/src/activities/HTMLextractor.ts +188 -0
- package/src/activities/LegendCreator.ts +155 -0
- package/src/activities/MergeObjects.ts +61 -0
- package/src/activities/PDFMapGenerator.ts +729 -0
- package/src/activities/RequestChecker.ts +94 -0
- package/src/activities/Sample.ts +41 -0
- package/src/activities/SetSessionStorage.ts +57 -0
- package/src/activities/SliceLine.ts +61 -0
- package/src/elements/AttributeFilter.tsx +1867 -0
- package/src/elements/CircularSlider.tsx +67 -0
- package/src/elements/CsColorPicker.tsx +140 -0
- package/src/elements/DropDownMenu.tsx +282 -0
- package/src/elements/HeaderwithHelp.tsx +178 -0
- package/src/elements/ItemSearcher.tsx +1035 -0
- package/src/elements/ItemSearcher_v2.tsx +1071 -0
- package/src/elements/LineChartMui.tsx +50 -0
- package/src/elements/MenueBar.tsx +118 -0
- package/src/elements/MultipleAutoCompleteCS.tsx +145 -0
- package/src/elements/SingleAutoCompleteCS.tsx +133 -0
- package/src/elements/TableRadioGoup.tsx +163 -0
- package/src/elements/Timeline.tsx +104 -0
- package/src/elements/ToggleButtonGroup.tsx +129 -0
- package/src/elements/Viewer360.tsx +71 -0
- package/src/elements/modules/AttributeFilterEasyComp.tsx +253 -0
- package/src/index.ts +41 -0
- package/src/main.ts +15 -0
- package/src/styles/imageSlider.css +34 -0
- package/tsconfig.json +12 -0
- package/uuid.js +7 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { FormElementProps, FormElementRegistration } from "@vertigis/workflow";
|
|
3
|
+
import { Timeline as MainTimeLine, Text } from '@mantine/core';
|
|
4
|
+
import { MantineProvider } from '@mantine/core';
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The generic type argument provided to `FormElementProps<T>` controls the type
|
|
9
|
+
* of `props.value` and `props.setValue(value)`. If your element doesn't need a
|
|
10
|
+
* `value`, you can omit the type argument.
|
|
11
|
+
*
|
|
12
|
+
* You can also declare additional public properties of your element by adding
|
|
13
|
+
* properties to this interface. The properties will be managed by the Workflow
|
|
14
|
+
* runtime, and passed in as `props`. You can update the properties by using
|
|
15
|
+
* `props.setProperty(key, value)`.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
interface TimelineItem {
|
|
19
|
+
title: string;
|
|
20
|
+
description: string;
|
|
21
|
+
time: string;
|
|
22
|
+
lineVariant?: "dashed" | "solid";
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
interface TimelineProps extends FormElementProps<string> {
|
|
26
|
+
itemDetails: TimelineItem[];
|
|
27
|
+
iconSize: number,
|
|
28
|
+
lineWidth: number;
|
|
29
|
+
active: number,
|
|
30
|
+
color: string,
|
|
31
|
+
reverseActive: boolean,
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* A Workflow element built using React.
|
|
36
|
+
* @displayName Timeline
|
|
37
|
+
* @description Timeline
|
|
38
|
+
* @param props The props that will be provided by the Workflow runtime.
|
|
39
|
+
*/
|
|
40
|
+
function Timeline(props: TimelineProps): React.ReactElement {
|
|
41
|
+
const { itemDetails,iconSize,lineWidth,active,color,reverseActive } = props;
|
|
42
|
+
iconSize * 0.6
|
|
43
|
+
return (
|
|
44
|
+
<MantineProvider>
|
|
45
|
+
<MainTimeLine active={active} bulletSize={iconSize} lineWidth={lineWidth} color={color} reverseActive={reverseActive}>
|
|
46
|
+
|
|
47
|
+
{itemDetails.map((item, index) => {
|
|
48
|
+
|
|
49
|
+
return (
|
|
50
|
+
|
|
51
|
+
<MainTimeLine.Item
|
|
52
|
+
key={index}
|
|
53
|
+
title={item.title}
|
|
54
|
+
lineVariant={item.lineVariant}
|
|
55
|
+
>
|
|
56
|
+
|
|
57
|
+
{item.description ? <Text c="dimmed" size="sm">{item.description}</Text> : undefined}
|
|
58
|
+
{item.time ? <Text size="xs" mt={4}>{item.time}</Text> : undefined}
|
|
59
|
+
|
|
60
|
+
</MainTimeLine.Item>
|
|
61
|
+
)})}
|
|
62
|
+
</MainTimeLine>
|
|
63
|
+
|
|
64
|
+
</MantineProvider>
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const TimelineElementRegistration: FormElementRegistration<TimelineProps> = {
|
|
69
|
+
component: Timeline,
|
|
70
|
+
getInitialProperties: () => ({
|
|
71
|
+
value: "Hello World",
|
|
72
|
+
lineWidth: 1,
|
|
73
|
+
iconSize: 40,
|
|
74
|
+
active: 2,
|
|
75
|
+
color:'var(--buttonIcon)',
|
|
76
|
+
reverseActive: true,
|
|
77
|
+
itemDetails: [
|
|
78
|
+
{
|
|
79
|
+
title: "New branch",
|
|
80
|
+
description: "You've created new branch fix-notifications from master",
|
|
81
|
+
time: "2 hours ago",
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
title: "Commits",
|
|
85
|
+
description: "You've pushed 23 commits to fix-notifications branch",
|
|
86
|
+
time: "52 minutes ago",
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
title: "Pull request",
|
|
90
|
+
description: "You've submitted a pull request Fix incorrect notification message (#187)",
|
|
91
|
+
time: "34 minutes ago",
|
|
92
|
+
lineVariant: "dashed",
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
title: "Code review",
|
|
96
|
+
description: "Robert Gluesticker left a code review on your pull request",
|
|
97
|
+
time: "12 minutes ago",
|
|
98
|
+
},
|
|
99
|
+
],
|
|
100
|
+
}),
|
|
101
|
+
id: "Timeline",
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export default TimelineElementRegistration;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { FormElementProps, FormElementRegistration } from "@vertigis/workflow";
|
|
3
|
+
import ToggleButton from '@mui/material/ToggleButton';
|
|
4
|
+
import ToggleButtonGroup from '@mui/material/ToggleButtonGroup';
|
|
5
|
+
import Tooltip from '@mui/material/Tooltip';
|
|
6
|
+
import FormatAlignLeftIcon from '@mui/icons-material/FormatAlignLeft';
|
|
7
|
+
import FormatAlignCenterIcon from '@mui/icons-material/FormatAlignCenter';
|
|
8
|
+
import FormatAlignRightIcon from '@mui/icons-material/FormatAlignRight';
|
|
9
|
+
import FormatAlignJustifyIcon from '@mui/icons-material/FormatAlignJustify';
|
|
10
|
+
|
|
11
|
+
interface ToggleButtonGroupOption {
|
|
12
|
+
value: string;
|
|
13
|
+
label: string;
|
|
14
|
+
icon: React.ReactElement | string;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
tooltip?: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
interface MuiToggleButtonGroupProps extends FormElementProps<string | string[]> {
|
|
20
|
+
options: ToggleButtonGroupOption[];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
const renderIcon = (icon: React.ReactElement | string) => {
|
|
27
|
+
if (typeof icon === 'string') {
|
|
28
|
+
return <img src={icon} alt="" style={{ width: 24, height: 24 }} />;
|
|
29
|
+
}
|
|
30
|
+
return icon;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const renderTooltipButton = (option: ToggleButtonGroupOption) => {
|
|
34
|
+
const button = (
|
|
35
|
+
<Tooltip title={option.tooltip || option.label}>
|
|
36
|
+
<ToggleButton
|
|
37
|
+
value={option.value}
|
|
38
|
+
aria-label={option.label}
|
|
39
|
+
disabled={option.disabled}
|
|
40
|
+
>
|
|
41
|
+
{renderIcon(option.icon)}
|
|
42
|
+
</ToggleButton>
|
|
43
|
+
</Tooltip>
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
return button}
|
|
47
|
+
/**
|
|
48
|
+
* A Workflow element for single choice toggle buttons with tooltips.
|
|
49
|
+
* @displayName Mui Single Toggle Button
|
|
50
|
+
* @description Version 1.4 - Single choice toggle button group with tooltips
|
|
51
|
+
* @param props The props that will be provided by the Workflow runtime.
|
|
52
|
+
*/
|
|
53
|
+
function MuiSingleToggleButtonGroup(props: MuiToggleButtonGroupProps): React.ReactElement {
|
|
54
|
+
const { setValue, value, options } = props;
|
|
55
|
+
|
|
56
|
+
const handleChange = (
|
|
57
|
+
event: React.MouseEvent<HTMLElement>,
|
|
58
|
+
newValue: string | null,
|
|
59
|
+
) => {
|
|
60
|
+
setValue(newValue || "");
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
return (
|
|
64
|
+
<ToggleButtonGroup
|
|
65
|
+
value={value}
|
|
66
|
+
exclusive
|
|
67
|
+
onChange={handleChange}
|
|
68
|
+
aria-label="single toggle button group"
|
|
69
|
+
>
|
|
70
|
+
{options.map(renderTooltipButton)}
|
|
71
|
+
</ToggleButtonGroup>
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* A Workflow element for multiple choice toggle buttons with tooltips.
|
|
77
|
+
* @displayName Mui Multiple Toggle Button
|
|
78
|
+
* @description Version 1.2 - Multiple choice toggle button group with tooltips
|
|
79
|
+
* @param props The props that will be provided by the Workflow runtime.
|
|
80
|
+
*/
|
|
81
|
+
function MuiMultipleToggleButtonGroup(props: MuiToggleButtonGroupProps): React.ReactElement {
|
|
82
|
+
const { setValue, value, options } = props;
|
|
83
|
+
|
|
84
|
+
const handleChange = (
|
|
85
|
+
event: React.MouseEvent<HTMLElement>,
|
|
86
|
+
newValue: string[],
|
|
87
|
+
) => {
|
|
88
|
+
setValue(newValue);
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
return (
|
|
92
|
+
<ToggleButtonGroup
|
|
93
|
+
value={value}
|
|
94
|
+
onChange={handleChange}
|
|
95
|
+
aria-label="multiple toggle button group"
|
|
96
|
+
>
|
|
97
|
+
{options.map(renderTooltipButton)}
|
|
98
|
+
</ToggleButtonGroup>
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
const MuiSingleToggleButtonGroupElementRegistration: FormElementRegistration<MuiToggleButtonGroupProps> = {
|
|
103
|
+
component: MuiSingleToggleButtonGroup,
|
|
104
|
+
getInitialProperties: () => ({
|
|
105
|
+
value: "",
|
|
106
|
+
options: [
|
|
107
|
+
{ value: "left", label: "Left Aligned", icon: <FormatAlignLeftIcon />, tooltip: "Align Left" },
|
|
108
|
+
{ value: "center", label: "Centered", icon: <FormatAlignCenterIcon />, tooltip: "Align Center" },
|
|
109
|
+
{ value: "right", label: "Right Aligned", icon: <FormatAlignRightIcon />, tooltip: "Align Right" },
|
|
110
|
+
{ value: "justify", label: "Justified", icon: <FormatAlignJustifyIcon />, disabled: true, tooltip: "Justify" },
|
|
111
|
+
],
|
|
112
|
+
}),
|
|
113
|
+
id: "MuiSingleToggleButtonGroup",
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
const MuiMultipleToggleButtonGroupElementRegistration: FormElementRegistration<MuiToggleButtonGroupProps> = {
|
|
117
|
+
component: MuiMultipleToggleButtonGroup,
|
|
118
|
+
getInitialProperties: () => ({
|
|
119
|
+
value: [],
|
|
120
|
+
options: [
|
|
121
|
+
{ value: "bold", label: "Bold", icon: <FormatAlignLeftIcon />, tooltip: "Bold" },
|
|
122
|
+
{ value: "italic", label: "Italic", icon: <FormatAlignCenterIcon />, tooltip: "Italic" },
|
|
123
|
+
{ value: "underline", label: "Underline", icon: <FormatAlignRightIcon />, tooltip: "Underline" },
|
|
124
|
+
],
|
|
125
|
+
}),
|
|
126
|
+
id: "MuiMultipleToggleButtonGroup",
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
export { MuiSingleToggleButtonGroupElementRegistration, MuiMultipleToggleButtonGroupElementRegistration };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { FormElementProps, FormElementRegistration } from "@vertigis/workflow";
|
|
3
|
+
import { Pannellum } from "pannellum-react-update";
|
|
4
|
+
import "pannellum-react-update/lib/pannellum/css/img/background.svg";
|
|
5
|
+
import "pannellum-react-update/lib/pannellum/css/img/compass.svg";
|
|
6
|
+
import "pannellum-react-update/lib/pannellum/css/img/grab.svg";
|
|
7
|
+
import "pannellum-react-update/lib/pannellum/css/img/grabbing.svg";
|
|
8
|
+
import "pannellum-react-update/lib/pannellum/css/img/sprites.svg";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The generic type argument provided to `FormElementProps<T>` controls the type
|
|
12
|
+
* of `props.value` and `props.setValue(value)`. If your element doesn't need a
|
|
13
|
+
* `value`, you can omit the type argument.
|
|
14
|
+
*
|
|
15
|
+
* You can also declare additional public properties of your element by adding
|
|
16
|
+
* properties to this interface. The properties will be managed by the Workflow
|
|
17
|
+
* runtime, and passed in as `props`. You can update the properties by using
|
|
18
|
+
* `props.setProperty(key, value)`.
|
|
19
|
+
*/
|
|
20
|
+
interface Viewer360Props extends FormElementProps<string> {
|
|
21
|
+
value: string //url of image
|
|
22
|
+
pitch: number; //pitch of the image
|
|
23
|
+
yaw: number; //yaw of the image
|
|
24
|
+
hfov: number; //horizontal field of view
|
|
25
|
+
minHfov: number; //minimum horizontal field of view
|
|
26
|
+
haov: number; //horizontal angle of view
|
|
27
|
+
vaov: number; //vertical angle of view
|
|
28
|
+
setting?: {
|
|
29
|
+
width?: string;
|
|
30
|
+
height?: string;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* A Workflow element built using React.
|
|
36
|
+
* @displayName Viewer360
|
|
37
|
+
* @description 360 viewer for propeller imagery.
|
|
38
|
+
* @param props The props that will be provided by the Workflow runtime.
|
|
39
|
+
*/
|
|
40
|
+
function Viewer360(props: Viewer360Props): React.ReactElement {
|
|
41
|
+
const { setting, value , pitch ,yaw, hfov, minHfov , haov, vaov, raiseEvent } = props;
|
|
42
|
+
console.log("rendering 360VIEWER")
|
|
43
|
+
return (
|
|
44
|
+
<>
|
|
45
|
+
<Pannellum
|
|
46
|
+
width={setting?.width || "100%"}
|
|
47
|
+
height={setting?.height || "auto"}
|
|
48
|
+
image={value}
|
|
49
|
+
pitch={pitch || -20}
|
|
50
|
+
yaw={yaw || 120}
|
|
51
|
+
hfov={hfov || 110}
|
|
52
|
+
haov={haov || 360}
|
|
53
|
+
vaov={vaov || 180}
|
|
54
|
+
minHfov={minHfov || 10}
|
|
55
|
+
autoLoad
|
|
56
|
+
onLoad={() => {
|
|
57
|
+
raiseEvent("loaded" as any, value);
|
|
58
|
+
console.log("panorama loaded");
|
|
59
|
+
}}
|
|
60
|
+
></Pannellum>
|
|
61
|
+
</>
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const Viewer360ElementRegistration: FormElementRegistration<Viewer360Props> = {
|
|
66
|
+
component: Viewer360,
|
|
67
|
+
getInitialProperties: () => ({}),
|
|
68
|
+
id: "Viewer360",
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
export default Viewer360ElementRegistration;
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { styled } from '@mui/material/styles';
|
|
3
|
+
import InputBase from '@mui/material/InputBase';
|
|
4
|
+
import Badge, { BadgeProps } from '@mui/material/Badge';
|
|
5
|
+
import Tooltip, { TooltipProps, tooltipClasses } from '@mui/material/Tooltip';
|
|
6
|
+
import { createTheme } from "@mui/material/styles";
|
|
7
|
+
import {
|
|
8
|
+
Unstable_NumberInput as BaseNumberInput,
|
|
9
|
+
NumberInputProps,
|
|
10
|
+
numberInputClasses,
|
|
11
|
+
} from '@mui/base/Unstable_NumberInput';
|
|
12
|
+
|
|
13
|
+
const Search =styled('div')(({ theme }) => ({
|
|
14
|
+
position: 'relative',
|
|
15
|
+
borderRadius: theme.shape.borderRadius,
|
|
16
|
+
backgroundColor: 'var(--alertGrayForeground)',
|
|
17
|
+
marginRight: theme.spacing(2),
|
|
18
|
+
marginLeft: 0,
|
|
19
|
+
width: '100%',
|
|
20
|
+
[theme.breakpoints.up('sm')]: {
|
|
21
|
+
marginLeft: theme.spacing(3),
|
|
22
|
+
width: 'auto',
|
|
23
|
+
},
|
|
24
|
+
}))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
const SearchIconWrapper =
|
|
29
|
+
styled('div')(({ theme }) => ({
|
|
30
|
+
padding: theme.spacing(0, 2),
|
|
31
|
+
height: '100%',
|
|
32
|
+
position: 'absolute',
|
|
33
|
+
pointerEvents: 'none',
|
|
34
|
+
display: 'flex',
|
|
35
|
+
alignItems: 'center',
|
|
36
|
+
justifyContent: 'center',
|
|
37
|
+
}))
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
const StyledInputBase =
|
|
41
|
+
styled(InputBase)(({ theme }) => ({
|
|
42
|
+
color: 'inherit',
|
|
43
|
+
'& .MuiInputBase-input': {
|
|
44
|
+
padding: theme.spacing(1, 1, 1, 0),
|
|
45
|
+
paddingLeft: `calc(1em + ${theme.spacing(4)})`,
|
|
46
|
+
transition: theme.transitions.create('width'),
|
|
47
|
+
width: '100%',
|
|
48
|
+
[theme.breakpoints.up('md')]: {
|
|
49
|
+
width: '100%',
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
}))
|
|
55
|
+
|
|
56
|
+
const StyledBadge =
|
|
57
|
+
styled(Badge)<BadgeProps>(({ theme }) => ({
|
|
58
|
+
'& .MuiBadge-badge': {
|
|
59
|
+
backgroundColor:'var(--alertAmberBackground)',
|
|
60
|
+
right: 5,
|
|
61
|
+
top: 0,
|
|
62
|
+
border: `2px solid ${theme.palette.background.paper}`,
|
|
63
|
+
padding: '0 4px',
|
|
64
|
+
},
|
|
65
|
+
}))
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
const grey = {
|
|
70
|
+
50: '#F3F6F9',
|
|
71
|
+
100: '#E5EAF2',
|
|
72
|
+
200: '#DAE2ED',
|
|
73
|
+
300: '#C7D0DD',
|
|
74
|
+
400: '#B0B8C4',
|
|
75
|
+
500: '#9DA8B7',
|
|
76
|
+
600: '#6B7A90',
|
|
77
|
+
700: '#434D5B',
|
|
78
|
+
800: '#303740',
|
|
79
|
+
900: '#1C2025',
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
const StyledButton = styled('button')(
|
|
85
|
+
({ theme }) => `
|
|
86
|
+
display: flex;
|
|
87
|
+
flex-flow: row nowrap;
|
|
88
|
+
justify-content: center;
|
|
89
|
+
align-items: center;
|
|
90
|
+
appearance: none;
|
|
91
|
+
padding: 0;
|
|
92
|
+
width: 19px;
|
|
93
|
+
height: 19px;
|
|
94
|
+
font-family: system-ui, sans-serif;
|
|
95
|
+
font-size: 0.875rem;
|
|
96
|
+
line-height: 1;
|
|
97
|
+
box-sizing: border-box;
|
|
98
|
+
background: var(--accentIconForeground) !important;
|
|
99
|
+
border: 0;
|
|
100
|
+
color: var(--accentIconBorder);
|
|
101
|
+
transition-property: all;
|
|
102
|
+
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
103
|
+
transition-duration: 120ms;
|
|
104
|
+
|
|
105
|
+
&:hover {
|
|
106
|
+
cursor: pointer;
|
|
107
|
+
color: #FFF;
|
|
108
|
+
background: var(--accentIconForeground) !important;
|
|
109
|
+
border-color: var(--accentIconBorder) !important;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
&.${numberInputClasses.incrementButton} {
|
|
113
|
+
grid-column: 2/3;
|
|
114
|
+
grid-row: 1/2;
|
|
115
|
+
border-top-left-radius: 4px;
|
|
116
|
+
border-top-right-radius: 4px;
|
|
117
|
+
border: 1px solid;
|
|
118
|
+
border-bottom: 0;
|
|
119
|
+
border-color: ${theme.palette.mode === 'dark' ? grey[700] : grey[200]};
|
|
120
|
+
background: ${theme.palette.mode === 'dark' ? grey[900] : grey[50]};
|
|
121
|
+
color: ${theme.palette.mode === 'dark' ? grey[200] : grey[900]};
|
|
122
|
+
|
|
123
|
+
&:hover {
|
|
124
|
+
cursor: pointer;
|
|
125
|
+
color: #FFF;
|
|
126
|
+
background: var(--accentIconForeground) !important;
|
|
127
|
+
border-color: var(--accentIconBorder);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
&.${numberInputClasses.decrementButton} {
|
|
132
|
+
grid-column: 2/3;
|
|
133
|
+
grid-row: 2/3;
|
|
134
|
+
border-bottom-left-radius: 4px;
|
|
135
|
+
border-bottom-right-radius: 4px;
|
|
136
|
+
border: 1px solid;
|
|
137
|
+
border-color: ${theme.palette.mode === 'dark' ? grey[700] : grey[200]};
|
|
138
|
+
background: ${theme.palette.mode === 'dark' ? grey[900] : grey[50]};
|
|
139
|
+
color: ${theme.palette.mode === 'dark' ? grey[200] : grey[900]};
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
& .arrow {
|
|
143
|
+
transform: translateY(-1px);
|
|
144
|
+
}
|
|
145
|
+
`,
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
const LightTooltip = styled(({ className, ...props }: TooltipProps) => (
|
|
152
|
+
<Tooltip {...props} classes={{ popper: className }} />
|
|
153
|
+
))(({ theme }) => ({
|
|
154
|
+
[`& .${tooltipClasses.tooltip}`]: {
|
|
155
|
+
boxShadow: theme.shadows[1],
|
|
156
|
+
fontSize: 15,
|
|
157
|
+
},
|
|
158
|
+
}));
|
|
159
|
+
|
|
160
|
+
const defaultTheme = createTheme({
|
|
161
|
+
components: {
|
|
162
|
+
MuiListItemText: {
|
|
163
|
+
styleOverrides: {
|
|
164
|
+
secondary: {
|
|
165
|
+
color: 'inherit',
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
|
|
171
|
+
typography: {
|
|
172
|
+
fontSize: 18
|
|
173
|
+
},
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
const CustomNumberInput =React.forwardRef(function CustomNumberInputfunction(
|
|
177
|
+
props: NumberInputProps,
|
|
178
|
+
ref: React.ForwardedRef<HTMLDivElement>,
|
|
179
|
+
) {
|
|
180
|
+
return (
|
|
181
|
+
<BaseNumberInput
|
|
182
|
+
slots={{
|
|
183
|
+
root: StyledInputRoot,
|
|
184
|
+
input: StyledInputElement,
|
|
185
|
+
incrementButton: StyledButton,
|
|
186
|
+
decrementButton: StyledButton,
|
|
187
|
+
}}
|
|
188
|
+
slotProps={{
|
|
189
|
+
incrementButton: {
|
|
190
|
+
children: '▴',
|
|
191
|
+
},
|
|
192
|
+
decrementButton: {
|
|
193
|
+
children: '▾',
|
|
194
|
+
},
|
|
195
|
+
}}
|
|
196
|
+
{...props}
|
|
197
|
+
ref={ref}
|
|
198
|
+
/>
|
|
199
|
+
);
|
|
200
|
+
})
|
|
201
|
+
|
|
202
|
+
const StyledInputElement = styled('input')(
|
|
203
|
+
() => `
|
|
204
|
+
font-size: 0.875rem;
|
|
205
|
+
font-family: inherit;
|
|
206
|
+
font-weight: 400;
|
|
207
|
+
line-height: 1.5;
|
|
208
|
+
grid-column: 1/2;
|
|
209
|
+
grid-row: 1/3;
|
|
210
|
+
color: var(--buttonBorderHover);
|
|
211
|
+
background: inherit;
|
|
212
|
+
border: none;
|
|
213
|
+
border-radius: inherit;
|
|
214
|
+
padding: 8px 12px;
|
|
215
|
+
outline: 0;
|
|
216
|
+
`,
|
|
217
|
+
);
|
|
218
|
+
|
|
219
|
+
const StyledInputRoot: React.ElementType = styled('div')(
|
|
220
|
+
({ theme }) => `
|
|
221
|
+
font-family: 'IBM Plex Sans', sans-serif;
|
|
222
|
+
font-weight: 400;
|
|
223
|
+
border-radius: 8px;
|
|
224
|
+
color: var(--accentIconBorder) ;
|
|
225
|
+
background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'};
|
|
226
|
+
border: 1px solid var(--accentIconBorder);
|
|
227
|
+
box-shadow: 0 2px 4px ${
|
|
228
|
+
theme.palette.mode === 'dark' ? 'rgba(0,0,0, 0.5)' : 'rgba(0,0,0, 0.05)'
|
|
229
|
+
};
|
|
230
|
+
display: grid;
|
|
231
|
+
grid-template-columns: 1fr 19px;
|
|
232
|
+
grid-template-rows: 1fr 1fr;
|
|
233
|
+
overflow: hidden;
|
|
234
|
+
column-gap: 8px;
|
|
235
|
+
padding: 4px;
|
|
236
|
+
|
|
237
|
+
&.focused {
|
|
238
|
+
border-color: var(--accentIconForeground)};
|
|
239
|
+
box-shadow: 0 0 0 3px var(--buttonBackgroundHover);
|
|
240
|
+
|
|
241
|
+
& button:hover {
|
|
242
|
+
background: var(--accentIconForeground) !important;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/* firefox */
|
|
246
|
+
&:focus-visible {
|
|
247
|
+
outline: 0;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
`,
|
|
251
|
+
);
|
|
252
|
+
|
|
253
|
+
export default {Search,SearchIconWrapper,StyledInputBase,StyledBadge,StyledInputRoot,StyledInputElement,StyledButton,CustomNumberInput,defaultTheme,LightTooltip}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// Activities will be re-exported from this file.
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
export { default as Base64ToFileActivity } from "./activities/Base64ToFile";
|
|
5
|
+
export { default as GetvGISDetailsActivity } from "./activities/GetvGISDetails";
|
|
6
|
+
export { default as LineChartMuiRegistration } from "./elements/LineChartMui";
|
|
7
|
+
export { default as GetElementByDataLayoutIDActivity } from "./activities/GetElementByDataLayoutID";
|
|
8
|
+
export { default as HeaderwithHelpElementRegistration } from "./elements/HeaderwithHelp";
|
|
9
|
+
export { default as ItemSearcherElementRegistration } from "./elements/ItemSearcher";
|
|
10
|
+
export { default as GetSesionStorageActivity } from "./activities/GetSesionStorage";
|
|
11
|
+
export { default as SetSessionStorageActivity } from "./activities/SetSessionStorage";
|
|
12
|
+
export { default as GetUserTokenActivity } from "./activities/GetUserToken";
|
|
13
|
+
export { default as PDFMapGeneratorActivity } from "./activities/PDFMapGenerator";
|
|
14
|
+
export { default as LegendCreatorActivity } from "./activities/LegendCreator";
|
|
15
|
+
export { default as RequestCheckerActivity } from "./activities/RequestChecker"
|
|
16
|
+
export { default as DropDownMenuElementRegistration } from "./elements/DropDownMenu";
|
|
17
|
+
export { default as HTMLextractorActivity } from "./activities/HTMLextractor";
|
|
18
|
+
export { default as AttributeFilterElementRegistration } from "./elements/AttributeFilter"
|
|
19
|
+
export { default as ItemSearcher_V2DEVRegistration } from "./elements/ItemSearcher_v2";
|
|
20
|
+
export { default as Viewer360Registration } from "./elements/Viewer360";
|
|
21
|
+
export { default as TableRadioGroupElementRegistration } from "./elements/TableRadioGoup";
|
|
22
|
+
export { MuiSingleToggleButtonGroupElementRegistration, MuiMultipleToggleButtonGroupElementRegistration } from "./elements/ToggleButtonGroup";
|
|
23
|
+
|
|
24
|
+
// Elements
|
|
25
|
+
export { default as CsColorPickerRegistration } from "./elements/CsColorPicker";
|
|
26
|
+
export { default as CircularSliderElementRegistration } from "./elements/CircularSlider";
|
|
27
|
+
export { default as SingleAutoCompleteCSRegistration } from "./elements/SingleAutoCompleteCS";
|
|
28
|
+
export { default as MultipleAutoCompleteCSRegistration } from "./elements/MultipleAutoCompleteCS";
|
|
29
|
+
export { default as TimelineRegistration } from "./elements/Timeline";
|
|
30
|
+
export { default as MenueBarRegistration } from "./elements/MenueBar";
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
// Activities
|
|
34
|
+
export { default as AppendObjectsActivity } from "./activities/AppendObjects";
|
|
35
|
+
export { default as MergeObjectsActivity } from "./activities/MergeObjects";
|
|
36
|
+
export { default as CreateGraphicLayerActivity } from "./activities/CreateGraphicLayer";
|
|
37
|
+
export { default as SliceLineActivity } from "./activities/SliceLine";
|
|
38
|
+
export { default as GetTaskStatusActivity } from "./activities/GetTaskStatus";
|
|
39
|
+
export { default as DrapGeometryActivity } from "./activities/DrapGeometry";
|
|
40
|
+
|
|
41
|
+
export { default as SampleActivity } from "./activities/Sample";
|
package/src/main.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as index from "./index";
|
|
2
|
+
|
|
3
|
+
let mainResult: Promise<any> | undefined;
|
|
4
|
+
|
|
5
|
+
export async function main(): Promise<any> {
|
|
6
|
+
if (mainResult) {
|
|
7
|
+
return mainResult;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// If you need to do activity pack initialization logic
|
|
11
|
+
// that can happen here.
|
|
12
|
+
|
|
13
|
+
mainResult = Promise.resolve(index);
|
|
14
|
+
return mainResult;
|
|
15
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/* styles.css */
|
|
2
|
+
|
|
3
|
+
.image-slider {
|
|
4
|
+
position: relative;
|
|
5
|
+
width: 100%;
|
|
6
|
+
height: 100%;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.imgStyle {
|
|
10
|
+
height: 100%;
|
|
11
|
+
width: auto;
|
|
12
|
+
display: block;
|
|
13
|
+
margin-left: auto;
|
|
14
|
+
margin-right: auto;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.spanStyle {
|
|
18
|
+
position: absolute;
|
|
19
|
+
bottom: 20px;
|
|
20
|
+
left: 20px;
|
|
21
|
+
background: #efefef;
|
|
22
|
+
color: #000000;
|
|
23
|
+
padding: 10px;
|
|
24
|
+
border-radius: 5px;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.divStyle {
|
|
28
|
+
position: relative;
|
|
29
|
+
display: flex;
|
|
30
|
+
align-items: center;
|
|
31
|
+
justify-content: center;
|
|
32
|
+
width: 100%;
|
|
33
|
+
height: 100%;
|
|
34
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "@vertigis/workflow-sdk/config/tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"target": "es5",
|
|
5
|
+
"baseUrl": ".",
|
|
6
|
+
"suppressImplicitAnyIndexErrors": false,
|
|
7
|
+
"paths": {
|
|
8
|
+
"@arcgis/core/*": ["node_modules/@arcgis/core/*"]
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"include": ["src", "../ebta-workflow-public/src/activities/MergeObjects.ts", "../ebta-workflow-public/src/activities/CreateGraphicLayer.ts"]
|
|
12
|
+
}
|