cortex-react-ui 0.2.9 → 0.2.11

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/lib/index.d.ts CHANGED
@@ -2,8 +2,6 @@
2
2
  import React$1, { CSSProperties } from 'react';
3
3
  import { IDetectedBarcode, IScannerProps } from '@yudiel/react-qr-scanner';
4
4
  import { WebcamProps } from 'react-webcam';
5
- import { MapContainerProps } from 'react-leaflet';
6
- import { ControlPosition, LatLngTuple } from 'leaflet';
7
5
 
8
6
  declare const PopperPlacement: {
9
7
  readonly Center: "center";
@@ -166,80 +164,6 @@ interface TooltipProps {
166
164
  }
167
165
  declare const TagInput: React$1.FC<TooltipProps>;
168
166
 
169
- declare class Point {
170
- id: number;
171
- order: number;
172
- latitude: number;
173
- longitude: number;
174
- }
175
-
176
- declare class Location {
177
- id: number;
178
- objId: string;
179
- points: Point[];
180
- }
181
-
182
- type CenterActiveAreaControlProps = {
183
- autoCenter?: boolean;
184
- };
185
-
186
- /** Props interface for MapFullscreenControl component */
187
- type MapFullscreenControlProps = {
188
- /** Change the content of the button, can be HTML, default null */
189
- content?: string | undefined;
190
- /** Change the position of the button can be topleft, topright, bottomright or bottomleft, default topleft */
191
- position?: ControlPosition | undefined;
192
- /** Change the title of the button, default Full Screen */
193
- title?: string | undefined;
194
- /** Change the title of the button when fullscreen is on, default Exit Full Screen */
195
- titleCancel?: string | undefined;
196
- /** Force separate button to detach from zoom buttons, default false */
197
- forceSeparateButton?: boolean | undefined;
198
- /** Force use of pseudo full screen even if full screen API is available, default false */
199
- forcePseudoFullscreen?: boolean | undefined;
200
- /** Use pseudo fullscreen */
201
- pseudoFullscreen?: boolean | undefined;
202
- /** Dom element to render in full screen, false by default, fallback to map._container */
203
- fullscreenElement?: false | HTMLElement | undefined;
204
- };
205
-
206
- type DrawToolsProps = {
207
- position?: ControlPosition | undefined;
208
- handleOnCreated?: (v: void) => void;
209
- handleOnDeleted?: (v: void) => void;
210
- draw?: drawType;
211
- };
212
- type drawType = {
213
- polyline?: boolean;
214
- polygon?: boolean;
215
- rectangle?: boolean;
216
- circle?: boolean;
217
- marker?: boolean;
218
- circlemarker?: boolean;
219
- };
220
-
221
- type MapsProps = {
222
- MapContainerProps?: MapContainerProps;
223
- center?: LatLngTuple;
224
- fullscreen?: MapFullscreenControlProps | boolean;
225
- centerActiveArea?: CenterActiveAreaControlProps | boolean;
226
- drawTools?: DrawToolsProps | boolean;
227
- minZoom?: number;
228
- maxZoom?: number;
229
- zoom?: number;
230
- data?: Location[];
231
- };
232
-
233
- declare const App: React$1.FC<AppProps>;
234
- type AppProps = MapsProps & {
235
- onClose: (() => void);
236
- onSave: ((points: Point[]) => void);
237
- customButtons?: {
238
- cancelButton?: HTMLElement;
239
- saveButton?: HTMLElement;
240
- };
241
- };
242
-
243
167
  interface MenuProps {
244
168
  containerRef: React$1.RefObject<HTMLElement>;
245
169
  className?: string;
@@ -403,4 +327,4 @@ interface Props {
403
327
  }
404
328
  declare const CrossIcon: React$1.FC<Props>;
405
329
 
406
- export { AuthDownloadLink, BarLoader, Button, Camera, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ConfirmDialog, ContextMenu, CrossIcon, Dialog, DialogActions, DialogContent$1 as DialogContent, DialogFooter, DialogHeader, DialogContent as DialogTitle, Divider, DomContainer, ErrorDialog, App as Map, Menu, MenuGroup, MenuItem, Popper, PopupMenu, Scanner, Selected, Spinner, TagInput, ToggleButton, Tooltip, WarningDialog };
330
+ export { AuthDownloadLink, BarLoader, Button, Camera, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ConfirmDialog, ContextMenu, CrossIcon, Dialog, DialogActions, DialogContent$1 as DialogContent, DialogFooter, DialogHeader, DialogContent as DialogTitle, Divider, DomContainer, ErrorDialog, Menu, MenuGroup, MenuItem, Popper, PopupMenu, Scanner, Selected, Spinner, TagInput, ToggleButton, Tooltip, WarningDialog };
@@ -110,17 +110,21 @@
110
110
  width: 100%;
111
111
  height: 90%;
112
112
  overflow: hidden;
113
+ display: flex;
114
+ flex-direction: column;
115
+ justify-content: center;
116
+ align-items: center;
113
117
  }
114
118
 
115
119
  .camera-controls {
116
120
  z-index: 999;
117
121
  display: flex;
118
122
  justify-content: center;
123
+ align-items: center;
119
124
  gap: 1rem;
120
- margin: 0 auto;
121
125
  padding: 1rem;
122
126
  width: 100%;
123
- position: fixed;
127
+ flex-direction: column;
124
128
  }
125
129
 
126
130
  .video-play-btn {
@@ -0,0 +1,110 @@
1
+ @use "../global.scss";
2
+
3
+ @mixin scanner($props: null, $options: null) {
4
+ $internal-options: global.$default-options;
5
+
6
+ $internal-props: (
7
+ bgColor: #ffffff,
8
+ fgColor: global.$color-grey-darker,
9
+ closeBtnColor: global.$color-grey,
10
+ closeBtnHoverColor: global.$color-blue,
11
+ closeBtnDisableColor: global.$color-blue-grey-lighter,
12
+ confirm: (
13
+ headerBgColor: global.$color-orange-dark,
14
+ headerFgColor: #ffffff,
15
+ bgColor: #ffffff,
16
+ fgColor: global.$color-grey-darker,
17
+ ),
18
+ error: (
19
+ headerBgColor: global.$color-red,
20
+ headerFgColor: #ffffff,
21
+ bgColor: #ffffff,
22
+ fgColor: global.$color-grey-darker,
23
+ ),
24
+ warning: (
25
+ headerBgColor: global.$color-grey,
26
+ headerFgColor: #ffffff,
27
+ bgColor: #ffffff,
28
+ fgColor: global.$color-grey-darker,
29
+ ),
30
+ );
31
+
32
+ $internal-props: global.safe-map-merge($internal-props, $props);
33
+ $internal-options: global.safe-map-merge($internal-options, $options);
34
+
35
+ .btn {
36
+ display: flex;
37
+ align-items: center;
38
+ justify-content: center;
39
+ padding: 0.5rem 1rem;
40
+ border: 1px solid transparent;
41
+ border-radius: 0.375rem;
42
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
43
+ font-size: 0.875rem;
44
+ font-weight: 500;
45
+ line-height: 1.25rem;
46
+ text-align: center;
47
+ text-transform: none;
48
+ white-space: nowrap;
49
+ vertical-align: middle;
50
+ user-select: none;
51
+ background-color: #4F46E5;
52
+ color: #fff;
53
+ cursor: pointer;
54
+ outline: none;
55
+ transition: background-color 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
56
+ }
57
+
58
+ .btn-default {
59
+ background-color: #4F46E5;
60
+ }
61
+
62
+ .btn-default:hover {
63
+ opacity: 0.8;
64
+ }
65
+
66
+ .select {
67
+ display: block;
68
+ width: 100%;
69
+ padding-left: 0.75rem;
70
+ color: #000;
71
+ padding-right: 2.5rem;
72
+ padding-top: 0.5rem;
73
+ padding-bottom: 0.5rem;
74
+ font-size: 1rem;
75
+ border-radius: 0.375rem;
76
+ }
77
+
78
+ /* DIALOG */
79
+ .dialog-header {
80
+ display: flex;
81
+ justify-content: space-between;
82
+ }
83
+
84
+ .dialog-header h4 {
85
+ margin: 0;
86
+ }
87
+
88
+ .dialog-mask {
89
+ overflow-x: hidden;
90
+ overflow-y: auto;
91
+ display: flex;
92
+ justify-content: center;
93
+ padding-top: 2.5rem;
94
+ padding-bottom: 5rem;
95
+ background-color: #0005;
96
+ position: fixed;
97
+ inset: 0;
98
+ }
99
+
100
+ .dialog-body {
101
+ display: flex;
102
+ flex-direction: column;
103
+ gap: 1.25rem;
104
+ padding: 1.25rem;
105
+ height: max-content;
106
+ background-color: white;
107
+ }
108
+
109
+ /* DIALOG */
110
+ }
@@ -9,7 +9,4 @@ declare module '*.scss' {
9
9
  }
10
10
 
11
11
  // Add specific CSS module declarations
12
- declare module 'leaflet/dist/leaflet.css';
13
- declare module 'leaflet-draw/dist/leaflet.draw.css';
14
- declare module 'leaflet.fullscreen/Control.FullScreen.css';
15
12
  declare module './css/center-active-control.css';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cortex-react-ui",
3
- "version": "0.2.9",
3
+ "version": "0.2.11",
4
4
  "description": "React UI",
5
5
  "author": "Anthony",
6
6
  "license": "MIT",
@@ -84,10 +84,13 @@
84
84
  "@testing-library/react": "^11.1.0",
85
85
  "@testing-library/user-event": "^12.1.10",
86
86
  "@types/jest": "^26.0.15",
87
+ "@types/leaflet": "^1.7.10",
88
+ "@types/leaflet-draw": "^1.0.11",
89
+ "@types/leaflet.fullscreen": "^1.6.1",
87
90
  "@types/node": "^22.10.5",
88
91
  "@types/react": "^17.0.0",
89
92
  "@types/react-dom": "^17.0.0",
90
- "@yudiel/react-qr-scanner": "^2.0.2",
93
+ "@yudiel/react-qr-scanner": "2.1.0",
91
94
  "css-loader": "5.2.6",
92
95
  "eslint-config-airbnb": "^18.2.1",
93
96
  "eslint-plugin-import": "^2.25.2",
@@ -100,7 +103,6 @@
100
103
  "react-dom": "^18.1.0",
101
104
  "react-icons": "^5.3.0",
102
105
  "react-scripts": "^5.0.1",
103
- "react-webcam": "^7.2.0",
104
106
  "rollup": "^2.60.2",
105
107
  "rollup-plugin-copy": "^3.4.0",
106
108
  "rollup-plugin-css-only": "^4.5.2",
@@ -119,6 +121,20 @@
119
121
  "url-loader": "^4.1.1"
120
122
  },
121
123
  "dependencies": {
122
- "@rollup/plugin-replace": "^5.0.2"
124
+ "@rollup/plugin-replace": "^5.0.2",
125
+ "leaflet": "^1.8.0",
126
+ "leaflet-active-area": "^1.2.1",
127
+ "leaflet-draw": "^1.0.4",
128
+ "leaflet.fullscreen": "^2.4.0",
129
+ "react-leaflet": "^4.0.0",
130
+ "react-leaflet-draw": "^0.20.4",
131
+ "react-webcam": "^7.2.0",
132
+ "screenfull": "^6.0.2"
133
+ },
134
+ "overrides": {
135
+ "@yudiel/react-qr-scanner": "2.1.0"
136
+ },
137
+ "resolutions": {
138
+ "@yudiel/react-qr-scanner": "2.1.0"
123
139
  }
124
140
  }
