@overmap-ai/core 1.0.34 → 1.0.35-projects-licensing.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/overmap-core.js +139 -60
- package/dist/overmap-core.js.map +1 -1
- package/dist/overmap-core.umd.cjs +139 -60
- package/dist/overmap-core.umd.cjs.map +1 -1
- package/dist/sdk/services/MainService.d.ts +2 -1
- package/dist/store/slices/categorySlice.d.ts +1 -0
- package/dist/store/slices/index.d.ts +1 -0
- package/dist/store/slices/issueSlice.d.ts +1 -0
- package/dist/store/slices/licenseSlice.d.ts +18 -0
- package/dist/store/slices/projectFileSlice.d.ts +1 -0
- package/dist/store/slices/workspaceSlice.d.ts +1 -0
- package/dist/store/store.d.ts +4 -1
- package/dist/typings/models/base.d.ts +4 -0
- package/dist/typings/models/index.d.ts +1 -0
- package/dist/typings/models/license.d.ts +10 -0
- package/package.json +1 -1
package/dist/overmap-core.js
CHANGED
|
@@ -626,15 +626,15 @@ const wrapMigration = (migrator) => (state) => {
|
|
|
626
626
|
};
|
|
627
627
|
const migrations = [initialVersioning, signOut, signOut, createOutboxState];
|
|
628
628
|
const manifest = Object.fromEntries(migrations.map((migration2, i) => [i, wrapMigration(migration2)]));
|
|
629
|
-
const initialState$
|
|
629
|
+
const initialState$m = {
|
|
630
630
|
accessToken: "",
|
|
631
631
|
refreshToken: "",
|
|
632
632
|
isLoggedIn: false
|
|
633
633
|
};
|
|
634
634
|
const authSlice = createSlice({
|
|
635
635
|
name: "auth",
|
|
636
|
-
initialState: initialState$
|
|
637
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$
|
|
636
|
+
initialState: initialState$m,
|
|
637
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$m)),
|
|
638
638
|
reducers: {
|
|
639
639
|
setTokens: (state, action) => {
|
|
640
640
|
state.accessToken = action.payload.accessToken;
|
|
@@ -1338,7 +1338,7 @@ const getLocalRelativeDateString = memoize((date, min, max) => {
|
|
|
1338
1338
|
return getLocalDateString(date);
|
|
1339
1339
|
return relative.format(days, "days");
|
|
1340
1340
|
});
|
|
1341
|
-
const initialState$
|
|
1341
|
+
const initialState$l = {
|
|
1342
1342
|
categories: {},
|
|
1343
1343
|
usedCategoryColors: [],
|
|
1344
1344
|
categoryVisibility: {
|
|
@@ -1348,8 +1348,8 @@ const initialState$k = {
|
|
|
1348
1348
|
};
|
|
1349
1349
|
const categorySlice = createSlice({
|
|
1350
1350
|
name: "categories",
|
|
1351
|
-
initialState: initialState$
|
|
1352
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$
|
|
1351
|
+
initialState: initialState$l,
|
|
1352
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$l)),
|
|
1353
1353
|
reducers: {
|
|
1354
1354
|
setCategories: (state, action) => {
|
|
1355
1355
|
if (!Array.isArray(action.payload))
|
|
@@ -1482,13 +1482,13 @@ const selectHiddenCategoryCount = (state) => {
|
|
|
1482
1482
|
return hiddenCategoryCount;
|
|
1483
1483
|
};
|
|
1484
1484
|
const categoryReducer = categorySlice.reducer;
|
|
1485
|
-
const initialState$
|
|
1485
|
+
const initialState$k = {
|
|
1486
1486
|
components: {}
|
|
1487
1487
|
};
|
|
1488
1488
|
const componentSlice = createSlice({
|
|
1489
1489
|
name: "components",
|
|
1490
|
-
initialState: initialState$
|
|
1491
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$
|
|
1490
|
+
initialState: initialState$k,
|
|
1491
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$k)),
|
|
1492
1492
|
reducers: {
|
|
1493
1493
|
addComponent: (state, action) => {
|
|
1494
1494
|
state.components[action.payload.offline_id] = action.payload;
|
|
@@ -1600,13 +1600,13 @@ const {
|
|
|
1600
1600
|
removeAllComponentsOfType
|
|
1601
1601
|
} = componentSlice.actions;
|
|
1602
1602
|
const componentReducer = componentSlice.reducer;
|
|
1603
|
-
const initialState$
|
|
1603
|
+
const initialState$j = {
|
|
1604
1604
|
completionsByComponentId: {}
|
|
1605
1605
|
};
|
|
1606
1606
|
const componentStageCompletionSlice = createSlice({
|
|
1607
1607
|
name: "componentStageCompletions",
|
|
1608
|
-
initialState: initialState$
|
|
1609
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$
|
|
1608
|
+
initialState: initialState$j,
|
|
1609
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$j)),
|
|
1610
1610
|
reducers: {
|
|
1611
1611
|
addStageCompletion: (state, action) => {
|
|
1612
1612
|
let stageToCompletionDateMapping = state.completionsByComponentId[action.payload.component];
|
|
@@ -1657,13 +1657,13 @@ const selectCompletedStageIdsForComponent = (component) => (state) => {
|
|
|
1657
1657
|
return Object.keys(state.componentStageCompletionReducer.completionsByComponentId[component.offline_id] ?? {});
|
|
1658
1658
|
};
|
|
1659
1659
|
const componentStageCompletionReducer = componentStageCompletionSlice.reducer;
|
|
1660
|
-
const initialState$
|
|
1660
|
+
const initialState$i = {
|
|
1661
1661
|
stages: {}
|
|
1662
1662
|
};
|
|
1663
1663
|
const componentStageSlice = createSlice({
|
|
1664
1664
|
name: "componentStages",
|
|
1665
|
-
initialState: initialState$
|
|
1666
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$
|
|
1665
|
+
initialState: initialState$i,
|
|
1666
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$i)),
|
|
1667
1667
|
reducers: {
|
|
1668
1668
|
addStages: (state, action) => {
|
|
1669
1669
|
Object.assign(state.stages, toOfflineIdRecord(action.payload));
|
|
@@ -1723,14 +1723,14 @@ const selectStagesFromStageIds = restructureCreateSelectorWithArgs(
|
|
|
1723
1723
|
);
|
|
1724
1724
|
const { addStages, updateStages, removeStages } = componentStageSlice.actions;
|
|
1725
1725
|
const componentStageReducer = componentStageSlice.reducer;
|
|
1726
|
-
const initialState$
|
|
1726
|
+
const initialState$h = {
|
|
1727
1727
|
componentTypes: {},
|
|
1728
1728
|
hiddenComponentTypeIds: {}
|
|
1729
1729
|
};
|
|
1730
1730
|
const componentTypeSlice = createSlice({
|
|
1731
1731
|
name: "componentTypes",
|
|
1732
|
-
initialState: initialState$
|
|
1733
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$
|
|
1732
|
+
initialState: initialState$h,
|
|
1733
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$h)),
|
|
1734
1734
|
reducers: {
|
|
1735
1735
|
addComponentType: (state, action) => {
|
|
1736
1736
|
state.componentTypes[action.payload.offline_id] = action.payload;
|
|
@@ -1789,13 +1789,13 @@ const selectComponentTypesByName = restructureCreateSelectorWithArgs(
|
|
|
1789
1789
|
const selectHiddenComponentTypeIds = (state) => state.componentTypeReducer.hiddenComponentTypeIds;
|
|
1790
1790
|
const { addComponentType, setComponentTypes, toggleComponentTypeVisibility, deleteComponentType } = componentTypeSlice.actions;
|
|
1791
1791
|
const componentTypeReducer = componentTypeSlice.reducer;
|
|
1792
|
-
const initialState$
|
|
1792
|
+
const initialState$g = {
|
|
1793
1793
|
workspaces: {},
|
|
1794
1794
|
activeWorkspaceId: null
|
|
1795
1795
|
};
|
|
1796
1796
|
const workspaceSlice = createSlice({
|
|
1797
1797
|
name: "workspace",
|
|
1798
|
-
initialState: initialState$
|
|
1798
|
+
initialState: initialState$g,
|
|
1799
1799
|
// The `reducers` field lets us define reducers and generate associated actions
|
|
1800
1800
|
reducers: {
|
|
1801
1801
|
setWorkspaces: (state, action) => {
|
|
@@ -1852,7 +1852,7 @@ const selectPermittedWorkspaceIds = createSelector(
|
|
|
1852
1852
|
);
|
|
1853
1853
|
const workspaceReducer = workspaceSlice.reducer;
|
|
1854
1854
|
const maxRecentIssues = 10;
|
|
1855
|
-
const initialState$
|
|
1855
|
+
const initialState$f = {
|
|
1856
1856
|
issues: {},
|
|
1857
1857
|
attachments: {},
|
|
1858
1858
|
comments: {},
|
|
@@ -1864,9 +1864,9 @@ const initialState$e = {
|
|
|
1864
1864
|
};
|
|
1865
1865
|
const issueSlice = createSlice({
|
|
1866
1866
|
name: "issues",
|
|
1867
|
-
initialState: initialState$
|
|
1867
|
+
initialState: initialState$f,
|
|
1868
1868
|
extraReducers: (builder) => builder.addCase("RESET", (state) => {
|
|
1869
|
-
Object.assign(state, initialState$
|
|
1869
|
+
Object.assign(state, initialState$f);
|
|
1870
1870
|
}),
|
|
1871
1871
|
reducers: {
|
|
1872
1872
|
setIssues: (state, action) => {
|
|
@@ -2197,15 +2197,15 @@ const selectRecentIssuesAsSearchResults = createSelector(
|
|
|
2197
2197
|
}
|
|
2198
2198
|
);
|
|
2199
2199
|
const issueReducer = issueSlice.reducer;
|
|
2200
|
-
const initialState$
|
|
2200
|
+
const initialState$e = {
|
|
2201
2201
|
s3Urls: {}
|
|
2202
2202
|
};
|
|
2203
2203
|
const msPerHour = 1e3 * 60 * 60;
|
|
2204
2204
|
const msPerWeek = msPerHour * 24 * 7;
|
|
2205
2205
|
const fileSlice = createSlice({
|
|
2206
2206
|
name: "file",
|
|
2207
|
-
initialState: initialState$
|
|
2208
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$
|
|
2207
|
+
initialState: initialState$e,
|
|
2208
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$e)),
|
|
2209
2209
|
reducers: {
|
|
2210
2210
|
setUploadUrl: (state, action) => {
|
|
2211
2211
|
const { url, fields, sha1 } = action.payload;
|
|
@@ -2232,7 +2232,7 @@ const selectUploadUrl = (sha1) => (state) => {
|
|
|
2232
2232
|
return url;
|
|
2233
2233
|
};
|
|
2234
2234
|
const fileReducer = fileSlice.reducer;
|
|
2235
|
-
const initialState$
|
|
2235
|
+
const initialState$d = {
|
|
2236
2236
|
// TODO: Change first MapStyle.SATELLITE to MaptStyle.None when project creation map is fixed
|
|
2237
2237
|
mapStyle: MapStyle.SATELLITE,
|
|
2238
2238
|
showTooltips: false,
|
|
@@ -2240,8 +2240,8 @@ const initialState$c = {
|
|
|
2240
2240
|
};
|
|
2241
2241
|
const mapSlice = createSlice({
|
|
2242
2242
|
name: "map",
|
|
2243
|
-
initialState: initialState$
|
|
2244
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$
|
|
2243
|
+
initialState: initialState$d,
|
|
2244
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$d)),
|
|
2245
2245
|
reducers: {
|
|
2246
2246
|
setMapStyle: (state, action) => {
|
|
2247
2247
|
state.mapStyle = action.payload;
|
|
@@ -2283,7 +2283,11 @@ var VerificationCodeType = /* @__PURE__ */ ((VerificationCodeType2) => {
|
|
|
2283
2283
|
VerificationCodeType2[VerificationCodeType2["RESET_PASSWORD"] = 10] = "RESET_PASSWORD";
|
|
2284
2284
|
return VerificationCodeType2;
|
|
2285
2285
|
})(VerificationCodeType || {});
|
|
2286
|
-
|
|
2286
|
+
var LicenseLevel = /* @__PURE__ */ ((LicenseLevel2) => {
|
|
2287
|
+
LicenseLevel2[LicenseLevel2["PRO"] = 0] = "PRO";
|
|
2288
|
+
return LicenseLevel2;
|
|
2289
|
+
})(LicenseLevel || {});
|
|
2290
|
+
const initialState$c = {
|
|
2287
2291
|
users: {},
|
|
2288
2292
|
currentUser: {
|
|
2289
2293
|
id: 0,
|
|
@@ -2294,8 +2298,8 @@ const initialState$b = {
|
|
|
2294
2298
|
};
|
|
2295
2299
|
const userSlice = createSlice({
|
|
2296
2300
|
name: "users",
|
|
2297
|
-
initialState: initialState$
|
|
2298
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$
|
|
2301
|
+
initialState: initialState$c,
|
|
2302
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$c)),
|
|
2299
2303
|
reducers: {
|
|
2300
2304
|
setUsers: (state, action) => {
|
|
2301
2305
|
const usersMapping = {};
|
|
@@ -2357,13 +2361,13 @@ const selectUser = (userId) => (state) => {
|
|
|
2357
2361
|
const selectUsersAsMapping = (state) => state.userReducer.users;
|
|
2358
2362
|
const selectFavouriteProjects = (state) => state.userReducer.currentUser.profile.favourite_project_ids;
|
|
2359
2363
|
const userReducer = userSlice.reducer;
|
|
2360
|
-
const initialState$
|
|
2364
|
+
const initialState$b = {
|
|
2361
2365
|
organizationAccesses: {}
|
|
2362
2366
|
};
|
|
2363
2367
|
const organizationAccessSlice = createSlice({
|
|
2364
2368
|
name: "organizationAccess",
|
|
2365
|
-
initialState: initialState$
|
|
2366
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$
|
|
2369
|
+
initialState: initialState$b,
|
|
2370
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$b)),
|
|
2367
2371
|
reducers: {
|
|
2368
2372
|
setOrganizationAccesses: (state, action) => {
|
|
2369
2373
|
if (!Array.isArray(action.payload))
|
|
@@ -2426,14 +2430,14 @@ const selectOrganizationAccessUserMapping = (state) => {
|
|
|
2426
2430
|
return organizationAccesses;
|
|
2427
2431
|
};
|
|
2428
2432
|
const organizationAccessReducer = organizationAccessSlice.reducer;
|
|
2429
|
-
const initialState$
|
|
2433
|
+
const initialState$a = {
|
|
2430
2434
|
organizations: {},
|
|
2431
2435
|
activeOrganizationId: null
|
|
2432
2436
|
};
|
|
2433
2437
|
const organizationSlice = createSlice({
|
|
2434
2438
|
name: "organizations",
|
|
2435
|
-
initialState: initialState$
|
|
2436
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$
|
|
2439
|
+
initialState: initialState$a,
|
|
2440
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$a)),
|
|
2437
2441
|
reducers: {
|
|
2438
2442
|
setOrganizations: (state, action) => {
|
|
2439
2443
|
for (const org of action.payload) {
|
|
@@ -2525,14 +2529,14 @@ const createOfflineAction = (request2, baseUrl) => {
|
|
|
2525
2529
|
}
|
|
2526
2530
|
};
|
|
2527
2531
|
};
|
|
2528
|
-
const initialState$
|
|
2532
|
+
const initialState$9 = {
|
|
2529
2533
|
deletedRequests: [],
|
|
2530
2534
|
latestRetryTime: 0
|
|
2531
2535
|
};
|
|
2532
2536
|
const outboxSlice = createSlice({
|
|
2533
2537
|
name: "outbox",
|
|
2534
|
-
initialState: initialState$
|
|
2535
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$
|
|
2538
|
+
initialState: initialState$9,
|
|
2539
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$9)),
|
|
2536
2540
|
reducers: {
|
|
2537
2541
|
// enqueueActions is a reducer that does nothing but enqueue API request to the Redux Offline outbox
|
|
2538
2542
|
// Whenever an issue is being created, a reducer addIssue() is responsible for adding it to the offline store
|
|
@@ -2564,13 +2568,13 @@ const selectDeletedRequests = (state) => state.outboxReducer.deletedRequests;
|
|
|
2564
2568
|
const selectLatestRetryTime = (state) => state.outboxReducer.latestRetryTime;
|
|
2565
2569
|
const { enqueueRequest, markForDeletion, markAsDeleted, _setLatestRetryTime } = outboxSlice.actions;
|
|
2566
2570
|
const outboxReducer = outboxSlice.reducer;
|
|
2567
|
-
const initialState$
|
|
2571
|
+
const initialState$8 = {
|
|
2568
2572
|
projectAccesses: {}
|
|
2569
2573
|
};
|
|
2570
2574
|
const projectAccessSlice = createSlice({
|
|
2571
2575
|
name: "projectAccess",
|
|
2572
|
-
initialState: initialState$
|
|
2573
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$
|
|
2576
|
+
initialState: initialState$8,
|
|
2577
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$8)),
|
|
2574
2578
|
reducers: {
|
|
2575
2579
|
setProjectAccesses: (state, action) => {
|
|
2576
2580
|
if (!Array.isArray(action.payload))
|
|
@@ -2638,7 +2642,7 @@ const selectProjectAccessUserMapping = (state) => {
|
|
|
2638
2642
|
return projectAccesses;
|
|
2639
2643
|
};
|
|
2640
2644
|
const projectAccessReducer = projectAccessSlice.reducer;
|
|
2641
|
-
const initialState$
|
|
2645
|
+
const initialState$7 = {
|
|
2642
2646
|
projects: {},
|
|
2643
2647
|
activeProjectId: null,
|
|
2644
2648
|
recentProjectIds: [],
|
|
@@ -2647,7 +2651,7 @@ const initialState$6 = {
|
|
|
2647
2651
|
};
|
|
2648
2652
|
const projectSlice = createSlice({
|
|
2649
2653
|
name: "projects",
|
|
2650
|
-
initialState: initialState$
|
|
2654
|
+
initialState: initialState$7,
|
|
2651
2655
|
reducers: {
|
|
2652
2656
|
setProjects: (state, action) => {
|
|
2653
2657
|
const projectsMap = {};
|
|
@@ -2767,7 +2771,7 @@ const selectSortedProjectUsers = createSelector(
|
|
|
2767
2771
|
});
|
|
2768
2772
|
}
|
|
2769
2773
|
);
|
|
2770
|
-
const initialState$
|
|
2774
|
+
const initialState$6 = {
|
|
2771
2775
|
projectFiles: {},
|
|
2772
2776
|
activeProjectFileId: null,
|
|
2773
2777
|
isImportingProjectFile: false,
|
|
@@ -2775,8 +2779,8 @@ const initialState$5 = {
|
|
|
2775
2779
|
};
|
|
2776
2780
|
const projectFileSlice = createSlice({
|
|
2777
2781
|
name: "projectFiles",
|
|
2778
|
-
initialState: initialState$
|
|
2779
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$
|
|
2782
|
+
initialState: initialState$6,
|
|
2783
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$6)),
|
|
2780
2784
|
reducers: {
|
|
2781
2785
|
addOrReplaceProjectFiles: (state, action) => {
|
|
2782
2786
|
for (let fileObj of action.payload) {
|
|
@@ -2877,12 +2881,12 @@ const selectProjectFiles = createSelector(
|
|
|
2877
2881
|
const selectActiveProjectFileId = (state) => state.projectFileReducer.activeProjectFileId;
|
|
2878
2882
|
const selectIsImportingProjectFile = (state) => state.projectFileReducer.isImportingProjectFile;
|
|
2879
2883
|
const projectFileReducer = projectFileSlice.reducer;
|
|
2880
|
-
const initialState$
|
|
2884
|
+
const initialState$5 = {
|
|
2881
2885
|
isRehydrated: false
|
|
2882
2886
|
};
|
|
2883
2887
|
const rehydratedSlice = createSlice({
|
|
2884
2888
|
name: "rehydrated",
|
|
2885
|
-
initialState: initialState$
|
|
2889
|
+
initialState: initialState$5,
|
|
2886
2890
|
// The `reducers` field lets us define reducers and generate associated actions
|
|
2887
2891
|
reducers: {
|
|
2888
2892
|
setRehydrated: (state, action) => {
|
|
@@ -2892,7 +2896,7 @@ const rehydratedSlice = createSlice({
|
|
|
2892
2896
|
});
|
|
2893
2897
|
const selectRehydrated = (state) => state.rehydratedReducer.isRehydrated;
|
|
2894
2898
|
const rehydratedReducer = rehydratedSlice.reducer;
|
|
2895
|
-
const initialState$
|
|
2899
|
+
const initialState$4 = {
|
|
2896
2900
|
useIssueTemplate: false,
|
|
2897
2901
|
placementMode: false,
|
|
2898
2902
|
enableClustering: true,
|
|
@@ -2907,8 +2911,8 @@ const initialState$3 = {
|
|
|
2907
2911
|
};
|
|
2908
2912
|
const settingSlice = createSlice({
|
|
2909
2913
|
name: "settings",
|
|
2910
|
-
initialState: initialState$
|
|
2911
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$
|
|
2914
|
+
initialState: initialState$4,
|
|
2915
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$4)),
|
|
2912
2916
|
reducers: {
|
|
2913
2917
|
setEnableDuplicateIssues: (state, action) => {
|
|
2914
2918
|
state.useIssueTemplate = action.payload;
|
|
@@ -2971,7 +2975,7 @@ function considerCachingRevision(revision, formId2, preferPending = false) {
|
|
|
2971
2975
|
function getLatestRevisionFromCache(formId2) {
|
|
2972
2976
|
return LATEST_REVISION_CACHE[formId2];
|
|
2973
2977
|
}
|
|
2974
|
-
const initialState$
|
|
2978
|
+
const initialState$3 = {
|
|
2975
2979
|
userForms: {},
|
|
2976
2980
|
revisions: {},
|
|
2977
2981
|
submissions: {},
|
|
@@ -2979,8 +2983,8 @@ const initialState$2 = {
|
|
|
2979
2983
|
};
|
|
2980
2984
|
const userFormSlice = createSlice({
|
|
2981
2985
|
name: "userForms",
|
|
2982
|
-
initialState: initialState$
|
|
2983
|
-
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$
|
|
2986
|
+
initialState: initialState$3,
|
|
2987
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$3)),
|
|
2984
2988
|
reducers: {
|
|
2985
2989
|
setUserForms: (state, action) => {
|
|
2986
2990
|
state.userForms = {};
|
|
@@ -3228,12 +3232,12 @@ const selectNumberOfUserForms = createSelector([selectUserFormMapping], (userFor
|
|
|
3228
3232
|
return Object.keys(userForms).length;
|
|
3229
3233
|
});
|
|
3230
3234
|
const userFormReducer = userFormSlice.reducer;
|
|
3231
|
-
const initialState$
|
|
3235
|
+
const initialState$2 = {
|
|
3232
3236
|
emailDomains: {}
|
|
3233
3237
|
};
|
|
3234
3238
|
const emailDomainsSlice = createSlice({
|
|
3235
3239
|
name: "emailDomains",
|
|
3236
|
-
initialState: initialState$
|
|
3240
|
+
initialState: initialState$2,
|
|
3237
3241
|
reducers: {
|
|
3238
3242
|
setEmailDomains: (state, action) => {
|
|
3239
3243
|
const emailDomains = {};
|
|
@@ -3260,6 +3264,70 @@ const selectSortedEmailDomains = (state) => Object.values(state.emailDomainsRedu
|
|
|
3260
3264
|
(ed1, ed2) => ed1.domain.localeCompare(ed2.domain)
|
|
3261
3265
|
);
|
|
3262
3266
|
const emailDomainsReducer = emailDomainsSlice.reducer;
|
|
3267
|
+
const initialState$1 = {
|
|
3268
|
+
licenses: {}
|
|
3269
|
+
};
|
|
3270
|
+
const licenseSlice = createSlice({
|
|
3271
|
+
name: "license",
|
|
3272
|
+
initialState: initialState$1,
|
|
3273
|
+
extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$1)),
|
|
3274
|
+
reducers: {
|
|
3275
|
+
setLicenses: (state, action) => {
|
|
3276
|
+
if (!Array.isArray(action.payload))
|
|
3277
|
+
throw new Error("Expected an array of License");
|
|
3278
|
+
if (action.payload.filter(onlyUniqueOfflineIds).length !== action.payload.length) {
|
|
3279
|
+
throw new Error("Tried to use setLicenses reducer with duplicate ID's");
|
|
3280
|
+
}
|
|
3281
|
+
const licenses = {};
|
|
3282
|
+
for (const license of action.payload) {
|
|
3283
|
+
licenses[license.offline_id] = license;
|
|
3284
|
+
}
|
|
3285
|
+
state.licenses = licenses;
|
|
3286
|
+
}
|
|
3287
|
+
}
|
|
3288
|
+
});
|
|
3289
|
+
const { setLicenses } = licenseSlice.actions;
|
|
3290
|
+
const selectLicenses = (state) => {
|
|
3291
|
+
return state.licenseReducer.licenses;
|
|
3292
|
+
};
|
|
3293
|
+
const selectLicense = (licenseId) => (state) => state.licenseReducer.licenses[licenseId];
|
|
3294
|
+
const selectActiveLicense = createSelector(
|
|
3295
|
+
[selectLicenses, selectActiveProjectId],
|
|
3296
|
+
(licenses, activeProjectId) => {
|
|
3297
|
+
const activeLicense = Object.values(licenses).find((license) => license.project === activeProjectId);
|
|
3298
|
+
return activeLicense ?? null;
|
|
3299
|
+
}
|
|
3300
|
+
);
|
|
3301
|
+
const selectLicencesMapping = createSelector(
|
|
3302
|
+
[selectLicenses],
|
|
3303
|
+
(licenses) => Object.values(licenses).reduce((accum, license) => ({ ...accum, [license.project]: license }), {})
|
|
3304
|
+
);
|
|
3305
|
+
const selectSortedLicenses = createSelector(
|
|
3306
|
+
[selectActiveLicense, selectLicenses, selectProjects],
|
|
3307
|
+
(activeLicense, licenses, projects) => {
|
|
3308
|
+
return Object.values(licenses).sort((licenseA, licenseB) => {
|
|
3309
|
+
if (activeLicense) {
|
|
3310
|
+
if (activeLicense.offline_id === licenseA.offline_id) {
|
|
3311
|
+
return -1;
|
|
3312
|
+
} else if (activeLicense.offline_id === licenseB.offline_id) {
|
|
3313
|
+
return 1;
|
|
3314
|
+
}
|
|
3315
|
+
}
|
|
3316
|
+
const projectIds = Object.keys(projects);
|
|
3317
|
+
if (!licenseA.project || !(licenseA.project in projectIds)) {
|
|
3318
|
+
return 1;
|
|
3319
|
+
} else if (!licenseB.project || !(licenseB.project in projectIds)) {
|
|
3320
|
+
return -1;
|
|
3321
|
+
}
|
|
3322
|
+
return projects[licenseA.project].name.toLowerCase().localeCompare(
|
|
3323
|
+
projects[licenseB.project].name.toLowerCase(),
|
|
3324
|
+
void 0,
|
|
3325
|
+
{ numeric: true }
|
|
3326
|
+
);
|
|
3327
|
+
});
|
|
3328
|
+
}
|
|
3329
|
+
);
|
|
3330
|
+
const licenseReducer = licenseSlice.reducer;
|
|
3263
3331
|
const initialState = {
|
|
3264
3332
|
version: 0
|
|
3265
3333
|
};
|
|
@@ -3304,7 +3372,8 @@ const overmapReducers = {
|
|
|
3304
3372
|
userFormReducer,
|
|
3305
3373
|
userReducer,
|
|
3306
3374
|
workspaceReducer,
|
|
3307
|
-
emailDomainsReducer
|
|
3375
|
+
emailDomainsReducer,
|
|
3376
|
+
licenseReducer
|
|
3308
3377
|
};
|
|
3309
3378
|
const overmapReducer = combineReducers(overmapReducers);
|
|
3310
3379
|
const resetStore = "RESET";
|
|
@@ -4916,6 +4985,7 @@ class MainService extends BaseApiService {
|
|
|
4916
4985
|
}
|
|
4917
4986
|
store.dispatch(setCurrentUser(data.user));
|
|
4918
4987
|
store.dispatch(addUsers(data.project_owners));
|
|
4988
|
+
store.dispatch(setLicenses(data.licenses));
|
|
4919
4989
|
const organizationsData = data.organizations;
|
|
4920
4990
|
store.dispatch(setOrganizations(organizationsData));
|
|
4921
4991
|
const validProjects = projects.filter((project) => !project.invited);
|
|
@@ -11250,6 +11320,7 @@ export {
|
|
|
11250
11320
|
IssuePriority,
|
|
11251
11321
|
IssueService,
|
|
11252
11322
|
IssueStatus,
|
|
11323
|
+
LicenseLevel,
|
|
11253
11324
|
MainService,
|
|
11254
11325
|
MapStyle,
|
|
11255
11326
|
MultiSelectField,
|
|
@@ -11395,6 +11466,8 @@ export {
|
|
|
11395
11466
|
issueReducer,
|
|
11396
11467
|
issueSlice,
|
|
11397
11468
|
issueToSearchResult,
|
|
11469
|
+
licenseReducer,
|
|
11470
|
+
licenseSlice,
|
|
11398
11471
|
literalToCoordinates,
|
|
11399
11472
|
logOnlyOnce,
|
|
11400
11473
|
makeClient,
|
|
@@ -11461,6 +11534,7 @@ export {
|
|
|
11461
11534
|
searchIssues,
|
|
11462
11535
|
selectAccessToken,
|
|
11463
11536
|
selectActiveIssueId,
|
|
11537
|
+
selectActiveLicense,
|
|
11464
11538
|
selectActiveOrganization,
|
|
11465
11539
|
selectActiveOrganizationAccess,
|
|
11466
11540
|
selectActiveOrganizationId,
|
|
@@ -11521,6 +11595,9 @@ export {
|
|
|
11521
11595
|
selectLatestFormRevision,
|
|
11522
11596
|
selectLatestRetryTime,
|
|
11523
11597
|
selectLatestRevisionByFormId,
|
|
11598
|
+
selectLicencesMapping,
|
|
11599
|
+
selectLicense,
|
|
11600
|
+
selectLicenses,
|
|
11524
11601
|
selectMainWorkspace,
|
|
11525
11602
|
selectMapStyle,
|
|
11526
11603
|
selectNumberOfComponentTypesMatchingCaseInsensitiveName,
|
|
@@ -11554,6 +11631,7 @@ export {
|
|
|
11554
11631
|
selectRevisionsForForm,
|
|
11555
11632
|
selectShowTooltips,
|
|
11556
11633
|
selectSortedEmailDomains,
|
|
11634
|
+
selectSortedLicenses,
|
|
11557
11635
|
selectSortedOrganizationUsers,
|
|
11558
11636
|
selectSortedProjectUsers,
|
|
11559
11637
|
selectSortedProjects,
|
|
@@ -11598,6 +11676,7 @@ export {
|
|
|
11598
11676
|
setIsImportingProjectFile,
|
|
11599
11677
|
setIssueComments,
|
|
11600
11678
|
setIssues,
|
|
11679
|
+
setLicenses,
|
|
11601
11680
|
setLoggedIn,
|
|
11602
11681
|
setMapStyle,
|
|
11603
11682
|
setOrganizationAccesses,
|