@northern.tech/store 0.10.0 → 0.12.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/actions.cjs +2 -1
- package/dist/actions.cjs.map +1 -1
- package/dist/actions.js +3 -3
- package/dist/appSlice/thunks.cjs +5 -2
- package/dist/appSlice/thunks.cjs.map +1 -1
- package/dist/appSlice/thunks.js +9 -9
- package/dist/{chunk-YYA5MPLL.js → chunk-4HSH7RH3.js} +3 -3
- package/dist/{chunk-2S4DM4MI.js → chunk-5ZCZTTYX.js} +2 -2
- package/dist/{chunk-DIBKFSC7.js → chunk-C5NXNZ7F.js} +20 -9
- package/dist/chunk-C5NXNZ7F.js.map +1 -0
- package/dist/{chunk-SE22RKCE.js → chunk-MH5WPYQI.js} +2 -2
- package/dist/chunk-MH5WPYQI.js.map +1 -0
- package/dist/{chunk-2KT4PX3H.js → chunk-OGUVURJ5.js} +4 -4
- package/dist/{chunk-J5KNRQFA.js → chunk-TKIOEF3B.js} +5 -5
- package/dist/{chunk-CKF76YO4.js → chunk-WCBHYLUK.js} +3 -2
- package/dist/chunk-WCBHYLUK.js.map +1 -0
- package/dist/{chunk-VANBSJS5.js → chunk-ZNAJKEP2.js} +1 -1
- package/dist/chunk-ZNAJKEP2.js.map +1 -0
- package/dist/{chunk-ZK2CPOZO.js → chunk-ZRMB4U7Z.js} +4 -4
- package/dist/commonSelectors.cjs +1 -1
- package/dist/commonSelectors.cjs.map +1 -1
- package/dist/commonSelectors.js +2 -2
- package/dist/deploymentsSlice/thunks.cjs +5 -2
- package/dist/deploymentsSlice/thunks.cjs.map +1 -1
- package/dist/deploymentsSlice/thunks.js +9 -9
- package/dist/devicesSlice/selectors.cjs +1 -1
- package/dist/devicesSlice/selectors.cjs.map +1 -1
- package/dist/devicesSlice/selectors.js +1 -1
- package/dist/devicesSlice/thunks.cjs +5 -2
- package/dist/devicesSlice/thunks.cjs.map +1 -1
- package/dist/devicesSlice/thunks.js +9 -9
- package/dist/monitorSlice/thunks.cjs +3 -2
- package/dist/monitorSlice/thunks.cjs.map +1 -1
- package/dist/monitorSlice/thunks.js +7 -7
- package/dist/onboardingSlice/index.cjs.map +1 -1
- package/dist/onboardingSlice/index.d.cts +1 -1
- package/dist/onboardingSlice/index.d.ts +1 -1
- package/dist/onboardingSlice/index.js +1 -1
- package/dist/onboardingSlice/mocks.cjs.map +1 -1
- package/dist/onboardingSlice/mocks.js +1 -1
- package/dist/onboardingSlice/thunks.cjs +15 -3
- package/dist/onboardingSlice/thunks.cjs.map +1 -1
- package/dist/onboardingSlice/thunks.js +9 -9
- package/dist/organizationSlice/thunks.cjs +7 -4
- package/dist/organizationSlice/thunks.cjs.map +1 -1
- package/dist/organizationSlice/thunks.js +9 -9
- package/dist/releasesSlice/thunks.cjs +3 -2
- package/dist/releasesSlice/thunks.cjs.map +1 -1
- package/dist/releasesSlice/thunks.js +7 -7
- package/dist/selectors.cjs +1 -1
- package/dist/selectors.cjs.map +1 -1
- package/dist/selectors.js +2 -2
- package/dist/sockethook.cjs +1 -1
- package/dist/sockethook.cjs.map +1 -1
- package/dist/sockethook.js +1 -1
- package/dist/sockethook.js.map +1 -1
- package/dist/store.cjs +2 -1
- package/dist/store.cjs.map +1 -1
- package/dist/store.js +4 -4
- package/dist/storehooks.cjs +18 -6
- package/dist/storehooks.cjs.map +1 -1
- package/dist/storehooks.js +9 -9
- package/dist/thunks.cjs +15 -3
- package/dist/thunks.cjs.map +1 -1
- package/dist/thunks.js +9 -9
- package/dist/useDeploymentDevice.cjs +5 -2
- package/dist/useDeploymentDevice.cjs.map +1 -1
- package/dist/useDeploymentDevice.js +9 -9
- package/dist/usersSlice/index.cjs +2 -1
- package/dist/usersSlice/index.cjs.map +1 -1
- package/dist/usersSlice/index.d.cts +2 -1
- package/dist/usersSlice/index.d.ts +2 -1
- package/dist/usersSlice/index.js +1 -1
- package/dist/usersSlice/mocks.cjs +2 -1
- package/dist/usersSlice/mocks.cjs.map +1 -1
- package/dist/usersSlice/mocks.js +1 -1
- package/dist/usersSlice/thunks.cjs +5 -2
- package/dist/usersSlice/thunks.cjs.map +1 -1
- package/dist/usersSlice/thunks.js +9 -9
- package/package.json +4 -4
- package/dist/chunk-CKF76YO4.js.map +0 -1
- package/dist/chunk-DIBKFSC7.js.map +0 -1
- package/dist/chunk-SE22RKCE.js.map +0 -1
- package/dist/chunk-VANBSJS5.js.map +0 -1
- /package/dist/{chunk-YYA5MPLL.js.map → chunk-4HSH7RH3.js.map} +0 -0
- /package/dist/{chunk-2S4DM4MI.js.map → chunk-5ZCZTTYX.js.map} +0 -0
- /package/dist/{chunk-2KT4PX3H.js.map → chunk-OGUVURJ5.js.map} +0 -0
- /package/dist/{chunk-J5KNRQFA.js.map → chunk-TKIOEF3B.js.map} +0 -0
- /package/dist/{chunk-ZK2CPOZO.js.map → chunk-ZRMB4U7Z.js.map} +0 -0
|
@@ -66,7 +66,7 @@ var getCombinedLimit = createSelector(
|
|
|
66
66
|
);
|
|
67
67
|
var getLimitMaxed = createSelector(
|
|
68
68
|
[getAcceptedDevices, getCombinedLimit],
|
|
69
|
-
({ total: acceptedDevices = 0 }, combinedLimit) => combinedLimit <= acceptedDevices
|
|
69
|
+
({ total: acceptedDevices = 0 }, combinedLimit) => !!combinedLimit && combinedLimit <= acceptedDevices
|
|
70
70
|
);
|
|
71
71
|
var getGroupsByIdWithoutUngrouped = createSelector([getGroupsById], ({ [UNGROUPED_GROUP.id]: ungrouped, ...groups }) => groups);
|
|
72
72
|
var getGroupData = createSelector([getGroupsByIdWithoutUngrouped], (groups) => {
|
|
@@ -140,4 +140,4 @@ export {
|
|
|
140
140
|
getAttributesList,
|
|
141
141
|
getDeviceTypes
|
|
142
142
|
};
|
|
143
|
-
//# sourceMappingURL=chunk-
|
|
143
|
+
//# sourceMappingURL=chunk-MH5WPYQI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/devicesSlice/selectors.ts"],"sourcesContent":["// Copyright 2023 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { duplicateFilter } from '@northern.tech/utils/helpers';\nimport { createSelector } from '@reduxjs/toolkit';\n\nimport type { DeviceFilter, DeviceGroup } from '.';\nimport { DEVICE_STATES, UNGROUPED_GROUP } from '../constants';\nimport type { RootState } from '../store';\n\nexport const getAcceptedDevices = (state: RootState) => state.devices.byStatus.accepted;\nexport const getDevicesByStatus = (state: RootState) => state.devices.byStatus;\nexport const getDevicesById = (state: RootState) => state.devices.byId;\nexport const getDeviceReports = (state: RootState) => state.devices.reports;\nexport const getGroupsById = (state: RootState) => state.devices.groups.byId;\nexport const getSelectedGroup = (state: RootState) => state.devices.groups.selectedGroup;\n\nexport const getDeviceListState = (state: RootState) => state.devices.deviceList;\nexport const getListedDevices = (state: RootState) => state.devices.deviceList.deviceIds;\nexport const getFilteringAttributes = (state: RootState) => state.devices.filteringAttributes;\nexport const getDeviceFilters = (state: RootState) => state.devices.filters || [];\nconst getFilteringAttributesFromConfig = (state: RootState) => state.devices.filteringAttributesConfig.attributes;\nexport const getSortedFilteringAttributes = createSelector([getFilteringAttributes], filteringAttributes => ({\n ...filteringAttributes,\n identityAttributes: [...filteringAttributes.identityAttributes, 'id']\n}));\nexport const getDeviceLimits = (state: RootState) => state.devices.limits;\nconst getFilteringAttributesLimit = (state: RootState) => state.devices.filteringAttributesLimit;\n\nexport const getDeviceIdentityAttributes = createSelector(\n [getFilteringAttributes, getFilteringAttributesLimit],\n ({ identityAttributes }, filteringAttributesLimit) => {\n // limit the selection of the available attribute to AVAILABLE_ATTRIBUTE_LIMIT\n const attributes = identityAttributes.slice(0, filteringAttributesLimit);\n return attributes.reduce(\n (accu, value) => {\n accu.push({ value, label: value, scope: 'identity' });\n return accu;\n },\n [\n { value: 'name', label: 'Name', scope: 'tags' },\n { value: 'id', label: 'Device ID', scope: 'identity' }\n ]\n );\n }\n);\n\nexport const getDeviceCountsByStatus = createSelector([getDevicesByStatus], byStatus =>\n Object.values(DEVICE_STATES).reduce((accu, state) => {\n accu[state] = byStatus[state].total || 0;\n return accu;\n }, {})\n);\n\nexport const getDeviceById = createSelector([getDevicesById, (_, deviceId) => deviceId], (devicesById, deviceId = '') => devicesById[deviceId] ?? {});\n\nexport const getSelectedGroupInfo = createSelector(\n [getAcceptedDevices, getGroupsById, getSelectedGroup],\n ({ total: acceptedDeviceTotal }, groupsById, selectedGroup) => {\n let groupCount = acceptedDeviceTotal;\n let groupFilters: DeviceFilter[] = [];\n if (selectedGroup && groupsById[selectedGroup]) {\n groupCount = groupsById[selectedGroup].total || 0;\n groupFilters = groupsById[selectedGroup].filters || [];\n }\n return { groupCount, selectedGroup, groupFilters };\n }\n);\n\nexport const getCombinedLimit = createSelector(\n [getDeviceLimits],\n deviceLimits => Object.values(deviceLimits).reduce((accu, limit) => accu + Math.max(limit ?? 0, 0), 0) // limit might be -1 for unlimited devices\n);\n\nexport const getLimitMaxed = createSelector(\n [getAcceptedDevices, getCombinedLimit],\n ({ total: acceptedDevices = 0 }, combinedLimit) => !!combinedLimit && combinedLimit <= acceptedDevices\n);\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const getGroupsByIdWithoutUngrouped = createSelector([getGroupsById], ({ [UNGROUPED_GROUP.id]: ungrouped, ...groups }) => groups);\n\nexport const getGroupData = createSelector([getGroupsByIdWithoutUngrouped], groups => {\n const createdGroup = Object.keys(groups).length ? Object.keys(groups)[0] : undefined;\n const hasDynamicGroups = Object.values(groups).some(group => !!group.id);\n return { createdGroup, hasDynamicGroups, groups };\n});\n\ntype SelectorGroup = DeviceGroup & { groupId: string };\ntype SelectorGroups = { dynamic: SelectorGroup[]; static: SelectorGroup[]; ungrouped: SelectorGroup[] };\n\nexport const getGroups = createSelector([getGroupsById], groupsById => {\n const groupNames = Object.keys(groupsById).sort();\n const groupedGroups = Object.entries(groupsById)\n .sort((a, b) => a[0].localeCompare(b[0]))\n .reduce<SelectorGroups>(\n (accu, [groupname, group]) => {\n const name = groupname === UNGROUPED_GROUP.id ? UNGROUPED_GROUP.name : groupname;\n const groupItem = { ...group, groupId: name, name: groupname };\n if ((group.filters ?? []).length > 0) {\n if (groupname !== UNGROUPED_GROUP.id) {\n accu.dynamic.push(groupItem);\n } else {\n accu.ungrouped.push(groupItem);\n }\n } else {\n accu.static.push(groupItem);\n }\n return accu;\n },\n { dynamic: [], static: [], ungrouped: [] }\n );\n return { groupNames, ...groupedGroups };\n});\nexport const getAttributesList = createSelector(\n [getFilteringAttributes, getFilteringAttributesFromConfig],\n ({ identityAttributes = [], inventoryAttributes = [] }, { identity = [], inventory = [] }) =>\n [...identityAttributes, ...inventoryAttributes, ...identity, ...inventory].filter(duplicateFilter)\n);\n\nexport const getDeviceTypes = createSelector([getAcceptedDevices, getDevicesById], ({ deviceIds = [] }, devicesById) =>\n Object.keys(\n deviceIds.slice(0, 200).reduce((accu, item) => {\n const { device_type: deviceTypes = [] } = devicesById[item] ? devicesById[item].attributes : {};\n accu = deviceTypes.reduce((deviceTypeAccu, deviceType) => {\n if (deviceType.length > 1) {\n deviceTypeAccu[deviceType] = deviceTypeAccu[deviceType] ? deviceTypeAccu[deviceType] + 1 : 1;\n }\n return deviceTypeAccu;\n }, accu);\n return accu;\n }, {})\n )\n);\n"],"mappings":"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","names":[]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
actions_default
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4HSH7RH3.js";
|
|
4
4
|
import {
|
|
5
5
|
releasesSlice_default
|
|
6
6
|
} from "./chunk-TRKA7XYU.js";
|
|
7
7
|
import {
|
|
8
8
|
actions as actions2,
|
|
9
9
|
usersSlice_default
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-WCBHYLUK.js";
|
|
11
11
|
import {
|
|
12
12
|
actions,
|
|
13
13
|
organizationSlice_default
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
} from "./chunk-HLX5L3IM.js";
|
|
18
18
|
import {
|
|
19
19
|
onboardingSlice_default
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-ZNAJKEP2.js";
|
|
21
21
|
import {
|
|
22
22
|
devicesSlice_default
|
|
23
23
|
} from "./chunk-REZWSU22.js";
|
|
@@ -139,4 +139,4 @@ export {
|
|
|
139
139
|
useAppDispatch,
|
|
140
140
|
createAppAsyncThunk
|
|
141
141
|
};
|
|
142
|
-
//# sourceMappingURL=chunk-
|
|
142
|
+
//# sourceMappingURL=chunk-OGUVURJ5.js.map
|
|
@@ -2,23 +2,23 @@ import {
|
|
|
2
2
|
commonErrorFallback,
|
|
3
3
|
commonErrorHandler,
|
|
4
4
|
createAppAsyncThunk
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-OGUVURJ5.js";
|
|
6
6
|
import {
|
|
7
7
|
general_api_default
|
|
8
8
|
} from "./chunk-5M6EUVNO.js";
|
|
9
9
|
import {
|
|
10
10
|
actions_default
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-4HSH7RH3.js";
|
|
12
12
|
import {
|
|
13
13
|
actions,
|
|
14
14
|
sliceName
|
|
15
15
|
} from "./chunk-HLX5L3IM.js";
|
|
16
16
|
import {
|
|
17
17
|
getSearchEndpoint
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-5ZCZTTYX.js";
|
|
19
19
|
import {
|
|
20
20
|
getDeviceFilters
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-MH5WPYQI.js";
|
|
22
22
|
import {
|
|
23
23
|
convertDeviceListStateToFilters
|
|
24
24
|
} from "./chunk-GX2TWNLC.js";
|
|
@@ -107,4 +107,4 @@ export {
|
|
|
107
107
|
getDeviceMonitorConfig,
|
|
108
108
|
changeNotificationSetting
|
|
109
109
|
};
|
|
110
|
-
//# sourceMappingURL=chunk-
|
|
110
|
+
//# sourceMappingURL=chunk-TKIOEF3B.js.map
|
|
@@ -40,7 +40,8 @@ var initialState = {
|
|
|
40
40
|
},
|
|
41
41
|
userSettings: {
|
|
42
42
|
columnSelection: [],
|
|
43
|
-
onboarding: {}
|
|
43
|
+
onboarding: {},
|
|
44
|
+
firstLoginTimestamp: null
|
|
44
45
|
},
|
|
45
46
|
userSettingsInitialized: false
|
|
46
47
|
};
|
|
@@ -143,4 +144,4 @@ export {
|
|
|
143
144
|
actions,
|
|
144
145
|
usersSlice_default
|
|
145
146
|
};
|
|
146
|
-
//# sourceMappingURL=chunk-
|
|
147
|
+
//# sourceMappingURL=chunk-WCBHYLUK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/usersSlice/index.ts"],"sourcesContent":["// Copyright 2023 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport type { User as BackendUser, DeploymentPhase, TenantInfo, TenantsIdName } from '@northern.tech/types/MenderTypes';\nimport type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\n\nimport type { FilterOperator, PermissionSet, Role } from '../constants';\nimport { defaultPermissionSets, rolesById } from '../constants';\nimport type { ReadState } from './constants';\nimport { READ_STATES } from './constants';\n\nexport const sliceName = 'users';\nexport type User = BackendUser & TenantInfo & { tenants?: TenantsIdName };\nexport type UserSession = {\n expiresAt?: string;\n token: string;\n};\nexport type CustomColumn = {\n attribute: {\n name: string;\n scope: string;\n };\n size: number;\n};\n\ntype FilterOption = {\n key: string;\n operator: FilterOperator;\n scope: string;\n value: string;\n};\nexport type GlobalSettings = {\n [x: string]: any;\n id_attribute?: {\n attribute: string;\n scope: string;\n };\n previousFilters: FilterOption[];\n previousPhases: DeploymentPhase[][];\n retries: number;\n};\ntype Column = {\n id: string;\n key: string;\n name: string;\n scope: string;\n title: string;\n};\nexport type UserSettings = {\n [x: string]: any;\n columnSelection: Column[];\n feedbackCollectedAt?: string;\n firstLoginTimestamp: null | string;\n mode?: 'light' | 'dark';\n onboarding: Partial<{\n address: string;\n approach: 'physical' | 'virtual' | 'mcu' | null;\n complete: boolean;\n demoArtifactPort: number;\n deviceType: string[] | string;\n progress: string;\n showTips: null | boolean;\n showTipsDialog: boolean;\n }>;\n tooltips?: object;\n trackingConsentGiven?: boolean;\n};\ntype UserSliceState = {\n activationCode?: string;\n byId: Record<string, User>;\n currentSession?: UserSession | object;\n currentUser: string | null;\n customColumns: CustomColumn[];\n globalSettings: GlobalSettings;\n permissionSetsById: Record<string, PermissionSet>;\n qrCode: string | null;\n rolesById: Record<string, Role>;\n rolesInitialized: boolean;\n settingsInitialized: boolean;\n showConnectDeviceDialog: boolean;\n showFeedbackDialog: boolean;\n showStartupNotification: boolean;\n tooltips: {\n byId: Record<string, { readState: ReadState }>;\n };\n userSettings: UserSettings;\n userSettingsInitialized: boolean;\n};\nexport const initialState: UserSliceState = {\n activationCode: undefined,\n byId: {},\n currentUser: null,\n currentSession: {\n // { token: window.localStorage.getItem('JWT'), expiresAt: '2023-01-01T00:15:00.000Z' | undefined }, // expiresAt depending on the stay logged in setting\n },\n customColumns: [],\n qrCode: null,\n globalSettings: {\n id_attribute: undefined,\n previousFilters: [],\n previousPhases: [],\n retries: 0\n },\n permissionSetsById: {\n ...defaultPermissionSets\n },\n rolesById: {\n ...rolesById\n },\n rolesInitialized: false,\n settingsInitialized: false,\n showConnectDeviceDialog: false,\n showFeedbackDialog: false,\n showStartupNotification: false,\n tooltips: {\n byId: {\n // <id>: { readState: <read|unread> } // this object is getting enhanced by the tooltip texts in the app constants\n }\n },\n userSettings: {\n columnSelection: [],\n onboarding: {},\n firstLoginTimestamp: null\n },\n userSettingsInitialized: false\n};\n\nexport const usersSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n receivedQrCode: (state, action: PayloadAction<string | null>) => {\n state.qrCode = action.payload;\n },\n successfullyLoggedIn: (state, action: PayloadAction<UserSession>) => {\n state.currentSession = action.payload;\n },\n receivedUserList: (state, action: PayloadAction<Record<string, User>>) => {\n state.byId = action.payload;\n },\n receivedActivationCode: (state, action: PayloadAction<string>) => {\n state.activationCode = action.payload;\n },\n receivedUser: (state, action: PayloadAction<User>) => {\n state.byId[action.payload.id] = action.payload;\n state.currentUser = action.payload.id;\n },\n removedUser: (state, action: PayloadAction<string>) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [action.payload]: removedUser, ...byId } = state.byId;\n state.byId = byId;\n state.currentUser = state.currentUser === action.payload ? null : state.currentUser;\n },\n updatedUser: (state, action: PayloadAction<Partial<User> & { id: string }>) => {\n state.byId[action.payload.id] = {\n ...state.byId[action.payload.id],\n ...action.payload\n };\n },\n receivedPermissionSets: (state, action: PayloadAction<Record<string, PermissionSet>>) => {\n state.permissionSetsById = action.payload;\n },\n receivedRoles: (state, action: PayloadAction<Record<string, Role>>) => {\n state.rolesById = action.payload;\n state.rolesInitialized = true;\n },\n finishedRoleInitialization: (state, action) => {\n state.rolesInitialized = action.payload;\n },\n createdRole: (state, action: PayloadAction<Role>) => {\n state.rolesById[action.payload.name] = {\n ...state.rolesById[action.payload.name],\n ...action.payload\n };\n },\n removedRole: (state, action: PayloadAction<string>) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [action.payload]: toBeRemoved, ...rolesById } = state.rolesById;\n state.rolesById = rolesById;\n },\n setCustomColumns: (state, action: PayloadAction<CustomColumn[]>) => {\n state.customColumns = action.payload;\n },\n setGlobalSettings: (state, action: PayloadAction<GlobalSettings>) => {\n state.settingsInitialized = true;\n state.globalSettings = {\n ...state.globalSettings,\n ...action.payload\n };\n },\n setUserSettings: (state, action: PayloadAction<UserSettings>) => {\n state.userSettingsInitialized = true;\n state.userSettings = {\n ...state.userSettings,\n ...action.payload\n };\n },\n setTooltipState: (state, action: PayloadAction<{ id: string; readState: ReadState }>) => {\n const { id, readState = READ_STATES.read } = action.payload;\n state.tooltips.byId[id] = { ...state.tooltips.byId[id], readState };\n },\n setTooltipsState: (state, action: PayloadAction<UserSliceState['tooltips']['byId']>) => {\n state.tooltips.byId = {\n ...state.tooltips.byId,\n ...action.payload\n };\n },\n setShowFeedbackDialog: (state, action: PayloadAction<boolean>) => {\n state.showFeedbackDialog = action.payload;\n },\n setShowConnectingDialog: (state, action: PayloadAction<boolean>) => {\n state.showConnectDeviceDialog = action.payload;\n },\n setShowStartupNotification: (state, action: PayloadAction<boolean>) => {\n state.showStartupNotification = action.payload;\n }\n }\n});\n\nexport const actions = usersSlice.actions;\nexport default usersSlice.reducer;\n"],"mappings":"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","names":["rolesById"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/onboardingSlice/index.ts"],"sourcesContent":["// Copyright 2023 Northern.tech AS\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\n\nexport const sliceName = 'onboarding';\n\nexport type OnboardingApproach = 'virtual' | 'physical' | 'mcu';\ntype OnboardingSliceType = {\n address?: string;\n approach: OnboardingApproach | null;\n complete: boolean;\n demoArtifactPort: number;\n deviceConnection?: string;\n deviceType: string[] | string | null;\n progress: string | null;\n showTips: boolean | null;\n showTipsDialog: boolean;\n};\n\nexport const initialState: OnboardingSliceType = {\n approach: null,\n complete: false,\n deviceType: null,\n demoArtifactPort: 85,\n progress: null,\n showTips: null,\n showTipsDialog: false\n};\n\nexport const onboardingSlice = createSlice({\n name: sliceName,\n initialState,\n reducers: {\n setOnboardingState: (state, action: PayloadAction<Partial<OnboardingSliceType>>) => ({ ...state, ...action.payload }),\n setDemoArtifactPort: (state, action: PayloadAction<number>) => {\n state.demoArtifactPort = action.payload;\n },\n setShowOnboardingHelp: (state, action: PayloadAction<boolean>) => {\n state.showTips = action.payload;\n },\n setShowDismissOnboardingTipsDialog: (state, action: PayloadAction<boolean>) => {\n state.showTipsDialog = action.payload;\n },\n setOnboardingComplete: (state, action: PayloadAction<boolean>) => {\n state.complete = action.payload;\n },\n setOnboardingProgress: (state, action: PayloadAction<string>) => {\n state.progress = action.payload;\n },\n setOnboardingDeviceType: (state, action: PayloadAction<string[] | string>) => {\n state.deviceType = action.payload;\n },\n setOnboardingApproach: (state, action: PayloadAction<OnboardingApproach>) => {\n state.approach = action.payload;\n }\n }\n});\n\nexport const actions = onboardingSlice.actions;\nexport default onboardingSlice.reducer;\n"],"mappings":";AAcA,SAAS,mBAAmB;AAErB,IAAM,YAAY;AAelB,IAAM,eAAoC;AAAA,EAC/C,UAAU;AAAA,EACV,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,UAAU;AAAA,EACV,UAAU;AAAA,EACV,gBAAgB;AAClB;AAEO,IAAM,kBAAkB,YAAY;AAAA,EACzC,MAAM;AAAA,EACN;AAAA,EACA,UAAU;AAAA,IACR,oBAAoB,CAAC,OAAO,YAAyD,EAAE,GAAG,OAAO,GAAG,OAAO,QAAQ;AAAA,IACnH,qBAAqB,CAAC,OAAO,WAAkC;AAC7D,YAAM,mBAAmB,OAAO;AAAA,IAClC;AAAA,IACA,uBAAuB,CAAC,OAAO,WAAmC;AAChE,YAAM,WAAW,OAAO;AAAA,IAC1B;AAAA,IACA,oCAAoC,CAAC,OAAO,WAAmC;AAC7E,YAAM,iBAAiB,OAAO;AAAA,IAChC;AAAA,IACA,uBAAuB,CAAC,OAAO,WAAmC;AAChE,YAAM,WAAW,OAAO;AAAA,IAC1B;AAAA,IACA,uBAAuB,CAAC,OAAO,WAAkC;AAC/D,YAAM,WAAW,OAAO;AAAA,IAC1B;AAAA,IACA,yBAAyB,CAAC,OAAO,WAA6C;AAC5E,YAAM,aAAa,OAAO;AAAA,IAC5B;AAAA,IACA,uBAAuB,CAAC,OAAO,WAA8C;AAC3E,YAAM,WAAW,OAAO;AAAA,IAC1B;AAAA,EACF;AACF,CAAC;AAEM,IAAM,UAAU,gBAAgB;AACvC,IAAO,0BAAQ,gBAAgB;","names":[]}
|
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
commonErrorFallback,
|
|
3
3
|
commonErrorHandler,
|
|
4
4
|
createAppAsyncThunk
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-OGUVURJ5.js";
|
|
6
6
|
import {
|
|
7
7
|
general_api_default
|
|
8
8
|
} from "./chunk-5M6EUVNO.js";
|
|
9
9
|
import {
|
|
10
10
|
actions_default
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-4HSH7RH3.js";
|
|
12
12
|
import {
|
|
13
13
|
actions,
|
|
14
14
|
sliceName
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
} from "./chunk-53W2NRSL.js";
|
|
19
19
|
import {
|
|
20
20
|
getSearchEndpoint
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-5ZCZTTYX.js";
|
|
22
22
|
import {
|
|
23
23
|
getReleasesById
|
|
24
24
|
} from "./chunk-GGBE6KJV.js";
|
|
@@ -442,4 +442,4 @@ export {
|
|
|
442
442
|
getDeltaGenerationJobs,
|
|
443
443
|
getDeltaGenerationJobDetails
|
|
444
444
|
};
|
|
445
|
-
//# sourceMappingURL=chunk-
|
|
445
|
+
//# sourceMappingURL=chunk-ZRMB4U7Z.js.map
|
package/dist/commonSelectors.cjs
CHANGED
|
@@ -808,7 +808,7 @@ var getCombinedLimit = (0, import_toolkit3.createSelector)(
|
|
|
808
808
|
);
|
|
809
809
|
var getLimitMaxed = (0, import_toolkit3.createSelector)(
|
|
810
810
|
[getAcceptedDevices, getCombinedLimit],
|
|
811
|
-
({ total: acceptedDevices = 0 }, combinedLimit) => combinedLimit <= acceptedDevices
|
|
811
|
+
({ total: acceptedDevices = 0 }, combinedLimit) => !!combinedLimit && combinedLimit <= acceptedDevices
|
|
812
812
|
);
|
|
813
813
|
var getGroupsByIdWithoutUngrouped = (0, import_toolkit3.createSelector)([getGroupsById], ({ [UNGROUPED_GROUP.id]: ungrouped, ...groups }) => groups);
|
|
814
814
|
var getGroupData = (0, import_toolkit3.createSelector)([getGroupsByIdWithoutUngrouped], (groups) => {
|