datastake-daf 0.6.785 → 0.6.787

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.
Files changed (54) hide show
  1. package/dist/components/index.js +674 -399
  2. package/dist/hooks/index.js +9 -1
  3. package/dist/pages/index.js +24 -16
  4. package/dist/services/index.js +10 -1
  5. package/dist/utils/index.js +28 -12
  6. package/package.json +1 -1
  7. package/src/@daf/core/components/Dashboard/Map/hook.js +1 -1
  8. package/src/@daf/core/components/Screens/Admin/AdminDashboard/components/UserStatistics/TopContributors/hook.js +0 -1
  9. package/src/@daf/core/components/Screens/Admin/AdminDashboard/components/UserStatistics/TopContributors/index.jsx +1 -1
  10. package/src/@daf/core/components/Screens/Admin/AdminDashboard/components/UserStatistics/UserGrowth/hook.js +1 -1
  11. package/src/@daf/core/components/Screens/Admin/AdminDashboard/components/UserStatistics/UserGrowth/index.jsx +1 -1
  12. package/src/@daf/core/components/Screens/Admin/AdminModals/AddUser/index.jsx +0 -1
  13. package/src/@daf/core/components/Screens/Admin/AdminModals/CombineLocation/index.jsx +1 -1
  14. package/src/@daf/core/components/Screens/Admin/AdminModals/NewAccount/index.jsx +1 -1
  15. package/src/@daf/core/components/Screens/Admin/AdminScreens/Dashboard.jsx +2 -2
  16. package/src/@daf/core/components/Screens/Admin/AdminScreens/Location.jsx +5 -5
  17. package/src/@daf/core/components/Screens/Admin/AdminScreens/Subjects.jsx +2 -2
  18. package/src/@daf/core/components/Screens/Admin/AdminTables/LocationTable/column.js +224 -0
  19. package/src/@daf/core/components/Screens/Admin/AdminTables/LocationTable/helper.js +65 -0
  20. package/src/@daf/core/components/Screens/Admin/AdminTables/LocationTable/index.jsx +23 -5
  21. package/src/@daf/core/components/Screens/Admin/AdminTables/SubjectsTable/columns.js +36 -36
  22. package/src/@daf/core/components/Screens/Admin/AdminTables/SubjectsTable/index.jsx +12 -21
  23. package/src/@daf/core/components/Screens/Admin/AdminViews/components/Users/helper.js +13 -8
  24. package/src/@daf/core/components/Screens/Admin/AdminViews/components/Users/index.jsx +2 -2
  25. package/src/@daf/core/components/Screens/Admin/adminRoutes.js +2 -2
  26. package/src/@daf/hooks/useGetQueryParams.js +3 -1
  27. package/src/@daf/pages/Events/Activities/columns.js +2 -2
  28. package/src/@daf/pages/Events/Activities/config.js +2 -2
  29. package/src/@daf/pages/Events/Incidents/columns.js +2 -2
  30. package/src/@daf/pages/Events/Incidents/config.js +2 -2
  31. package/src/@daf/pages/Locations/MineSite/columns.js +2 -2
  32. package/src/@daf/pages/Locations/columns.js +2 -2
  33. package/src/@daf/pages/SelfAssesment/components/AssociatedInformationTable/columns.js +180 -0
  34. package/src/@daf/pages/SelfAssesment/components/AssociatedInformationTable/config.js +0 -0
  35. package/src/@daf/pages/SelfAssesment/components/AssociatedInformationTable/index.jsx +27 -0
  36. package/src/@daf/pages/SelfAssesment/components/OrgInformationTable/columns.js +157 -0
  37. package/src/@daf/pages/SelfAssesment/components/OrgInformationTable/config.js +31 -0
  38. package/src/@daf/pages/SelfAssesment/components/OrgInformationTable/index.js +77 -0
  39. package/src/@daf/pages/SelfAssesment/components/ProductionSiteTable/columns.js +117 -0
  40. package/src/@daf/pages/SelfAssesment/components/ProductionSiteTable/index.jsx +54 -0
  41. package/src/@daf/pages/SelfAssesment/index.jsx +0 -0
  42. package/src/@daf/pages/Stakeholders/Operators/columns.js +2 -2
  43. package/src/@daf/services/AdminService.js +12 -3
  44. package/src/@daf/services/DashboardService.js +2 -1
  45. package/src/@daf/utils/filters.js +89 -89
  46. package/src/constants/locales/en/translation.js +3 -0
  47. package/src/constants/locales/fr/translation.js +1 -1
  48. package/src/constants/locales/sp/translation.js +1 -1
  49. package/build/favicon.ico +0 -0
  50. package/build/logo192.png +0 -0
  51. package/build/logo512.png +0 -0
  52. package/build/manifest.json +0 -25
  53. package/build/robots.txt +0 -3
  54. package/dist/style/datastake/mapbox-gl.css +0 -330
