@northern.tech/store 0.3.1 → 0.3.3

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 (197) hide show
  1. package/dist/actions.cjs +20 -17
  2. package/dist/actions.cjs.map +1 -1
  3. package/dist/actions.js +8 -8
  4. package/dist/api/general-api.js +2 -2
  5. package/dist/api/types/Tenant.ts +17 -12
  6. package/dist/api/users-api.js +2 -2
  7. package/dist/appSlice/constants.cjs +18 -10
  8. package/dist/appSlice/constants.cjs.map +1 -1
  9. package/dist/appSlice/constants.d.cts +41 -84
  10. package/dist/appSlice/constants.d.ts +41 -84
  11. package/dist/appSlice/constants.js +1 -1
  12. package/dist/appSlice/index.js +2 -2
  13. package/dist/appSlice/thunks.cjs +140 -96
  14. package/dist/appSlice/thunks.cjs.map +1 -1
  15. package/dist/appSlice/thunks.js +19 -19
  16. package/dist/auth.js +2 -2
  17. package/dist/{chunk-Q6M5TTDQ.js → chunk-2CYOM4BK.js} +1 -1
  18. package/dist/chunk-2CYOM4BK.js.map +1 -0
  19. package/dist/{chunk-APHL4JZP.js → chunk-2JHFUQ6B.js} +141 -102
  20. package/dist/chunk-2JHFUQ6B.js.map +1 -0
  21. package/dist/{chunk-YETZPQFR.js → chunk-4XJMRVFI.js} +12 -11
  22. package/dist/chunk-4XJMRVFI.js.map +1 -0
  23. package/dist/{chunk-RX55KAKX.js → chunk-7JKWI5FK.js} +2 -2
  24. package/dist/{chunk-A6CT6GTI.js → chunk-C5NEDBJI.js} +17 -11
  25. package/dist/chunk-C5NEDBJI.js.map +1 -0
  26. package/dist/{chunk-NNADGHSL.js → chunk-DAPAXWA5.js} +8 -8
  27. package/dist/{chunk-ANB5BM5J.js → chunk-DCK2DBOA.js} +27 -20
  28. package/dist/chunk-DCK2DBOA.js.map +1 -0
  29. package/dist/{chunk-E5LEU5PF.js → chunk-HPBE6KYY.js} +2 -2
  30. package/dist/{chunk-2RJIDREZ.js → chunk-LEMVXAYP.js} +25 -16
  31. package/dist/chunk-LEMVXAYP.js.map +1 -0
  32. package/dist/{chunk-NI4SZOCF.js → chunk-LGNOTPUG.js} +9 -9
  33. package/dist/{chunk-MDC7Y3EX.js → chunk-LTKOV26W.js} +22 -20
  34. package/dist/chunk-LTKOV26W.js.map +1 -0
  35. package/dist/{chunk-YTQUNAZP.js → chunk-QRGTG4YB.js} +2 -2
  36. package/dist/{chunk-XTRPX7JZ.js → chunk-TI2RL5P2.js} +2 -2
  37. package/dist/chunk-TI2RL5P2.js.map +1 -0
  38. package/dist/{chunk-YGBFDXXA.js → chunk-TUACATJA.js} +2 -2
  39. package/dist/{chunk-25AKG5HH.js → chunk-UWMYZNUB.js} +19 -11
  40. package/dist/chunk-UWMYZNUB.js.map +1 -0
  41. package/dist/{chunk-UEP36GCI.js → chunk-VMNMD6KF.js} +2 -2
  42. package/dist/{chunk-KAQJH2YL.js → chunk-WXL7PVI5.js} +12 -4
  43. package/dist/chunk-WXL7PVI5.js.map +1 -0
  44. package/dist/{chunk-VOCOFE4I.js → chunk-X7IEZBM4.js} +2 -2
  45. package/dist/{chunk-XXHONFSQ.js → chunk-YDS36ALB.js} +3 -3
  46. package/dist/{chunk-XXHONFSQ.js.map → chunk-YDS36ALB.js.map} +1 -1
  47. package/dist/commonSelectors.cjs +40 -18
  48. package/dist/commonSelectors.cjs.map +1 -1
  49. package/dist/commonSelectors.d.cts +54 -46
  50. package/dist/commonSelectors.d.ts +54 -46
  51. package/dist/commonSelectors.js +9 -9
  52. package/dist/constants.cjs +35 -19
  53. package/dist/constants.cjs.map +1 -1
  54. package/dist/constants.d.cts +3 -3
  55. package/dist/constants.d.ts +3 -3
  56. package/dist/constants.js +6 -2
  57. package/dist/deploymentdevicehook.cjs +146 -101
  58. package/dist/deploymentdevicehook.cjs.map +1 -1
  59. package/dist/deploymentdevicehook.d.cts +1 -1
  60. package/dist/deploymentdevicehook.d.ts +1 -1
  61. package/dist/deploymentdevicehook.js +24 -22
  62. package/dist/deploymentdevicehook.js.map +1 -1
  63. package/dist/deploymentsSlice/constants.cjs +8 -8
  64. package/dist/deploymentsSlice/constants.cjs.map +1 -1
  65. package/dist/deploymentsSlice/constants.js +2 -2
  66. package/dist/deploymentsSlice/index.cjs +8 -8
  67. package/dist/deploymentsSlice/index.cjs.map +1 -1
  68. package/dist/deploymentsSlice/index.js +3 -3
  69. package/dist/deploymentsSlice/selectors.cjs +8 -8
  70. package/dist/deploymentsSlice/selectors.cjs.map +1 -1
  71. package/dist/deploymentsSlice/selectors.js +3 -3
  72. package/dist/deploymentsSlice/thunks.cjs +140 -96
  73. package/dist/deploymentsSlice/thunks.cjs.map +1 -1
  74. package/dist/deploymentsSlice/thunks.js +19 -19
  75. package/dist/devicesSlice/constants.cjs +11 -8
  76. package/dist/devicesSlice/constants.cjs.map +1 -1
  77. package/dist/devicesSlice/constants.d.cts +2 -1
  78. package/dist/devicesSlice/constants.d.ts +2 -1
  79. package/dist/devicesSlice/constants.js +4 -2
  80. package/dist/devicesSlice/index.cjs +8 -8
  81. package/dist/devicesSlice/index.cjs.map +1 -1
  82. package/dist/devicesSlice/index.js +3 -3
  83. package/dist/devicesSlice/selectors.cjs +9 -9
  84. package/dist/devicesSlice/selectors.cjs.map +1 -1
  85. package/dist/devicesSlice/selectors.js +3 -3
  86. package/dist/devicesSlice/thunks.cjs +142 -96
  87. package/dist/devicesSlice/thunks.cjs.map +1 -1
  88. package/dist/devicesSlice/thunks.d.cts +12 -2
  89. package/dist/devicesSlice/thunks.d.ts +12 -2
  90. package/dist/devicesSlice/thunks.js +21 -19
  91. package/dist/flag-eu-5477R2P4.svg +130 -0
  92. package/dist/flag-us-HNQAF66I.svg +63 -0
  93. package/dist/monitorSlice/constants.cjs +8 -8
  94. package/dist/monitorSlice/constants.cjs.map +1 -1
  95. package/dist/monitorSlice/constants.js +2 -2
  96. package/dist/monitorSlice/index.cjs +8 -8
  97. package/dist/monitorSlice/index.cjs.map +1 -1
  98. package/dist/monitorSlice/index.js +3 -3
  99. package/dist/monitorSlice/thunks.cjs +59 -37
  100. package/dist/monitorSlice/thunks.cjs.map +1 -1
  101. package/dist/monitorSlice/thunks.js +17 -17
  102. package/dist/onboardingSlice/thunks.cjs +149 -102
  103. package/dist/onboardingSlice/thunks.cjs.map +1 -1
  104. package/dist/onboardingSlice/thunks.d.cts +1 -32
  105. package/dist/onboardingSlice/thunks.d.ts +1 -32
  106. package/dist/onboardingSlice/thunks.js +19 -19
  107. package/dist/organizationSlice/constants.cjs +22 -17
  108. package/dist/organizationSlice/constants.cjs.map +1 -1
  109. package/dist/organizationSlice/constants.d.cts +33 -1
  110. package/dist/organizationSlice/constants.d.ts +33 -1
  111. package/dist/organizationSlice/constants.js +4 -2
  112. package/dist/organizationSlice/index.cjs +18 -15
  113. package/dist/organizationSlice/index.cjs.map +1 -1
  114. package/dist/organizationSlice/index.d.cts +26 -1012
  115. package/dist/organizationSlice/index.d.ts +26 -1012
  116. package/dist/organizationSlice/index.js +3 -3
  117. package/dist/organizationSlice/selectors.cjs.map +1 -1
  118. package/dist/organizationSlice/selectors.d.cts +9 -1
  119. package/dist/organizationSlice/selectors.d.ts +9 -1
  120. package/dist/organizationSlice/selectors.js +3 -3
  121. package/dist/organizationSlice/thunks.cjs +1608 -1540
  122. package/dist/organizationSlice/thunks.cjs.map +1 -1
  123. package/dist/organizationSlice/thunks.d.cts +61 -36
  124. package/dist/organizationSlice/thunks.d.ts +61 -36
  125. package/dist/organizationSlice/thunks.js +19 -19
  126. package/dist/organizationSlice/types.cjs +19 -0
  127. package/dist/organizationSlice/types.cjs.map +1 -0
  128. package/dist/organizationSlice/types.d.cts +114 -0
  129. package/dist/organizationSlice/types.d.ts +114 -0
  130. package/dist/organizationSlice/types.js +1 -0
  131. package/dist/organizationSlice/types.js.map +1 -0
  132. package/dist/releasesSlice/index.js +2 -2
  133. package/dist/releasesSlice/selectors.cjs +11 -0
  134. package/dist/releasesSlice/selectors.cjs.map +1 -1
  135. package/dist/releasesSlice/selectors.js +4 -4
  136. package/dist/releasesSlice/thunks.cjs +73 -49
  137. package/dist/releasesSlice/thunks.cjs.map +1 -1
  138. package/dist/releasesSlice/thunks.d.cts +1 -4
  139. package/dist/releasesSlice/thunks.d.ts +1 -4
  140. package/dist/releasesSlice/thunks.js +17 -17
  141. package/dist/selectors.cjs +46 -18
  142. package/dist/selectors.cjs.map +1 -1
  143. package/dist/selectors.d.cts +9 -1
  144. package/dist/selectors.d.ts +9 -1
  145. package/dist/selectors.js +36 -30
  146. package/dist/store.cjs +36 -23
  147. package/dist/store.cjs.map +1 -1
  148. package/dist/store.d.cts +12 -231
  149. package/dist/store.d.ts +12 -231
  150. package/dist/store.js +13 -11
  151. package/dist/storehooks.cjs +222 -141
  152. package/dist/storehooks.cjs.map +1 -1
  153. package/dist/storehooks.js +36 -24
  154. package/dist/storehooks.js.map +1 -1
  155. package/dist/thunks.cjs +199 -126
  156. package/dist/thunks.cjs.map +1 -1
  157. package/dist/thunks.d.cts +5 -1
  158. package/dist/thunks.d.ts +5 -1
  159. package/dist/thunks.js +21 -19
  160. package/dist/usersSlice/constants.cjs +10 -10
  161. package/dist/usersSlice/constants.cjs.map +1 -1
  162. package/dist/usersSlice/constants.js +2 -2
  163. package/dist/usersSlice/index.cjs +10 -10
  164. package/dist/usersSlice/index.cjs.map +1 -1
  165. package/dist/usersSlice/index.js +3 -3
  166. package/dist/usersSlice/selectors.cjs +35 -13
  167. package/dist/usersSlice/selectors.cjs.map +1 -1
  168. package/dist/usersSlice/selectors.d.cts +44 -1
  169. package/dist/usersSlice/selectors.d.ts +44 -1
  170. package/dist/usersSlice/selectors.js +12 -6
  171. package/dist/usersSlice/thunks.cjs +138 -96
  172. package/dist/usersSlice/thunks.cjs.map +1 -1
  173. package/dist/usersSlice/thunks.d.cts +10 -9
  174. package/dist/usersSlice/thunks.d.ts +10 -9
  175. package/dist/usersSlice/thunks.js +19 -19
  176. package/dist/utils.cjs +17 -16
  177. package/dist/utils.cjs.map +1 -1
  178. package/dist/utils.js +3 -3
  179. package/package.json +7 -7
  180. package/dist/chunk-25AKG5HH.js.map +0 -1
  181. package/dist/chunk-2RJIDREZ.js.map +0 -1
  182. package/dist/chunk-A6CT6GTI.js.map +0 -1
  183. package/dist/chunk-ANB5BM5J.js.map +0 -1
  184. package/dist/chunk-APHL4JZP.js.map +0 -1
  185. package/dist/chunk-KAQJH2YL.js.map +0 -1
  186. package/dist/chunk-MDC7Y3EX.js.map +0 -1
  187. package/dist/chunk-Q6M5TTDQ.js.map +0 -1
  188. package/dist/chunk-XTRPX7JZ.js.map +0 -1
  189. package/dist/chunk-YETZPQFR.js.map +0 -1
  190. /package/dist/{chunk-RX55KAKX.js.map → chunk-7JKWI5FK.js.map} +0 -0
  191. /package/dist/{chunk-NNADGHSL.js.map → chunk-DAPAXWA5.js.map} +0 -0
  192. /package/dist/{chunk-E5LEU5PF.js.map → chunk-HPBE6KYY.js.map} +0 -0
  193. /package/dist/{chunk-NI4SZOCF.js.map → chunk-LGNOTPUG.js.map} +0 -0
  194. /package/dist/{chunk-YTQUNAZP.js.map → chunk-QRGTG4YB.js.map} +0 -0
  195. /package/dist/{chunk-YGBFDXXA.js.map → chunk-TUACATJA.js.map} +0 -0
  196. /package/dist/{chunk-UEP36GCI.js.map → chunk-VMNMD6KF.js.map} +0 -0
  197. /package/dist/{chunk-VOCOFE4I.js.map → chunk-X7IEZBM4.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getDeviceMonitorConfig,
3
3
  getLatestDeviceAlerts
4
- } from "./chunk-NI4SZOCF.js";
4
+ } from "./chunk-LGNOTPUG.js";
5
5
  import {
6
6
  users_api_default
7
7
  } from "./chunk-JAROCU6M.js";
