@map-colonies/react-components 3.7.3 → 3.9.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/CHANGELOG.md +19 -0
- package/dist/autocomplete/autocomplete.css +25 -0
- package/dist/autocomplete/autocomplete.d.ts +34 -0
- package/dist/autocomplete/autocomplete.d.ts.map +1 -0
- package/dist/autocomplete/autocomplete.js +467 -0
- package/dist/autocomplete/autocomplete.js.map +1 -0
- package/dist/autocomplete/index.d.ts +2 -0
- package/dist/autocomplete/index.d.ts.map +1 -0
- package/dist/autocomplete/index.js +5 -0
- package/dist/autocomplete/index.js.map +1 -0
- package/dist/cesium-map/layers/3d.tileset.update.d.ts +2 -0
- package/dist/cesium-map/layers/3d.tileset.update.d.ts.map +1 -0
- package/dist/cesium-map/layers/3d.tileset.update.js +6 -0
- package/dist/cesium-map/layers/3d.tileset.update.js.map +1 -0
- package/dist/cesium-map/layers-manager.d.ts +2 -1
- package/dist/cesium-map/layers-manager.d.ts.map +1 -1
- package/dist/cesium-map/layers-manager.js.map +1 -1
- package/dist/cesium-map/map.d.ts +2 -1
- package/dist/cesium-map/map.d.ts.map +1 -1
- package/dist/cesium-map/map.js.map +1 -1
- package/dist/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.d.ts +4 -0
- package/dist/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.d.ts.map +1 -0
- package/dist/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.js +245 -0
- package/dist/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.js.map +1 -0
- package/dist/cesium-map/terrain-providers/custom/quantized-mesh-decoder.d.ts +10 -0
- package/dist/cesium-map/terrain-providers/custom/quantized-mesh-decoder.d.ts.map +1 -0
- package/dist/cesium-map/terrain-providers/custom/quantized-mesh-decoder.js +201 -0
- package/dist/cesium-map/terrain-providers/custom/quantized-mesh-decoder.js.map +1 -0
- package/dist/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.d.ts +51 -0
- package/dist/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.d.ts.map +1 -0
- package/dist/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.js +137 -0
- package/dist/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.js.map +1 -0
- package/dist/date-picker/date-picker.css +9 -0
- package/dist/date-picker/date-picker.d.ts +15 -0
- package/dist/date-picker/date-picker.d.ts.map +1 -0
- package/dist/date-picker/date-picker.js +65 -0
- package/dist/date-picker/date-picker.js.map +1 -0
- package/dist/date-picker/index.d.ts +2 -0
- package/dist/date-picker/index.d.ts.map +1 -0
- package/dist/date-picker/index.js +7 -0
- package/dist/date-picker/index.js.map +1 -0
- package/dist/date-range-picker/date-range-picker.d.ts.map +1 -1
- package/dist/date-range-picker/date-range-picker.form-control.d.ts.map +1 -1
- package/dist/date-range-picker/date-range-picker.form-control.js +9 -7
- package/dist/date-range-picker/date-range-picker.form-control.js.map +1 -1
- package/dist/date-range-picker/date-range-picker.js +10 -10
- package/dist/date-range-picker/date-range-picker.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/models/defaults.d.ts +11 -0
- package/dist/models/defaults.d.ts.map +1 -1
- package/dist/models/defaults.js +12 -0
- package/dist/models/defaults.js.map +1 -1
- package/package.json +100 -95
- package/src/lib/autocomplete/autocomplete.css +25 -0
- package/src/lib/autocomplete/autocomplete.stories.tsx +101 -0
- package/src/lib/autocomplete/autocomplete.tsx +683 -0
- package/src/lib/autocomplete/get-input-selection.d.ts +1 -0
- package/src/lib/autocomplete/index.ts +1 -0
- package/src/lib/cesium-map/context-menu.stories.tsx +1 -2
- package/src/lib/cesium-map/layers/3d.tileset.stories.tsx +1 -2
- package/src/lib/cesium-map/layers/3d.tileset.update.ts +72 -0
- package/src/lib/cesium-map/layers/layers.rect.stories.tsx +171 -0
- package/src/lib/cesium-map/layers-manager.stories.tsx +2 -3
- package/src/lib/cesium-map/layers-manager.ts +3 -1
- package/src/lib/cesium-map/map.stories.tsx +3 -3
- package/src/lib/cesium-map/map.tsx +2 -0
- package/src/lib/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.ts +243 -0
- package/src/lib/cesium-map/terrain-providers/custom/quantized-mesh-decoder.ts +321 -0
- package/src/lib/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.ts +237 -0
- package/src/lib/cesium-map/terrain-providers/terrain-provider.stories.tsx +183 -0
- package/src/lib/date-picker/date-picker.css +9 -0
- package/src/lib/date-picker/date-picker.stories.tsx +130 -0
- package/src/lib/date-picker/date-picker.tsx +90 -0
- package/src/lib/date-picker/index.ts +1 -0
- package/src/lib/date-range-picker/date-range-picker.form-control.tsx +9 -7
- package/src/lib/date-range-picker/date-range-picker.tsx +12 -10
- package/src/lib/index.ts +2 -0
- package/src/lib/models/defaults.ts +12 -0
- package/src/types/quantized-mesh-decoder.d.ts +1 -0
- /package/storybook-static/mock/{tileset → tileset_1}/ll.b3dm +0 -0
- /package/storybook-static/mock/{tileset → tileset_1}/lr.b3dm +0 -0
- /package/storybook-static/mock/{tileset → tileset_1}/parent.b3dm +0 -0
- /package/storybook-static/mock/{tileset → tileset_1}/tileset.json +0 -0
- /package/storybook-static/mock/{tileset → tileset_1}/ul.b3dm +0 -0
- /package/storybook-static/mock/{tileset → tileset_1}/ur.b3dm +0 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import React, { ChangeEvent, useState } from 'react';
|
|
2
|
+
import {
|
|
3
|
+
ArcGISTiledElevationTerrainProvider,
|
|
4
|
+
EllipsoidTerrainProvider,
|
|
5
|
+
TerrainProvider,
|
|
6
|
+
VRTheWorldTerrainProvider,
|
|
7
|
+
WebMercatorProjection,
|
|
8
|
+
CesiumTerrainProvider,
|
|
9
|
+
Resource,
|
|
10
|
+
WebMercatorTilingScheme,
|
|
11
|
+
} from 'cesium';
|
|
12
|
+
import { Story, Meta } from '@storybook/react/types-6-0';
|
|
13
|
+
import { CesiumMap, useCesiumMap } from '../map';
|
|
14
|
+
import { CesiumSceneMode } from '../map.types';
|
|
15
|
+
import { Cesium3DTileset } from '../layers';
|
|
16
|
+
import QuantizedMeshTerrainProvider from './custom/quantized-mesh-terrain-provider';
|
|
17
|
+
|
|
18
|
+
export default {
|
|
19
|
+
title: 'Cesium Map',
|
|
20
|
+
component: CesiumMap,
|
|
21
|
+
parameters: {
|
|
22
|
+
layout: 'fullscreen',
|
|
23
|
+
},
|
|
24
|
+
} as Meta;
|
|
25
|
+
|
|
26
|
+
const mapDivStyle = {
|
|
27
|
+
height: '90%',
|
|
28
|
+
width: '100%',
|
|
29
|
+
position: 'absolute' as const,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const BASE_MAPS = {
|
|
33
|
+
maps: [
|
|
34
|
+
{
|
|
35
|
+
id: '1st',
|
|
36
|
+
title: '1st Map Title',
|
|
37
|
+
isCurrent: true,
|
|
38
|
+
thumbnail:
|
|
39
|
+
'https://nsw.digitaltwin.terria.io/build/efa2f6c408eb790753a9b5fb2f3dc678.png',
|
|
40
|
+
baseRasteLayers: [
|
|
41
|
+
{
|
|
42
|
+
id: 'GOOGLE_TERRAIN',
|
|
43
|
+
type: 'XYZ_LAYER',
|
|
44
|
+
opacity: 1,
|
|
45
|
+
zIndex: 0,
|
|
46
|
+
options: {
|
|
47
|
+
url: 'https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}',
|
|
48
|
+
layers: '',
|
|
49
|
+
credit: 'GOOGLE',
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
baseVectorLayers: [],
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const EllipsoidProvider = new EllipsoidTerrainProvider({});
|
|
59
|
+
|
|
60
|
+
const CesiumProvider = new CesiumTerrainProvider({
|
|
61
|
+
url: new Resource({
|
|
62
|
+
url: 'https://my-assets.cesium.com/1',
|
|
63
|
+
headers: {
|
|
64
|
+
authorization: 'Bearer <my-access-token>',
|
|
65
|
+
},
|
|
66
|
+
}),
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
const VRTheWorldProvider = new VRTheWorldTerrainProvider({
|
|
70
|
+
url: 'http://www.vr-theworld.com/vr-theworld/tiles1.0.0/73/',
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
const ArcGisProvider = new ArcGISTiledElevationTerrainProvider({
|
|
74
|
+
url:
|
|
75
|
+
'https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer',
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
const QuantizedMeshProvider = new QuantizedMeshTerrainProvider({
|
|
79
|
+
getUrl: (x: number, y: number, level: number): string => {
|
|
80
|
+
const tilingScheme = new WebMercatorTilingScheme();
|
|
81
|
+
const column = x;
|
|
82
|
+
const row = tilingScheme.getNumberOfYTilesAtLevel(level) - y - 1;
|
|
83
|
+
|
|
84
|
+
return `/mock/terrain_example_tiles/${level}/${column}/${row}.terrain`;
|
|
85
|
+
},
|
|
86
|
+
credit: `Mapcolonies`,
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
const terrainProviderList = [
|
|
90
|
+
{
|
|
91
|
+
id: 'NONE',
|
|
92
|
+
value: EllipsoidProvider,
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
id: 'Cesium Terrain Provider',
|
|
96
|
+
value: CesiumProvider,
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
id: 'V R The World Terrain Provider (Hight Map)',
|
|
100
|
+
value: VRTheWorldProvider,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
id: 'Arc Gis Terrain Provider',
|
|
104
|
+
value: ArcGisProvider,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
id: 'Custom Terrain Provider',
|
|
108
|
+
value: QuantizedMeshProvider,
|
|
109
|
+
},
|
|
110
|
+
];
|
|
111
|
+
|
|
112
|
+
interface ITerrainProviderItem {
|
|
113
|
+
id: string;
|
|
114
|
+
value: TerrainProvider | undefined;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
interface ITerrainProviderSelectorProps {
|
|
118
|
+
terrainProviderList: ITerrainProviderItem[];
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
const TerrainProviderSelector: React.FC<ITerrainProviderSelectorProps> = ({
|
|
122
|
+
terrainProviderList,
|
|
123
|
+
}) => {
|
|
124
|
+
const mapViewer = useCesiumMap();
|
|
125
|
+
const [depthTest, setDepthTest] = useState<boolean>(false);
|
|
126
|
+
|
|
127
|
+
const scene = mapViewer.scene;
|
|
128
|
+
|
|
129
|
+
const handleDepthTestChange = (e: ChangeEvent<HTMLInputElement>): void => {
|
|
130
|
+
setDepthTest(e.target.checked);
|
|
131
|
+
scene.globe.depthTestAgainstTerrain = !depthTest;
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
return (
|
|
135
|
+
<>
|
|
136
|
+
<select
|
|
137
|
+
defaultValue={terrainProviderList[0].id}
|
|
138
|
+
onChange={(evt): void => {
|
|
139
|
+
const selected = terrainProviderList.find(
|
|
140
|
+
(item) => item.id === evt.target.value
|
|
141
|
+
);
|
|
142
|
+
mapViewer.terrainProvider = (selected as ITerrainProviderItem)
|
|
143
|
+
.value as TerrainProvider;
|
|
144
|
+
}}
|
|
145
|
+
>
|
|
146
|
+
{terrainProviderList.map((provider) => {
|
|
147
|
+
return <option key={provider.id}>{provider.id}</option>;
|
|
148
|
+
})}
|
|
149
|
+
</select>
|
|
150
|
+
<br />
|
|
151
|
+
<input
|
|
152
|
+
type="checkbox"
|
|
153
|
+
id="input"
|
|
154
|
+
checked={depthTest}
|
|
155
|
+
onChange={handleDepthTestChange}
|
|
156
|
+
/>
|
|
157
|
+
<label htmlFor="input">depthTestAgainstTerrain</label>
|
|
158
|
+
</>
|
|
159
|
+
);
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
export const QuantizedMesh: Story = () => {
|
|
163
|
+
// const [center] = useState<[number, number]>([24, -200]);
|
|
164
|
+
const [center] = useState<[number, number]>([-122, 43]);
|
|
165
|
+
return (
|
|
166
|
+
<div style={mapDivStyle}>
|
|
167
|
+
<CesiumMap
|
|
168
|
+
center={center}
|
|
169
|
+
zoom={5}
|
|
170
|
+
imageryProvider={false}
|
|
171
|
+
sceneModes={[CesiumSceneMode.SCENE3D, CesiumSceneMode.COLUMBUS_VIEW]}
|
|
172
|
+
baseMaps={BASE_MAPS}
|
|
173
|
+
mapProjection={new WebMercatorProjection()}
|
|
174
|
+
>
|
|
175
|
+
<Cesium3DTileset
|
|
176
|
+
isZoomTo={true}
|
|
177
|
+
url="/mock/tileset_2/L16_31023/L16_31023.json"
|
|
178
|
+
/>
|
|
179
|
+
<TerrainProviderSelector terrainProviderList={terrainProviderList} />
|
|
180
|
+
</CesiumMap>
|
|
181
|
+
</div>
|
|
182
|
+
);
|
|
183
|
+
};
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { action } from '@storybook/addon-actions';
|
|
3
|
+
import { Story } from '@storybook/react/types-6-0';
|
|
4
|
+
import { CSFStory } from '../utils/story';
|
|
5
|
+
import { SupportedLocales } from '../models/enums';
|
|
6
|
+
import { DateTimePicker } from './date-picker';
|
|
7
|
+
|
|
8
|
+
const TODAY = new Date();
|
|
9
|
+
|
|
10
|
+
export default {
|
|
11
|
+
title: 'Date Picker',
|
|
12
|
+
component: DateTimePicker,
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export const DatePickerDefault: CSFStory<JSX.Element> = () => (
|
|
16
|
+
<DateTimePicker onChange={action('date changed')} value={TODAY} />
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
DatePickerDefault.story = {
|
|
20
|
+
name: 'Date picker default',
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export const DateTimePickerMode: CSFStory<JSX.Element> = () => (
|
|
24
|
+
<DateTimePicker
|
|
25
|
+
value={TODAY}
|
|
26
|
+
onChange={action('date changed')}
|
|
27
|
+
showTime={true}
|
|
28
|
+
format={'dd/MM/yyyy HH:mm'}
|
|
29
|
+
/>
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
DateTimePickerMode.story = {
|
|
33
|
+
name: 'Date time picker',
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export const DateNoFutureLimitTime: CSFStory<JSX.Element> = () => (
|
|
37
|
+
<DateTimePicker
|
|
38
|
+
value={TODAY}
|
|
39
|
+
disableFuture={false}
|
|
40
|
+
onChange={action('date changed')}
|
|
41
|
+
/>
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
DateNoFutureLimitTime.story = {
|
|
45
|
+
name: 'Date time no future limit',
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export const DateMinMaxLimitTime: CSFStory<JSX.Element> = () => {
|
|
49
|
+
const minDate = new Date();
|
|
50
|
+
const maxDate = new Date();
|
|
51
|
+
const deltaInDays = 6;
|
|
52
|
+
minDate.setDate(maxDate.getDate() - deltaInDays);
|
|
53
|
+
maxDate.setDate(maxDate.getDate() + deltaInDays);
|
|
54
|
+
return (
|
|
55
|
+
<DateTimePicker
|
|
56
|
+
value={TODAY}
|
|
57
|
+
onChange={(date) => {
|
|
58
|
+
action('date changed')(date);
|
|
59
|
+
console.log(date?.toDateString());
|
|
60
|
+
}}
|
|
61
|
+
minDate={minDate}
|
|
62
|
+
maxDate={maxDate}
|
|
63
|
+
/>
|
|
64
|
+
);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
DateMinMaxLimitTime.story = {
|
|
68
|
+
name: 'Date time with minDate & maxDate ',
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
export const DateMinMaxLimitTimeWithOnBlur: CSFStory<JSX.Element> = () => {
|
|
72
|
+
const minDate = new Date();
|
|
73
|
+
const maxDate = new Date();
|
|
74
|
+
const deltaInDays = 6;
|
|
75
|
+
minDate.setDate(maxDate.getDate() - deltaInDays);
|
|
76
|
+
maxDate.setDate(maxDate.getDate() + deltaInDays);
|
|
77
|
+
return (
|
|
78
|
+
<DateTimePicker
|
|
79
|
+
value={TODAY}
|
|
80
|
+
onChange={(date) => {
|
|
81
|
+
action('date changed')(date);
|
|
82
|
+
console.log(date?.toDateString());
|
|
83
|
+
}}
|
|
84
|
+
onBlur={(date) => {
|
|
85
|
+
action('OnBlur invoked')(date);
|
|
86
|
+
console.log('OnBlur invoked');
|
|
87
|
+
}}
|
|
88
|
+
minDate={minDate}
|
|
89
|
+
maxDate={maxDate}
|
|
90
|
+
/>
|
|
91
|
+
);
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
DateMinMaxLimitTimeWithOnBlur.story = {
|
|
95
|
+
name: 'Date time with OnBlur ',
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
export const DateTimeWithControlArgs: Story = (args: unknown) => {
|
|
99
|
+
return (
|
|
100
|
+
<DateTimePicker {...args} value={TODAY} onChange={action('date changed')} />
|
|
101
|
+
);
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
DateTimeWithControlArgs.storyName = 'Date time control with args';
|
|
105
|
+
|
|
106
|
+
DateTimeWithControlArgs.argTypes = {
|
|
107
|
+
local: {
|
|
108
|
+
control: {
|
|
109
|
+
type: 'object',
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
export const DateTimeHebrewLocalized: Story = (args: unknown) => {
|
|
115
|
+
const local = {
|
|
116
|
+
placeHolderText: 'הכנס תאריך',
|
|
117
|
+
calendarLocale: SupportedLocales.HE,
|
|
118
|
+
};
|
|
119
|
+
return (
|
|
120
|
+
<DateTimePicker
|
|
121
|
+
local={local}
|
|
122
|
+
{...args}
|
|
123
|
+
value={TODAY}
|
|
124
|
+
onChange={action('date changed')}
|
|
125
|
+
/>
|
|
126
|
+
);
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
DateTimeHebrewLocalized.storyName =
|
|
130
|
+
'Date time range looks like input with Hebrew calendar';
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { he, enUS } from 'date-fns/locale';
|
|
3
|
+
import {
|
|
4
|
+
MuiPickersUtilsProvider,
|
|
5
|
+
KeyboardDateTimePicker,
|
|
6
|
+
KeyboardDatePicker,
|
|
7
|
+
KeyboardDatePickerProps,
|
|
8
|
+
} from '@material-ui/pickers';
|
|
9
|
+
import { ParsableDate } from '@material-ui/pickers/constants/prop-types';
|
|
10
|
+
import { WrapperVariant } from '@material-ui/pickers/wrappers/Wrapper';
|
|
11
|
+
import DateFnsUtils from '@date-io/date-fns';
|
|
12
|
+
import { ThemeProvider } from '@material-ui/core';
|
|
13
|
+
|
|
14
|
+
import { useTheme } from '@map-colonies/react-core';
|
|
15
|
+
import { SupportedLocales } from '../models/enums';
|
|
16
|
+
import DEFAULTS from '../models/defaults';
|
|
17
|
+
import { useMappedMuiTheme } from '../theme';
|
|
18
|
+
|
|
19
|
+
import '@map-colonies/react-core/dist/button/styles';
|
|
20
|
+
import './date-picker.css';
|
|
21
|
+
|
|
22
|
+
interface DatePickerProps extends KeyboardDatePickerProps {
|
|
23
|
+
local?: {
|
|
24
|
+
placeHolderText?: string;
|
|
25
|
+
calendarLocale?: SupportedLocales;
|
|
26
|
+
};
|
|
27
|
+
showTime?: boolean;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export const DateTimePicker: React.FC<DatePickerProps> = (props) => {
|
|
31
|
+
const theme: { [key: string]: string } = useTheme();
|
|
32
|
+
const themeMui = useMappedMuiTheme(theme);
|
|
33
|
+
|
|
34
|
+
const [value, setValue] = useState<ParsableDate>(props.value);
|
|
35
|
+
|
|
36
|
+
const {
|
|
37
|
+
format = DEFAULTS.DATE_PICKER.dateFormat,
|
|
38
|
+
variant = DEFAULTS.DATE_PICKER.variant,
|
|
39
|
+
disableFuture = DEFAULTS.DATE_PICKER.disableFuture,
|
|
40
|
+
local,
|
|
41
|
+
onChange,
|
|
42
|
+
showTime = DEFAULTS.DATE_PICKER.showTime,
|
|
43
|
+
value: propValue,
|
|
44
|
+
...resProps
|
|
45
|
+
} = props;
|
|
46
|
+
|
|
47
|
+
const {
|
|
48
|
+
placeHolderText = DEFAULTS.DATE_PICKER.local.placeHolderText,
|
|
49
|
+
calendarLocale,
|
|
50
|
+
} = local ?? {
|
|
51
|
+
placeHolderText: DEFAULTS.DATE_PICKER.local.placeHolderText,
|
|
52
|
+
calendarLocale: SupportedLocales.EN,
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
const locale = calendarLocale === SupportedLocales.HE ? he : enUS;
|
|
56
|
+
|
|
57
|
+
const handleOnChange = (e: any): void => {
|
|
58
|
+
setValue(e);
|
|
59
|
+
onChange(e as Date);
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
return (
|
|
63
|
+
<ThemeProvider theme={themeMui}>
|
|
64
|
+
<MuiPickersUtilsProvider utils={DateFnsUtils} locale={locale}>
|
|
65
|
+
{showTime && (
|
|
66
|
+
<KeyboardDateTimePicker
|
|
67
|
+
variant={variant as WrapperVariant}
|
|
68
|
+
placeholder={placeHolderText}
|
|
69
|
+
onChange={handleOnChange}
|
|
70
|
+
value={value}
|
|
71
|
+
disableFuture={disableFuture}
|
|
72
|
+
format={format}
|
|
73
|
+
{...resProps}
|
|
74
|
+
/>
|
|
75
|
+
)}
|
|
76
|
+
{!showTime && (
|
|
77
|
+
<KeyboardDatePicker
|
|
78
|
+
variant={variant as WrapperVariant}
|
|
79
|
+
placeholder={placeHolderText}
|
|
80
|
+
onChange={handleOnChange}
|
|
81
|
+
value={value}
|
|
82
|
+
disableFuture={disableFuture}
|
|
83
|
+
format={format}
|
|
84
|
+
{...resProps}
|
|
85
|
+
/>
|
|
86
|
+
)}
|
|
87
|
+
</MuiPickersUtilsProvider>
|
|
88
|
+
</ThemeProvider>
|
|
89
|
+
);
|
|
90
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './date-picker';
|
|
@@ -34,7 +34,7 @@ export const DateTimeRangePickerFormControl: React.FC<DateRangePickerProps> = (
|
|
|
34
34
|
const [from, setFrom] = useState<Date | null>(null);
|
|
35
35
|
const [to, setTo] = useState<Date | null>(null);
|
|
36
36
|
const [dateFormat, setDateFormat] = useState<string>(
|
|
37
|
-
DEFAULTS.
|
|
37
|
+
DEFAULTS.DATE_RANGE_PICKER.dateFormat
|
|
38
38
|
);
|
|
39
39
|
const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(
|
|
40
40
|
null
|
|
@@ -66,24 +66,26 @@ export const DateTimeRangePickerFormControl: React.FC<DateRangePickerProps> = (
|
|
|
66
66
|
}, [props.to]);
|
|
67
67
|
|
|
68
68
|
useEffect(() => {
|
|
69
|
-
setDateFormat(props.dateFormat ?? DEFAULTS.
|
|
69
|
+
setDateFormat(props.dateFormat ?? DEFAULTS.DATE_RANGE_PICKER.dateFormat);
|
|
70
70
|
}, [props.dateFormat]);
|
|
71
71
|
|
|
72
72
|
const startPlaceHolderText =
|
|
73
73
|
props.local?.startPlaceHolderText ??
|
|
74
|
-
DEFAULTS.
|
|
74
|
+
DEFAULTS.DATE_RANGE_PICKER.local.startPlaceHolderText;
|
|
75
75
|
const endPlaceHolderText =
|
|
76
76
|
props.local?.endPlaceHolderText ??
|
|
77
|
-
DEFAULTS.
|
|
77
|
+
DEFAULTS.DATE_RANGE_PICKER.local.endPlaceHolderText;
|
|
78
78
|
const renderAsButton =
|
|
79
79
|
props.renderAsButton === undefined
|
|
80
|
-
? DEFAULTS.
|
|
80
|
+
? DEFAULTS.DATE_RANGE_PICKER.renderAsButton
|
|
81
81
|
: props.renderAsButton;
|
|
82
82
|
const offset =
|
|
83
|
-
props.offset === undefined
|
|
83
|
+
props.offset === undefined
|
|
84
|
+
? DEFAULTS.DATE_RANGE_PICKER.offset
|
|
85
|
+
: props.offset;
|
|
84
86
|
const disableFuture =
|
|
85
87
|
props.disableFuture === undefined
|
|
86
|
-
? DEFAULTS.
|
|
88
|
+
? DEFAULTS.DATE_RANGE_PICKER.disableFuture
|
|
87
89
|
: props.disableFuture;
|
|
88
90
|
|
|
89
91
|
const controlText = useMemo(() => {
|
|
@@ -61,22 +61,24 @@ export const DateTimeRangePicker: React.FC<DateRangePickerProps> = (props) => {
|
|
|
61
61
|
const [from, setFrom] = useState<Date | null>(null);
|
|
62
62
|
const [to, setTo] = useState<Date | null>(null);
|
|
63
63
|
const [dateFormat, setDateFormat] = useState<string>(
|
|
64
|
-
DEFAULTS.
|
|
64
|
+
DEFAULTS.DATE_RANGE_PICKER.dateFormat
|
|
65
65
|
);
|
|
66
66
|
|
|
67
67
|
const flexDirection =
|
|
68
|
-
props.controlsLayout ?? DEFAULTS.
|
|
68
|
+
props.controlsLayout ?? DEFAULTS.DATE_RANGE_PICKER.controlsLayout;
|
|
69
69
|
const disableFuture =
|
|
70
|
-
props.disableFuture ?? DEFAULTS.
|
|
70
|
+
props.disableFuture ?? DEFAULTS.DATE_RANGE_PICKER.disableFuture;
|
|
71
71
|
const startPlaceHolderText =
|
|
72
72
|
props.local?.startPlaceHolderText ??
|
|
73
|
-
DEFAULTS.
|
|
73
|
+
DEFAULTS.DATE_RANGE_PICKER.local.startPlaceHolderText;
|
|
74
74
|
const endPlaceHolderText =
|
|
75
75
|
props.local?.endPlaceHolderText ??
|
|
76
|
-
DEFAULTS.
|
|
77
|
-
const setText =
|
|
76
|
+
DEFAULTS.DATE_RANGE_PICKER.local.endPlaceHolderText;
|
|
77
|
+
const setText =
|
|
78
|
+
props.local?.setText ?? DEFAULTS.DATE_RANGE_PICKER.local.setText;
|
|
78
79
|
const calendarLocale =
|
|
79
|
-
props.local?.calendarLocale ??
|
|
80
|
+
props.local?.calendarLocale ??
|
|
81
|
+
DEFAULTS.DATE_RANGE_PICKER.local.calendarLocale;
|
|
80
82
|
|
|
81
83
|
const locale = calendarLocale === SupportedLocales.HE ? he : enUS;
|
|
82
84
|
|
|
@@ -89,7 +91,7 @@ export const DateTimeRangePicker: React.FC<DateRangePickerProps> = (props) => {
|
|
|
89
91
|
}, [props.to]);
|
|
90
92
|
|
|
91
93
|
useEffect(() => {
|
|
92
|
-
setDateFormat(props.dateFormat ?? DEFAULTS.
|
|
94
|
+
setDateFormat(props.dateFormat ?? DEFAULTS.DATE_RANGE_PICKER.dateFormat);
|
|
93
95
|
}, [props.dateFormat]);
|
|
94
96
|
|
|
95
97
|
const isRangeValid = Boolean(
|
|
@@ -116,7 +118,7 @@ export const DateTimeRangePicker: React.FC<DateRangePickerProps> = (props) => {
|
|
|
116
118
|
<MuiPickersUtilsProvider utils={DateFnsUtils} locale={locale}>
|
|
117
119
|
<KeyboardDateTimePicker
|
|
118
120
|
variant="inline"
|
|
119
|
-
|
|
121
|
+
placeholder={startPlaceHolderText}
|
|
120
122
|
onChange={(date): void => setFrom(date as Date)}
|
|
121
123
|
value={from}
|
|
122
124
|
disableFuture={disableFuture}
|
|
@@ -126,7 +128,7 @@ export const DateTimeRangePicker: React.FC<DateRangePickerProps> = (props) => {
|
|
|
126
128
|
/>
|
|
127
129
|
<KeyboardDateTimePicker
|
|
128
130
|
variant="inline"
|
|
129
|
-
|
|
131
|
+
placeholder={endPlaceHolderText}
|
|
130
132
|
className={classes.margin}
|
|
131
133
|
onChange={(date): void => setTo(date as Date)}
|
|
132
134
|
value={to}
|
package/src/lib/index.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './date-range-picker';
|
|
2
|
+
export * from './date-picker';
|
|
2
3
|
export * from './map-filter-container';
|
|
3
4
|
export * from './models';
|
|
4
5
|
export * from './ol-map';
|
|
@@ -8,3 +9,4 @@ export * from './box';
|
|
|
8
9
|
export * from './cssbaseline';
|
|
9
10
|
export * from './theme';
|
|
10
11
|
export * from './cesium-map';
|
|
12
|
+
export * from './autocomplete';
|
|
@@ -3,6 +3,18 @@ import { SupportedLocales } from './enums';
|
|
|
3
3
|
const DEFAULTS = {
|
|
4
4
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
5
5
|
DATE_PICKER: {
|
|
6
|
+
dateFormat: 'dd/MM/yyyy',
|
|
7
|
+
local: {
|
|
8
|
+
setText: 'set',
|
|
9
|
+
placeHolderText: 'Enter the Date',
|
|
10
|
+
calendarLocale: SupportedLocales.EN,
|
|
11
|
+
},
|
|
12
|
+
disableFuture: true,
|
|
13
|
+
showTime: false,
|
|
14
|
+
variant: 'inline',
|
|
15
|
+
},
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
17
|
+
DATE_RANGE_PICKER: {
|
|
6
18
|
dateFormat: 'dd/MM/yyyy HH:mm',
|
|
7
19
|
controlsLayout: 'row',
|
|
8
20
|
local: {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare module '@here/quantized-mesh-decoder';
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|