@@ -69,10 +69,10 @@ class AdminService extends BaseService {
69
69
  }
70
70
 
71
71
  getSubjects({ subject, params }) {
72
- return this.apiGet({
73
- url: `${subject}`,
72
+ return this.apiGet({
73
+ url: `/management/subjects/${subject}`,
74
74
  params,
75
- })
75
+ });
76
76
  }
77
77
 
78
78
  mergeSubjects({ subject, ...data }) {
@@ -81,6 +81,15 @@ class AdminService extends BaseService {
81
81
  data,
82
82
  })
83
83
  }
84
+ getUserGrowth(activeFilter) {
85
+ return this.apiGet({
86
+ url: `/accounts/dashboard/user-growth`,
87
+ isUserManager: true,
88
+ params: { activeFilter },
89
+ });
90
+ }
91
+
92
+
84
93
  }
85
94
 
86
95
  export default createLazyService(AdminService);
@@ -26,4 +26,5 @@ class DashboardService extends BaseService {
26
26
  }
27
27
  }
28
28
 
29
- export default createLazyService(DashboardService);
29
+ export default createLazyService(DashboardService);
30
+
@@ -1,102 +1,102 @@
1
1
  export const defaultFilterKeys = ["search", "sortDir", "sortBy", "timeframe", "activeTab"];
2
-
3
2
  function hasJsonStructure(str) {
4
- if (typeof str !== "string") return false;
5
- try {
6
- const result = JSON.parse(str);
7
- const type = Object.prototype.toString.call(result);
8
- return type === "[object Object]" || type === "[object Array]";
9
- } catch (err) {
10
- return false;
11
- }
3
+ if (typeof str !== "string") return false;
4
+ try {
5
+ const result = JSON.parse(str);
6
+ const type = Object.prototype.toString.call(result);
7
+ return type === "[object Object]" || type === "[object Array]";
8
+ } catch (err) {
9
+ return false;
10
+ }
12
11
  }
13
-
14
12
  export const getDefaultActiveFilters = (
15
- params,
16
- selectFiltersConfig,
17
- defaultPageSize,
18
- defaultFilters = {},
19
- doPagination,
13
+ params,
14
+ selectFiltersConfig,
15
+ defaultPageSize,
16
+ defaultFilters = {},
17
+ doPagination,
20
18
  ) => {
21
- const o = {};
22
-
23
- defaultFilterKeys.forEach((k) => {
24
- if (params.has(k)) {
25
- if (hasJsonStructure(params.get(k))) {
26
- o[k] = JSON.parse(params.get(k));
27
- } else {
28
- o[k] = params.get(k);
29
- }
30
- } else if (defaultFilters[k]) {
31
- if (hasJsonStructure(defaultFilters[k])) {
32
- o[k] = JSON.parse(defaultFilters[k]);
33
- } else {
34
- o[k] = defaultFilters[k];
35
- }
36
- }
37
- });
38
-
39
- if (params.has("searchParams")) {
40
- try {
41
- o.searchParams = JSON.parse(params.get("searchParams"));
42
- } catch (e) {
43
- o.searchParams = params.get("searchParams").split(",");
44
- }
45
- }
46
-
47
- if (doPagination) {
48
- o.page = Number(params.get("page")) || 1;
49
- o.pageSize = Number(params.get("pageSize")) || defaultPageSize;
50
- }
51
-
52
- Object.keys(selectFiltersConfig).forEach((k) => {
53
- if (params.has(k)) {
54
- if (hasJsonStructure(params.get(k))) {
55
- o[k] = JSON.parse(params.get(k));
56
- } else {
57
- o[k] = params.get(k);
58
- }
59
- }
60
- });
61
-
62
- return o;
19
+ const o = {};
20
+ defaultFilterKeys.forEach((k) => {
21
+ if (params.has(k)) {
22
+ if (hasJsonStructure(params.get(k))) {
23
+ o[k] = JSON.parse(params.get(k));
24
+ } else {
25
+ o[k] = params.get(k);
26
+ }
27
+ } else if (defaultFilters[k]) {
28
+ if (hasJsonStructure(defaultFilters[k])) {
29
+ o[k] = JSON.parse(defaultFilters[k]);
30
+ } else {
31
+ o[k] = defaultFilters[k];
32
+ }
33
+ }
34
+ });
35
+ if (params.has("searchParams")) {
36
+ try {
37
+ o.searchParams = JSON.parse(params.get("searchParams"));
38
+ } catch (e) {
39
+ o.searchParams = params.get("searchParams").split(",");
40
+ }
41
+ }
42
+ if (doPagination) {
43
+ o.page = Number(params.get("page")) || 1;
44
+ o.pageSize = Number(params.get("pageSize")) || defaultPageSize;
45
+ }
46
+ Object.keys(selectFiltersConfig).forEach((k) => {
47
+ if (params.has(k)) {
48
+ if (hasJsonStructure(params.get(k))) {
49
+ o[k] = JSON.parse(params.get(k));
50
+ } else {
51
+ o[k] = params.get(k);
52
+ }
53
+ }
54
+ });
55
+ return o;
63
56
  };