@@ -14,7 +14,7 @@ import {
14
14
  getSearchEndpoint,
15
15
  getTenantCapabilities,
16
16
  getUserCapabilities
17
- } from "./chunk-ANB5BM5J.js";
17
+ } from "./chunk-DCK2DBOA.js";
18
18
  import {
19
19
  getCurrentSession,
20
20
  getCurrentUser,
@@ -22,19 +22,21 @@ import {
22
22
  getIdAttribute,
23
23
  getOfflineThresholdSettings,
24
24
  getRolesById,
25
+ getSelectedDeviceAttribute,
25
26
  getTooltipsState,
26
- getUserSettings
27
- } from "./chunk-KAQJH2YL.js";
28
- import {
29
- getDeploymentsById,
30
- getDeploymentsByStatus
31
- } from "./chunk-RX55KAKX.js";
27
+ getUserSettings,
28
+ getUsersById
29
+ } from "./chunk-WXL7PVI5.js";
32
30
  import {
33
31
  getAuditlogState,
34
32
  getDeviceTwinIntegrations,
35
33
  getOrganization,
36
34
  getTenantsList
37
- } from "./chunk-Q6M5TTDQ.js";
35
+ } from "./chunk-2CYOM4BK.js";
36
+ import {
37
+ getDeploymentsById,
38
+ getDeploymentsByStatus
39
+ } from "./chunk-7JKWI5FK.js";
38
40
  import {
39
41
  getDeviceById,
40
42
  getDeviceFilters,
@@ -43,7 +45,7 @@ import {
43
45
  getGroups,
44
46
  getGroupsById,
45
47
  getSelectedGroup
46
- } from "./chunk-XXHONFSQ.js";
48
+ } from "./chunk-YDS36ALB.js";
47
49
  import {
48
50
  convertDeviceListStateToFilters,
49
51
  filtersFilter,
@@ -53,7 +55,7 @@ import {
53
55
  mapTermsToFilters,
54
56
  mergePermissions,
55
57
  progress
56
- } from "./chunk-YETZPQFR.js";
58
+ } from "./chunk-4XJMRVFI.js";
57
59
  import {
58
60
  getFeatures,
59
61
  getSearchState
@@ -61,30 +63,30 @@ import {
61
63
  import {
62
64
  commonErrorFallback,
63
65
  commonErrorHandler
64
- } from "./chunk-2RJIDREZ.js";
66
+ } from "./chunk-LEMVXAYP.js";
65
67
  import {
66
68
  actions_default
67
- } from "./chunk-NNADGHSL.js";
69
+ } from "./chunk-DAPAXWA5.js";
68
70
  import {
69
71
  actions as actions6,
70
72
  sliceName as sliceName6
71
- } from "./chunk-YGBFDXXA.js";
73
+ } from "./chunk-TUACATJA.js";
74
+ import {
75
+ actions as actions5,
76
+ sliceName as sliceName5
77
+ } from "./chunk-TI2RL5P2.js";
72
78
  import {
73
79
  actions as actions2,
74
80
  sliceName as sliceName2
75
- } from "./chunk-E5LEU5PF.js";
81
+ } from "./chunk-HPBE6KYY.js";
76
82
  import {
77
83
  actions as actions4,
78
84
  sliceName as sliceName4
79
85
  } from "./chunk-FGKMJS3B.js";
