@carto/ps-react-ui 4.3.9 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components.js +692 -700
- package/dist/components.js.map +1 -1
- package/dist/{lasso-tool-jl4YK02H.js → lasso-tool-BYbxrJ-7.js} +184 -190
- package/dist/lasso-tool-BYbxrJ-7.js.map +1 -0
- package/dist/{row-BKmVAUN5.js → row-DTCV0Ocm.js} +2 -2
- package/dist/row-DTCV0Ocm.js.map +1 -0
- package/dist/{series-D1pynfeh.js → series-CYNOu2Ju.js} +2 -2
- package/dist/{series-D1pynfeh.js.map → series-CYNOu2Ju.js.map} +1 -1
- package/dist/smart-tooltip-D4vwQpFf.js +37 -0
- package/dist/smart-tooltip-D4vwQpFf.js.map +1 -0
- package/dist/{styles-DrPyd0y5.js → styles-CAroD5Rc.js} +12 -12
- package/dist/styles-CAroD5Rc.js.map +1 -0
- package/dist/types/hooks/use-widget-ref.d.ts +5 -2
- package/dist/types/widgets/_shared/chart-config/option-builders.d.ts +1 -1
- package/dist/types/widgets/actions/brush-toggle/brush-toggle.d.ts +21 -0
- package/dist/types/widgets/actions/{relative-data → brush-toggle}/style.d.ts +5 -0
- package/dist/types/widgets/actions/brush-toggle/types.d.ts +33 -0
- package/dist/types/widgets/actions/index.d.ts +2 -0
- package/dist/types/widgets/category/config.d.ts +3 -10
- package/dist/types/widgets/echart/types.d.ts +2 -1
- package/dist/types/widgets/echart/utils.d.ts +12 -6
- package/dist/types/widgets/range/config.d.ts +0 -4
- package/dist/types/widgets/spread/config.d.ts +0 -5
- package/dist/types/widgets/table/config.d.ts +1 -2
- package/dist/types/widgets/table/table-ui.d.ts +1 -1
- package/dist/types/widgets/wrapper/components/options.d.ts +1 -1
- package/dist/use-widget-ref-wtFLDFCD.js +25 -0
- package/dist/use-widget-ref-wtFLDFCD.js.map +1 -0
- package/dist/{utils-idmvq0Oa.js → utils-Cx3gYUcL.js} +74 -68
- package/dist/utils-Cx3gYUcL.js.map +1 -0
- package/dist/widgets/actions.js +788 -700
- package/dist/widgets/actions.js.map +1 -1
- package/dist/widgets/bar.js +48 -49
- package/dist/widgets/bar.js.map +1 -1
- package/dist/widgets/category.js +28 -28
- package/dist/widgets/category.js.map +1 -1
- package/dist/widgets/echart.js +85 -82
- package/dist/widgets/echart.js.map +1 -1
- package/dist/widgets/formula.js +7 -5
- package/dist/widgets/formula.js.map +1 -1
- package/dist/widgets/histogram.js +50 -50
- package/dist/widgets/histogram.js.map +1 -1
- package/dist/widgets/markdown.js +1 -1
- package/dist/widgets/pie.js +10 -10
- package/dist/widgets/pie.js.map +1 -1
- package/dist/widgets/range.js +1 -1
- package/dist/widgets/range.js.map +1 -1
- package/dist/widgets/scatterplot.js +14 -14
- package/dist/widgets/scatterplot.js.map +1 -1
- package/dist/widgets/spread.js +7 -5
- package/dist/widgets/spread.js.map +1 -1
- package/dist/widgets/table.js +5 -3
- package/dist/widgets/table.js.map +1 -1
- package/dist/widgets/timeseries.js +4 -4
- package/dist/widgets/timeseries.js.map +1 -1
- package/dist/widgets/wrapper.js +152 -162
- package/dist/widgets/wrapper.js.map +1 -1
- package/dist/widgets.js +1 -1
- package/package.json +1 -1
- package/src/components/basemaps/basemaps.tsx +3 -1
- package/src/components/geolocation-controls/geolocation-controls.tsx +10 -6
- package/src/components/lasso-tool/lasso-tool-inline.tsx +6 -2
- package/src/components/lasso-tool/lasso-tool.tsx +9 -3
- package/src/components/list-data/list-data-skeleton.tsx +1 -1
- package/src/components/list-data/list-data.tsx +5 -3
- package/src/components/measurement-tools/measurement-tools.tsx +5 -1
- package/src/components/smart-tooltip/smart-tooltip.tsx +3 -1
- package/src/hooks/use-widget-ref.ts +4 -3
- package/src/widgets/_shared/chart-config/option-builders.test.ts +2 -2
- package/src/widgets/_shared/chart-config/option-builders.ts +6 -4
- package/src/widgets/actions/brush-toggle/brush-toggle.tsx +220 -0
- package/src/widgets/actions/{relative-data → brush-toggle}/style.ts +5 -0
- package/src/widgets/actions/brush-toggle/types.ts +37 -0
- package/src/widgets/actions/download/download.test.tsx +6 -2
- package/src/widgets/actions/download/download.tsx +3 -1
- package/src/widgets/actions/fullscreen/fullscreen.tsx +8 -1
- package/src/widgets/actions/index.ts +9 -0
- package/src/widgets/actions/lock-selection/lock-selection.tsx +0 -9
- package/src/widgets/actions/relative-data/relative-data.tsx +2 -6
- package/src/widgets/actions/searcher/searcher.tsx +0 -6
- package/src/widgets/actions/stack-toggle/stack-toggle.test.tsx +4 -4
- package/src/widgets/actions/stack-toggle/stack-toggle.tsx +2 -13
- package/src/widgets/actions/zoom-toggle/zoom-toggle.tsx +2 -12
- package/src/widgets/bar/config.ts +8 -4
- package/src/widgets/bar/skeleton.tsx +1 -1
- package/src/widgets/category/components/category-row-multi.tsx +1 -1
- package/src/widgets/category/config.ts +1 -11
- package/src/widgets/echart/echart-ui.tsx +5 -2
- package/src/widgets/echart/echart.tsx +1 -1
- package/src/widgets/echart/types.ts +2 -1
- package/src/widgets/echart/utils.ts +20 -15
- package/src/widgets/formula/components/row.tsx +1 -1
- package/src/widgets/formula/formula-ui.tsx +1 -1
- package/src/widgets/histogram/config.ts +7 -2
- package/src/widgets/histogram/skeleton.tsx +2 -2
- package/src/widgets/pie/skeleton.tsx +1 -1
- package/src/widgets/range/config.ts +0 -5
- package/src/widgets/scatterplot/skeleton.tsx +2 -2
- package/src/widgets/spread/config.ts +0 -6
- package/src/widgets/spread/spread-ui.tsx +1 -1
- package/src/widgets/table/config.ts +1 -1
- package/src/widgets/table/table-ui.tsx +2 -2
- package/src/widgets/timeseries/skeleton.tsx +1 -1
- package/src/widgets/wrapper/components/actions.test.tsx +6 -2
- package/src/widgets/wrapper/components/actions.tsx +3 -1
- package/src/widgets/wrapper/components/options.test.tsx +12 -4
- package/src/widgets/wrapper/components/options.tsx +8 -3
- package/src/widgets/wrapper/wrapper-ui.tsx +5 -2
- package/src/widgets/wrapper/wrapper.tsx +2 -4
- package/dist/lasso-tool-jl4YK02H.js.map +0 -1
- package/dist/row-BKmVAUN5.js.map +0 -1
- package/dist/smart-tooltip-BEtBaIdz.js +0 -39
- package/dist/smart-tooltip-BEtBaIdz.js.map +0 -1
- package/dist/styles-DrPyd0y5.js.map +0 -1
- package/dist/types/widgets/actions/zoom-toggle/index.d.ts +0 -2
- package/dist/types/widgets/table/components/index.d.ts +0 -4
- package/dist/use-widget-ref-P-2i0MJG.js +0 -19
- package/dist/use-widget-ref-P-2i0MJG.js.map +0 -1
- package/dist/utils-idmvq0Oa.js.map +0 -1
- package/src/widgets/actions/zoom-toggle/index.ts +0 -2
- package/src/widgets/table/components/index.ts +0 -4
|
@@ -47,6 +47,7 @@ function getOption({
|
|
|
47
47
|
}: BarConfig): EchartOptionsProps {
|
|
48
48
|
const hasLegend = (data?.length ?? 0) > 1
|
|
49
49
|
|
|
50
|
+
let niceMin = 0
|
|
50
51
|
let niceMax = 1
|
|
51
52
|
|
|
52
53
|
return {
|
|
@@ -67,23 +68,26 @@ function getOption({
|
|
|
67
68
|
},
|
|
68
69
|
yAxis: {
|
|
69
70
|
type: 'value' as const,
|
|
70
|
-
min:
|
|
71
|
+
min: (extent: { min: number }) => {
|
|
72
|
+
niceMin = extent.min < 0 ? niceNum(extent.min) : 0
|
|
73
|
+
return niceMin
|
|
74
|
+
},
|
|
71
75
|
max: (extent: { min: number; max: number }) => {
|
|
72
76
|
niceMax = extent.max <= 0 ? 1 : niceNum(extent.max)
|
|
73
77
|
return niceMax
|
|
74
78
|
},
|
|
75
|
-
splitNumber: 1,
|
|
76
79
|
axisLabel: {
|
|
77
80
|
fontSize: theme.typography.overlineDelicate.fontSize,
|
|
78
81
|
fontFamily: theme.typography.overlineDelicate.fontFamily,
|
|
79
82
|
margin: parseInt(theme.spacing(1)),
|
|
80
83
|
show: true,
|
|
81
84
|
showMaxLabel: true,
|
|
82
|
-
showMinLabel:
|
|
85
|
+
showMinLabel: true,
|
|
83
86
|
verticalAlign: 'bottom' as const,
|
|
84
87
|
inside: true,
|
|
85
88
|
formatter: (value: number) => {
|
|
86
|
-
if (value !== niceMax) return ''
|
|
89
|
+
if (value !== niceMax && value !== niceMin) return ''
|
|
90
|
+
if (value === 0) return ''
|
|
87
91
|
return formatter ? formatter(value) : String(value)
|
|
88
92
|
},
|
|
89
93
|
},
|
|
@@ -30,7 +30,7 @@ export function CategoryRowMulti({
|
|
|
30
30
|
<Typography sx={styles.rowLabel}>{name}</Typography>
|
|
31
31
|
<Box sx={styles.barContainer}>
|
|
32
32
|
{values.map((value, index) => (
|
|
33
|
-
<Box key={`${name}-${value}
|
|
33
|
+
<Box key={`${name}-${value}`} sx={styles.multiBarRow}>
|
|
34
34
|
<Box sx={styles.multiBarContainer}>
|
|
35
35
|
<CategoryBar
|
|
36
36
|
value={value}
|
|
@@ -4,22 +4,12 @@ import type {
|
|
|
4
4
|
CategoryWidgetConfig,
|
|
5
5
|
CategoryWidgetData,
|
|
6
6
|
CategorySeriesConfig,
|
|
7
|
-
CategoryLabels,
|
|
8
7
|
} from './types'
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
interface CategoryDownloadConfigProps extends ConfigProps {
|
|
11
10
|
series?: CategorySeriesConfig[]
|
|
12
11
|
}
|
|
13
12
|
|
|
14
|
-
export interface CategoryConfigProps {
|
|
15
|
-
data?: CategoryWidgetData
|
|
16
|
-
series?: CategorySeriesConfig[]
|
|
17
|
-
formatter?: (value: number) => string
|
|
18
|
-
maxItems?: number
|
|
19
|
-
labels?: CategoryLabels
|
|
20
|
-
max?: number
|
|
21
|
-
}
|
|
22
|
-
|
|
23
13
|
export function categoryDownloadConfig({
|
|
24
14
|
refUI,
|
|
25
15
|
series,
|
|
@@ -6,7 +6,8 @@ import { useWidgetRef } from '../../hooks'
|
|
|
6
6
|
export function EchartUI(props: EchartUIProps) {
|
|
7
7
|
const { id, ref, init, option, className, style, onEvents } = props
|
|
8
8
|
|
|
9
|
-
const chartRef =
|
|
9
|
+
const { ref: chartRef, instance: chartInstanceRef } =
|
|
10
|
+
useWidgetRef<HTMLDivElement>(id)
|
|
10
11
|
const chartInstance = useRef<echarts.ECharts>(null)
|
|
11
12
|
const resizeObserverRef = useRef<ResizeObserver | null>(null)
|
|
12
13
|
|
|
@@ -20,12 +21,14 @@ export function EchartUI(props: EchartUIProps) {
|
|
|
20
21
|
height: 304,
|
|
21
22
|
...init,
|
|
22
23
|
})
|
|
24
|
+
chartInstanceRef.current = chartInstance.current
|
|
23
25
|
// Cleanup function
|
|
24
26
|
return () => {
|
|
25
27
|
chartInstance.current?.dispose()
|
|
26
28
|
chartInstance.current = null
|
|
29
|
+
chartInstanceRef.current = null
|
|
27
30
|
}
|
|
28
|
-
}, [chartRef, init])
|
|
31
|
+
}, [chartInstanceRef, chartRef, init])
|
|
29
32
|
|
|
30
33
|
// Update chart when options change
|
|
31
34
|
useEffect(() => {
|
|
@@ -11,7 +11,7 @@ import { useMemo } from 'react'
|
|
|
11
11
|
|
|
12
12
|
export function Echart(props: EchartProps) {
|
|
13
13
|
const id = useWidgetStore(
|
|
14
|
-
(state) => state.getWidget<EchartWidgetState>(props.id)?.id,
|
|
14
|
+
useShallow((state) => state.getWidget<EchartWidgetState>(props.id)?.id),
|
|
15
15
|
)
|
|
16
16
|
|
|
17
17
|
const data = useWidgetStore(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { EChartsOption } from 'echarts'
|
|
2
2
|
import type * as echarts from 'echarts'
|
|
3
3
|
import type { BaseWidgetState } from '../stores/types'
|
|
4
|
-
import type { Ref } from 'react'
|
|
4
|
+
import type { Ref, RefObject } from 'react'
|
|
5
5
|
import { theme as CartoTheme } from '@carto/meridian-ds/theme'
|
|
6
6
|
|
|
7
7
|
export type EchartOptionsProps = EChartsOption
|
|
@@ -26,6 +26,7 @@ export type EchartWidgetState = BaseWidgetState<{
|
|
|
26
26
|
option: EchartUIProps['option']
|
|
27
27
|
onEvents?: EchartUIProps['onEvents']
|
|
28
28
|
init?: EchartUIProps['init']
|
|
29
|
+
instance?: RefObject<echarts.ECharts | null>
|
|
29
30
|
}>
|
|
30
31
|
|
|
31
32
|
export interface EchartWidgetOptionProps<D> {
|
|
@@ -27,7 +27,6 @@ export function mergeEchartWidgetConfig<T extends EchartOptionsProps>(
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
export function getEChartZoomConfig(
|
|
30
|
-
zoom: boolean,
|
|
31
30
|
{ start, end }: { start: number; end: number } = { start: 0, end: 100 },
|
|
32
31
|
{
|
|
33
32
|
inside = true,
|
|
@@ -46,6 +45,7 @@ export function getEChartZoomConfig(
|
|
|
46
45
|
},
|
|
47
46
|
theme?: Theme,
|
|
48
47
|
) {
|
|
48
|
+
const zoom = true
|
|
49
49
|
const sliderStyles = theme ? getEChartZoomSliderStyles(theme) : {}
|
|
50
50
|
|
|
51
51
|
return {
|
|
@@ -152,20 +152,25 @@ function getEChartZoomSliderStyles(theme: Theme) {
|
|
|
152
152
|
} as const
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
export function getEChartBrushConfig(
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
155
|
+
export function getEChartBrushConfig(
|
|
156
|
+
{ brushType = 'lineX', brushMode = 'single', xAxisIndex = 0 } = {} as {
|
|
157
|
+
brushType?: string
|
|
158
|
+
brushMode?: string
|
|
159
|
+
xAxisIndex?: number
|
|
160
|
+
throttleType?: string
|
|
161
|
+
throttleDelay?: number
|
|
162
|
+
},
|
|
163
|
+
) {
|
|
164
|
+
return {
|
|
165
|
+
brush: {
|
|
166
|
+
toolbox: ['lineX', 'clear'],
|
|
167
|
+
brushType,
|
|
168
|
+
brushMode,
|
|
169
|
+
xAxisIndex,
|
|
170
|
+
},
|
|
171
|
+
}
|
|
164
172
|
}
|
|
165
173
|
|
|
166
|
-
export function getEChartStackConfig(
|
|
167
|
-
stack:
|
|
168
|
-
stackGroup: string = DEFAULT_STACK_GROUP,
|
|
169
|
-
) {
|
|
170
|
-
return { stack: stack ? stackGroup : undefined }
|
|
174
|
+
export function getEChartStackConfig(stackGroup: string = DEFAULT_STACK_GROUP) {
|
|
175
|
+
return { stack: stackGroup }
|
|
171
176
|
}
|
|
@@ -11,7 +11,7 @@ export function Row(props: RowProps) {
|
|
|
11
11
|
|
|
12
12
|
return data?.map((_, index) => {
|
|
13
13
|
return (
|
|
14
|
-
<Box sx={styles.row} key={index}>
|
|
14
|
+
<Box sx={styles.row} key={`row-${index}`}>
|
|
15
15
|
{typeof props.children === 'function'
|
|
16
16
|
? props.children({ index })
|
|
17
17
|
: props.children}
|
|
@@ -49,6 +49,7 @@ function getOption({
|
|
|
49
49
|
}: HistogramConfig): EchartOptionsProps {
|
|
50
50
|
const hasLegend = (data?.length ?? 0) > 1
|
|
51
51
|
|
|
52
|
+
let niceMin = 0
|
|
52
53
|
let niceMax = 1
|
|
53
54
|
|
|
54
55
|
return {
|
|
@@ -86,7 +87,10 @@ function getOption({
|
|
|
86
87
|
},
|
|
87
88
|
yAxis: {
|
|
88
89
|
type: 'value' as const,
|
|
89
|
-
min:
|
|
90
|
+
min: (extent: { min: number }) => {
|
|
91
|
+
niceMin = extent.min < 0 ? niceNum(extent.min) : 0
|
|
92
|
+
return niceMin
|
|
93
|
+
},
|
|
90
94
|
max: (extent: { min: number; max: number }) => {
|
|
91
95
|
niceMax = extent.max <= 0 ? 1 : niceNum(extent.max)
|
|
92
96
|
return niceMax
|
|
@@ -101,7 +105,8 @@ function getOption({
|
|
|
101
105
|
showMinLabel: true,
|
|
102
106
|
verticalAlign: 'bottom' as const,
|
|
103
107
|
formatter: (value: number) => {
|
|
104
|
-
if (value !== niceMax) return ''
|
|
108
|
+
if (value !== niceMax && value !== niceMin) return ''
|
|
109
|
+
if (value === 0) return ''
|
|
105
110
|
return formatter ? formatter(value) : String(value)
|
|
106
111
|
},
|
|
107
112
|
},
|
|
@@ -22,7 +22,7 @@ export function HistogramSkeleton() {
|
|
|
22
22
|
const height = `${heights[i]}%`
|
|
23
23
|
return (
|
|
24
24
|
<Skeleton
|
|
25
|
-
key={i}
|
|
25
|
+
key={`skeleton-bar-${i}`}
|
|
26
26
|
variant='rectangular'
|
|
27
27
|
sx={{
|
|
28
28
|
flex: 1,
|
|
@@ -44,7 +44,7 @@ export function HistogramSkeleton() {
|
|
|
44
44
|
{Array(4)
|
|
45
45
|
.fill(0)
|
|
46
46
|
.map((_, i) => (
|
|
47
|
-
<Skeleton key={i} width={32} height={8} />
|
|
47
|
+
<Skeleton key={`skeleton-label-${i}`} width={32} height={8} />
|
|
48
48
|
))}
|
|
49
49
|
</Box>
|
|
50
50
|
</Box>
|
|
@@ -24,7 +24,7 @@ export function ScatterplotSkeleton() {
|
|
|
24
24
|
<Box sx={styles.skeleton.graph.container}>
|
|
25
25
|
{SCATTER_POINTS.map((point, index) => (
|
|
26
26
|
<Skeleton
|
|
27
|
-
key={index}
|
|
27
|
+
key={`skeleton-point-${index}`}
|
|
28
28
|
variant='circular'
|
|
29
29
|
width={12}
|
|
30
30
|
height={12}
|
|
@@ -42,7 +42,7 @@ export function ScatterplotSkeleton() {
|
|
|
42
42
|
.fill(0)
|
|
43
43
|
.map((_, i) => (
|
|
44
44
|
<Box
|
|
45
|
-
key={i}
|
|
45
|
+
key={`skeleton-${i}`}
|
|
46
46
|
sx={{
|
|
47
47
|
display: 'flex',
|
|
48
48
|
alignItems: 'center',
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
import { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'
|
|
2
2
|
import type { ConfigProps } from '../loader/types'
|
|
3
3
|
import type { SpreadWidgetConfig, SpreadWidgetData } from './types'
|
|
4
|
-
import type { SeriesConfig } from '../formula/types'
|
|
5
|
-
|
|
6
|
-
export interface SpreadConfigProps {
|
|
7
|
-
formatter?: (value: number) => string
|
|
8
|
-
series?: SeriesConfig[]
|
|
9
|
-
}
|
|
10
4
|
|
|
11
5
|
export function spreadDownloadConfig({
|
|
12
6
|
refUI,
|
|
@@ -8,7 +8,7 @@ import type {
|
|
|
8
8
|
SortDirection,
|
|
9
9
|
} from './types'
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
const DEFAULT_MODE: Mode = 'local'
|
|
12
12
|
export const DEFAULT_PAGE = 0
|
|
13
13
|
export const DEFAULT_ROWS_PER_PAGE = 10
|
|
14
14
|
export const DEFAULT_ROWS_PER_PAGE_OPTIONS = [5, 10, 25, 50]
|
|
@@ -18,7 +18,7 @@ import type { TableUIProps } from './types'
|
|
|
18
18
|
/**
|
|
19
19
|
* Props for the base Table component
|
|
20
20
|
*/
|
|
21
|
-
|
|
21
|
+
interface TableComponentProps extends MuiTableProps {
|
|
22
22
|
/** Table element ref */
|
|
23
23
|
ref?: Ref<HTMLTableElement>
|
|
24
24
|
}
|
|
@@ -58,7 +58,7 @@ export { Table }
|
|
|
58
58
|
* Integrates with widget store and provides ref registration using custom hook
|
|
59
59
|
*/
|
|
60
60
|
function TableContainer(props: TableUIProps) {
|
|
61
|
-
const ref = useWidgetRef<HTMLDivElement>(props.id)
|
|
61
|
+
const { ref } = useWidgetRef<HTMLDivElement>(props.id)
|
|
62
62
|
|
|
63
63
|
return <MuiTableContainer ref={ref}>{props.children}</MuiTableContainer>
|
|
64
64
|
}
|
|
@@ -42,8 +42,12 @@ describe('Actions', () => {
|
|
|
42
42
|
]
|
|
43
43
|
|
|
44
44
|
render(
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
<div
|
|
46
|
+
role='button'
|
|
47
|
+
tabIndex={0}
|
|
48
|
+
onClick={parentOnClick}
|
|
49
|
+
onKeyDown={parentOnClick}
|
|
50
|
+
>
|
|
47
51
|
<Actions actions={actions} />
|
|
48
52
|
</div>,
|
|
49
53
|
)
|
|
@@ -2,7 +2,9 @@ import { Box } from '@mui/material'
|
|
|
2
2
|
import type { WrapperActionsProps } from '../types'
|
|
3
3
|
import { styles } from '../styles'
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
const EMPTY_ACTIONS: NonNullable<WrapperActionsProps['actions']> = []
|
|
6
|
+
|
|
7
|
+
export function Actions({ actions = EMPTY_ACTIONS }: WrapperActionsProps) {
|
|
6
8
|
return (
|
|
7
9
|
<Box sx={styles.actions} className='widget-wrapper-actions'>
|
|
8
10
|
{actions.map((action, index) => {
|
|
@@ -88,8 +88,12 @@ describe('Options', () => {
|
|
|
88
88
|
]
|
|
89
89
|
|
|
90
90
|
render(
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
<div
|
|
92
|
+
role='button'
|
|
93
|
+
tabIndex={0}
|
|
94
|
+
onClick={parentOnClick}
|
|
95
|
+
onKeyDown={parentOnClick}
|
|
96
|
+
>
|
|
93
97
|
<Options options={options} />
|
|
94
98
|
</div>,
|
|
95
99
|
)
|
|
@@ -112,8 +116,12 @@ describe('Options', () => {
|
|
|
112
116
|
]
|
|
113
117
|
|
|
114
118
|
render(
|
|
115
|
-
|
|
116
|
-
|
|
119
|
+
<div
|
|
120
|
+
role='button'
|
|
121
|
+
tabIndex={0}
|
|
122
|
+
onClick={parentOnClick}
|
|
123
|
+
onKeyDown={parentOnClick}
|
|
124
|
+
>
|
|
117
125
|
<Options options={options} />
|
|
118
126
|
</div>,
|
|
119
127
|
)
|
|
@@ -10,7 +10,12 @@ import type { WrapperOptionsProps } from '../types'
|
|
|
10
10
|
import { useState } from 'react'
|
|
11
11
|
import { styles } from '../styles'
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
const EMPTY_OPTIONS: NonNullable<WrapperOptionsProps['options']> = []
|
|
14
|
+
|
|
15
|
+
export function Options({
|
|
16
|
+
labels,
|
|
17
|
+
options = EMPTY_OPTIONS,
|
|
18
|
+
}: WrapperOptionsProps) {
|
|
14
19
|
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)
|
|
15
20
|
|
|
16
21
|
const handleOptionAction = (
|
|
@@ -57,9 +62,9 @@ export function Options({ labels, options = [] }: WrapperOptionsProps) {
|
|
|
57
62
|
},
|
|
58
63
|
}}
|
|
59
64
|
>
|
|
60
|
-
{options.map((option
|
|
65
|
+
{options.map((option) => (
|
|
61
66
|
<MenuItem
|
|
62
|
-
key={
|
|
67
|
+
key={option.label}
|
|
63
68
|
disabled={option.disabled}
|
|
64
69
|
onClick={(e) => handleOptionAction(e, option)}
|
|
65
70
|
>
|
|
@@ -12,13 +12,16 @@ import { Actions } from './components/actions'
|
|
|
12
12
|
import { useWidgetStore } from '../stores/widget-store'
|
|
13
13
|
import { useShallow } from 'zustand/shallow'
|
|
14
14
|
|
|
15
|
+
const EMPTY_ACTIONS: NonNullable<WrapperUIProps['actions']> = []
|
|
16
|
+
const EMPTY_OPTIONS: NonNullable<WrapperUIProps['options']> = []
|
|
17
|
+
|
|
15
18
|
export function WrapperUI({
|
|
16
19
|
children,
|
|
17
20
|
id,
|
|
18
|
-
actions =
|
|
21
|
+
actions = EMPTY_ACTIONS,
|
|
19
22
|
sx,
|
|
20
23
|
labels,
|
|
21
|
-
options =
|
|
24
|
+
options = EMPTY_OPTIONS,
|
|
22
25
|
onChangeCollapsed,
|
|
23
26
|
}: WrapperUIProps) {
|
|
24
27
|
const title = useWidgetStore(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { WrapperProps, WrapperState } from './types'
|
|
2
2
|
import { WrapperUI } from './wrapper-ui'
|
|
3
3
|
import { useWidgetStore } from '../stores/widget-store'
|
|
4
|
-
import {
|
|
4
|
+
import { useLayoutEffect } from 'react'
|
|
5
5
|
|
|
6
6
|
export function WidgetWrapper({
|
|
7
7
|
id,
|
|
@@ -17,9 +17,7 @@ export function WidgetWrapper({
|
|
|
17
17
|
}: WrapperProps) {
|
|
18
18
|
const setWidget = useWidgetStore((state) => state.setWidget)
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
// This prevents 3 separate re-render cycles on mount and prop changes
|
|
22
|
-
useEffect(() => {
|
|
20
|
+
useLayoutEffect(() => {
|
|
23
21
|
setWidget<WrapperState>(id, {
|
|
24
22
|
collapsed: defaultCollapsed,
|
|
25
23
|
disabled,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lasso-tool-jl4YK02H.js","sources":["../src/components/lasso-tool/icons.tsx","../src/components/lasso-tool/const.tsx","../src/components/lasso-tool/styles.ts","../src/components/lasso-tool/chip.tsx","../src/components/lasso-tool/lasso-tool.tsx"],"sourcesContent":["import type { SVGProps } from 'react'\n\nexport function DrawPolygonIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M4 18a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm16 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm-2.829 1a2.996 2.996 0 0 0 0 2H6.829a2.995 2.995 0 0 0 0-2h10.342Zm-2.463-5.707 3.998 4a3.013 3.013 0 0 0-1.414 1.414l-4-3.999a3.014 3.014 0 0 0 1.31-1.214l.106-.201ZM2.998 6.829a2.995 2.995 0 0 0 2.002 0v10.342a2.993 2.993 0 0 0-2.002 0V6.83ZM12 10a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm1.84-3.919c.464.483 1.09.81 1.79.896l-1.47 2.94a2.992 2.992 0 0 0-1.79-.894l1.47-2.942ZM16 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4ZM4 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm9.171.998a2.994 2.994 0 0 0 0 2.002H6.829a2.995 2.995 0 0 0 0-2.002h6.342Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function DrawSquareIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M4 18a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm16 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm-2.829 1a2.993 2.993 0 0 0-.17.974l-.001.052.007.183a3 3 0 0 0 .164.79H6.829a2.995 2.995 0 0 0 0-2h10.342ZM2.998 6.828a2.995 2.995 0 0 0 2.002 0V17.17a2.993 2.993 0 0 0-2.002 0V6.83Zm16.001 0a2.995 2.995 0 0 0 2 0V17.17a2.993 2.993 0 0 0-2 0V6.829ZM20 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4ZM4 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm13.171.998a2.991 2.991 0 0 0-.17.976L17 4.026l.007.183a3 3 0 0 0 .164.79H6.829a2.995 2.995 0 0 0 0-2H17.17Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function DrawCircleIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2Zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm0 6a2 2 0 1 1 0 4 2 2 0 0 1 0-4Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function DrawLassoIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M12 3c4.935 0 9 3.736 9 9l-.002.343-.012.668c-.012.438-.033.86-.062 1.266l-.05.597C20.498 18.767 19.267 21 17 21c-1.192 0-1.971-.341-2.988-1.122l-.472-.375c-.401-.319-.64-.473-.888-.566a4.938 4.938 0 0 0-.415-.13l-.34-.085-.398-.086-.456-.086-.66-.111-1.708-.273a9.112 9.112 0 0 1-.952-.206C5.46 17.301 3 14.954 3 12.015c0-1.508.485-2.995 1.436-4.458.355.585.906 1.04 1.562 1.272C5.328 9.916 5 10.977 5 12.015c0 1.889 1.78 3.588 3.282 4.025l.085.023.345.076.517.092 1.619.257.583.1.518.098.237.05.433.103c.272.07.512.143.73.224.434.161.783.373 1.235.718l.457.362c.806.646 1.24.857 1.959.857.893 0 1.63-1.518 1.895-4.45l.045-.585c.013-.2.024-.407.033-.62l.02-.655c.005-.224.007-.454.007-.69 0-4.12-3.133-7-7-7a1 1 0 1 1 0-2ZM7 4a2 2 0 1 1 0 4 2 2 0 0 1 0-4Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function SelectToolIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='m10.083 19.394.057.113a1 1 0 0 0 1.72.007l2.869-4.786 4.786-2.87a1 1 0 0 0-.121-1.777l-14-6c-.83-.356-1.669.483-1.313 1.313l6.002 14ZM6.905 6.904l9.903 4.244-3.322 1.995-.102.069a1 1 0 0 0-.242.274l-1.992 3.321-4.245-9.903Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n","import type { LassoToolsMode, LassoToolsModesMapping } from '../types'\nimport {\n DrawPolygonIcon,\n DrawSquareIcon,\n DrawCircleIcon,\n DrawLassoIcon,\n SelectToolIcon,\n} from './icons'\nimport type { LassoToolsComponentProps } from './types'\nimport type { RequiredDeep } from 'type-fest'\n\nexport const LASSO_TOOLS_LABELS: NonNullable<\n RequiredDeep<LassoToolsComponentProps['labels']>\n> = {\n action: {\n tooltip: {\n active: 'Click on the map to draw your spatial filter',\n inactive: 'Click on the map to draw your spatial filter',\n },\n },\n chip: {\n tooltip: {\n active: 'Hide drawing',\n inactive: 'Show drawing',\n },\n },\n options: {\n mode: {\n title: 'Choose a drawing tool',\n options: {\n circle: 'Circle',\n lasso: 'Lasso tool',\n polygon: 'Polygon',\n rectangle: 'Rectangle',\n edit: 'Edit feature',\n },\n },\n },\n noData: {\n title: 'Spatial filter not applied',\n description:\n 'Select a drawing or editing tool and click on the map to define your spatial filter',\n },\n actions: {\n toggleAll: {\n active: 'Hide all',\n inactive: 'Show all',\n },\n deleteAll: 'Remove all',\n },\n} as const\n\nexport const DEFAULT_LASSO_TOOLS_MODES_MAPPING: LassoToolsModesMapping<LassoToolsMode> =\n {\n polygon: {\n icon: <DrawPolygonIcon />,\n },\n rectangle: {\n icon: <DrawSquareIcon />,\n },\n circle: {\n icon: <DrawCircleIcon />,\n },\n lasso: {\n icon: <DrawLassoIcon />,\n },\n edit: {\n icon: <SelectToolIcon />,\n },\n } as const\n","import { alpha, type SxProps, type Theme } from '@mui/material'\n\nexport const styles = {\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-start',\n overflow: 'hidden',\n\n '&.inline': {\n flexDirection: 'column',\n alignItems: 'flex-start',\n gap: ({ spacing }) => spacing(1),\n },\n },\n actions: {\n icon: {\n width: ({ spacing }) => spacing(4),\n height: ({ spacing }) => spacing(4),\n borderRadius: 0,\n '.MuiTouchRipple-ripple .MuiTouchRipple-child': {\n borderRadius: 0,\n },\n },\n },\n options: {\n menu: {\n paddingTop: ({ spacing }) => spacing(1),\n '&.inline': {\n boxShadow: 'none',\n backgroundColor: 'transparent',\n borderRadius: ({ spacing }) => spacing(0.5),\n\n '& .MuiDivider-root': {\n height: ({ spacing }) => spacing(4),\n\n '&.MuiToggleButtonGroup-groupedHorizontal': {\n height: ({ spacing }) => spacing(4),\n },\n '&.MuiToggleButtonGroup-groupedVertical': {\n height: 'auto',\n width: ({ spacing }) => spacing(4),\n margin: ({ spacing }) => `${spacing(0.5, 0, 1)} !important`,\n borderRadius: '0 !important',\n },\n },\n\n '& .MuiToggleButton-sizeSmall': {\n margin: 0,\n\n '&.MuiToggleButtonGroup-grouped:not(.MuiDivider-root)': {\n margin: 0,\n },\n '& + .MuiDivider-root.MuiToggleButtonGroup-groupedHorizontal': {\n height: ({ spacing }) => spacing(3),\n },\n '& + .MuiDivider-root.MuiToggleButtonGroup-groupedVertical': {\n height: 'auto',\n width: ({ spacing }) => spacing(3),\n },\n },\n\n '.MuiToggleButtonGroup-grouped:not(.MuiDivider-root)': {\n margin: 0,\n\n '&:first-of-type': {\n marginLeft: 0,\n },\n '&:not(:last-of-type)': {\n marginRight: ({ spacing }) => spacing(0.5),\n },\n },\n '&.MuiToggleButtonGroup-horizontal:not(.MuiDivider-root)': {\n '.MuiToggleButtonGroup-grouped': {\n margin: ({ spacing }) => spacing(0, 0.5),\n },\n },\n '&.MuiToggleButtonGroup-vertical:not(.MuiDivider-root)': {\n '.MuiToggleButtonGroup-grouped': {\n margin: ({ spacing }) => spacing(0, 0, 0.5),\n\n '&:not(:last-of-type)': {\n marginRight: 0,\n },\n '&:last-of-type': {\n marginBottom: 0,\n },\n },\n },\n },\n },\n icon: {\n borderRadius: 0,\n width: ({ spacing }) => spacing(3),\n },\n title: {\n paddingX: ({ spacing }) => spacing(2),\n paddingBottom: ({ spacing }) => spacing(0.5),\n\n '&.inline': {\n paddingX: 0,\n paddingBottom: 0,\n },\n },\n icons: {\n color: ({ palette }) => palette.text.primary,\n },\n tag: {\n borderRadius: ({ spacing }) => spacing(0.25),\n border: '1px solid',\n borderColor: ({ palette }) => palette.primary.main,\n paddingX: ({ spacing }) => spacing(0.5),\n color: ({ palette }) => palette.primary.main,\n backgroundColor: ({ palette }) => alpha(palette.primary.main, 0.08),\n },\n more: {\n width: ({ spacing }) => spacing(4),\n },\n },\n chip: {\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(0.5),\n overflowX: 'auto',\n scrollbarWidth: 'none',\n paddingX: ({ spacing }) => spacing(1),\n\n '&.inline': {\n overflowX: 'visible',\n flexWrap: 'wrap',\n },\n },\n chip: {\n marginRight: ({ spacing }) => spacing(0.5),\n },\n disabled: {\n opacity: ({ palette }) => palette.action.disabledOpacity,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Chip } from '@mui/material'\nimport type { PickDeep } from 'type-fest'\nimport { LASSO_TOOLS_LABELS } from './const'\nimport { styles } from './styles'\nimport type { LassoToolsComponentProps, LassoToolsData } from './types'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function LassoToolsUIChip({\n chipProps,\n value,\n labels,\n onChipToggle,\n onDelete,\n}: Pick<LassoToolsComponentProps, 'chipProps' | 'onDelete' | 'onChipToggle'> & {\n value: LassoToolsData\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'chip'>['chip']\n}) {\n const chipState = value.visible ? 'active' : 'inactive'\n const chipLabel =\n labels?.tooltip?.[chipState] ?? LASSO_TOOLS_LABELS.chip.tooltip[chipState]\n\n return (\n <Tooltip title={chipLabel} placement='bottom' {...chipProps?.TooltipProps}>\n <Chip\n sx={{\n ...styles.chip.chip,\n }}\n color={value.visible ? 'secondary' : 'default'}\n size='small'\n onDelete={() => onDelete(value.id)}\n label={value.label}\n onClick={() => onChipToggle(value.id, !value.visible)}\n {...chipProps?.ChipsProps}\n />\n </Tooltip>\n )\n}\n","import { ArrowDropDown, MoreVertOutlined } from '@mui/icons-material'\nimport {\n Box,\n Divider,\n IconButton,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Paper,\n SvgIcon,\n ToggleButton,\n Typography,\n type SxProps,\n type Theme,\n} from '@mui/material'\nimport deepmerge from 'deepmerge'\nimport {\n useMemo,\n useState,\n type ComponentProps,\n type JSX,\n type MouseEvent,\n type PropsWithChildren,\n type ReactNode,\n} from 'react'\nimport type { PickDeep } from 'type-fest'\nimport { Tooltip } from '../tooltip/tooltip'\nimport type { LassoToolsModes } from '../types'\nimport { LassoToolsUIChip } from './chip'\nimport { LASSO_TOOLS_LABELS } from './const'\nimport { styles } from './styles'\nimport type { LassoToolsComponentProps, OptionsChildrenProps } from './types'\n\nexport function LassoToolsUI({\n enabled,\n values = [],\n actionProps,\n chipProps,\n labels,\n modes,\n modesMapping,\n modeSelected,\n PaperProps: { sx, ...PaperProps } = {},\n onActionToggle,\n onChipToggle,\n onDelete,\n onChangeMode,\n onAllChipToggle,\n onAllDelete,\n ChipsSlot = LassoToolsUI.Chips,\n ActionSlot = LassoToolsUI.Action,\n SecondaryActionsSlot = LassoToolsUI.SecondaryActions,\n OptionsSlot = LassoToolsUI.Options,\n}: LassoToolsComponentProps): JSX.Element {\n const slotArgs = {\n enabled,\n values,\n actionProps,\n chipProps,\n labels,\n modes,\n modesMapping,\n modeSelected,\n PaperProps,\n onActionToggle,\n onChipToggle,\n onDelete,\n onChangeMode,\n onAllChipToggle,\n onAllDelete,\n }\n return (\n <Paper\n sx={{\n ...styles.container,\n ...sx,\n }}\n {...PaperProps}\n >\n {!!ActionSlot && <ActionSlot {...slotArgs} />}\n {!!OptionsSlot && (\n <Options>\n {(props) => {\n return <OptionsSlot {...slotArgs} {...props} />\n }}\n </Options>\n )}\n {!!ChipsSlot && <ChipsSlot {...slotArgs} />}\n {!!SecondaryActionsSlot && <SecondaryActionsSlot {...slotArgs} />}\n </Paper>\n )\n}\n\nfunction LassoToolsUIAction({\n actionProps,\n labels,\n enabled,\n children,\n onActionToggle,\n}: PropsWithChildren<\n Pick<\n LassoToolsComponentProps,\n 'actionProps' | 'enabled' | 'onActionToggle'\n > & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'action'>['action']\n }\n>) {\n const actionState = enabled ? 'active' : 'inactive'\n const actionLabel =\n labels?.tooltip?.[actionState] ??\n LASSO_TOOLS_LABELS.action.tooltip[actionState]\n\n return (\n <Tooltip\n title={actionLabel}\n placement='right'\n {...actionProps?.TooltipProps}\n >\n <ToggleButton\n value='toggle'\n sx={styles.actions.icon}\n onClick={() => onActionToggle(!enabled)}\n aria-label={actionLabel}\n selected={enabled}\n >\n {children}\n </ToggleButton>\n </Tooltip>\n )\n}\n\nfunction Options({\n TriggerProps = {},\n MenuProps,\n children,\n}: {\n TriggerProps?: {\n Icon?: ReactNode\n sx?: SxProps<Theme>\n }\n MenuProps?: Partial<ComponentProps<typeof Menu>>\n children: (props: OptionsChildrenProps) => JSX.Element\n}) {\n const { Icon, sx } = TriggerProps\n const IconNode = Icon ?? <ArrowDropDown />\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n\n const open = Boolean(anchorEl)\n\n const handleToggle = (event: MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n return (\n <>\n <IconButton\n sx={{\n ...styles.options.icon,\n ...sx,\n }}\n onClick={handleToggle}\n >\n {IconNode}\n </IconButton>\n <Menu\n id='lasso-menu'\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n MenuListProps={{\n 'aria-labelledby': 'lasso-button',\n sx: styles.options.menu,\n }}\n {...MenuProps}\n >\n <div>\n {children({\n onClose: handleClose,\n })}\n </div>\n </Menu>\n </>\n )\n}\n\nfunction ModeList({\n data,\n labels,\n children,\n}: {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: LassoToolsComponentProps['modes'][keyof LassoToolsModes][]\n children: ReactNode\n}) {\n if (data.length <= 1) {\n return null\n }\n\n const modeTitle = labels?.mode?.title ?? LASSO_TOOLS_LABELS.options.mode.title\n\n return (\n <>\n <Typography\n variant='subtitle2'\n color='text.secondary'\n sx={styles.options.title}\n >\n {modeTitle}\n </Typography>\n {children}\n </>\n )\n}\n\nfunction OptionsList({\n data,\n modeSelected,\n labels,\n onChangeMode,\n onClose,\n}: Required<Pick<LassoToolsComponentProps, 'modeSelected' | 'onChangeMode'>> & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: (LassoToolsComponentProps['modes'] &\n LassoToolsComponentProps['modesMapping'])[keyof LassoToolsModes][]\n onClose: OptionsChildrenProps['onClose']\n}) {\n const handleClick = (\n e: MouseEvent<HTMLLIElement>,\n value: NonNullable<(typeof data)[number]>['value'],\n ) => {\n e.preventDefault()\n onChangeMode?.(value)\n onClose()\n }\n\n return data\n .filter((mode): mode is NonNullable<typeof mode> => Boolean(mode))\n .map((mode) => {\n const options =\n labels?.mode?.options ?? LASSO_TOOLS_LABELS.options.mode.options\n const label = options[mode.value]\n\n return (\n <MenuItem\n key={mode.value}\n disabled={!!mode.disabled}\n onClick={(e) => handleClick(e, mode.value)}\n selected={mode.value === modeSelected}\n >\n <ListItemIcon sx={styles.options.icons}>\n <SvgIcon>{mode.icon}</SvgIcon>\n </ListItemIcon>\n <ListItemText>{label}</ListItemText>\n </MenuItem>\n )\n })\n}\n\nfunction SecondaryActionsWrapper({\n values,\n labels,\n onAllChipToggle,\n onAllDelete,\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n>) {\n if (!values?.length || values.length <= 1) {\n return null\n }\n\n const hasVisible = values?.some((value) => value.visible)\n\n const toggleAllLabel = hasVisible\n ? (labels?.actions?.toggleAll?.active ??\n LASSO_TOOLS_LABELS.actions.toggleAll.active)\n : (labels?.actions?.toggleAll?.inactive ??\n LASSO_TOOLS_LABELS.actions.toggleAll.inactive)\n\n const deleteAllLabel =\n labels?.actions?.deleteAll ?? LASSO_TOOLS_LABELS.actions.deleteAll\n\n return (\n <>\n <Divider orientation='vertical' flexItem />\n <Options\n TriggerProps={{ Icon: <MoreVertOutlined />, sx: styles.options.more }}\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'right',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'right',\n },\n }}\n >\n {(props) => {\n return (\n <>\n <MenuItem\n color='inherit'\n onClick={() => {\n onAllChipToggle?.()\n props.onClose()\n }}\n >\n {toggleAllLabel}\n </MenuItem>\n <Divider />\n <MenuItem\n color='error'\n onClick={() => {\n onAllDelete?.()\n props.onClose()\n }}\n >\n <Typography variant='body2' color='error'>\n {deleteAllLabel}\n </Typography>\n </MenuItem>\n </>\n )\n }}\n </Options>\n </>\n )\n}\n\nLassoToolsUI.Action = function ActionsWrapper({\n modes,\n modesMapping,\n modeSelected,\n actionProps,\n enabled,\n labels,\n onActionToggle,\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n> & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'actions'>['actions']\n}) {\n const data = useMemo(() => {\n return deepmerge(modes ?? {}, modesMapping ?? {})\n }, [modes, modesMapping])\n\n const handleToggle: LassoToolsComponentProps['onActionToggle'] = (data) => {\n return onActionToggle?.(data)\n }\n\n const modeExists = modeSelected ? modeSelected in (modes ?? {}) : false\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof data\n\n const modeSelectedValue = data[mode]\n\n return (\n <LassoToolsUIAction\n actionProps={actionProps}\n labels={labels?.action}\n enabled={enabled ?? false}\n onActionToggle={handleToggle}\n >\n {modeSelectedValue?.icon}\n </LassoToolsUIAction>\n )\n}\n\nLassoToolsUI.Chips = function ChipsWrapper({\n values,\n labels,\n chipProps,\n onDelete,\n onChipToggle,\n onActionToggle,\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n>) {\n const handleDelete: LassoToolsComponentProps['onDelete'] = (valueId) => {\n onActionToggle?.(false)\n return onDelete?.(valueId)\n }\n\n return (\n !!values?.length && (\n <Box sx={styles.chip.container}>\n {values?.map((value) => (\n <LassoToolsUIChip\n key={value.id}\n value={value}\n labels={labels?.chip}\n chipProps={chipProps}\n onDelete={handleDelete}\n onChipToggle={(id, data) => onChipToggle?.(id, data)}\n />\n ))}\n </Box>\n )\n )\n}\n\nLassoToolsUI.SecondaryActions = SecondaryActionsWrapper\n\nLassoToolsUI.Options = function OptionsWrapper({\n values,\n modes,\n modesMapping,\n modeSelected,\n labels,\n onChangeMode,\n ...props\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n> &\n OptionsChildrenProps) {\n const data = useMemo(() => {\n return deepmerge(modes ?? {}, modesMapping ?? {})\n }, [modes, modesMapping])\n\n const { edit, ..._modes } = data\n\n const modeExists = modeSelected ? modeSelected in (modes ?? {}) : false\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof data\n\n const modesValues = Object.values(_modes)\n\n const handleChangeMode: LassoToolsComponentProps['onChangeMode'] = (data) => {\n return onChangeMode?.(data)\n }\n\n return (\n <>\n <ModeList data={modesValues} labels={labels?.options}>\n <OptionsList\n {...props}\n labels={labels?.options}\n data={modesValues}\n modeSelected={mode}\n onChangeMode={handleChangeMode}\n />\n </ModeList>\n {!!edit && (\n <>\n <Divider />\n <OptionsList\n {...props}\n labels={labels?.options}\n data={[\n {\n ...edit,\n disabled: !values?.length,\n },\n ]}\n modeSelected={mode}\n onChangeMode={handleChangeMode}\n />\n </>\n )}\n </>\n )\n}\n"],"names":["DrawPolygonIcon","props","$","_c","t0","Symbol","for","t1","jsx","DrawSquareIcon","DrawCircleIcon","DrawLassoIcon","SelectToolIcon","LASSO_TOOLS_LABELS","action","tooltip","active","inactive","chip","options","mode","title","circle","lasso","polygon","rectangle","edit","noData","description","actions","toggleAll","deleteAll","DEFAULT_LASSO_TOOLS_MODES_MAPPING","icon","styles","container","display","flexDirection","alignItems","justifyContent","overflow","gap","spacing","width","height","borderRadius","menu","paddingTop","boxShadow","backgroundColor","margin","marginLeft","marginRight","marginBottom","paddingX","paddingBottom","icons","color","palette","text","primary","more","overflowX","scrollbarWidth","flexWrap","LassoToolsUIChip","chipProps","value","labels","onChipToggle","onDelete","chipState","visible","chipLabel","TooltipProps","t2","t3","t4","id","t5","t6","ChipsProps","t7","label","Chip","t8","Tooltip","LassoToolsUI","enabled","values","actionProps","modes","modesMapping","modeSelected","PaperProps","onActionToggle","onChangeMode","onAllChipToggle","onAllDelete","ChipsSlot","ActionSlot","SecondaryActionsSlot","OptionsSlot","undefined","sx","Chips","Action","SecondaryActions","Options","t9","slotArgs","t10","t11","t12","t13","t14","t15","jsxs","Paper","LassoToolsUIAction","children","actionState","actionLabel","ToggleButton","TriggerProps","MenuProps","Icon","ArrowDropDown","IconNode","anchorEl","setAnchorEl","useState","open","Boolean","event","currentTarget","handleToggle","handleClose","IconButton","onClose","Menu","ModeList","data","length","modeTitle","Typography","OptionsList","handleClick","e","preventDefault","filter","map","MenuItem","disabled","ListItemIcon","SvgIcon","ListItemText","SecondaryActionsWrapper","toggleAllLabel","some","_temp","deleteAllLabel","Divider","MoreVertOutlined","anchorOrigin","vertical","horizontal","transformOrigin","Fragment","useMemo","deepmerge","Object","keys","modeSelectedValue","handleDelete","valueId","Box","_modes","modesValues","handleChangeMode"],"mappings":"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"}
|
package/dist/row-BKmVAUN5.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"row-BKmVAUN5.js","sources":["../src/widgets/formula/style.ts","../src/widgets/formula/components/row.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(2),\n },\n item: {\n '&[data-disabled=\"true\"]': {\n color: (theme: Theme) => theme.palette.text.disabled,\n },\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(1),\n\n '& + &': {\n marginTop: (theme: Theme) => theme.spacing(1),\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport { styles } from '../style'\nimport type { FormulaWidgetState, RowProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { useShallow } from 'zustand/shallow'\n\nexport function Row(props: RowProps) {\n const data = useWidgetStore(\n useShallow((state) => state.getWidget<FormulaWidgetState>(props.id)?.data),\n )\n\n return data?.map((_, index) => {\n return (\n <Box sx={styles.row} key={index}>\n {typeof props.children === 'function'\n ? props.children({ index })\n : props.children}\n </Box>\n )\n })\n}\n"],"names":["styles","item","color","theme","palette","text","disabled","row","display","alignItems","gap","spacing","marginTop","Row","props","$","_c","t0","id","state","getWidget","data","useWidgetStore","useShallow","t1","map","_","index","jsx","Box","children"],"mappings":";;;;;AAEO,MAAMA,IAAS;AAAA,EAMpBC,MAAM;AAAA,IACJ,2BAA2B;AAAA,MACzBC,OAAOA,CAACC,MAAiBA,EAAMC,QAAQC,KAAKC;AAAAA,IAAAA;AAAAA,EAC9C;AAAA,EAEFC,KAAK;AAAA,IACHC,SAAS;AAAA,IACTC,YAAY;AAAA,IACZC,KAAKA,CAACP,MAAiBA,EAAMQ,QAAQ,CAAC;AAAA,IAEtC,SAAS;AAAA,MACPC,WAAWA,CAACT,MAAiBA,EAAMQ,QAAQ,CAAC;AAAA,IAAA;AAAA,EAC9C;AAEJ;AChBO,SAAAE,EAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA;AAAA,MAAAC;AAAA,EAAAF,EAAA,CAAA,MAAAD,EAAAI,MAEQD,IAAAE,CAAAA,MAAWA,EAAKC,UAA+BN,EAAKI,EAAS,GAACG,MAAAN,EAAA,CAAA,IAAAD,EAAAI,IAAAH,OAAAE,KAAAA,IAAAF,EAAA,CAAA;AAD3E,QAAAM,IAAaC,EACXC,EAAWN,CAA8D,CAC3E;AAAC,MAAAO;AAAA,SAAAT,EAAA,CAAA,MAAAM,KAAAN,SAAAD,KAEMU,IAAAH,GAAII,IAAM,CAAAC,GAAAC,MAEb,gBAAAC,EAACC,GAAA,EAAQ,IAAA7B,EAAMO,KACZ,UAAA,OAAOO,EAAKgB,YAAc,aACvBhB,EAAKgB,SAAU;AAAA,IAAAH,OAAAA;AAAAA,EAAAA,CACF,IAAbb,EAAKgB,SAAAA,GAHeH,CAI1B,CAEH,GAACZ,OAAAM,GAAAN,OAAAD,GAAAC,OAAAS,KAAAA,IAAAT,EAAA,CAAA,GARKS;AAQL;"}
|