64
-
65
57
  const NEW_PAGINATION_APPS = ["nashiriki"];
66
58
  export const filterParams = (value, module) => {
67
- const { activeFilters, ...rest } = value;
68
-
69
- const { page, pageSize, sortDir, sortBy, search, searchParams, ...filters } =
70
- activeFilters || {};
59
+ const { activeFilters, ...rest } = value;
60
+ const { page, pageSize, sortDir, sortBy, search, searchParams, ...filters } =
61
+ activeFilters || {};
62
+ const params = {};
63
+ // Use skip and take inside pagination object
64
+ // Calculate skip from page number (page 1 = skip 1, page 2 = skip 21, etc.)
65
+ params.pagination = {
66
+ skip: page ? ((page - 1) * (pageSize || 20) + 1) : 1,
67
+ take: pageSize || 20,
68
+ };
69
+ if (search && searchParams) {
70
+ params.search = JSON.stringify({
71
+ qs: search,
72
+ fields: searchParams,
73
+ });
74
+ }
75
+ if (sortDir && sortBy) {
76
+ params.sort = JSON.stringify({
77
+ dir: sortDir,
78
+ by: sortBy,
79
+ });
80
+ }
81
+ if (Object.keys(filters).length) {
82
+ if (value.sourceId && value.sourceId === "overview") {
83
+ const { activeTab, ...restFilters } = filters;
84
+ Object.assign(params, restFilters);
85
+ if (activeTab !== undefined) {
86
+ params.tab = activeTab;
87
+ }
88
+ } else {
89
+ const { authorId, activeTab, ...restFilters } = filters;
90
+ Object.assign(params, restFilters);
91
+ if (activeTab !== undefined) {
92
+ params.tab = activeTab;
93
+ }
94
+ }
95
+ }
96
+ return { ...rest, ...params };
97
+ };
71
98
 
72
- const params = {};
73
-
74
- params.pagination = JSON.stringify({
75
- [NEW_PAGINATION_APPS.includes(module) ? "skip" : "page"]: page,
76
- [NEW_PAGINATION_APPS.includes(module) ? "take" : "pageSize"]: pageSize,
77
- });
78
99
 
79
- if (search && searchParams) {
80
- params.search = JSON.stringify({
81
- qs: search,
82
- fields: searchParams,
83
- });
84
- }
85
100
 
86
- if (sortDir && sortBy) {
87
- params.sort = JSON.stringify({
88
- dir: sortDir,
89
- by: sortBy,
90
- });
91
- }
92
101
 
93
- if (Object.keys(filters).length) {
94
- if (value.sourceId && value.sourceId === "overview") {
95
- params.filters = JSON.stringify(filters);
96
- } else {
97
- params.filters = JSON.stringify({ ...filters, authorId: undefined });
98
- }
99
- }
100
102
 