80
- import {
81
- actions as actions5,
82
- sliceName as sliceName5
83
- } from "./chunk-XTRPX7JZ.js";
84
86
  import {
85
87
  actions as actions3,
86
88
  sliceName as sliceName3
87
- } from "./chunk-YTQUNAZP.js";
89
+ } from "./chunk-QRGTG4YB.js";
88
90
  import {
89
91
  actions,
90
92
  sliceName
@@ -104,6 +106,7 @@ import {
104
106
  OWN_USER_ID,
105
107
  PermissionTypes,
106
108
  READ_STATES,
109
+ REPORT_CHART_SIZE_LIMIT,
107
110
  SSO_TYPES,
108
111
  TENANT_LIST_DEFAULT,
109
112
  USER_LOGOUT,
@@ -133,13 +136,12 @@ import {
133
136
  uiPermissionsById,
134
137
  useradmApiUrlv1,
135
138
  useradmApiUrlv2
136
- } from "./chunk-A6CT6GTI.js";
139
+ } from "./chunk-C5NEDBJI.js";
137
140
  import {
138
141
  rootfsImageVersion
139
142
  } from "./chunk-CK6YE6AN.js";
140
143
  import {
141
- onboardingSteps,
142
- orderedOnboardingSteps
144
+ onboardingSteps
143
145
  } from "./chunk-MRCFLG45.js";
144
146
  import {
145
147
  APPLICATION_JSON_CONTENT_TYPE,
@@ -148,7 +150,7 @@ import {
148
150
  defaultReports,
149
151
  headerNames,
150
152
  locations
151
- } from "./chunk-25AKG5HH.js";
153
+ } from "./chunk-UWMYZNUB.js";
152
154
  import {
153
155
  ALL_DEVICES,
154
156
  ALL_RELEASES,
@@ -165,6 +167,7 @@ import {
165
167
 
166
168
  // src/deploymentsSlice/thunks.ts
167
169
  import { deepCompare, isEmpty, standardizePhases, startTimeSort } from "@northern.tech/utils/helpers";
170
+ import Tracking from "@northern.tech/utils/tracking";
168
171
  import { createAsyncThunk } from "@reduxjs/toolkit";
169
172
  import { isUUID } from "validator";
170
173
  var { receivedDevice, setSnackbar } = actions_default;
@@ -221,6 +224,26 @@ var getDeploymentsByStatus2 = createAsyncThunk(`${sliceName2}/getDeploymentsBySt
221
224
  return Promise.all(tasks);
222
225
  });
223
226
  });
227
+ var isWithinFirstMonth = (expirationDate) => {
228
+ if (!expirationDate) {
229
+ return false;
230
+ }
231
+ const endOfFirstMonth = new Date(expirationDate);
232
+ endOfFirstMonth.setMonth(endOfFirstMonth.getMonth() - 11);
233
+ return endOfFirstMonth > /* @__PURE__ */ new Date();
234
+ };
235
+ var trackDeploymentCreation = (totalDeploymentCount, hasDeployments, trial_expiration) => {
236
+ Tracking.event({ category: "deployments", action: "create" });
237
+ if (!totalDeploymentCount) {
238
+ if (!hasDeployments) {
239
+ Tracking.event({ category: "deployments", action: "create_initial_deployment" });
240
+ if (isWithinFirstMonth(trial_expiration)) {
241
+ Tracking.event({ category: "deployments", action: "create_initial_deployment_first_month" });
242
+ }
243
+ }
244
+ Tracking.event({ category: "deployments", action: "create_initial_deployment_user" });
245
+ }
246
+ };
224
247
  var MAX_PREVIOUS_PHASES_COUNT = 5;
225
248
  var createDeployment = createAsyncThunk(`${sliceName2}/createDeployment`, ({ newDeployment, hasNewRetryDefault = false }, { dispatch, getState }) => {
226
249
  let request;
@@ -231,6 +254,9 @@ var createDeployment = createAsyncThunk(`${sliceName2}/createDeployment`, ({ new
231
254
  } else {
232
255
  request = general_api_default.post(`${deploymentsApiUrl}/deployments`, newDeployment);
233
256
  }
257
+ const totalDeploymentCount = Object.values(getDeploymentsByStatus(getState())).reduce((accu, item) => accu + item.total, 0);
258
+ const { hasDeployments } = getGlobalSettings(getState());
259
+ const { trial_expiration } = getOrganization(getState());
234
260
  return request.catch((err) => commonErrorHandler(err, "Error creating deployment.", dispatch)).then((data) => {
235
261
  const lastslashindex = data.headers.location.lastIndexOf("/");
236
262
  const deploymentId = data.headers.location.substring(lastslashindex + 1);
@@ -245,6 +271,7 @@ var createDeployment = createAsyncThunk(`${sliceName2}/createDeployment`, ({ new
245
271
  dispatch(getSingleDeployment(deploymentId)),
246
272
  dispatch(setSnackbar("Deployment created successfully", TIMEOUTS.fiveSeconds))
247
273
  ];
274
+ trackDeploymentCreation(totalDeploymentCount, hasDeployments, trial_expiration);
248
275
  const { canManageUsers } = getUserCapabilities(getState());
249
276
  if (canManageUsers) {
250
277
  const { phases, retries } = newDeployment;
@@ -484,7 +511,7 @@ var saveDeltaDeploymentsConfig = createAsyncThunk(`${sliceName2}/saveDeltaDeploy
484
511
 
485
512
  // src/devicesSlice/thunks.tsx
486
513
  import { Link } from "react-router-dom";
487
- import { attributeDuplicateFilter, deepCompare as deepCompare2, extractErrorMessage, getSnackbarMessage } from "@northern.tech/utils/helpers";
514
+ import { attributeDuplicateFilter, dateRangeToUnix, deepCompare as deepCompare2, extractErrorMessage, getSnackbarMessage } from "@northern.tech/utils/helpers";
488
515
  import { createAsyncThunk as createAsyncThunk2 } from "@reduxjs/toolkit";
489
516
  import { isCancel } from "axios";
490
517
  import pluralize from "pluralize";
@@ -919,7 +946,7 @@ var getDevicesByStatus = createAsyncThunk2(`${sliceName3}/getDevicesByStatus`, (
919
946
  page = defaultPage2,
920
947
  perPage = defaultPerPage2,
921
948
  sortOptions = [],
922
- selectedAttributes = []
949
+ selectedAttributes = getSelectedDeviceAttribute(getState())
923
950
  } = options;
924
951
  const state = getState();
925
952
  const { applicableFilters, filterTerms } = convertDeviceListStateToFilters({
@@ -1032,7 +1059,6 @@ var getReportingLimits = createAsyncThunk2(
1032
1059
  })
1033
1060
  );
1034
1061
  var ensureVersionString = (software, fallback) => software.length && software !== "artifact_name" ? software.endsWith(".version") ? software : `${software}.version` : fallback;
1035
- var REPORT_CHART_SIZE_LIMIT = 6;
1036
1062
  var getSingleReportData = (reportConfig, groups) => {
1037
1063
  const { attribute, group, software = "" } = reportConfig;
1038
1064
  const filters = [{ key: "status", scope: "identity", operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: "accepted" }];
@@ -1112,9 +1138,17 @@ var getDeviceConnect = createAsyncThunk2(
1112
1138
  ({ data }) => Promise.all([dispatch(actions3.receivedDevice({ connect_status: data.status, connect_updated_ts: data.updated_ts, id })), Promise.resolve(data)])
1113
1139
  )
1114
1140
  );
1141
+ var updateTypeMap = { deploymentUpdate: "check-update", inventoryUpdate: "send-inventory" };
1142
+ var triggerDeviceUpdate = createAsyncThunk2(
1143
+ `${sliceName3}/triggerDeviceUpdate`,
1144
+ ({ id, type }, { dispatch }) => general_api_default.post(`${deviceConnect}/devices/${id}/${updateTypeMap[type] ?? updateTypeMap.deploymentUpdate}`).then(
1145
+ () => new Promise((resolve) => setTimeout(() => resolve(dispatch(getDeviceById2(id))), TIMEOUTS.threeSeconds))
1146
+ )
1147
+ );
1115
1148
  var getSessionDetails = createAsyncThunk2(`${sliceName3}/getSessionDetails`, ({ sessionId, deviceId, userId, startDate, endDate }) => {
1116
- const createdAfter = startDate ? `&created_after=${Math.round(Date.parse(startDate) / 1e3)}` : "";
1117
- const createdBefore = endDate ? `&created_before=${Math.round(Date.parse(endDate) / 1e3)}` : "";
1149
+ const { start: startUnix, end: endUnix } = dateRangeToUnix(startDate, endDate);
1150
+ const createdAfter = startDate ? `&created_after=${startUnix}` : "";
1151
+ const createdBefore = endDate ? `&created_before=${endUnix}` : "";
1118
1152
  const objectSearch = `&object_id=${deviceId}`;
1119
1153
  return general_api_default.get(`${auditLogsApiUrl}/logs?per_page=500${createdAfter}${createdBefore}&actor_id=${userId}${objectSearch}`).then(
1120
1154
  ({ data: auditLogEntries }) => {
@@ -1213,12 +1247,12 @@ var deleteAuthset = createAsyncThunk2(
1213
1247
  );
1214
1248
  var preauthDevice = createAsyncThunk2(
1215
1249
  `${sliceName3}/preauthDevice`,
1216
- (authset, { dispatch }) => general_api_default.post(`${deviceAuthV2}/devices`, authset).catch((err) => {
1250
+ (authset, { dispatch, rejectWithValue }) => general_api_default.post(`${deviceAuthV2}/devices`, authset).then(() => Promise.resolve(dispatch(setSnackbar2("Device was successfully added to the preauthorization list", TIMEOUTS.fiveSeconds)))).catch((err) => {
1217
1251
  if (err.response.status === 409) {
1218
- return Promise.reject("A device with a matching identity data set already exists");
1252
+ return rejectWithValue("A device with a matching identity data set already exists");
1219
1253
  }
1220
1254
  return commonErrorHandler(err, "The device could not be added:", dispatch);
1221
- }).then(() => Promise.resolve(dispatch(setSnackbar2("Device was successfully added to the preauthorization list", TIMEOUTS.fiveSeconds))))
1255
+ })
1222
1256
  );
1223
1257
  var decommissionDevice = createAsyncThunk2(
1224
1258
  `${sliceName3}/decommissionDevice`,
@@ -1384,18 +1418,20 @@ var getDevicesInBounds = createAsyncThunk2(`${sliceName3}/getDevicesInBounds`, (
1384
1418
 
1385
1419
  // src/onboardingSlice/thunks.ts
1386
1420
  import { getDemoDeviceAddress } from "@northern.tech/utils/helpers";
1421
+ import { onboardingSteps as onboardingSteps2 } from "@northern.tech/utils/onboardingManager";
1422
+ import Tracking2 from "@northern.tech/utils/tracking";
1387
1423
  import { createAsyncThunk as createAsyncThunk3 } from "@reduxjs/toolkit";
1388
1424
  import Cookies from "universal-cookie";
1389
1425
  var cookies = new Cookies();
1390
1426
  var applyOnboardingFallbacks = (progress2) => {
1391
- const step = orderedOnboardingSteps[progress2];
1427
+ const step = onboardingSteps2[progress2];
1392
1428
  if (step && step.fallbackStep) {
1393
1429
  return step.fallbackStep;
1394
1430
  }
1395
1431
  return progress2;
1396
1432
  };
1397
1433
  var determineProgress = (acceptedDevices, pendingDevices, releases, pastDeployments) => {
1398
- const steps = orderedOnboardingSteps;
1434
+ const steps = Object.keys(onboardingSteps2);
1399
1435
  let progress2 = -1;
1400
1436
  progress2 = pendingDevices.length > 1 ? steps.findIndex((step) => step === onboardingSteps.DEVICES_PENDING_ACCEPTING_ONBOARDING) : progress2;
1401
1437
  progress2 = acceptedDevices.length >= 1 ? steps.findIndex((step) => step === onboardingSteps.DEVICES_ACCEPTED_ONBOARDING) : progress2;
@@ -1412,7 +1448,7 @@ var deductOnboardingState = ({ devicesById, devicesByStatus, onboardingState, pa
1412
1448
  const progress2 = applyOnboardingFallbacks(onboardingState.progress || determineProgress(acceptedDevices, pendingDevices, releases, pastDeployments));
1413
1449
  return {
1414
1450
  ...onboardingState,
1415
- complete: !!(Boolean(userCookie) || onboardingState.complete || acceptedDevices.length > 1 && pendingDevices.length > 0 && releases.length > 1 && pastDeployments.length > 1 || acceptedDevices.length >= 1 && releases.length >= 2 && pastDeployments.length > 2 || acceptedDevices.length >= 1 && pendingDevices.length > 0 && releases.length >= 2 && pastDeployments.length >= 2 || orderedOnboardingSteps.findIndex((step) => step === progress2) >= orderedOnboardingSteps.length - 1 || onboardingState.disable || ![canDeploy, canManageDevices, canReadDeployments, canReadDevices, canReadReleases, canUploadReleases].every((i) => i)),
1451
+ complete: !!(Boolean(userCookie) || onboardingState.complete || acceptedDevices.length > 1 && pendingDevices.length > 0 && releases.length > 1 && pastDeployments.length > 1 || acceptedDevices.length >= 1 && releases.length >= 2 && pastDeployments.length > 2 || acceptedDevices.length >= 1 && pendingDevices.length > 0 && releases.length >= 2 && pastDeployments.length >= 2 || Object.keys(onboardingSteps2).findIndex((step) => step === progress2) >= Object.keys(onboardingSteps2).length - 1 || onboardingState.disable || ![canDeploy, canManageDevices, canReadDeployments, canReadDevices, canReadReleases, canUploadReleases].every((i) => i)),
1416
1452
  showTips: onboardingState.showTips != null ? onboardingState.showTips : true,
1417
1453
  deviceType,
1418
1454
  approach: onboardingState.approach || (deviceType.some((type) => type.startsWith("qemu")) ? "virtual" : "physical"),
@@ -1465,10 +1501,10 @@ var setOnboardingCanceled = createAsyncThunk3(
1465
1501
  Promise.resolve(dispatch(actions4.setShowOnboardingHelp(false))),
1466
1502
  Promise.resolve(dispatch(actions4.setShowDismissOnboardingTipsDialog(false))),
1467
1503
  Promise.resolve(dispatch(actions4.setOnboardingComplete(true)))
1468
- ]).then(() => dispatch(advanceOnboarding(onboardingSteps.DEPLOYMENTS_PAST_COMPLETED_FAILURE)))
1504
+ ]).then(() => dispatch(advanceOnboarding(onboardingSteps.DEPLOYMENTS_PAST_COMPLETED_FAILURE))).then(() => Tracking2.event({ category: "onboarding", action: onboardingSteps2.ONBOARDING_CANCELED }))
1469
1505
  );
1470
1506
  var advanceOnboarding = createAsyncThunk3(`${sliceName4}/advanceOnboarding`, (stepId, { dispatch, getState }) => {
1471
- const steps = orderedOnboardingSteps;
1507
+ const steps = Object.keys(onboardingSteps2);
1472
1508
  const progress2 = steps.findIndex((step) => step === getState().onboarding.progress);
1473
1509
  const stepIndex = steps.findIndex((step) => step === stepId);
1474
1510
  if (progress2 > stepIndex || getState().onboarding.progress === null) {
@@ -1476,12 +1512,13 @@ var advanceOnboarding = createAsyncThunk3(`${sliceName4}/advanceOnboarding`, (st
1476
1512
  }
1477
1513
  const madeProgress = steps[stepIndex + 1];
1478
1514
  const state = { ...getOnboardingState(getState()), progress: madeProgress };
1479
- state.complete = stepIndex + 1 >= steps.findIndex((step) => step === onboardingSteps.DEPLOYMENTS_PAST_COMPLETED_FAILURE) ? true : state.complete;
1515
+ state.complete = stepIndex + 1 >= Object.keys(onboardingSteps2).findIndex((step) => step === onboardingSteps.DEPLOYMENTS_PAST_COMPLETED_FAILURE) ? true : state.complete;
1516
+ Tracking2.event({ category: "onboarding", action: stepId });
1480
1517
  return Promise.all([dispatch(actions4.setOnboardingProgress(madeProgress)), dispatch(saveUserSettings({ onboarding: state }))]);
1481
1518
  });
1482
1519
 
1483
1520
  // src/organizationSlice/thunks.ts
1484
- import { deepCompare as deepCompare3 } from "@northern.tech/utils/helpers";
1521
+ import { dateRangeToUnix as dateRangeToUnix2, deepCompare as deepCompare3 } from "@northern.tech/utils/helpers";
1485
1522
  import { createAsyncThunk as createAsyncThunk4 } from "@reduxjs/toolkit";
1486
1523
  import { jwtDecode } from "jwt-decode";
1487
1524
  import hashString from "md5";
@@ -1555,13 +1592,14 @@ var startUpgrade = createAsyncThunk4(
1555
1592
  var cancelUpgrade = createAsyncThunk4(`${sliceName5}/cancelUpgrade`, (tenantId) => general_api_default.post(`${tenantadmApiUrlv2}/tenants/${tenantId}/upgrade/cancel`));
1556
1593
  var completeUpgrade = createAsyncThunk4(
1557
1594
  `${sliceName5}/completeUpgrade`,
1558
- ({ tenantId, plan }, { dispatch }) => general_api_default.post(`${tenantadmApiUrlv2}/tenants/${tenantId}/upgrade/complete`, { plan }).catch((err) => commonErrorHandler(err, `There was an error upgrading your account:`, dispatch)).then(() => Promise.resolve(dispatch(getUserOrganization())))
1595
+ ({ tenantId, plan, billing_profile }, { dispatch }) => general_api_default.post(`${tenantadmApiUrlv2}/tenants/${tenantId}/upgrade/complete`, { plan, billing_profile }).catch((err) => commonErrorHandler(err, `There was an error upgrading your account:`, dispatch)).then(() => Promise.all([dispatch(getDeviceLimit()), dispatch(getUserOrganization())]))
1559
1596
  );
1560
1597
  var prepareAuditlogQuery = ({ startDate, endDate, user: userFilter, type, detail: detailFilter, sort = {} }) => {
1561
1598
  const userId = userFilter?.id || userFilter;
1562
1599
  const detail = detailFilter?.id || detailFilter;
1563
- const createdAfter = startDate ? `&created_after=${Math.round(Date.parse(startDate) / 1e3)}` : "";
1564
- const createdBefore = endDate ? `&created_before=${Math.round(Date.parse(endDate) / 1e3)}` : "";
1600
+ const { start: startUnix, end: endUnix } = dateRangeToUnix2(startDate, endDate);
1601
+ const createdAfter = startDate ? `&created_after=${startUnix}` : "";
1602
+ const createdBefore = endDate ? `&created_before=${endUnix}` : "";
1565
1603
  const typeSearch = type ? `&object_type=${type.value}`.toLowerCase() : "";
1566
1604
  const userSearch = userId ? `&actor_id=${userId}` : "";
1567
1605
  const objectSearch = type && detail ? `&${type.queryParameter}=${encodeURIComponent(detail)}` : "";
@@ -1603,7 +1641,12 @@ var setAuditlogsState = createAsyncThunk4(`${sliceName5}/setAuditlogsState`, (se
1603
1641
  });
1604
1642
  var tenantDataDivergedMessage = "The system detected there is a change in your plan or purchased add-ons. Please log out and log in again";
1605
1643
  var addTenant = createAsyncThunk4(`${sliceName5}/createTenant`, (selectionState, { dispatch }) => {
1606
- return general_api_default.post(`${tenantadmApiUrlv2}/tenants`, selectionState).then(() => Promise.all([dispatch(getTenants()), dispatch(setSnackbar3("Tenant was created successfully."))])).catch((err) => commonErrorHandler(err, "There was an error creating tenant", dispatch, commonErrorFallback));
1644
+ return general_api_default.post(`${tenantadmApiUrlv2}/tenants`, selectionState).then(
1645
+ () => Promise.all([
1646
+ dispatch(setSnackbar3("Tenant was created successfully.")),
1647
+ new Promise((resolve) => setTimeout(() => resolve(dispatch(getTenants())), TIMEOUTS.oneSecond))
1648
+ ])
1649
+ ).catch((err) => commonErrorHandler(err, "There was an error creating tenant", dispatch, commonErrorFallback));
1607
1650
  });
1608
1651
  var tenantListRetrieval = async (config) => {
1609
1652
  const { page, perPage } = config;
@@ -1631,15 +1674,20 @@ var setTenantsListState = createAsyncThunk4(`${sliceName5}/setTenantsListState`,
1631
1674
  });
1632
1675
  var editTenantDeviceLimit = createAsyncThunk4(`${sliceName5}/editDeviceLimit`, ({ newLimit, id, name }, { dispatch }) => {
1633
1676
  return general_api_default.put(`${tenantadmApiUrlv2}/tenants/${id}/child`, { device_limit: newLimit, name }).catch((err) => commonErrorHandler(err, `Device Limit cannot be changed`, dispatch)).then(() => {
1634
- const tasks = [Promise.resolve(dispatch(setSnackbar3("Device Limit was changed successfully")))];
1635
- tasks.push(dispatch(getTenants()));
1636
- tasks.push(dispatch(getUserOrganization()));
1637
- return Promise.all(tasks);
1677
+ return Promise.all([
1678
+ dispatch(setSnackbar3("Device Limit was changed successfully")),
1679
+ dispatch(getUserOrganization()),
1680
+ new Promise((resolve) => setTimeout(() => resolve(dispatch(getTenants())), TIMEOUTS.oneSecond))
1681
+ ]);
1638
1682
  });
1639
1683
  });
1640
1684
  var removeTenant = createAsyncThunk4(`${sliceName5}/editDeviceLimit`, ({ id }, { dispatch }) => {
1641
1685
  return general_api_default.post(`${tenantadmApiUrlv2}/tenants/${id}/remove/start`).catch((err) => commonErrorHandler(err, `There was an error removing the tenant`, dispatch)).then(
1642
- () => Promise.all([Promise.resolve(dispatch(setSnackbar3("Device Limit was changed successfully"))), dispatch(getTenants()), dispatch(getUserOrganization())])
1686
+ () => Promise.all([
1687
+ dispatch(setSnackbar3("The tenant was removed successfully")),
1688
+ dispatch(getUserOrganization()),
1689
+ new Promise((resolve) => setTimeout(() => resolve(dispatch(getTenants())), TIMEOUTS.oneSecond))
1690
+ ])
1643
1691
  );
1644
1692
  });
1645
1693
  var getUserOrganization = createAsyncThunk4(`${sliceName5}/getUserOrganization`, (_, { dispatch, getState }) => {
@@ -1663,7 +1711,10 @@ var sendSupportMessage = createAsyncThunk4(
1663
1711
  );
1664
1712
  var requestPlanChange = createAsyncThunk4(
1665
1713
  `${sliceName5}/requestPlanChange`,
1666
- ({ content, tenantId }, { dispatch }) => general_api_default.post(`${tenantadmApiUrlv2}/tenants/${tenantId}/plan`, content).catch((err) => commonErrorHandler(err, "There was an error sending your request", dispatch, commonErrorFallback)).then(() => Promise.resolve(dispatch(setSnackbar3({ message: "Your request was sent successfully", autoHideDuration: TIMEOUTS.fiveSeconds }))))
1714
+ ({ content, tenantId }, { dispatch, rejectWithValue }) => general_api_default.post(`${tenantadmApiUrlv2}/tenants/${tenantId}/plan`, content).catch(async (err) => {
1715
+ await commonErrorHandler(err, "There was an error sending your request", dispatch, commonErrorFallback);
1716
+ rejectWithValue(err);
1717
+ }).then(() => Promise.resolve(dispatch(setSnackbar3({ message: "Your request was sent successfully", autoHideDuration: TIMEOUTS.fiveSeconds }))))
1667
1718
  );
1668
1719
  var downloadLicenseReport = createAsyncThunk4(
1669
1720
  `${sliceName5}/downloadLicenseReport`,
@@ -1756,6 +1807,7 @@ var getSsoConfigs = createAsyncThunk4(
1756
1807
  );
1757
1808
 
1758
1809
  // src/usersSlice/thunks.ts
1810
+ import { HELPTOOLTIPS } from "@northern.tech/common-ui/helptips";
1759
1811
  import { duplicateFilter, extractErrorMessage as extractErrorMessage2, isEmpty as isEmpty2, preformatWithRequestID } from "@northern.tech/utils/helpers";
1760
1812
  import { clearAllRetryTimers } from "@northern.tech/utils/retrytimer";
1761
1813
  import { createAsyncThunk as createAsyncThunk5 } from "@reduxjs/toolkit";
@@ -1774,7 +1826,7 @@ var handleLoginError = (err, { token2fa: has2FA, password }, rejectWithValue) =>
1774
1826
  }
1775
1827
  const twoFAError = is2FABackend ? " and verification code" : "";
1776
1828
  const errorMessage = `There was a problem logging in. Please check your email${twoFAError ? "," : " and"} password${twoFAError}. If you still have problems, contact an administrator.`;
1777
- return Promise.reject(dispatch(setSnackbar4(preformatWithRequestID(err.response, errorMessage), null, "Copy to clipboard")));
1829
+ return Promise.reject(dispatch(setSnackbar4({ message: preformatWithRequestID(err.response, errorMessage), action: "Copy to clipboard" })));
1778
1830
  };
1779
1831
  var loginUser = createAsyncThunk5(
1780
1832
  `${sliceName6}/loginUser`,
@@ -1798,19 +1850,16 @@ var loginUser = createAsyncThunk5(
1798
1850
  const expiresAt = stayLoggedIn ? void 0 : now.toISOString();
1799
1851
  setSessionInfo({ token, expiresAt });
1800
1852
  cookies3.remove("JWT", { path: "/" });
1801
- return (
1802
- // @ts-ignore
1803
- Promise.resolve(dispatch(getUser(OWN_USER_ID))).unwrap().catch((e) => {
1804
- cleanUp();
1805
- return Promise.reject(dispatch(setSnackbar4(extractErrorMessage2(e))));
1806
- }).then(() => {
1807
- window.sessionStorage.removeItem("pendings-redirect");
1808
- if (window.location.pathname !== "/ui/") {
1809
- window.location.replace("/ui/");
1810
- }
1811
- return Promise.resolve(dispatch(actions6.successfullyLoggedIn({ expiresAt, token })));
1812
- })
1813
- );
1853
+ return dispatch(getUser(OWN_USER_ID)).unwrap().catch((e) => {
1854
+ cleanUp();
1855
+ return Promise.reject(dispatch(setSnackbar4(extractErrorMessage2(e))));
1856
+ }).then(() => {
1857
+ window.sessionStorage.removeItem("pendings-redirect");
1858
+ if (window.location.pathname !== "/ui/") {
1859
+ window.location.replace("/ui/");
1860
+ }
1861
+ return Promise.resolve(dispatch(actions6.successfullyLoggedIn({ expiresAt, token })));
1862
+ });
1814
1863
  })
1815
1864
  );
1816
1865
  var logoutUser = createAsyncThunk5(`${sliceName6}/logoutUser`, (_, { dispatch, getState }) => {
@@ -1828,6 +1877,7 @@ var switchUserOrganization = createAsyncThunk5(`${sliceName6}/switchUserOrganiza
1828
1877
  return Promise.reject();
1829
1878
  }
1830
1879
  return general_api_default.get(`${useradmApiUrlv1}/users/tenants/${tenantId}/token`).then(({ data: token }) => {
1880
+ window.sessionStorage.setItem("tenantChanged", "true");
1831
1881
  setSessionInfo({ ...getSessionInfo(), token });
1832
1882
  window.location.reload();
1833
1883
  });
@@ -1868,11 +1918,18 @@ var verify2FA = createAsyncThunk5(
1868
1918
  );
1869
1919
  var getUserList = createAsyncThunk5(
1870
1920
  `${sliceName6}/getUserList`,
1871
- (_, { dispatch }) => general_api_default.get(`${useradmApiUrlv1}/users`).then((res) => {
1872
- const users = res.data.reduce((accu, item) => {
1873
- accu[item.id] = item;
1874
- return accu;
1875
- }, {});
1921
+ (_, { dispatch, getState }) => general_api_default.get(`${useradmApiUrlv1}/users`).then((res) => {
1922
+ const currentUsersById = getUsersById(getState());
1923
+ const users = res.data.reduce(
1924
+ (accu, item) => {
1925
+ accu[item.id] = {
1926
+ ...accu[item.id],
1927
+ ...item
1928
+ };
1929
+ return accu;
1930
+ },
1931
+ { ...currentUsersById }
1932
+ );
1876
1933
  return dispatch(actions6.receivedUserList(users));
1877
1934
  }).catch((err) => commonErrorHandler(err, `Users couldn't be loaded.`, dispatch, commonErrorFallback))
1878
1935
  );
@@ -1881,9 +1938,7 @@ var getUser = createAsyncThunk5(
1881
1938
  (id, { dispatch, rejectWithValue }) => general_api_default.get(`${useradmApiUrlv1}/users/${id}`).then(
1882
1939
  ({ data: user }) => Promise.all([
1883
1940
  dispatch(actions6.receivedUser(user)),
1884
- // @ts-ignore
1885
1941
  dispatch(setHideAnnouncement({ shouldHide: false, userId: user.id })),
1886
- // @ts-ignore
1887
1942
  dispatch(updateUserColumnSettings({ currentUserId: user.id })),
1888
1943
  user
1889
1944
  ])
@@ -1930,10 +1985,7 @@ var createUser = createAsyncThunk5(
1930
1985
  );
1931
1986
  var removeUser = createAsyncThunk5(
1932
1987
  `${sliceName6}/removeUser`,
1933
- (userId, { dispatch }) => (
1934
- // @ts-ignore
1935
- general_api_default.delete(`${useradmApiUrlv1}/users/${userId}`).then(() => Promise.all([dispatch(actions6.removedUser(userId)), dispatch(getUserList()), dispatch(setSnackbar4(userActions.remove.successMessage))])).catch((err) => userActionErrorHandler(err, "remove", dispatch))
1936
- )
1988
+ (userId, { dispatch }) => general_api_default.delete(`${useradmApiUrlv1}/users/${userId}`).then(() => Promise.all([dispatch(actions6.removedUser(userId)), dispatch(getUserList()), dispatch(setSnackbar4(userActions.remove.successMessage))])).catch((err) => userActionErrorHandler(err, "remove", dispatch))
1937
1989
  );
1938
1990
  var editUser = createAsyncThunk5(
1939
1991
  `${sliceName6}/editUser`,
@@ -1954,7 +2006,7 @@ var enableUser2fa = createAsyncThunk5(
1954
2006
  );
1955
2007
  var disableUser2fa = createAsyncThunk5(
1956
2008
  `${sliceName6}/disableUser2fa`,
1957
- (userId = OWN_USER_ID, { dispatch }) => general_api_default.post(`${useradmApiUrlv1}/users/${userId}/2fa/disable`).catch((err) => commonErrorHandler(err, `There was an error disabling Two Factor authentication for the user.`, dispatch)).then(() => Promise.resolve(dispatch(getUser(userId))))
2009
+ (userId = OWN_USER_ID, { dispatch }) => general_api_default.post(`${useradmApiUrlv1}/users/${userId}/2fa/disable`).catch((err) => commonErrorHandler(err, `There was an error disabling Two Factor authentication for the user.`, dispatch)).then(() => Promise.all([dispatch(getUser(userId)), dispatch(actions6.receivedQrCode(null))]))
1958
2010
  );
1959
2011
  var mapHttpPermission = (permission) => Object.entries(uiPermissionsByArea).reduce(
1960
2012
  (accu, [area, definition]) => {
@@ -2107,7 +2159,6 @@ var getPermissionSets = createAsyncThunk5(
2107
2159
  accu[permissionSet.name] = permissionSetObject;
2108
2160
  return accu;
2109
2161
  },
2110
- // @ts-ignore
2111
2162
  { ...getState().users.permissionSetsById }
2112
2163
  );
2113
2164
  return Promise.all([dispatch(actions6.receivedPermissionSets(permissionSets)), permissionSets]);
@@ -2200,7 +2251,6 @@ var transformRoleDataToRole = (roleData, roleState = {}) => {
2200
2251
  role: {
2201
2252
  ...emptyRole,
2202
2253
  name,
2203
- // @ts-ignore
2204
2254
  description: description ? description : roleState.description,
2205
2255
  uiPermissions: {
2206
2256
  ...emptyUiPermissions,
@@ -2243,10 +2293,7 @@ var editRole = createAsyncThunk5(`${sliceName6}/editRole`, (roleData, { dispatch
2243
2293
  });
2244
2294
  var removeRole = createAsyncThunk5(
2245
2295
  `${sliceName6}/removeRole`,
2246
- (roleId, { dispatch }) => (
2247
- // @ts-ignore
2248
- general_api_default.delete(`${useradmApiUrlv2}/roles/${roleId}`).then(() => Promise.all([dispatch(actions6.removedRole(roleId)), dispatch(getRoles()), dispatch(setSnackbar4(roleActions.remove.successMessage))])).catch((err) => roleActionErrorHandler(err, "remove", dispatch))
2249
- )
2296
+ (roleId, { dispatch }) => general_api_default.delete(`${useradmApiUrlv2}/roles/${roleId}`).then(() => Promise.all([dispatch(actions6.removedRole(roleId)), dispatch(getRoles()), dispatch(setSnackbar4(roleActions.remove.successMessage))])).catch((err) => roleActionErrorHandler(err, "remove", dispatch))
2250
2297
  );
2251
2298
  var getGlobalSettings2 = createAsyncThunk5(
2252
2299
  `${sliceName6}/getGlobalSettings`,
@@ -2257,7 +2304,6 @@ var getGlobalSettings2 = createAsyncThunk5(
2257
2304
  );
2258
2305
  var saveGlobalSettings = createAsyncThunk5(
2259
2306
  `${sliceName6}/saveGlobalSettings`,
2260
- // @ts-ignore
2261
2307
  ({ beOptimistic = false, notify = false, ...settings }, { dispatch, getState }) => {
2262
2308
  if (!window.sessionStorage.getItem(settingsKeys.initialized) && !beOptimistic) {
2263
2309
  return;
@@ -2303,11 +2349,9 @@ var saveUserSettings = createAsyncThunk5(`${sliceName6}/saveUserSettings`, (sett
2303
2349
  const tooltipState = getTooltipsState(getState());
2304
2350
  const updatedSettings = {
2305
2351
  ...userSettings,
2306
- // @ts-ignore
2307
2352
  ...settings,
2308
2353
  onboarding: {
2309
2354
  ...onboardingState,
2310
- // @ts-ignore
2311
2355
  ...settings.onboarding
2312
2356
  },
2313
2357
  tooltips: tooltipState
@@ -2351,10 +2395,7 @@ var generateToken = createAsyncThunk5(
2351
2395
  );
2352
2396
  var revokeToken = createAsyncThunk5(
2353
2397
  `${sliceName6}/revokeToken`,
2354
- (token, { dispatch }) => (
2355
- // @ts-ignore
2356
- general_api_default.delete(`${useradmApiUrlv1}/settings/tokens/${token.id}`).then(() => Promise.resolve(dispatch(getTokens())))
2357
- )
2398
+ (token, { dispatch }) => general_api_default.delete(`${useradmApiUrlv1}/settings/tokens/${token.id}`).then(() => Promise.resolve(dispatch(getTokens())))
2358
2399
  );
2359
2400
  var setTooltipReadState = createAsyncThunk5(`${sliceName6}/setTooltipReadState`, ({ persist, ...remainder }, { dispatch }) => {
2360
2401
  let tasks = [dispatch(actions6.setTooltipState(remainder))];
@@ -2363,23 +2404,20 @@ var setTooltipReadState = createAsyncThunk5(`${sliceName6}/setTooltipReadState`,
2363
2404
  }
2364
2405
  return Promise.all(tasks);
2365
2406
  });
2366
- var setAllTooltipsReadState = createAsyncThunk5(`${sliceName6}/toggleHelptips`, ({ readState = READ_STATES.read, tooltips }, { dispatch }) => {
2367
- const updatedTips = tooltips.reduce((accu, id) => ({ ...accu, [id]: { readState } }), {});
2407
+ var setAllTooltipsReadState = createAsyncThunk5(`${sliceName6}/toggleHelptips`, (readState = READ_STATES.read, { dispatch }) => {
2408
+ const updatedTips = Object.keys(HELPTOOLTIPS).reduce((accu, id) => ({ ...accu, [id]: { readState } }), {});
2368
2409
  return Promise.resolve(dispatch(actions6.setTooltipsState(updatedTips))).then(() => dispatch(saveUserSettings()));
2369
2410
  });
2370
2411
  var submitFeedback = createAsyncThunk5(
2371
2412
  `${sliceName6}/submitFeedback`,
2372
- // @ts-ignore
2373
- ({ satisfaction, feedback, ...meta }, { dispatch }) => {
2374
- return general_api_default.post(`${tenantadmApiUrlv2}/contact/support`, {
2375
- subject: "feedback submission",
2376
- body: JSON.stringify({ feedback, satisfaction, meta })
2377
- }).then(() => {
2378
- const today = /* @__PURE__ */ new Date();
2379
- dispatch(saveUserSettings({ feedbackCollectedAt: today.toISOString().split("T")[0] }));
2380
- setTimeout(() => dispatch(actions6.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
2381
- });
2382
- }
2413
+ ({ satisfaction, feedback, ...meta }, { dispatch }) => general_api_default.post(`${tenantadmApiUrlv2}/contact/support`, {
2414
+ subject: "feedback submission",
2415
+ body: JSON.stringify({ feedback, satisfaction, meta })
2416
+ }).then(() => {
2417
+ const today = /* @__PURE__ */ new Date();
2418
+ dispatch(saveUserSettings({ feedbackCollectedAt: today.toISOString().split("T")[0] }));
2419
+ setTimeout(() => dispatch(actions6.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
2420
+ })
2383
2421
  );
2384
2422
 
2385
2423
  // src/appSlice/thunks.ts
@@ -2538,6 +2576,7 @@ export {
2538
2576
  deriveReportsData,
2539
2577
  getReportsDataWithoutBackendSupport,
2540
2578
  getDeviceConnect,
2579
+ triggerDeviceUpdate,
2541
2580
  getSessionDetails,
2542
2581
  getDeviceFileDownloadLink,
2543
2582
  deviceFileUpload,
@@ -2633,4 +2672,4 @@ export {
2633
2672
  setAllTooltipsReadState,
2634
2673
  submitFeedback
2635
2674
  };
2636
- //# sourceMappingURL=chunk-APHL4JZP.js.map
2675
+ //# sourceMappingURL=chunk-2JHFUQ6B.js.map