@@ -1,16 +0,0 @@
1
- interface IHttpOption {
2
- token?: string;
3
- headers?: KeyValue<string, string>[];
4
- }
5
- export declare class HttpResponse<T = any> {
6
- status: number;
7
- data: T | null;
8
- error: string | null;
9
- }
10
- export default class HttpService {
11
- static get: <T = any>(url: string, params: Record<string, any>, options?: IHttpOption) => Promise<HttpResponse<T>>;
12
- static post: <T = any>(url: string, data: any, options?: IHttpOption) => Promise<HttpResponse<T>>;
13
- static put: <T = any>(url: string, data: any, options?: IHttpOption) => Promise<HttpResponse<T>>;
14
- static delete: <T = any>(url: string, params: Record<string, any>, options?: IHttpOption) => Promise<HttpResponse<T>>;
15
- }
16
- export {};
@@ -1,16 +0,0 @@
1
- interface IHttpOption {
2
- token?: string;
3
- headers?: KeyValue<string, string>[];
4
- }
5
- export declare class HttpResponse<T = any> {
6
- status: number;
7
- data: T | null;
8
- error: string | null;
9
- }
10
- export default class HttpService {
11
- static get: <T = any>(url: string, params: Record<string, any>, options?: IHttpOption) => Promise<HttpResponse<T>>;
12
- static post: <T = any>(url: string, data: any, options?: IHttpOption) => Promise<HttpResponse<T>>;
13
- static put: <T = any>(url: string, data: any, options?: IHttpOption) => Promise<HttpResponse<T>>;
14
- static delete: <T = any>(url: string, params: Record<string, any>, options?: IHttpOption) => Promise<HttpResponse<T>>;
15
- }
16
- export {};
@@ -1,75 +0,0 @@
1
- .btn {
2
- display: flex;
3
- align-items: center;
4
- justify-content: center;
5
- padding: 0.5rem 1rem;
6
- border: 1px solid transparent;
7
- border-radius: 0.375rem;
8
- box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
9
- font-size: 0.875rem;
10
- font-weight: 500;
11
- line-height: 1.25rem;
12
- text-align: center;
13
- text-transform: none;
14
- white-space: nowrap;
15
- vertical-align: middle;
16
- user-select: none;
17
- background-color: #4F46E5;
18
- color: #fff;
19
- cursor: pointer;
20
- outline: none;
21
- transition: background-color 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
22
- }
23
-
24
- .btn-default {
25
- background-color: #4F46E5;
26
- }
27
-
28
- .btn-default:hover {
29
- opacity: 0.8;
30
- }
31
-
32
- .select {
33
- display: block;
34
- width: 100%;
35
- padding-left: 0.75rem;
36
- color: #000;
37
- padding-right: 2.5rem;
38
- padding-top: 0.5rem;
39
- padding-bottom: 0.5rem;
40
- font-size: 1rem;
41
- border-radius: 0.375rem;
42
- }
43
-
44
- /* DIALOG */
45
- .dialog-header {
46
- display: flex;
47
- justify-content: space-between;
48
- }
49
-
50
- .dialog-header h4 {
51
- margin: 0;
52
- }
53
-
54
- .dialog-mask {
55
- overflow-x: hidden;
56
- overflow-y: auto;
57
- display: flex;
58
- justify-content: center;
59
- padding-top: 2.5rem;
60
- padding-bottom: 5rem;
61
- background-color: #0005;
62
- position: fixed;
63
- inset: 0;
64
- }
65
-
66
- .dialog-body {
67
- display: flex;
68
- flex-direction: column;
69
- gap: 1.25rem;
70
- padding: 1.25rem;
71
- height: max-content;
72
- background-color: white;
73
- }
74
-
75
- /* DIALOG */