101
- return { ...rest, ...params };
102
- };
@@ -1,4 +1,7 @@
1
1
  const en = {
2
+ "sbg-admin::remove-user-title":"Remove User Title",
3
+ "sbg-admin::remove-user-body":"Remove User Body",
4
+ "add-account":"Add Account",
2
5
  "Site": "Site",
3
6
  "Production Sites": "Production Sites",
4
7
  "Type of account": "Type of account",
@@ -420,7 +420,7 @@ const fr = {
420
420
  Documentation: "Documents",
421
421
  "Edit project": "Modifier le projet",
422
422
  Name: "Nom",
423
- Type: "Tapez",
423
+ Type: "Type",
424
424
  type: "Type",
425
425
  Province: "Province",
426
426
  Territory: "Territoire",
@@ -233,7 +233,7 @@ const sp = {
233
233
  "Documentation": "Documentos",
234
234
  "Edit project": "Modificar proyecto",
235
235
  "Name": "Nombre",
236
- "Type": "Escribe",
236
+ "Type": "Tipo",
237
237
  "type": "Tipo",
238
238
  "Province": "Provincia",
239
239
  "Territory": "Territorio",
package/build/favicon.ico DELETED
Binary file
package/build/logo192.png DELETED
Binary file
package/build/logo512.png DELETED
Binary file
@@ -1,25 +0,0 @@
1
- {
2
- "short_name": "React App",
3
- "name": "Create React App Sample",
4
- "icons": [
5
- {
6
- "src": "favicon.ico",
7
- "sizes": "64x64 32x32 24x24 16x16",
8
- "type": "image/x-icon"
9
- },
10
- {
11
- "src": "logo192.png",
12
- "type": "image/png",
13
- "sizes": "192x192"
14
- },
15
- {
16
- "src": "logo512.png",
17
- "type": "image/png",
18
- "sizes": "512x512"
19
- }
20
- ],
21
- "start_url": ".",
22
- "display": "standalone",
23
- "theme_color": "#000000",
24
- "background_color": "#ffffff"
25
- }
package/build/robots.txt DELETED
@@ -1,3 +0,0 @@
1
- # https://www.robotstxt.org/robotstxt.html
2
- User-agent: *
3
- Disallow:
@@ -1,330 +0,0 @@
1
- /* Isolated Mapbox GL CSS - Scoped to prevent Leaflet conflicts */
2
-
3
- /* Mapbox GL Core Styles - Scoped with .mapbox-gl-scope */
4
- .mapbox-gl-scope .mapboxgl-map {
5
- font: 12px/20px Helvetica Neue, Arial, Helvetica, sans-serif;
6
- overflow: hidden;
7
- position: relative;
8
- -webkit-tap-highlight-color: rgb(0 0 0/0);
9
- }
10
-
11
- .mapbox-gl-scope .mapboxgl-canvas {
12
- left: 0;
13
- position: absolute;
14
- top: 0;
15
- }
16
-
17
- .mapbox-gl-scope .mapboxgl-map:-webkit-full-screen {
18
- height: 100%;
19
- width: 100%;
20
- }
21
-
22
- .mapbox-gl-scope .mapboxgl-canary {
23
- background-color: salmon;
24
- }
25
-
26
- .mapbox-gl-scope .mapboxgl-canvas-container.mapboxgl-interactive,
27
- .mapbox-gl-scope .mapboxgl-ctrl-group button.mapboxgl-ctrl-compass {
28
- cursor: grab;
29
- -webkit-user-select: none;
30
- user-select: none;
31
- }
32
-
33
- .mapbox-gl-scope .mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer {
34
- cursor: pointer;
35
- }
36
-
37
- .mapbox-gl-scope .mapboxgl-canvas-container.mapboxgl-interactive:active,
38
- .mapbox-gl-scope .mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active {
39
- cursor: grabbing;
40
- }
41
-
42
- .mapbox-gl-scope .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,
43
- .mapbox-gl-scope .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas {
44
- touch-action: pan-x pan-y;
45
- }
46
-
47
- .mapbox-gl-scope .mapboxgl-canvas-container.mapboxgl-touch-drag-pan,
48
- .mapbox-gl-scope .mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas {
49
- touch-action: pinch-zoom;
50
- }
51
-
52
- .mapbox-gl-scope .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,
53
- .mapbox-gl-scope .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas {
54
- touch-action: none;
55
- }
56
-
57
- /* Control positioning */
58
- .mapbox-gl-scope .mapboxgl-ctrl-bottom,
59
- .mapbox-gl-scope .mapboxgl-ctrl-bottom-left,
60
- .mapbox-gl-scope .mapboxgl-ctrl-bottom-right,
61
- .mapbox-gl-scope .mapboxgl-ctrl-left,
62
- .mapbox-gl-scope .mapboxgl-ctrl-right,
63
- .mapbox-gl-scope .mapboxgl-ctrl-top,
64
- .mapbox-gl-scope .mapboxgl-ctrl-top-left,
65
- .mapbox-gl-scope .mapboxgl-ctrl-top-right {
66
- pointer-events: none;
67
- position: absolute;
68
- z-index: 2;
69
- }
70
-
71
- .mapbox-gl-scope .mapboxgl-ctrl-top-left {
72
- left: 0;
73
- top: 0;
74
- }
75
-
76
- .mapbox-gl-scope .mapboxgl-ctrl-top {
77
- left: 50%;
78
- top: 0;
79
- transform: translateX(-50%);
80
- }
81
-
82
- .mapbox-gl-scope .mapboxgl-ctrl-top-right {
83
- right: 0;
84
- top: 0;
85
- }
86
-
87
- .mapbox-gl-scope .mapboxgl-ctrl-right {
88
- right: 0;
89
- top: 50%;
90
- transform: translateY(-50%);
91
- }
92
-
93
- .mapbox-gl-scope .mapboxgl-ctrl-bottom-right {
94
- bottom: 0;
95
- right: 0;
96
- }
97
-
98
- .mapbox-gl-scope .mapboxgl-ctrl-bottom {
99
- bottom: 0;
100
- left: 50%;
101
- transform: translateX(-50%);
102
- }
103
-
104
- .mapbox-gl-scope .mapboxgl-ctrl-bottom-left {
105
- bottom: 0;
106
- left: 0;
107
- }
108
-
109
- .mapbox-gl-scope .mapboxgl-ctrl-left {
110
- left: 0;
111
- top: 50%;
112
- transform: translateY(-50%);
113
- }
114
-
115
- .mapbox-gl-scope .mapboxgl-ctrl {
116
- clear: both;
117
- pointer-events: auto;
118
- transform: translate(0);
119
- }
120
-
121
- .mapbox-gl-scope .mapboxgl-ctrl-top-left .mapboxgl-ctrl {
122
- float: left;
123
- margin: 10px 0 0 10px;
124
- }
125
-
126
- .mapbox-gl-scope .mapboxgl-ctrl-top .mapboxgl-ctrl {
127
- float: left;
128
- margin: 10px 0;
129
- }
130
-
131
- .mapbox-gl-scope .mapboxgl-ctrl-top-right .mapboxgl-ctrl {
132
- float: right;
133
- margin: 10px 10px 0 0;
134
- }
135
-
136
- .mapbox-gl-scope .mapboxgl-ctrl-bottom-right .mapboxgl-ctrl,
137
- .mapbox-gl-scope .mapboxgl-ctrl-right .mapboxgl-ctrl {
138
- float: right;
139
- margin: 0 10px 10px 0;
140
- }
141
-
142
- .mapbox-gl-scope .mapboxgl-ctrl-bottom .mapboxgl-ctrl {
143
- float: left;
144
- margin: 10px 0;
145
- }
146
-
147
- .mapbox-gl-scope .mapboxgl-ctrl-bottom-left .mapboxgl-ctrl,
148
- .mapbox-gl-scope .mapboxgl-ctrl-left .mapboxgl-ctrl {
149
- float: left;
150
- margin: 0 0 10px 10px;
151
- }
152
-
153
- /* Control group styling */
154
- .mapbox-gl-scope .mapboxgl-ctrl-group {
155
- background: #fff;
156
- border-radius: 4px;
157
- }
158
-
159
- .mapbox-gl-scope .mapboxgl-ctrl-group:not(:empty) {
160
- box-shadow: 0 0 0 2px #0000001a;
161
- }
162
-
163
- .mapbox-gl-scope .mapboxgl-ctrl-group button {
164
- background-color: initial;
165
- border: 0;
166
- box-sizing: border-box;
167
- cursor: pointer;
168
- display: block;
169
- height: 29px;
170
- outline: none;
171
- overflow: hidden;
172
- padding: 0;
173
- width: 29px;
174
- }
175
-
176
- .mapbox-gl-scope .mapboxgl-ctrl-group button+button {
177
- border-top: 1px solid #ddd;
178
- }
179
-
180
- .mapbox-gl-scope .mapboxgl-ctrl button .mapboxgl-ctrl-icon {
181
- background-position: 50%;
182
- background-repeat: no-repeat;
183
- display: block;
184
- height: 100%;
185
- width: 100%;
186
- }
187
-
188
- .mapbox-gl-scope .mapboxgl-ctrl-attrib-button:focus,
189
- .mapbox-gl-scope .mapboxgl-ctrl-group button:focus {
190
- box-shadow: 0 0 2px 2px #0096ff;
191
- }
192
-
193
- .mapbox-gl-scope .mapboxgl-ctrl button:disabled {
194
- cursor: not-allowed;
195
- }
196
-
197
- .mapbox-gl-scope .mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon {
198
- opacity: .25;
199
- }
200
-
201
- .mapbox-gl-scope .mapboxgl-ctrl-group button:first-child {
202
- border-radius: 4px 4px 0 0;
203
- }
204
-
205
- .mapbox-gl-scope .mapboxgl-ctrl-group button:last-child {
206
- border-radius: 0 0 4px 4px;
207
- }
208
-
209
- .mapbox-gl-scope .mapboxgl-ctrl-group button:only-child {
210
- border-radius: inherit;
211
- }
212
-
213
- .mapbox-gl-scope .mapboxgl-ctrl button:not(:disabled):hover {
214
- background-color: #0000000d;
215
- }
216
-
217
- /* Marker styles */
218
- .mapbox-gl-scope .mapboxgl-marker {
219
- position: absolute;
220
- z-index: 1;
221
- }
222
-
223
- .mapbox-gl-scope .mapboxgl-marker svg {
224
- display: block;
225
- }
226
-
227
- /* Popup styles */
228
- .mapbox-gl-scope .mapboxgl-popup {
229
- position: absolute;
230
- text-align: center;
231
- margin-bottom: 20px;
232
- }
233
-
234
- .mapbox-gl-scope .mapboxgl-popup-content-wrapper {
235
- padding: 1px;
236
- text-align: left;
237
- border-radius: 12px;
238
- }
239
-
240
- .mapbox-gl-scope .mapboxgl-popup-content {
241
- margin: 13px 24px 13px 20px;
242
- line-height: 1.3;
243
- font-size: 13px;
244
- min-height: 1px;
245
- }
246
-
247
- .mapbox-gl-scope .mapboxgl-popup-content p {
248
- margin: 17px 0;
249
- }
250
-
251
- .mapbox-gl-scope .mapboxgl-popup-tip-container {
252
- width: 40px;
253
- height: 20px;
254
- position: absolute;
255
- left: 50%;
256
- margin-top: -1px;
257
- margin-left: -20px;
258
- overflow: hidden;
259
- pointer-events: none;
260
- }
261
-
262
- .mapbox-gl-scope .mapboxgl-popup-tip {
263
- width: 17px;
264
- height: 17px;
265
- padding: 1px;
266
- margin: -10px auto 0;
267
- pointer-events: auto;
268
- -webkit-transform: rotate(45deg);
269
- -moz-transform: rotate(45deg);
270
- -ms-transform: rotate(45deg);
271
- transform: rotate(45deg);
272
- }
273
-
274
- .mapbox-gl-scope .mapboxgl-popup-content-wrapper,
275
- .mapbox-gl-scope .mapboxgl-popup-tip {
276
- background: white;
277
- color: #333;
278
- box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4);
279
- }
280
-
281
- .mapbox-gl-scope .mapboxgl-popup-close-button {
282
- position: absolute;
283
- top: 0;
284
- right: 0;
285
- border: none;
286
- text-align: center;
287
- width: 24px;
288
- height: 24px;
289
- font: 16px/24px Tahoma, Verdana, sans-serif;
290
- color: #757575;
291
- text-decoration: none;
292
- background: transparent;
293
- }
294
-
295
- .mapbox-gl-scope .mapboxgl-popup-close-button:hover,
296
- .mapbox-gl-scope .mapboxgl-popup-close-button:focus {
297
- color: #585858;
298
- }
299
-
300
- /* Attribution */
301
- .mapbox-gl-scope .mapboxgl-ctrl-attribution {
302
- background: #fff;
303
- background: rgba(255, 255, 255, 0.8);
304
- margin: 0;
305
- }
306
-
307
- .mapbox-gl-scope .mapboxgl-ctrl-attribution,
308
- .mapbox-gl-scope .mapboxgl-ctrl-scale-line {
309
- padding: 0 5px;
310
- color: #333;
311
- line-height: 1.4;
312
- }
313
-
314
- .mapbox-gl-scope .mapboxgl-ctrl-attribution a {
315
- text-decoration: none;
316
- }
317
-
318
- .mapbox-gl-scope .mapboxgl-ctrl-attribution a:hover,
319
- .mapbox-gl-scope .mapboxgl-ctrl-attribution a:focus {
320
- text-decoration: underline;
321
- }
322
-
323
- /* Hide attribution by default */
324
- .mapbox-gl-scope .mapboxgl-ctrl-attribution {
325
- display: none !important;
326
- }
327
-
328
- .mapbox-gl-scope .mapboxgl-ctrl-logo {
329
- display: none !important;
330
- }