@northern.tech/store 0.11.0 → 0.13.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.
Files changed (200) hide show
  1. package/dist/actions.cjs +22 -17
  2. package/dist/actions.cjs.map +1 -1
  3. package/dist/actions.d.cts +7 -22
  4. package/dist/actions.d.ts +7 -22
  5. package/dist/actions.js +9 -9
  6. package/dist/api/general-api.js +1 -1
  7. package/dist/api/users-api.js +1 -1
  8. package/dist/appSlice/index.cjs.map +1 -1
  9. package/dist/appSlice/index.d.cts +1 -1
  10. package/dist/appSlice/index.d.ts +1 -1
  11. package/dist/appSlice/index.js +2 -2
  12. package/dist/appSlice/mocks.cjs.map +1 -1
  13. package/dist/appSlice/mocks.js +2 -2
  14. package/dist/appSlice/selectors.d.cts +34 -528
  15. package/dist/appSlice/selectors.d.ts +34 -528
  16. package/dist/appSlice/thunks.cjs +49 -42
  17. package/dist/appSlice/thunks.cjs.map +1 -1
  18. package/dist/appSlice/thunks.d.cts +5 -3
  19. package/dist/appSlice/thunks.d.ts +5 -3
  20. package/dist/appSlice/thunks.js +18 -18
  21. package/dist/auth.js +1 -1
  22. package/dist/{chunk-QOFVCPRW.js → chunk-5PUF4LA5.js} +1 -1
  23. package/dist/chunk-5PUF4LA5.js.map +1 -0
  24. package/dist/{chunk-X3NF4KNC.js → chunk-6KAV62BW.js} +6 -6
  25. package/dist/{chunk-OFGCC3GM.js → chunk-7MTM3BDT.js} +1 -1
  26. package/dist/chunk-7MTM3BDT.js.map +1 -0
  27. package/dist/{chunk-4FNSLYK5.js → chunk-AR4FTKSL.js} +14 -14
  28. package/dist/{chunk-6KNRR7A5.js → chunk-BZAXFAGT.js} +4 -4
  29. package/dist/{chunk-ZNAJKEP2.js → chunk-CQXDAXQF.js} +1 -1
  30. package/dist/chunk-CQXDAXQF.js.map +1 -0
  31. package/dist/{chunk-I3H5EFZK.js → chunk-EOZ665GA.js} +15 -15
  32. package/dist/{chunk-NVNO3I3K.js → chunk-ETZVJXPD.js} +36 -41
  33. package/dist/chunk-ETZVJXPD.js.map +1 -0
  34. package/dist/{chunk-RFF52JYU.js → chunk-KJ4BPXMB.js} +3 -2
  35. package/dist/chunk-KJ4BPXMB.js.map +1 -0
  36. package/dist/{chunk-C2LGE3P6.js → chunk-OLKM53RL.js} +1 -1
  37. package/dist/chunk-OLKM53RL.js.map +1 -0
  38. package/dist/{chunk-HLX5L3IM.js → chunk-PVCHKW35.js} +1 -1
  39. package/dist/chunk-PVCHKW35.js.map +1 -0
  40. package/dist/{chunk-REZWSU22.js → chunk-VODRLEDP.js} +21 -17
  41. package/dist/chunk-VODRLEDP.js.map +1 -0
  42. package/dist/{chunk-MH5WPYQI.js → chunk-X7NEALMI.js} +16 -9
  43. package/dist/chunk-X7NEALMI.js.map +1 -0
  44. package/dist/{chunk-CUU3N6KW.js → chunk-YFAIYNQG.js} +16 -16
  45. package/dist/commonConstants.js +1 -1
  46. package/dist/commonSelectors.cjs +15 -8
  47. package/dist/commonSelectors.cjs.map +1 -1
  48. package/dist/commonSelectors.d.cts +178 -3523
  49. package/dist/commonSelectors.d.ts +178 -3523
  50. package/dist/commonSelectors.js +6 -6
  51. package/dist/constants.js +1 -1
  52. package/dist/deploymentsSlice/constants.js +1 -1
  53. package/dist/deploymentsSlice/index.cjs.map +1 -1
  54. package/dist/deploymentsSlice/index.d.cts +1 -1
  55. package/dist/deploymentsSlice/index.d.ts +1 -1
  56. package/dist/deploymentsSlice/index.js +2 -2
  57. package/dist/deploymentsSlice/mocks.cjs.map +1 -1
  58. package/dist/deploymentsSlice/mocks.js +2 -2
  59. package/dist/deploymentsSlice/selectors.d.cts +16 -138
  60. package/dist/deploymentsSlice/selectors.d.ts +16 -138
  61. package/dist/deploymentsSlice/selectors.js +1 -1
  62. package/dist/deploymentsSlice/thunks.cjs +49 -42
  63. package/dist/deploymentsSlice/thunks.cjs.map +1 -1
  64. package/dist/deploymentsSlice/thunks.d.cts +4 -2
  65. package/dist/deploymentsSlice/thunks.d.ts +4 -2
  66. package/dist/deploymentsSlice/thunks.js +18 -18
  67. package/dist/devicesSlice/constants.js +1 -1
  68. package/dist/devicesSlice/index.cjs +20 -16
  69. package/dist/devicesSlice/index.cjs.map +1 -1
  70. package/dist/devicesSlice/index.d.cts +11 -20
  71. package/dist/devicesSlice/index.d.ts +11 -20
  72. package/dist/devicesSlice/index.js +2 -2
  73. package/dist/devicesSlice/mocks.cjs +24 -22
  74. package/dist/devicesSlice/mocks.cjs.map +1 -1
  75. package/dist/devicesSlice/mocks.d.cts +20 -12
  76. package/dist/devicesSlice/mocks.d.ts +20 -12
  77. package/dist/devicesSlice/mocks.js +6 -8
  78. package/dist/devicesSlice/mocks.js.map +1 -1
  79. package/dist/devicesSlice/selectors.cjs +15 -8
  80. package/dist/devicesSlice/selectors.cjs.map +1 -1
  81. package/dist/devicesSlice/selectors.d.cts +207 -1730
  82. package/dist/devicesSlice/selectors.d.ts +207 -1730
  83. package/dist/devicesSlice/selectors.js +2 -2
  84. package/dist/devicesSlice/thunks.cjs +49 -44
  85. package/dist/devicesSlice/thunks.cjs.map +1 -1
  86. package/dist/devicesSlice/thunks.d.cts +12 -46
  87. package/dist/devicesSlice/thunks.d.ts +12 -46
  88. package/dist/devicesSlice/thunks.js +18 -20
  89. package/dist/liststatehook.js +1 -1
  90. package/dist/locationutils.js +1 -1
  91. package/dist/monitorSlice/index.cjs.map +1 -1
  92. package/dist/monitorSlice/index.d.cts +1 -1
  93. package/dist/monitorSlice/index.d.ts +1 -1
  94. package/dist/monitorSlice/index.js +2 -2
  95. package/dist/monitorSlice/mocks.cjs.map +1 -1
  96. package/dist/monitorSlice/mocks.js +2 -2
  97. package/dist/monitorSlice/thunks.cjs +37 -25
  98. package/dist/monitorSlice/thunks.cjs.map +1 -1
  99. package/dist/monitorSlice/thunks.d.cts +3 -2
  100. package/dist/monitorSlice/thunks.d.ts +3 -2
  101. package/dist/monitorSlice/thunks.js +16 -16
  102. package/dist/onboardingSlice/index.cjs.map +1 -1
  103. package/dist/onboardingSlice/index.d.cts +1 -1
  104. package/dist/onboardingSlice/index.d.ts +1 -1
  105. package/dist/onboardingSlice/index.js +1 -1
  106. package/dist/onboardingSlice/mocks.cjs.map +1 -1
  107. package/dist/onboardingSlice/mocks.js +1 -1
  108. package/dist/onboardingSlice/thunks.cjs +49 -42
  109. package/dist/onboardingSlice/thunks.cjs.map +1 -1
  110. package/dist/onboardingSlice/thunks.d.cts +7 -15
  111. package/dist/onboardingSlice/thunks.d.ts +7 -15
  112. package/dist/onboardingSlice/thunks.js +18 -18
  113. package/dist/organizationSlice/constants.js +1 -1
  114. package/dist/organizationSlice/index.cjs.map +1 -1
  115. package/dist/organizationSlice/index.d.cts +41 -31
  116. package/dist/organizationSlice/index.d.ts +41 -31
  117. package/dist/organizationSlice/index.js +2 -2
  118. package/dist/organizationSlice/mocks.cjs.map +1 -1
  119. package/dist/organizationSlice/mocks.js +2 -2
  120. package/dist/organizationSlice/selectors.d.cts +42 -659
  121. package/dist/organizationSlice/selectors.d.ts +42 -659
  122. package/dist/organizationSlice/selectors.js +1 -1
  123. package/dist/organizationSlice/thunks.cjs +51 -44
  124. package/dist/organizationSlice/thunks.cjs.map +1 -1
  125. package/dist/organizationSlice/thunks.d.cts +4 -1
  126. package/dist/organizationSlice/thunks.d.ts +4 -1
  127. package/dist/organizationSlice/thunks.js +18 -18
  128. package/dist/organizationSlice/types.cjs.map +1 -1
  129. package/dist/organizationSlice/types.d.cts +2 -12
  130. package/dist/organizationSlice/types.d.ts +2 -12
  131. package/dist/releasesSlice/index.js +1 -1
  132. package/dist/releasesSlice/mocks.d.cts +7 -1
  133. package/dist/releasesSlice/mocks.d.ts +7 -1
  134. package/dist/releasesSlice/mocks.js +1 -1
  135. package/dist/releasesSlice/selectors.d.cts +155 -930
  136. package/dist/releasesSlice/selectors.d.ts +155 -930
  137. package/dist/releasesSlice/selectors.js +1 -1
  138. package/dist/releasesSlice/thunks.cjs +37 -25
  139. package/dist/releasesSlice/thunks.cjs.map +1 -1
  140. package/dist/releasesSlice/thunks.d.cts +4 -2
  141. package/dist/releasesSlice/thunks.d.ts +4 -2
  142. package/dist/releasesSlice/thunks.js +16 -16
  143. package/dist/selectors.cjs +15 -8
  144. package/dist/selectors.cjs.map +1 -1
  145. package/dist/selectors.d.cts +6 -3
  146. package/dist/selectors.d.ts +6 -3
  147. package/dist/selectors.js +33 -33
  148. package/dist/sockethook.cjs +1 -1
  149. package/dist/sockethook.cjs.map +1 -1
  150. package/dist/sockethook.js +2 -2
  151. package/dist/sockethook.js.map +1 -1
  152. package/dist/store.cjs +22 -17
  153. package/dist/store.cjs.map +1 -1
  154. package/dist/store.d.cts +40 -658
  155. package/dist/store.d.ts +40 -658
  156. package/dist/store.js +10 -10
  157. package/dist/storehooks.cjs +52 -45
  158. package/dist/storehooks.cjs.map +1 -1
  159. package/dist/storehooks.js +19 -19
  160. package/dist/thunks.cjs +49 -44
  161. package/dist/thunks.cjs.map +1 -1
  162. package/dist/thunks.d.cts +7 -5
  163. package/dist/thunks.d.ts +7 -5
  164. package/dist/thunks.js +18 -20
  165. package/dist/useDeploymentDevice.cjs +49 -42
  166. package/dist/useDeploymentDevice.cjs.map +1 -1
  167. package/dist/useDeploymentDevice.js +19 -19
  168. package/dist/usersSlice/constants.js +1 -1
  169. package/dist/usersSlice/index.cjs +2 -1
  170. package/dist/usersSlice/index.cjs.map +1 -1
  171. package/dist/usersSlice/index.d.cts +47 -46
  172. package/dist/usersSlice/index.d.ts +47 -46
  173. package/dist/usersSlice/index.js +2 -2
  174. package/dist/usersSlice/mocks.cjs +2 -1
  175. package/dist/usersSlice/mocks.cjs.map +1 -1
  176. package/dist/usersSlice/mocks.js +2 -2
  177. package/dist/usersSlice/selectors.d.cts +75 -1436
  178. package/dist/usersSlice/selectors.d.ts +75 -1436
  179. package/dist/usersSlice/selectors.js +1 -1
  180. package/dist/usersSlice/thunks.cjs +49 -42
  181. package/dist/usersSlice/thunks.cjs.map +1 -1
  182. package/dist/usersSlice/thunks.d.cts +3 -1
  183. package/dist/usersSlice/thunks.d.ts +3 -1
  184. package/dist/usersSlice/thunks.js +18 -18
  185. package/dist/utils.js +1 -1
  186. package/package.json +4 -4
  187. package/dist/chunk-C2LGE3P6.js.map +0 -1
  188. package/dist/chunk-HLX5L3IM.js.map +0 -1
  189. package/dist/chunk-MH5WPYQI.js.map +0 -1
  190. package/dist/chunk-NVNO3I3K.js.map +0 -1
  191. package/dist/chunk-OFGCC3GM.js.map +0 -1
  192. package/dist/chunk-QOFVCPRW.js.map +0 -1
  193. package/dist/chunk-REZWSU22.js.map +0 -1
  194. package/dist/chunk-RFF52JYU.js.map +0 -1
  195. package/dist/chunk-ZNAJKEP2.js.map +0 -1
  196. /package/dist/{chunk-X3NF4KNC.js.map → chunk-6KAV62BW.js.map} +0 -0
  197. /package/dist/{chunk-4FNSLYK5.js.map → chunk-AR4FTKSL.js.map} +0 -0
  198. /package/dist/{chunk-6KNRR7A5.js.map → chunk-BZAXFAGT.js.map} +0 -0
  199. /package/dist/{chunk-I3H5EFZK.js.map → chunk-EOZ665GA.js.map} +0 -0
  200. /package/dist/{chunk-CUU3N6KW.js.map → chunk-YFAIYNQG.js.map} +0 -0
@@ -13,15 +13,16 @@ import 'react/jsx-runtime';
13
13
  import '../devicesSlice/constants.cjs';
14
14
  import '../deploymentsSlice/index.cjs';
15
15
  import 'redux-thunk';
16
- import '../usersSlice/constants.cjs';
17
16
  import '../usersSlice/index.cjs';
17
+ import '../usersSlice/constants.cjs';
18
18
  import '../releasesSlice/index.cjs';
19
+ import '../organizationSlice/index.cjs';
19
20
  import '../organizationSlice/types.cjs';
20
21
  import '../appSlice/constants.cjs';
21
22
  import '@mui/material/OverridableComponent';
22
23
  import '../organizationSlice/constants.cjs';
23
24
  import '../onboardingSlice/index.cjs';
24
- import '@northern.tech/types/types.gen';
25
+ import './index.cjs';
25
26
 
26
27
  interface GetDeviceAlertsPayload {
27
28
  config?: {
@@ -13,15 +13,16 @@ import 'react/jsx-runtime';
13
13
  import '../devicesSlice/constants.js';
14
14
  import '../deploymentsSlice/index.js';
15
15
  import 'redux-thunk';
16
- import '../usersSlice/constants.js';
17
16
  import '../usersSlice/index.js';
17
+ import '../usersSlice/constants.js';
18
18
  import '../releasesSlice/index.js';
19
+ import '../organizationSlice/index.js';
19
20
  import '../organizationSlice/types.js';
20
21
  import '../appSlice/constants.js';
21
22
  import '@mui/material/OverridableComponent';
22
23
  import '../organizationSlice/constants.js';
23
24
  import '../onboardingSlice/index.js';
24
- import '@northern.tech/types/types.gen';
25
+ import './index.js';
25
26
 
26
27
  interface GetDeviceAlertsPayload {
27
28
  config?: {
@@ -4,34 +4,34 @@ import {
4
4
  getDeviceMonitorConfig,
5
5
  getIssueCountsByType,
6
6
  getLatestDeviceAlerts
7
- } from "../chunk-X3NF4KNC.js";
8
- import "../chunk-CUU3N6KW.js";
7
+ } from "../chunk-6KAV62BW.js";
8
+ import "../chunk-YFAIYNQG.js";
9
9
  import "../chunk-5M6EUVNO.js";
10
- import "../chunk-4FNSLYK5.js";
11
- import "../chunk-C2LGE3P6.js";
12
- import "../chunk-RFF52JYU.js";
10
+ import "../chunk-AR4FTKSL.js";
13
11
  import "../chunk-TRKA7XYU.js";
14
- import "../chunk-ZNAJKEP2.js";
15
- import "../chunk-QOFVCPRW.js";
16
- import "../chunk-HLX5L3IM.js";
17
- import "../chunk-OFGCC3GM.js";
18
- import "../chunk-REZWSU22.js";
12
+ import "../chunk-KJ4BPXMB.js";
13
+ import "../chunk-5PUF4LA5.js";
14
+ import "../chunk-PVCHKW35.js";
15
+ import "../chunk-CQXDAXQF.js";
16
+ import "../chunk-VODRLEDP.js";
17
+ import "../chunk-7MTM3BDT.js";
18
+ import "../chunk-OLKM53RL.js";
19
19
  import "../chunk-FDSMCFV5.js";
20
20
  import "../chunk-NMAXZ3ZY.js";
21
- import "../chunk-I3H5EFZK.js";
22
- import "../chunk-WR6RQKF5.js";
23
- import "../chunk-7QKCBSFU.js";
21
+ import "../chunk-EOZ665GA.js";
24
22
  import "../chunk-GGBE6KJV.js";
25
- import "../chunk-JIS4PA3R.js";
23
+ import "../chunk-7QKCBSFU.js";
26
24
  import "../chunk-3NOV7X4M.js";
27
- import "../chunk-MH5WPYQI.js";
28
25
  import "../chunk-YO22XLHI.js";
26
+ import "../chunk-JIS4PA3R.js";
27
+ import "../chunk-WR6RQKF5.js";
28
+ import "../chunk-X7NEALMI.js";
29
29
  import "../chunk-BYUPW7RA.js";
30
30
  import "../chunk-GX2TWNLC.js";
31
31
  import "../chunk-WWED74SG.js";
32
32
  import "../chunk-2DYA3X77.js";
33
- import "../chunk-ZKAH3APE.js";
34
33
  import "../chunk-FAJ3I2UQ.js";
34
+ import "../chunk-ZKAH3APE.js";
35
35
  import "../chunk-OWWCFJZ5.js";
36
36
  export {
37
37
  changeNotificationSetting,
@@ -1 +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":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcA,qBAA4B;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,sBAAkB,4BAAY;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":[]}
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';\n\nexport type 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":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAcA,qBAA4B;AAErB,IAAM,YAAY;AAgBlB,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,sBAAkB,4BAAY;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":[]}
@@ -59,4 +59,4 @@ declare const actions: _reduxjs_toolkit.CaseReducerActions<{
59
59
  }, "onboarding">;
60
60
  declare const _default: redux.Reducer<OnboardingSliceType>;
61
61
 
62
- export { type OnboardingApproach, actions, _default as default, initialState, onboardingSlice, sliceName };
62
+ export { type OnboardingApproach, type OnboardingSliceType, actions, _default as default, initialState, onboardingSlice, sliceName };
@@ -59,4 +59,4 @@ declare const actions: _reduxjs_toolkit.CaseReducerActions<{
59
59
  }, "onboarding">;
60
60
  declare const _default: redux.Reducer<OnboardingSliceType>;
61
61
 
62
- export { type OnboardingApproach, actions, _default as default, initialState, onboardingSlice, sliceName };
62
+ export { type OnboardingApproach, type OnboardingSliceType, actions, _default as default, initialState, onboardingSlice, sliceName };
@@ -4,7 +4,7 @@ import {
4
4
  onboardingSlice,
5
5
  onboardingSlice_default,
6
6
  sliceName
7
- } from "../chunk-ZNAJKEP2.js";
7
+ } from "../chunk-CQXDAXQF.js";
8
8
  export {
9
9
  actions,
10
10
  onboardingSlice_default as default,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/onboardingSlice/mocks.ts","../../src/onboardingSlice/index.ts"],"sourcesContent":["// Copyright 2025 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 { initialState } from './index';\n\nexport const mockState = {\n ...initialState,\n progress: undefined,\n complete: false,\n demoArtifactPort: 85,\n showConnectDeviceDialog: false,\n showTipsDialog: false\n};\n","// 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":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACcA,qBAA4B;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,sBAAkB,4BAAY;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;;;ADxDxB,IAAM,YAAY;AAAA,EACvB,GAAG;AAAA,EACH,UAAU;AAAA,EACV,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB,yBAAyB;AAAA,EACzB,gBAAgB;AAClB;","names":[]}
1
+ {"version":3,"sources":["../../src/onboardingSlice/mocks.ts","../../src/onboardingSlice/index.ts"],"sourcesContent":["// Copyright 2025 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 { initialState } from './index';\n\nexport const mockState = {\n ...initialState,\n progress: undefined,\n complete: false,\n demoArtifactPort: 85,\n showConnectDeviceDialog: false,\n showTipsDialog: false\n};\n","// 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';\n\nexport type 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":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACcA,qBAA4B;AAErB,IAAM,YAAY;AAgBlB,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,sBAAkB,4BAAY;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;;;ADzDxB,IAAM,YAAY;AAAA,EACvB,GAAG;AAAA,EACH,UAAU;AAAA,EACV,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB,yBAAyB;AAAA,EACzB,gBAAgB;AAClB;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  initialState
3
- } from "../chunk-ZNAJKEP2.js";
3
+ } from "../chunk-CQXDAXQF.js";
4
4
 
5
5
  // src/onboardingSlice/mocks.ts
6
6
  var mockState = {
@@ -899,15 +899,22 @@ var getDeviceIdentityAttributes = (0, import_toolkit4.createSelector)(
899
899
  );
900
900
  var getDeviceCountsByStatus = (0, import_toolkit4.createSelector)(
901
901
  [getDevicesByStatus],
902
- (byStatus) => Object.values(import_constants5.DEVICE_STATES).reduce((accu, state) => {
903
- accu[state] = byStatus[state].total || 0;
904
- return accu;
905
- }, {})
902
+ (byStatus) => Object.values(import_constants5.DEVICE_STATES).reduce(
903
+ (accu, deviceState) => {
904
+ const { counts } = byStatus[deviceState];
905
+ const { total, ...tieredCounts } = counts;
906
+ const count = Object.values(tieredCounts).reduce((accu2, countPerTier) => accu2 + countPerTier, 0);
907
+ accu[deviceState] = count;
908
+ accu.total = accu.total + count;
909
+ return accu;
910
+ },
911
+ { total: 0 }
912
+ )
906
913
  );
907
914
  var getDeviceById = (0, import_toolkit4.createSelector)([getDevicesById, (_, deviceId) => deviceId], (devicesById, deviceId = "") => devicesById[deviceId] ?? {});
908
915
  var getSelectedGroupInfo = (0, import_toolkit4.createSelector)(
909
- [getAcceptedDevices, getGroupsById, getSelectedGroup],
910
- ({ total: acceptedDeviceTotal }, groupsById, selectedGroup) => {
916
+ [getDeviceCountsByStatus, getGroupsById, getSelectedGroup],
917
+ ({ accepted: acceptedDeviceTotal }, groupsById, selectedGroup) => {
911
918
  let groupCount = acceptedDeviceTotal;
912
919
  let groupFilters = [];
913
920
  if (selectedGroup && groupsById[selectedGroup]) {
@@ -923,8 +930,8 @@ var getCombinedLimit = (0, import_toolkit4.createSelector)(
923
930
  // limit might be -1 for unlimited devices
924
931
  );
925
932
  var getLimitMaxed = (0, import_toolkit4.createSelector)(
926
- [getAcceptedDevices, getCombinedLimit],
927
- ({ total: acceptedDevices = 0 }, combinedLimit) => !!combinedLimit && combinedLimit <= acceptedDevices
933
+ [getDeviceCountsByStatus, getCombinedLimit],
934
+ ({ accepted: acceptedDevices }, combinedLimit) => !!combinedLimit && combinedLimit <= acceptedDevices
928
935
  );
929
936
  var getGroupsByIdWithoutUngrouped = (0, import_toolkit4.createSelector)([getGroupsById], ({ [UNGROUPED_GROUP.id]: ungrouped, ...groups }) => groups);
930
937
  var getGroupData = (0, import_toolkit4.createSelector)([getGroupsByIdWithoutUngrouped], (groups) => {
@@ -1684,12 +1691,10 @@ var initialState4 = {
1684
1691
  // }
1685
1692
  },
1686
1693
  byStatus: {
1687
- [import_constants5.DEVICE_STATES.accepted]: { deviceIds: [], total: 0 },
1688
- active: { deviceIds: [], total: 0 },
1689
- inactive: { deviceIds: [], total: 0 },
1690
- [import_constants5.DEVICE_STATES.pending]: { deviceIds: [], total: 0 },
1691
- [import_constants5.DEVICE_STATES.preauth]: { deviceIds: [], total: 0 },
1692
- [import_constants5.DEVICE_STATES.rejected]: { deviceIds: [], total: 0 }
1694
+ [import_constants5.DEVICE_STATES.accepted]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },
1695
+ [import_constants5.DEVICE_STATES.pending]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },
1696
+ [import_constants5.DEVICE_STATES.preauth]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } },
1697
+ [import_constants5.DEVICE_STATES.rejected]: { deviceIds: [], counts: { standard: 0, micro: 0, system: 0, total: 0 } }
1693
1698
  },
1694
1699
  deviceList: {
1695
1700
  deviceIds: [],
@@ -1819,21 +1824,19 @@ var devicesSlice = (0, import_toolkit11.createSlice)({
1819
1824
  }
1820
1825
  state.filters = action.payload.filter((filter) => filter.key && filter.operator && filter.scope && typeof filter.value !== "undefined");
1821
1826
  },
1822
- setInactiveDevices: (state, action) => {
1823
- const { activeDeviceTotal, inactiveDeviceTotal } = action.payload;
1824
- state.byStatus.active.total = activeDeviceTotal;
1825
- state.byStatus.inactive.total = inactiveDeviceTotal;
1826
- },
1827
1827
  setDeviceReports: (state, action) => {
1828
1828
  state.reports = action.payload;
1829
1829
  },
1830
1830
  setDevicesByStatus: (state, action) => {
1831
- const { forceUpdate, status, total, deviceIds } = action.payload;
1832
- state.byStatus[status] = total || forceUpdate ? { deviceIds, total } : state.byStatus[status];
1831
+ const { status, total, deviceIds } = action.payload;
1832
+ if (total) {
1833
+ state.byStatus[status].deviceIds = deviceIds;
1834
+ state.byStatus[status].counts.total = total;
1835
+ }
1833
1836
  },
1834
1837
  setDevicesCountByStatus: (state, action) => {
1835
- const { count, status } = action.payload;
1836
- state.byStatus[status].total = count;
1838
+ const { countsPerTier, status } = action.payload;
1839
+ state.byStatus[status].counts = { ...countsPerTier, total: Object.values(countsPerTier).reduce((accu, tieredCount) => accu += tieredCount, 0) };
1837
1840
  },
1838
1841
  setDeviceLimits: (state, action) => {
1839
1842
  state.limits = action.payload;
@@ -1850,7 +1853,15 @@ var devicesSlice = (0, import_toolkit11.createSlice)({
1850
1853
  const hasMultipleAuthSets = authId && device.auth_sets ? device.auth_sets.filter((authset) => authset.id !== authId).length > 0 : false;
1851
1854
  if (!hasMultipleAuthSets && Object.values(import_constants5.DEVICE_STATES).includes(device.status)) {
1852
1855
  const deviceIds = state.byStatus[device.status].deviceIds.filter((id) => id !== deviceId);
1853
- state.byStatus[device.status] = { deviceIds, total: Math.max(0, state.byStatus[device.status].total - 1) };
1856
+ const deviceTier = device.attributes.tier || "standard";
1857
+ state.byStatus[device.status] = {
1858
+ deviceIds,
1859
+ counts: {
1860
+ ...state.byStatus[device.status].counts,
1861
+ [deviceTier]: Math.max(0, state.byStatus[device.status].counts[deviceTier] - 1),
1862
+ total: Math.max(0, state.byStatus[device.status].counts.total - 1)
1863
+ }
1864
+ };
1854
1865
  }
1855
1866
  }
1856
1867
  }
@@ -2183,7 +2194,8 @@ var initialState8 = {
2183
2194
  },
2184
2195
  userSettings: {
2185
2196
  columnSelection: [],
2186
- onboarding: {}
2197
+ onboarding: {},
2198
+ firstLoginTimestamp: null
2187
2199
  },
2188
2200
  userSettingsInitialized: false
2189
2201
  };
@@ -3321,21 +3333,13 @@ var getDeviceInfo = createAppAsyncThunk(`${sliceName4}/getDeviceInfo`, (deviceId
3321
3333
  }
3322
3334
  return Promise.all(tasks);
3323
3335
  });
3324
- var getDeviceCount = createAppAsyncThunk(
3325
- `${sliceName4}/getDeviceCount`,
3326
- (status, { dispatch, getState }) => general_api_default.post(getSearchEndpoint(getState()), {
3327
- page: 1,
3328
- per_page: 1,
3329
- filters: mapFiltersToTerms([{ key: "status", value: status, operator: import_constants5.DEVICE_FILTERING_OPTIONS.$eq.key, scope: "identity" }]),
3330
- attributes: defaultAttributes
3331
- }).then((response) => {
3332
- const count = Number(response.headers[import_constants5.headerNames.total]);
3333
- return dispatch(actions4.setDevicesCountByStatus({ count, status }));
3334
- })
3335
- );
3336
3336
  var getAllDeviceCounts = createAppAsyncThunk(
3337
3337
  `${sliceName4}/getAllDeviceCounts`,
3338
- (_, { dispatch }) => Promise.all([import_constants5.DEVICE_STATES.accepted, import_constants5.DEVICE_STATES.pending].map((status) => dispatch(getDeviceCount(status))))
3338
+ (_, { dispatch }) => general_api_default.get(`${import_constants5.inventoryApiUrlV2}/statistics`).then(({ data }) => {
3339
+ const { devices_by_status } = data;
3340
+ Object.entries(devices_by_status).map(([status, countsPerTier]) => dispatch(actions4.setDevicesCountByStatus({ countsPerTier, status })));
3341
+ return;
3342
+ })
3339
3343
  );
3340
3344
  var getDeviceLimits2 = createAppAsyncThunk(
3341
3345
  `${sliceName4}/getDeviceLimit`,
@@ -3407,7 +3411,7 @@ var getDevicesByStatus2 = createAppAsyncThunk(
3407
3411
  const state2 = getState();
3408
3412
  const deviceAccu = reduceReceivedDevices(response.data, [], state2, status);
3409
3413
  let total = !applicableFilters.length ? Number(response.headers[import_constants5.headerNames.total]) : 0;
3410
- if (status && state2.devices.byStatus[status].total === deviceAccu.ids.length) {
3414
+ if (status && state2.devices.byStatus[status].counts.total === deviceAccu.ids.length) {
3411
3415
  total = deviceAccu.ids.length;
3412
3416
  }
3413
3417
  const tasks = [dispatch(actions4.receivedDevices(deviceAccu.devicesById))];
@@ -3514,8 +3518,8 @@ var updateReportData = createAppAsyncThunk(`${sliceName4}/updateReportData`, (re
3514
3518
  const { group = "" } = report;
3515
3519
  const devicesById = getDevicesById(getState());
3516
3520
  const groups = getGroupsById(getState());
3517
- const acceptedDevices = getAcceptedDevices(getState());
3518
- const totalDeviceCount = groups[group] ? groups[group].total : acceptedDevices.total;
3521
+ const { accepted: acceptedDevicesCount } = getDeviceCountsByStatus(getState());
3522
+ const totalDeviceCount = groups[group] ? groups[group].total : acceptedDevicesCount;
3519
3523
  const reportsData = getDeviceReports(getState());
3520
3524
  const newReports = [...reportsData];
3521
3525
  newReports[reportIndex] = initializeDistributionData(report, groups, devicesById, totalDeviceCount);
@@ -3533,6 +3537,7 @@ var getReportDataWithoutBackendSupport = createAppAsyncThunk(
3533
3537
  const effectiveAttribute = software ? software : attribute;
3534
3538
  const devicesById = getDevicesById(getState());
3535
3539
  const acceptedDevices = getAcceptedDevices(getState());
3540
+ const { accepted: acceptedDevicesCount } = getDeviceCountsByStatus(getState());
3536
3541
  const groups = getGroupsById(getState());
3537
3542
  const { deviceIds = [], filters = [], total = 0 } = groups[group] || {};
3538
3543
  let groupDevicesRequest = Promise.resolve({
@@ -3540,7 +3545,7 @@ var getReportDataWithoutBackendSupport = createAppAsyncThunk(
3540
3545
  });
3541
3546
  if (group && (!(deviceIds.length && total) || deviceIds.length !== total || !deviceIds.every((id) => !!devicesById[id]))) {
3542
3547
  groupDevicesRequest = filters.length ? dispatch(getAllDynamicGroupDevices({ group, attribute: effectiveAttribute })).unwrap() : dispatch(getAllGroupDevices({ group, attribute: effectiveAttribute })).unwrap();
3543
- } else if (!group && (acceptedDevices.deviceIds.length !== acceptedDevices.total || !acceptedDevices.deviceIds.every((id) => !!devicesById[id]))) {
3548
+ } else if (!group && (acceptedDevices.deviceIds.length !== acceptedDevicesCount || !acceptedDevices.deviceIds.every((id) => !!devicesById[id]))) {
3544
3549
  groupDevicesRequest = dispatch(getAllDevicesByStatus({ status: import_constants5.DEVICE_STATES.accepted, attribute: effectiveAttribute })).unwrap();
3545
3550
  }
3546
3551
  return groupDevicesRequest.then(() => dispatch(updateReportData(reportIndex)));
@@ -3895,6 +3900,7 @@ var changeNotificationSetting = createAppAsyncThunk(
3895
3900
  // src/usersSlice/thunks.ts
3896
3901
  var import_helpers10 = require("@northern.tech/utils/helpers");
3897
3902
  var import_retrytimer = require("@northern.tech/utils/retrytimer");
3903
+ var import_dayjs = __toESM(require("dayjs"), 1);
3898
3904
  var import_md5 = __toESM(require("md5"), 1);
3899
3905
  var import_universal_cookie3 = __toESM(require("universal-cookie"), 1);
3900
3906
 
@@ -4479,6 +4485,7 @@ var saveUserSettings = createAppAsyncThunk(
4479
4485
  const updatedSettings = {
4480
4486
  ...userSettings,
4481
4487
  ...settings,
4488
+ firstLoginTimestamp: userSettings.firstLoginTimestamp ?? (0, import_dayjs.default)().format(),
4482
4489
  onboarding: {
4483
4490
  ...onboardingState,
4484
4491
  ...settings.onboarding