@copart/ops-tool-kit 1.13.0-beta.17 → 1.13.0-beta.18

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.
@@ -49,7 +49,7 @@ var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
49
49
  var ReactRouterDOM__namespace = /*#__PURE__*/_interopNamespace(ReactRouterDOM);
50
50
 
51
51
  const name$1 = "@copart/ops-tool-kit";
52
- const version$3 = "1.13.0-beta.17";
52
+ const version$3 = "1.13.0-beta.18";
53
53
  const main$1 = "dist/ops-tool-kit.js";
54
54
  const style = "dist/ops-tool-kit.css";
55
55
  const files = [
@@ -202,25 +202,6 @@ var setup = (function (_ref) {
202
202
  warn: devLog('warn')
203
203
  };
204
204
  }();
205
- global.setUpInstana = function () {
206
- var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
207
- var isCoreApp = arguments.length > 1 ? arguments[1] : undefined;
208
- //devOnly.log('Instana setting up.')
209
- if (key && !(process.env.NODE_ENV !== "production") && isCoreApp) {
210
- (function (i, s, o, g, r, a, m) {
211
- i['InstanaEumObject'] = r;
212
- i[r] = i[r] || function () {
213
- (i[r].q = i[r].q || []).push(arguments);
214
- }, i[r].l = 1 * new Date();
215
- a = s.createElement(o), m = s.getElementsByTagName(o)[0];
216
- a.async = 1;
217
- a.src = g;
218
- m.parentNode.insertBefore(a, m);
219
- })(window, document, 'script', '//eum.instana.io/eum.min.js', 'ineum');
220
- ineum('reportingUrl', 'https://eum-us-west-2.instana.io');
221
- ineum('apiKey', key);
222
- }
223
- };
224
205
  });
225
206
 
226
207
  function styleInject(css, ref) {
@@ -311,6 +292,54 @@ function _createClass$2(e, r, t) {
311
292
  writable: !1
312
293
  }), e;
313
294
  }
295
+ function _createForOfIteratorHelper(r, e) {
296
+ var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
297
+ if (!t) {
298
+ if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) {
299
+ t && (r = t);
300
+ var n = 0,
301
+ F = function () {};
302
+ return {
303
+ s: F,
304
+ n: function () {
305
+ return n >= r.length ? {
306
+ done: !0
307
+ } : {
308
+ done: !1,
309
+ value: r[n++]
310
+ };
311
+ },
312
+ e: function (r) {
313
+ throw r;
314
+ },
315
+ f: F
316
+ };
317
+ }
318
+ throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
319
+ }
320
+ var o,
321
+ a = !0,
322
+ u = !1;
323
+ return {
324
+ s: function () {
325
+ t = t.call(r);
326
+ },
327
+ n: function () {
328
+ var r = t.next();
329
+ return a = r.done, r;
330
+ },
331
+ e: function (r) {
332
+ u = !0, o = r;
333
+ },
334
+ f: function () {
335
+ try {
336
+ a || null == t.return || t.return();
337
+ } finally {
338
+ if (u) throw o;
339
+ }
340
+ }
341
+ };
342
+ }
314
343
  function _defineProperty$2(e, r, t) {
315
344
  return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
316
345
  value: t,
@@ -7094,38 +7123,6 @@ var values$1 = /*#__PURE__*/_curry1(function values(obj) {
7094
7123
  });
7095
7124
  var values$2 = values$1;
7096
7125
 
7097
- /**
7098
- * Makes an ascending comparator function out of a function that returns a value
7099
- * that can be compared with `<` and `>`.
7100
- *
7101
- * @func
7102
- * @memberOf R
7103
- * @since v0.23.0
7104
- * @category Function
7105
- * @sig Ord b => (a -> b) -> a -> a -> Number
7106
- * @param {Function} fn A function of arity one that returns a value that can be compared
7107
- * @param {*} a The first item to be compared.
7108
- * @param {*} b The second item to be compared.
7109
- * @return {Number} `-1` if fn(a) < fn(b), `1` if fn(b) < fn(a), otherwise `0`
7110
- * @see R.descend
7111
- * @example
7112
- *
7113
- * const byAge = R.ascend(R.prop('age'));
7114
- * const people = [
7115
- * { name: 'Emma', age: 70 },
7116
- * { name: 'Peter', age: 78 },
7117
- * { name: 'Mikhail', age: 62 },
7118
- * ];
7119
- * const peopleByYoungestFirst = R.sort(byAge, people);
7120
- * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]
7121
- */
7122
- var ascend = /*#__PURE__*/_curry3(function ascend(fn, a, b) {
7123
- var aa = fn(a);
7124
- var bb = fn(b);
7125
- return aa < bb ? -1 : aa > bb ? 1 : 0;
7126
- });
7127
- var ascend$1 = ascend;
7128
-
7129
7126
  /**
7130
7127
  * Checks if the input value is `null` or `undefined`.
7131
7128
  *
@@ -8914,51 +8911,6 @@ var sort = /*#__PURE__*/_curry2(function sort(comparator, list) {
8914
8911
  });
8915
8912
  var sort$1 = sort;
8916
8913
 
8917
- /**
8918
- * Sorts a list according to a list of comparators.
8919
- *
8920
- * @func
8921
- * @memberOf R
8922
- * @since v0.23.0
8923
- * @category Relation
8924
- * @sig [(a, a) -> Number] -> [a] -> [a]
8925
- * @param {Array} functions A list of comparator functions.
8926
- * @param {Array} list The list to sort.
8927
- * @return {Array} A new list sorted according to the comarator functions.
8928
- * @example
8929
- *
8930
- * const alice = {
8931
- * name: 'alice',
8932
- * age: 40
8933
- * };
8934
- * const bob = {
8935
- * name: 'bob',
8936
- * age: 30
8937
- * };
8938
- * const clara = {
8939
- * name: 'clara',
8940
- * age: 40
8941
- * };
8942
- * const people = [clara, bob, alice];
8943
- * const ageNameSort = R.sortWith([
8944
- * R.descend(R.prop('age')),
8945
- * R.ascend(R.prop('name'))
8946
- * ]);
8947
- * ageNameSort(people); //=> [alice, clara, bob]
8948
- */
8949
- var sortWith = /*#__PURE__*/_curry2(function sortWith(fns, list) {
8950
- return Array.prototype.slice.call(list, 0).sort(function (a, b) {
8951
- var result = 0;
8952
- var i = 0;
8953
- while (result === 0 && i < fns.length) {
8954
- result = fns[i](a, b);
8955
- i += 1;
8956
- }
8957
- return result;
8958
- });
8959
- });
8960
- var sortWith$1 = sortWith;
8961
-
8962
8914
  /**
8963
8915
  * Checks if a list starts with the provided sublist.
8964
8916
  *
@@ -9311,22 +9263,15 @@ var isChrome = function isChrome() {
9311
9263
  };
9312
9264
  var isUserStatusHidden = function isUserStatusHidden() {
9313
9265
  var _window$toolkitEnv, _storage$coreConfig2, _storage$coreConfig3;
9314
- var isCoreApp = (_window$toolkitEnv = window.toolkitEnv) !== null && _window$toolkitEnv !== void 0 && _window$toolkitEnv.IS_CORE_APP ? window.toolkitEnv.IS_CORE_APP : process.env.IS_CORE_APP;
9266
+ var isEmbeddedRoute = window.location.pathname.includes('embedded');
9267
+ var isCoreApp = isEmbeddedRoute ? false : (_window$toolkitEnv = window.toolkitEnv) !== null && _window$toolkitEnv !== void 0 && _window$toolkitEnv.IS_CORE_APP ? window.toolkitEnv.IS_CORE_APP : process.env.IS_CORE_APP;
9315
9268
  if (isCoreApp) {
9316
9269
  var _storage$coreConfig;
9317
9270
  return ((_storage$coreConfig = storage$2.coreConfig) === null || _storage$coreConfig === void 0 ? void 0 : _storage$coreConfig.hideUserStatus) || false;
9318
9271
  }
9319
9272
  if ((_storage$coreConfig2 = storage$2.coreConfig) !== null && _storage$coreConfig2 !== void 0 && _storage$coreConfig2.checkUserStatusByApp) {
9320
- var _window$toolkitEnv2;
9321
- var appTiles = storage$2.getLocalItem('opsportal-core:config').tiles || [];
9322
- var appName = (_window$toolkitEnv2 = window.toolkitEnv) !== null && _window$toolkitEnv2 !== void 0 && _window$toolkitEnv2.APP_NAME ? window.toolkitEnv.APP_NAME : process.env.APP_NAME;
9323
- var appData = appTiles.find(function (tile) {
9324
- if (tile.appName) {
9325
- return tile.appName === appName;
9326
- } else {
9327
- return tile.path === "/".concat(appName);
9328
- }
9329
- });
9273
+ var coreAppConfig = storage$2.getLocalItem('opsportal-core:config') || {};
9274
+ var appData = findAppData(coreAppConfig.tiles || [], coreAppConfig.tileOverrides || []);
9330
9275
  return (appData === null || appData === void 0 ? void 0 : appData.showUserStatus) !== true;
9331
9276
  }
9332
9277
  return ((_storage$coreConfig3 = storage$2.coreConfig) === null || _storage$coreConfig3 === void 0 ? void 0 : _storage$coreConfig3.hideUserStatus) || false;
@@ -9359,8 +9304,10 @@ var ConfigFetcher = /*#__PURE__*/function (_React$Component) {
9359
9304
  _context.n = 1;
9360
9305
  break;
9361
9306
  }
9362
- return _context.a(2, _this.setState({
9363
- gotConfig: true
9307
+ return _context.a(2, _this.setState(function (state) {
9308
+ return {
9309
+ gotConfig: true
9310
+ };
9364
9311
  }));
9365
9312
  case 1:
9366
9313
  configUri = (_window$toolkitEnv2 = window.toolkitEnv) !== null && _window$toolkitEnv2 !== void 0 && _window$toolkitEnv2.CONFIG_URI ? window.toolkitEnv.CONFIG_URI : process.env.CONFIG_URI;
@@ -9376,11 +9323,10 @@ var ConfigFetcher = /*#__PURE__*/function (_React$Component) {
9376
9323
  return _context.a(2);
9377
9324
  case 3:
9378
9325
  storage$2.setItem('config', config);
9379
- if (config.instanaKey) {
9380
- window.setUpInstana(config.instanaKey, isCoreApp);
9381
- }
9382
- _this.setState({
9383
- gotConfig: true
9326
+ _this.setState(function (state) {
9327
+ return {
9328
+ gotConfig: true
9329
+ };
9384
9330
  });
9385
9331
  case 4:
9386
9332
  return _context.a(2);
@@ -21325,7 +21271,7 @@ FeedbackDialog.defaultProps = {
21325
21271
  }
21326
21272
  };
21327
21273
 
21328
- var css_248z$m = ".utilities_ops-app-frame_AppBarComponent_AppBar--root {\r\n background-color: var(--blue);\r\n background-color: var(--blue);\r\n height: 48px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n white-space: nowrap;\r\n /* padding-top: env(safe-area-inset-top, 0px); */\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--leftItems {\r\n width: 100%;\r\n display: flex;\r\n justify-content: start;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--appBarIcons {\r\n margin: 0 12px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--copartLogo {\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n margin-left: 5px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--copartLogoNew {\r\n display: flex;\r\n margin: 3px 0 0 16px;\r\n grid-gap: 10px;\r\n gap: 10px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--moduleName {\r\n color: white;\r\n font-size: 11px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid-items {\r\n color: white;\r\n cursor: pointer;\r\n font-size: 18px;\r\n display: flex;\r\n justify-content: center;\r\n margin: 8px !important;\r\n position: relative;\r\n width: 25px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid-items.utilities_ops-app-frame_AppBarComponent_AppBar--logout {\r\n margin-right: 24px !important;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid-items i {\r\n color: #fff;\r\n font-size: 20px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid-items.utilities_ops-app-frame_AppBarComponent_AppBar--lightBulbIcon i {\r\n color: #ffff00;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid-items.utilities_ops-app-frame_AppBarComponent_AppBar--language {\r\n width: auto;\r\n grid-gap: 4px;\r\n grid-gap: 5px;\r\n gap: 5px;\r\n display: flex;\r\n font-size: 14px;\r\n font-weight: 600;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid-items.utilities_ops-app-frame_AppBarComponent_AppBar--yard {\r\n width: auto;\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n background: #fff;\r\n color: #1D5AB9;\r\n font-weight: 600;\r\n border-radius: 4px;\r\n font-size: 14px;\r\n grid-gap: 8px;\r\n grid-gap: 8px;\r\n gap: 8px;\r\n padding: 2px 8px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid-items.utilities_ops-app-frame_AppBarComponent_AppBar--yard span i {\r\n color: #1D5AB9;\r\n font-size: 16px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid-items.utilities_ops-app-frame_AppBarComponent_AppBar--yard .utilities_ops-app-frame_AppBarComponent_AppBar--yardNumber {\r\n font-size: 14px;\r\n font-weight: 400;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid .utilities_ops-app-frame_AppBarComponent_AppBar--col {\r\n display: flex;\r\n color: white;\r\n font-size: 13px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid .utilities_ops-app-frame_AppBarComponent_AppBar--col svg {\r\n color: white;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--logo {\r\n width: 6rem;\r\n margin-top: 0rem;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--text {\r\n margin-top: 0.6rem;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--iconText {\r\n margin-top: 0.4rem;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--searchBar,\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--placeholderDiv {\r\n margin-top: -0.2rem;\r\n margin-left: 2rem;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--appBarLeft > img.utilities_ops-app-frame_AppBarComponent_AppBar--logo {\r\n display: inline;\r\n display: initial;\r\n}\r\n\r\n@font-face {\r\n font-family: 'Open Sans';\r\n font-style: italic;\r\n font-weight: 600;\r\n src: url(https://fonts.gstatic.com/s/opensans/v18/memnYaGs126MiZpBA-UFUKXGUdhmIqOjjg.woff2)\r\n format('woff2');\r\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--appTitle {\r\n color: #fff;\r\n font-family: 'Open Sans', sans-serif;\r\n font-weight: 600;\r\n font-style: italic;\r\n font-size: 14px;\r\n position: relative;\r\n left: 16px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--item {\r\n display: flex;\r\n color: white;\r\n font-size: 13px;\r\n cursor: pointer;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--searchIcon {\r\n /* margin-left: 10px;\r\n margin-right: 7px; */\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n background: #fff;\r\n color: #1D5AB9;\r\n font-weight: 600;\r\n border-radius: 4px;\r\n box-shadow: inset 0px -2px 0px rgba(0, 0, 0, 0.4), 0px 1.6px 3.6px 0px rgba(0, 0, 0, 0.13), 0px 0.3px 0.9px 0px rgba(0, 0, 0, 0.10);\r\n font-size: 14px;\r\n grid-gap: 8px;\r\n gap: 8px;\r\n margin: 0 8px;\r\n padding: 6px 20px 7px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--searchIcon span {\r\n display: flex;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--searchIcon span i {\r\n font-size: 18px;\r\n color: #1D5AB9;\r\n}\r\n\r\n/* .searchIcon > div {\r\n margin-left: 7px;\r\n} */\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--searchWrapper i {\r\n color: #fff;\r\n cursor: pointer;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--searchWrapper span {\r\n display: flex;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneDefault {\r\n color: white;\r\n cursor: default;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneAvailable,\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneUnvailable {\r\n background-color: white;\r\n border-radius: 20px;\r\n margin: 5px;\r\n padding: 0px 10px;\r\n height: 25px;\r\n font-weight: bold;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--light {\r\n border: 1px solid #1d5ab9;\r\n justify-content: flex-start;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--lightDefault {\r\n color: black;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneOffline,\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--lightAvailable {\r\n background-color: white;\r\n border-radius: 20px;\r\n display: flex;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--lightAvailable {\r\n color: green;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--lightAvailable i {\r\n color: green;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneOffline {\r\n color: red;\r\n margin: 5px 0px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneOffline svg {\r\n margin-right: 5px;\r\n margin-left: 5px;\r\n width: 24px;\r\n height: 24px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--SpinnerWrapper {\r\n margin-left: 5px;\r\n display: inline-flex;\r\n}\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneDefault i {\r\n font-size: 16px;\r\n}\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneAvailable i {\r\n line-height: unset;\r\n font-size: 16px;\r\n}\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneAvailable {\r\n color: green;\r\n}\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneDefault i,\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneAvailable i,\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneUnvailable svg {\r\n margin-right: 5px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneUnvailable {\r\n color: red;\r\n}\r\n\r\n/* .userMenu {\r\n margin-left: 10px !important;\r\n margin-right: 5px !important;\r\n} */\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--roleAndFlag {\r\n margin: 8px;\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--roleAndFlag > div {\r\n margin-left: 7px;\r\n font-size: 14px;\r\n font-weight: 600;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--feedback {\r\n margin: 0 !important;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--overflowItems {\r\n width: 100%;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--mihelp_button {\r\n cursor: pointer;\r\n position: relative;\r\n top: -2px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--mihelp_button i {\r\n color: #fff;\r\n font-size: 22px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--mihelpDot {\r\n background-color: #ef5350;\r\n border-radius: 50%;\r\n position: absolute;\r\n top: 3px;\r\n left: 13px;\r\n width: 10px;\r\n height: 10px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--mihelpTooltip{\r\n position: absolute;\r\n background: #fff;\r\n padding: 8px;\r\n right: 30px;\r\n top: -2px;\r\n border-radius: 2px;\r\n font-weight: 400;\r\n font-size: 12px;\r\n cursor: auto;\r\n color: #000;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--mihelpTooltip::before{\r\n content: \"\";\r\n position: absolute;\r\n top: 50%;\r\n left: 100%;\r\n margin-top: -5px;\r\n border-width: 5px;\r\n border-style: solid;\r\n border-color: transparent transparent transparent #fff;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--mihelpTooltip i{\r\n color: #000;\r\n font-size: 12px;\r\n margin-left: 5px;\r\n position: relative;\r\n top: 1px;\r\n cursor: pointer;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetContainer {\r\n position: absolute;\r\n display: flex;\r\n width: 100vw;\r\n bottom: 0;\r\n z-index: 10000;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetContainer .utilities_ops-app-frame_AppBarComponent_AppBar--ideaNoteIframe {\r\n position: absolute;\r\n bottom: 0;\r\n right: 0;\r\n height: 100%;\r\n width: 425px;\r\n max-width: 425px;\r\n background-color: white;\r\n border: 0px solid;\r\n padding: 20px 30px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetHide {\r\n background-color: rgba(0,0,0,.5);\r\n width: 100%;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--st0{fill:#0075E6;}\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--st1{fill:#6A819C;}\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--st2{fill:#FFFFFF;}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetHideButton {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: absolute;\r\n top: 2px;\r\n right: 510px;\r\n height: 38px;\r\n width: 38px;\r\n background-color: white;\r\n z-index: 11000;\r\n cursor: pointer;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--profile {\r\n padding: 5px 7px;\r\n background: #fff;\r\n border-radius: 50%;\r\n font-weight: 600;\r\n color: #1d5ab9;\r\n font-size: 12px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--searchContainer {\r\n background: rgba(255, 255, 255, 0.40);\r\n backdrop-filter: blur(20px);\r\n position: absolute;\r\n top: 50px;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n z-index: 999;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--settingsSidebarWrapper{\r\n position: absolute;\r\n z-index: 10000;\r\n height: 100vh;\r\n width: 100vw;\r\n background-color: rgba(0,0,0,.5);\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--settingsSidebarWrapper .utilities_ops-app-frame_AppBarComponent_AppBar--settingsSidebar {\r\n width: 425px;\r\n max-width: 425px;\r\n position: absolute;\r\n right: 0;\r\n /* height: calc(100vh - 100px); */\r\n /* padding: 15px; */\r\n background-color: white;\r\n overflow-y: auto;\r\n}\r\n\r\n@media only screen and (max-width: 1024px) {\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--phoneDefault i,\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--phoneAvailable i,\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--phoneUnvailable svg {\r\n margin-right: 2px;\r\n }\r\n\r\n /* .searchIcon {\r\n margin-left: 5px;\r\n margin-right: 2px;\r\n }\r\n\r\n .searchIcon > div {\r\n margin-left: 2px;\r\n } */\r\n\r\n /* .userMenu {\r\n margin-left: 3px !important;\r\n margin-right: 3px !important;\r\n } */\r\n\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--roleAndFlag {\r\n margin-left: 3px !important;\r\n margin-right: 3px !important;\r\n }\r\n\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--roleAndFlag > div {\r\n margin-left: 2px;\r\n }\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--sideBarWrapper\r\n{\r\n position: absolute;\r\n z-index: 10000;\r\n height: 100vh;\r\n top: 100px;\r\n width: 100vw;\r\n background-color: rgba(0,0,0,.5);\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--innerNotificationDiv\r\n{\r\n width: 425px;\r\n max-width: 425px;\r\n position: absolute;\r\n right: 0;\r\n /* height: calc(100vh - 100px); */\r\n background-color: white;\r\n overflow-y: auto;\r\n padding: 10px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--innerNotificationDiv::-webkit-scrollbar {\r\n width: 12px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--innerNotificationDiv::-webkit-scrollbar-track {\r\n background: #f1f1f1;\r\n border-radius: 10px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--innerNotificationDiv::-webkit-scrollbar-thumb {\r\n background-color: #888;\r\n border-radius: 10px;\r\n border: 3px solid #f1f1f1;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--innerNotificationDiv::-webkit-scrollbar-thumb:hover {\r\n background-color: #555;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--notificationsHeader{\r\n font-size: 24px;\r\n font-weight: 700;\r\n padding-bottom: 10px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--notificationsWrapper{\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n grid-gap: 6px;\r\n gap: 6px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--notificationCount{\r\n background-color: #ef5350;\r\n color: white;\r\n font-size: 12px;\r\n width: 1rem;\r\n border-radius: 50%;\r\n position: absolute;\r\n top: -5px;\r\n left: 11px;\r\n height: 1rem;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--notificationCount.utilities_ops-app-frame_AppBarComponent_AppBar--twoChars {\r\n width: 1.1rem;\r\n height: 1.1rem;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--notificationCount.utilities_ops-app-frame_AppBarComponent_AppBar--threeChars {\r\n width: 1.3rem;\r\n height: 1.3rem;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid-items.utilities_ops-app-frame_AppBarComponent_AppBar--notificationIconWrapper {\r\n cursor: pointer;\r\n margin-left: 12px;\r\n position: relative;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--arrowTipContainer {\r\n width: 0px;\r\n height: 0px;\r\n border-left: 8px solid transparent;\r\n border-right: 8px solid transparent;\r\n border-bottom: 11px solid white;\r\n position: absolute;\r\n bottom: -13px;\r\n right: 5px;\r\n}\r\n\r\n/* .arrowTipContainer.ideaNoteArrow {\r\n right: 16px;\r\n} */\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--arrowTipContainer.utilities_ops-app-frame_AppBarComponent_AppBar--mihelpArrow {\r\n right: 3px;\r\n bottom: -10px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--arrowTipContainer.utilities_ops-app-frame_AppBarComponent_AppBar--profileArrow {\r\n bottom: -12px;\r\n right: 8px;\r\n border-left: 7px solid transparent;\r\n border-right: 7px solid transparent;\r\n border-bottom: 10px solid white;\r\n}\r\n\r\n@media (max-width: 1366px) {\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetContainer .utilities_ops-app-frame_AppBarComponent_AppBar--ideaNoteIframe {\r\n width: 400px;\r\n max-width: 400px;\r\n}\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--innerNotificationDiv {\r\n width: 400px;\r\n max-width: 400px;\r\n}\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--settingsSidebarWrapper .utilities_ops-app-frame_AppBarComponent_AppBar--settingsSidebar {\r\n width: 400px;\r\n max-width: 400px;\r\n}\r\n}\r\n\r\n@media (max-width: 768px) {\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--innerNotificationDiv {\r\n width: 85%;\r\n }\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--notificationCount{\r\n left: 12px;\r\n }\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--arrowTipContainer {\r\n right: 5px;\r\n }\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetContainer .utilities_ops-app-frame_AppBarComponent_AppBar--ideaNoteIframe {\r\n width: 85% !important;\r\n }\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetContainer iframe {\r\n width: 85% !important;\r\n }\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetContainer .utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetHide .utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetHideButton {\r\n display: none;\r\n }\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--settingsSidebarWrapper .utilities_ops-app-frame_AppBarComponent_AppBar--settingsSidebar {\r\n width: 85%;\r\n }\r\n}";
21274
+ var css_248z$m = ".utilities_ops-app-frame_AppBarComponent_AppBar--root {\r\n background-color: var(--blue);\r\n background-color: var(--blue);\r\n height: 48px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n white-space: nowrap;\r\n /* padding-top: env(safe-area-inset-top, 0px); */\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--leftItems {\r\n width: 100%;\r\n display: flex;\r\n justify-content: start;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--appBarIcons {\r\n margin: 0 12px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--copartLogo {\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n margin-left: 5px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--copartLogoNew {\r\n display: flex;\r\n margin: 3px 0 0 16px;\r\n grid-gap: 10px;\r\n gap: 10px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--moduleName {\r\n color: white;\r\n font-size: 11px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid-items {\r\n color: white;\r\n cursor: pointer;\r\n font-size: 18px;\r\n display: flex;\r\n justify-content: center;\r\n margin: 8px !important;\r\n position: relative;\r\n width: 25px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid-items.utilities_ops-app-frame_AppBarComponent_AppBar--logout {\r\n margin-right: 24px !important;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid-items i {\r\n color: #fff;\r\n font-size: 20px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid-items.utilities_ops-app-frame_AppBarComponent_AppBar--lightBulbIcon i {\r\n color: #ffff00;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid-items.utilities_ops-app-frame_AppBarComponent_AppBar--language {\r\n width: auto;\r\n grid-gap: 4px;\r\n grid-gap: 5px;\r\n gap: 5px;\r\n display: flex;\r\n font-size: 14px;\r\n font-weight: 600;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid-items.utilities_ops-app-frame_AppBarComponent_AppBar--yard {\r\n width: auto;\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n background: #fff;\r\n color: #1D5AB9;\r\n font-weight: 600;\r\n border-radius: 4px;\r\n font-size: 14px;\r\n grid-gap: 8px;\r\n grid-gap: 8px;\r\n gap: 8px;\r\n padding: 2px 8px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid-items.utilities_ops-app-frame_AppBarComponent_AppBar--yard span i {\r\n color: #1D5AB9;\r\n font-size: 16px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid-items.utilities_ops-app-frame_AppBarComponent_AppBar--yard .utilities_ops-app-frame_AppBarComponent_AppBar--yardNumber {\r\n font-size: 14px;\r\n font-weight: 400;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid .utilities_ops-app-frame_AppBarComponent_AppBar--col {\r\n display: flex;\r\n color: white;\r\n font-size: 13px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid .utilities_ops-app-frame_AppBarComponent_AppBar--col svg {\r\n color: white;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--logo {\r\n width: 6rem;\r\n margin-top: 0rem;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--text {\r\n margin-top: 0.6rem;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--iconText {\r\n margin-top: 0.4rem;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--searchBar,\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--placeholderDiv {\r\n margin-top: -0.2rem;\r\n margin-left: 2rem;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--appBarLeft > img.utilities_ops-app-frame_AppBarComponent_AppBar--logo {\r\n display: inline;\r\n display: initial;\r\n}\r\n\r\n@font-face {\r\n font-family: 'Open Sans';\r\n font-style: italic;\r\n font-weight: 600;\r\n src: url(https://fonts.gstatic.com/s/opensans/v18/memnYaGs126MiZpBA-UFUKXGUdhmIqOjjg.woff2)\r\n format('woff2');\r\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--appTitle {\r\n color: #fff;\r\n font-family: 'Open Sans', sans-serif;\r\n font-weight: 600;\r\n font-style: italic;\r\n font-size: 14px;\r\n position: relative;\r\n left: 16px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--item {\r\n display: flex;\r\n color: white;\r\n font-size: 13px;\r\n cursor: pointer;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--searchIcon {\r\n /* margin-left: 10px;\r\n margin-right: 7px; */\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n background: #fff;\r\n color: #1D5AB9;\r\n font-weight: 600;\r\n border-radius: 4px;\r\n box-shadow: inset 0px -2px 0px rgba(0, 0, 0, 0.4), 0px 1.6px 3.6px 0px rgba(0, 0, 0, 0.13), 0px 0.3px 0.9px 0px rgba(0, 0, 0, 0.10);\r\n font-size: 14px;\r\n grid-gap: 8px;\r\n gap: 8px;\r\n margin: 0 8px;\r\n padding: 6px 20px 7px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--searchIcon span {\r\n display: flex;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--searchIcon span i {\r\n font-size: 18px;\r\n color: #1D5AB9;\r\n}\r\n\r\n/* .searchIcon > div {\r\n margin-left: 7px;\r\n} */\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--searchWrapper i {\r\n color: #fff;\r\n cursor: pointer;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--searchWrapper span {\r\n display: flex;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneDefault {\r\n color: white;\r\n cursor: default;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneAvailable,\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneUnvailable {\r\n background-color: white;\r\n border-radius: 20px;\r\n margin: 5px;\r\n padding: 0px 10px;\r\n height: 25px;\r\n font-weight: bold;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--light {\r\n border: 1px solid #1d5ab9;\r\n justify-content: flex-start;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--lightDefault {\r\n color: black;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneOffline,\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--lightAvailable {\r\n background-color: white;\r\n border-radius: 20px;\r\n display: flex;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--lightAvailable {\r\n color: green;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--lightAvailable i {\r\n color: green;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneOffline {\r\n color: red;\r\n margin: 5px 0px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneOffline svg {\r\n margin-right: 5px;\r\n margin-left: 5px;\r\n width: 24px;\r\n height: 24px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--SpinnerWrapper {\r\n margin-left: 5px;\r\n display: inline-flex;\r\n}\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneDefault i {\r\n font-size: 16px;\r\n}\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneAvailable i {\r\n line-height: unset;\r\n font-size: 16px;\r\n}\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneAvailable {\r\n color: green;\r\n}\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneDefault i,\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneAvailable i,\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneUnvailable svg {\r\n margin-right: 5px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--phoneUnvailable {\r\n color: red;\r\n}\r\n\r\n/* .userMenu {\r\n margin-left: 10px !important;\r\n margin-right: 5px !important;\r\n} */\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--roleAndFlag {\r\n margin: 8px;\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--roleAndFlag > div {\r\n margin-left: 7px;\r\n font-size: 14px;\r\n font-weight: 600;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--feedback {\r\n margin: 0 !important;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--overflowItems {\r\n width: 100%;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--mihelp_button {\r\n cursor: pointer;\r\n position: relative;\r\n top: -2px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--mihelp_button i {\r\n color: #fff;\r\n font-size: 22px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--mihelpDot {\r\n background-color: #ef5350;\r\n border-radius: 50%;\r\n position: absolute;\r\n top: 3px;\r\n left: 13px;\r\n width: 10px;\r\n height: 10px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--mihelpTooltip{\r\n position: absolute;\r\n background: #fff;\r\n padding: 8px;\r\n right: 30px;\r\n top: -2px;\r\n border-radius: 2px;\r\n font-weight: 400;\r\n font-size: 12px;\r\n cursor: auto;\r\n color: #000;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--mihelpTooltip::before{\r\n content: \"\";\r\n position: absolute;\r\n top: 50%;\r\n left: 100%;\r\n margin-top: -5px;\r\n border-width: 5px;\r\n border-style: solid;\r\n border-color: transparent transparent transparent #fff;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--mihelpTooltip i{\r\n color: #000;\r\n font-size: 12px;\r\n margin-left: 5px;\r\n position: relative;\r\n top: 1px;\r\n cursor: pointer;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetContainer {\r\n position: absolute;\r\n display: flex;\r\n width: 100vw;\r\n bottom: 0;\r\n z-index: 10000;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetContainer .utilities_ops-app-frame_AppBarComponent_AppBar--ideaNoteIframe {\r\n position: absolute;\r\n bottom: 0;\r\n right: 0;\r\n height: 100%;\r\n width: 425px;\r\n max-width: 425px;\r\n background-color: white;\r\n border: 0px solid;\r\n padding: 20px 30px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetHide {\r\n background-color: rgba(0,0,0,.5);\r\n width: 100%;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--st0{fill:#0075E6;}\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--st1{fill:#6A819C;}\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--st2{fill:#FFFFFF;}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetHideButton {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: absolute;\r\n top: 2px;\r\n right: 510px;\r\n height: 38px;\r\n width: 38px;\r\n background-color: white;\r\n z-index: 11000;\r\n cursor: pointer;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--profile {\r\n padding: 5px 7px;\r\n background: #fff;\r\n border-radius: 50%;\r\n font-weight: 600;\r\n color: #1d5ab9;\r\n font-size: 12px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--searchContainer {\r\n background: rgba(255, 255, 255, 0.40);\r\n backdrop-filter: blur(20px);\r\n position: absolute;\r\n top: 50px;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n z-index: 999;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--settingsSidebarWrapper{\r\n position: absolute;\r\n z-index: 10000;\r\n height: 100vh;\r\n width: 100vw;\r\n background-color: rgba(0,0,0,.5);\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--settingsSidebarWrapper .utilities_ops-app-frame_AppBarComponent_AppBar--settingsSidebar {\r\n width: 425px;\r\n max-width: 425px;\r\n position: absolute;\r\n right: 0;\r\n /* height: calc(100vh - 100px); */\r\n /* padding: 15px; */\r\n background-color: white;\r\n overflow-y: auto;\r\n}\r\n\r\n@media only screen and (max-width: 1024px) {\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--phoneDefault i,\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--phoneAvailable i,\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--phoneUnvailable svg {\r\n margin-right: 2px;\r\n }\r\n\r\n /* .searchIcon {\r\n margin-left: 5px;\r\n margin-right: 2px;\r\n }\r\n\r\n .searchIcon > div {\r\n margin-left: 2px;\r\n } */\r\n\r\n /* .userMenu {\r\n margin-left: 3px !important;\r\n margin-right: 3px !important;\r\n } */\r\n\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--roleAndFlag {\r\n margin-left: 3px !important;\r\n margin-right: 3px !important;\r\n }\r\n\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--roleAndFlag > div {\r\n margin-left: 2px;\r\n }\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--sideBarWrapper\r\n{\r\n position: absolute;\r\n z-index: 10000;\r\n height: 100vh;\r\n top: 100px;\r\n width: 100vw;\r\n background-color: rgba(0,0,0,.5);\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--innerNotificationDiv\r\n{\r\n width: 425px;\r\n max-width: 425px;\r\n position: absolute;\r\n right: 0;\r\n /* height: calc(100vh - 100px); */\r\n background-color: white;\r\n overflow-y: hidden;\r\n padding: 10px;\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--innerNotificationDiv::-webkit-scrollbar {\r\n width: 12px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--innerNotificationDiv::-webkit-scrollbar-track {\r\n background: #f1f1f1;\r\n border-radius: 10px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--innerNotificationDiv::-webkit-scrollbar-thumb {\r\n background-color: #888;\r\n border-radius: 10px;\r\n border: 3px solid #f1f1f1;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--innerNotificationDiv::-webkit-scrollbar-thumb:hover {\r\n background-color: #555;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--notificationsHeader{\r\n font-size: 24px;\r\n font-weight: 700;\r\n padding-bottom: 10px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--notificationsWrapper{\r\n flex: 1;\r\n min-height: 0;\r\n overflow: hidden;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--notificationCount{\r\n background-color: #ef5350;\r\n color: white;\r\n font-size: 12px;\r\n width: 1rem;\r\n border-radius: 50%;\r\n position: absolute;\r\n top: -5px;\r\n left: 11px;\r\n height: 1rem;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--notificationCount.utilities_ops-app-frame_AppBarComponent_AppBar--twoChars {\r\n width: 1.1rem;\r\n height: 1.1rem;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--notificationCount.utilities_ops-app-frame_AppBarComponent_AppBar--threeChars {\r\n width: 1.3rem;\r\n height: 1.3rem;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--flex-grid-items.utilities_ops-app-frame_AppBarComponent_AppBar--notificationIconWrapper {\r\n cursor: pointer;\r\n margin-left: 12px;\r\n position: relative;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--arrowTipContainer {\r\n width: 0px;\r\n height: 0px;\r\n border-left: 8px solid transparent;\r\n border-right: 8px solid transparent;\r\n border-bottom: 11px solid white;\r\n position: absolute;\r\n bottom: -13px;\r\n right: 5px;\r\n}\r\n\r\n/* .arrowTipContainer.ideaNoteArrow {\r\n right: 16px;\r\n} */\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--arrowTipContainer.utilities_ops-app-frame_AppBarComponent_AppBar--mihelpArrow {\r\n right: 3px;\r\n bottom: -10px;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--arrowTipContainer.utilities_ops-app-frame_AppBarComponent_AppBar--profileArrow {\r\n bottom: -12px;\r\n right: 8px;\r\n border-left: 7px solid transparent;\r\n border-right: 7px solid transparent;\r\n border-bottom: 10px solid white;\r\n}\r\n\r\n@media (max-width: 1366px) {\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetContainer .utilities_ops-app-frame_AppBarComponent_AppBar--ideaNoteIframe {\r\n width: 400px;\r\n max-width: 400px;\r\n}\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--innerNotificationDiv {\r\n width: 400px;\r\n max-width: 400px;\r\n}\r\n.utilities_ops-app-frame_AppBarComponent_AppBar--settingsSidebarWrapper .utilities_ops-app-frame_AppBarComponent_AppBar--settingsSidebar {\r\n width: 400px;\r\n max-width: 400px;\r\n}\r\n}\r\n\r\n@media (max-width: 768px) {\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--innerNotificationDiv {\r\n width: 85%;\r\n }\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--notificationCount{\r\n left: 12px;\r\n }\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--arrowTipContainer {\r\n right: 5px;\r\n }\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetContainer .utilities_ops-app-frame_AppBarComponent_AppBar--ideaNoteIframe {\r\n width: 85% !important;\r\n }\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetContainer iframe {\r\n width: 85% !important;\r\n }\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetContainer .utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetHide .utilities_ops-app-frame_AppBarComponent_AppBar--ideaWidgetHideButton {\r\n display: none;\r\n }\r\n .utilities_ops-app-frame_AppBarComponent_AppBar--settingsSidebarWrapper .utilities_ops-app-frame_AppBarComponent_AppBar--settingsSidebar {\r\n width: 85%;\r\n }\r\n}";
21329
21275
  styleInject(css_248z$m);
21330
21276
 
21331
21277
  var LogOutMenu = function LogOutMenu(_ref) {
@@ -21552,7 +21498,7 @@ var MobileMenu = function MobileMenu(props) {
21552
21498
  var css_248z$j = ".utilities_ops-app-frame_AppBarComponent_CopartLogo_CopartLogo--CopartLogo {\r\n max-width: 80px;\r\n position: relative;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_CopartLogo_CopartLogo--CopartLogoNew {\r\n max-width: 120px;\r\n position: relative;\r\n}\r\n\r\n.utilities_ops-app-frame_AppBarComponent_CopartLogo_CopartLogo--logoLink {\r\n line-height: 0;\r\n}\r\n";
21553
21499
  styleInject(css_248z$j);
21554
21500
 
21555
- var _styleModuleImportMap$8 = {
21501
+ var _styleModuleImportMap$9 = {
21556
21502
  "./CopartLogo.css": {
21557
21503
  "CopartLogo": "utilities_ops-app-frame_AppBarComponent_CopartLogo_CopartLogo--CopartLogo",
21558
21504
  "CopartLogoNew": "utilities_ops-app-frame_AppBarComponent_CopartLogo_CopartLogo--CopartLogoNew",
@@ -21568,7 +21514,7 @@ var CopartLogo = function CopartLogo() {
21568
21514
  href: "/"
21569
21515
  }, /*#__PURE__*/React__namespace.createElement("img", {
21570
21516
  src: imageSrc,
21571
- className: _getClassName(enableNewToolkitFeatures ? "CopartLogoNew" : "CopartLogo", _styleModuleImportMap$8, {
21517
+ className: _getClassName(enableNewToolkitFeatures ? "CopartLogoNew" : "CopartLogo", _styleModuleImportMap$9, {
21572
21518
  "handleMissingStyleName": "warn"
21573
21519
  })
21574
21520
  }));
@@ -21773,7 +21719,7 @@ var unEscapeChars = function unEscapeChars(str) {
21773
21719
  var css_248z$i = ".utilities_ops-app-frame_Help_Help--backdrop {\r\n position: absolute;\r\n z-index: 10000;\r\n height: 100vh;\r\n top: 48px;\r\n width: 100vw;\r\n background-color: rgba(0, 0, 0, 0.5);\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--miHelpSideBar {\r\n width: 425px;\r\n max-width: 425px;\r\n position: absolute;\r\n right: 0;\r\n height: calc(100vh - 48px);\r\n padding: 15px;\r\n background-color: white;\r\n overflow-y: auto;\r\n overflow-x: hidden;\r\n color: #323130;\r\n white-space: normal;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--miHelpSideBar::-webkit-scrollbar {\r\n width: 12px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--miHelpSideBar::-webkit-scrollbar-track {\r\n background: #f1f1f1;\r\n border-radius: 10px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--miHelpSideBar::-webkit-scrollbar-thumb {\r\n background-color: #888;\r\n border-radius: 10px;\r\n border: 3px solid #f1f1f1;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--miHelpSideBar::-webkit-scrollbar-thumb:hover {\r\n background-color: #555;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--title {\r\n font-weight: 600;\r\n font-size: 28px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--header {\r\n margin-bottom: 10px;\r\n display: flex;\r\n justify-content: space-between;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--header .utilities_ops-app-frame_Help_Help--close,\r\n.utilities_ops-app-frame_Help_Help--submitQuestionWrapper .utilities_ops-app-frame_Help_Help--close {\r\n position: relative;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--header .utilities_ops-app-frame_Help_Help--close i,\r\n.utilities_ops-app-frame_Help_Help--submitQuestionWrapper .utilities_ops-app-frame_Help_Help--close i {\r\n font-size: 14px;\r\n cursor: pointer;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--subHeader {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--subHeaderTitle {\r\n font-weight: 600;\r\n font-size: 20px;\r\n display: flex;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--subHeaderTitle .utilities_ops-app-frame_Help_Help--back {\r\n color: #1d5ab9;\r\n margin-right: 5px;\r\n cursor: pointer;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--link {\r\n font-weight: 400;\r\n font-size: 14px;\r\n color: #1d5ab9;\r\n cursor: pointer;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--link i {\r\n font-size: 10px;\r\n position: relative;\r\n top: -5px;\r\n left: 3px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--helpResourcesWrapper {\r\n margin-top: 20px;\r\n position: relative;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--helpResourcesWrapper h3,\r\n.utilities_ops-app-frame_Help_Help--relatedResourcesWrapper h3 {\r\n font-weight: 400;\r\n font-size: 24px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--helpResourcesWrapper h3 i {\r\n color: #1d5ab9;\r\n font-size: 10px;\r\n position: relative;\r\n top: -8px;\r\n cursor: pointer;\r\n left: 5px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--helpResourcesWrapper ul,\r\n.utilities_ops-app-frame_Help_Help--relatedResourcesWrapper ul {\r\n list-style: none;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--helpResourcesWrapper ul li,\r\n.utilities_ops-app-frame_Help_Help--relatedResourcesWrapper ul li {\r\n font-weight: 400;\r\n font-size: 14px;\r\n margin: 6px 0;\r\n display: flex;\r\n cursor: pointer;\r\n width: -webkit-fit-content;\r\n width: -moz-fit-content;\r\n width: fit-content;\r\n align-items: flex-start;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--helpResourcesWrapper ul li:hover,\r\n.utilities_ops-app-frame_Help_Help--relatedResourcesWrapper ul li:hover {\r\n color: #1d5ab9;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--helpResourcesWrapper ul li img,\r\n.utilities_ops-app-frame_Help_Help--relatedResourcesWrapper ul li img {\r\n width: 17px;\r\n margin-right: 5px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--helpResourcesWrapper .utilities_ops-app-frame_Help_Help--viewMore {\r\n color: #1d5ab9;\r\n cursor: pointer;\r\n font-weight: 400;\r\n font-size: 14px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--searchWrapper {\r\n width: 100%;\r\n position: relative;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--searchWrapper span {\r\n position: absolute;\r\n width: 29px;\r\n height: 29px;\r\n background: #f3f2f1;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n bottom: 1.5px;\r\n right: 2px;\r\n cursor: pointer;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--mihelpSearch {\r\n width: 100%;\r\n margin-top: 15px;\r\n padding: 0px 10px;\r\n height: 32px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--searchResultsWrapper {\r\n width: 100%;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--searchResultsWrapper h3 {\r\n font-weight: 400;\r\n font-size: 24px;\r\n margin-top: 8px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--searchResultsWrapper .utilities_ops-app-frame_Help_Help--searchResult {\r\n width: 100%;\r\n margin-top: 20px;\r\n border-bottom: 1px solid #dcdcdc;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--searchResultsWrapper .utilities_ops-app-frame_Help_Help--searchResult p {\r\n margin-top: 13px;\r\n margin-bottom: 30px;\r\n text-overflow: ellipsis;\r\n width: 100%;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--spinnerWrapper {\r\n position: absolute;\r\n background: rgba(0, 0, 0, 0.5);\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--spinnerWrapper svg {\r\n position: absolute;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--overFlowHidden {\r\n overflow: hidden;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--nonInteractive {\r\n opacity: 0.3;\r\n pointer-events: none;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--searchTitlewrapper {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--likeswrapper {\r\n color: #cbcbcb;\r\n display: flex;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--like {\r\n margin-left: 10px;\r\n font-size: 10px;\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--like i {\r\n font-size: 14px;\r\n margin-right: 2px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--searchTitle {\r\n display: flex;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--searchTitle img {\r\n width: 18px;\r\n margin-right: 5px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--searchTitle span {\r\n font-weight: 600;\r\n font-size: 18px;\r\n cursor: pointer;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--searchTitle span:hover {\r\n color: #1d5ab9;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--faqContentWrapper {\r\n width: 100%;\r\n margin-top: 12px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--faqContentWrapper h3 {\r\n font-weight: 300;\r\n font-size: 34px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--faqContentWrapper .utilities_ops-app-frame_Help_Help--faqsList {\r\n width: 100%;\r\n white-space: normal;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--faqContentWrapper .utilities_ops-app-frame_Help_Help--category {\r\n width: 100%;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--faqContentWrapper .utilities_ops-app-frame_Help_Help--category h3 {\r\n color: #1d5ab9;\r\n font-weight: 600;\r\n font-size: 24px;\r\n margin-top: 18px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--accordian {\r\n border-top: 1px solid #dcdcdc;\r\n padding-top: 13px;\r\n margin-top: 18px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--accordian .utilities_ops-app-frame_Help_Help--question {\r\n font-weight: 400;\r\n font-size: 20px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n cursor: pointer;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--accordian .utilities_ops-app-frame_Help_Help--question span {\r\n transition: all 0.2s ease-out;\r\n display: flex;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--accordian .utilities_ops-app-frame_Help_Help--answer {\r\n font-weight: 400;\r\n font-size: 14px;\r\n height: auto;\r\n max-height: 0;\r\n transition: max-height 0.2s ease-out;\r\n overflow: hidden;\r\n margin-top: 13px;\r\n white-space: normal;\r\n}\r\n\r\n/* .accordian .answer span {\r\n white-space: break-spaces;\r\n } */\r\n\r\n.utilities_ops-app-frame_Help_Help--releaseNote {\r\n width: 100%;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--releaseNote h3 {\r\n font-weight: 400;\r\n font-size: 24px;\r\n margin-top: 13px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--releaseNote .utilities_ops-app-frame_Help_Help--releaseNoteContent {\r\n margin-top: 10px;\r\n white-space: normal;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--helpArticle {\r\n width: 100%;\r\n white-space: normal;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--helpArticle h3 {\r\n font-weight: 400;\r\n font-size: 24px;\r\n margin-top: 13px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--helpArticle .utilities_ops-app-frame_Help_Help--helpArticleWrapper {\r\n margin-top: 10px;\r\n white-space: normal;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--articleFooter {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-top: 30px;\r\n padding-bottom: 12px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--likeWrapper {\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--likeWrapper .utilities_ops-app-frame_Help_Help--likeTxt {\r\n font-weight: 600;\r\n font-size: 14px;\r\n margin-right: 10px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--likeWrapper .utilities_ops-app-frame_Help_Help--thanksText {\r\n color: rgb(45, 206, 137);\r\n font-weight: bold;\r\n font-size: 16px;\r\n margin-left: 10px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--likeWrapper .utilities_ops-app-frame_Help_Help--feedbackWrapper {\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--likeWrapper .utilities_ops-app-frame_Help_Help--feedbackWrapper textarea {\r\n width: 300px;\r\n height: 100px;\r\n resize: none;\r\n display: block;\r\n margin-bottom: 11px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--likeWrapper .utilities_ops-app-frame_Help_Help--feedbackWrapper h5 {\r\n font-size: 18px;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--likeWrapper .utilities_ops-app-frame_Help_Help--feedbackWrapper span {\r\n background-color: rgb(29, 90, 185);\r\n color: #fff;\r\n padding: 6px 12px;\r\n cursor: pointer;\r\n margin-right: 5px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--likebtnWrapper {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n color: #2dce89;\r\n margin-right: 6px;\r\n font-size: 12px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--likebtnWrapper svg {\r\n border: 1px solid #2dce89 !important;\r\n padding: 5px;\r\n height: 30px;\r\n width: 30px;\r\n cursor: pointer;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--likebtnWrapper.utilities_ops-app-frame_Help_Help--active svg,\r\n.utilities_ops-app-frame_Help_Help--likebtnWrapper svg:hover {\r\n background-color: #2dce89;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--likebtnWrapper.utilities_ops-app-frame_Help_Help--active svg path,\r\n.utilities_ops-app-frame_Help_Help--likebtnWrapper svg:hover path {\r\n fill: #fff;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--dislike {\r\n color: #f5365c !important;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--dislike svg {\r\n border: 1px solid #f5365c !important;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--dislike.utilities_ops-app-frame_Help_Help--active svg,\r\n.utilities_ops-app-frame_Help_Help--dislike svg:hover {\r\n background-color: #f5365c !important;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--dateWrapper {\r\n font-style: italic;\r\n /* font-weight: 700; */\r\n font-size: 12px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--dateWrapper b {\r\n font-weight: 700;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--dateWrapper span {\r\n font-weight: 400;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--relatedResourcesWrapper {\r\n width: 100%;\r\n border-top: 1px solid #edebe9;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--relatedResourcesWrapper h3 {\r\n font-weight: 400;\r\n font-size: 24px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--submitQuestionWrapper {\r\n width: 100%;\r\n border: 1px solid #dcdcdc;\r\n padding: 20px;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n margin-top: 50px;\r\n position: relative;\r\n text-align: center;\r\n justify-content: center;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--submitQuestionWrapper.utilities_ops-app-frame_Help_Help--noFlex {\r\n display: block;\r\n text-align: left;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--submitQuestionWrapper h2 {\r\n font-size: 34px !important;\r\n margin-bottom: 6px !important;\r\n margin-top: 0 !important;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--submitQuestionWrapper p {\r\n font-size: 14px !important;\r\n margin-bottom: 3px !important;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--submitQuestionWrapper p img {\r\n position: relative;\r\n top: 2px;\r\n margin-left: 2px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--submitQuestionWrapper .utilities_ops-app-frame_Help_Help--submitBtn {\r\n background-color: #1d5ab9;\r\n color: #fff;\r\n padding: 6px 12px;\r\n font-weight: 600;\r\n font-size: 12px;\r\n cursor: pointer;\r\n margin-top: 7px;\r\n border-radius: 2px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--submitQuestionWrapper .utilities_ops-app-frame_Help_Help--submitBtn.utilities_ops-app-frame_Help_Help--disable {\r\n pointer-events: none;\r\n cursor: default;\r\n background-color: #ccc;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--submitQuestionWrapper .utilities_ops-app-frame_Help_Help--close {\r\n position: absolute;\r\n top: 0px;\r\n right: 10px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--submitQuestionWrapper h3 {\r\n font-weight: 800 !important;\r\n font-size: 20px !important;\r\n line-height: 27px !important;\r\n color: #1d5ab9 !important;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--submitQuestionWrapper .utilities_ops-app-frame_Help_Help--CategoryWrapper,\r\n.utilities_ops-app-frame_Help_Help--submitQuestionWrapper .utilities_ops-app-frame_Help_Help--questionWrapper {\r\n width: 100%;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--submitQuestionWrapper .utilities_ops-app-frame_Help_Help--CategoryWrapper label,\r\n.utilities_ops-app-frame_Help_Help--submitQuestionWrapper .utilities_ops-app-frame_Help_Help--questionWrapper label {\r\n font-weight: 600;\r\n font-size: 14px;\r\n color: #000100;\r\n margin: 10px 0;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--submitQuestionWrapper .utilities_ops-app-frame_Help_Help--questionWrapper textarea {\r\n resize: none;\r\n height: 125px;\r\n margin-bottom: 20px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--submitQuestionWrapper .utilities_ops-app-frame_Help_Help--highlightRed {\r\n font-weight: 600;\r\n color: #f5365c;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--submitQuestionWrapper .utilities_ops-app-frame_Help_Help--successMsg {\r\n color: #1d5ab9;\r\n font-size: 20px !important;\r\n margin-top: 12px;\r\n margin-bottom: 20px !important;\r\n font-weight: 600;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--releaseDialogContent {\r\n max-width: 700px;\r\n min-width: 600px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--releaseDialogContent .utilities_ops-app-frame_Help_Help--releaseDialogHeader {\r\n width: 100%;\r\n display: flex;\r\n justify-content: space-between;\r\n background: #edebe9;\r\n padding: 10px 20px;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--releaseDialogContent .utilities_ops-app-frame_Help_Help--releaseDialogBody {\r\n padding: 20px 20px 30px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--releaseDialogContent .utilities_ops-app-frame_Help_Help--releaseDialogHeader h3 {\r\n font-weight: 600;\r\n font-size: 20px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--releaseDialogContent .utilities_ops-app-frame_Help_Help--releaseDialogHeader span {\r\n font-weight: 600;\r\n font-size: 14px;\r\n -webkit-text-decoration-line: underline;\r\n text-decoration-line: underline;\r\n color: #1d5ab9;\r\n cursor: pointer;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--releaseDialogContent .utilities_ops-app-frame_Help_Help--releaseDialogHeader span i {\r\n font-size: 10px;\r\n position: relative;\r\n top: -6px;\r\n right: -1px;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--releaseNoteActive {\r\n padding: 22px;\r\n background-color: #1d5ab9;\r\n color: #fff;\r\n font-size: 32px !important;\r\n width: 100% !important;\r\n border-radius: 10px;\r\n align-items: center !important;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--releaseNoteActive:hover{\r\n color: #fff !important;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--releaseNoteActive img {\r\n width: 65px !important;\r\n margin-right: 25px !important;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--releaseNoteActive .utilities_ops-app-frame_Help_Help--releaseTitle {\r\n flex: 1;\r\n}\r\n\r\n.utilities_ops-app-frame_Help_Help--releaseNoteActive .utilities_ops-app-frame_Help_Help--checkNow {\r\n font-weight: 700;\r\n font-size: 14px;\r\n align-self: end;\r\n}\r\n\r\n@media (max-width: 1366px) {\r\n .utilities_ops-app-frame_Help_Help--miHelpSideBar {\r\n width: 400px;\r\n }\r\n}\r\n\r\n@media (max-width: 767px) {\r\n .utilities_ops-app-frame_Help_Help--miHelpSideBar {\r\n width: 85%;\r\n }\r\n}\r\n";
21774
21720
  styleInject(css_248z$i);
21775
21721
 
21776
- var _styleModuleImportMap$7 = {
21722
+ var _styleModuleImportMap$8 = {
21777
21723
  "../Help.css": {
21778
21724
  "backdrop": "utilities_ops-app-frame_Help_Help--backdrop",
21779
21725
  "miHelpSideBar": "utilities_ops-app-frame_Help_Help--miHelpSideBar",
@@ -21860,7 +21806,7 @@ var ArticleSection = function ArticleSection(_ref) {
21860
21806
  onClick: function onClick() {
21861
21807
  return clickhandler(viewMapper[articleDetails.type], article);
21862
21808
  },
21863
- className: _getClassName(highlightRelease ? 'releaseNoteActive' : '', _styleModuleImportMap$7, {
21809
+ className: _getClassName(highlightRelease ? 'releaseNoteActive' : '', _styleModuleImportMap$8, {
21864
21810
  "handleMissingStyleName": "warn"
21865
21811
  })
21866
21812
  }, /*#__PURE__*/React__default["default"].createElement("img", {
@@ -21983,7 +21929,7 @@ styleInject(css_248z$f);
21983
21929
  var css_248z$e = "/**\n * Colors\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * SCSS Variables.\n *\n * Please use variables from this sheet to ensure consistency across the UI.\n * Don't add to this sheet unless you're pretty sure the value will be reused in many places.\n * For example, don't add rules to this sheet that affect block visuals. It's purely for UI.\n */\n/**\n * Colors\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block & Editor UI.\n */\n/**\n * Block paddings.\n */\n/**\n * React Native specific.\n * These variables do not appear to be used anywhere else.\n */\n/**\n* Converts a hex value into the rgb equivalent.\n*\n* @param {string} hex - the hexadecimal value to convert\n* @return {string} comma separated rgb values\n*/\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n#start-resizable-editor-section {\n display: none;\n}\n\n.wp-block-audio figcaption {\n color: #555;\n font-size: 13px;\n text-align: center;\n}\n.is-dark-theme .wp-block-audio figcaption {\n color: rgba(255, 255, 255, 0.65);\n}\n\n.wp-block-code {\n font-family: Menlo, Consolas, monaco, monospace;\n color: #1e1e1e;\n padding: 0.8em 1em;\n border: 1px solid #ddd;\n border-radius: 4px;\n}\n\n.wp-block-embed figcaption {\n color: #555;\n font-size: 13px;\n text-align: center;\n}\n.is-dark-theme .wp-block-embed figcaption {\n color: rgba(255, 255, 255, 0.65);\n}\n\n.blocks-gallery-caption {\n color: #555;\n font-size: 13px;\n text-align: center;\n}\n.is-dark-theme .blocks-gallery-caption {\n color: rgba(255, 255, 255, 0.65);\n}\n\n.wp-block-image figcaption {\n color: #555;\n font-size: 13px;\n text-align: center;\n}\n.is-dark-theme .wp-block-image figcaption {\n color: rgba(255, 255, 255, 0.65);\n}\n\n.wp-block-pullquote {\n border-top: 4px solid currentColor;\n border-bottom: 4px solid currentColor;\n margin-bottom: 1.75em;\n color: currentColor;\n}\n.wp-block-pullquote cite,\n.wp-block-pullquote footer, .wp-block-pullquote__citation {\n color: currentColor;\n text-transform: uppercase;\n font-size: 0.8125em;\n font-style: normal;\n}\n\n.wp-block-quote {\n border-left: 0.25em solid currentColor;\n margin: 0 0 1.75em 0;\n padding-left: 1em;\n}\n.wp-block-quote cite,\n.wp-block-quote footer {\n color: currentColor;\n font-size: 0.8125em;\n position: relative;\n font-style: normal;\n}\n.wp-block-quote.has-text-align-right {\n border-left: none;\n border-right: 0.25em solid currentColor;\n padding-left: 0;\n padding-right: 1em;\n}\n.wp-block-quote.has-text-align-center {\n border: none;\n padding-left: 0;\n}\n.wp-block-quote.is-style-large, .wp-block-quote.is-large {\n border: none;\n}\n\n.wp-block-search .wp-block-search__label {\n font-weight: bold;\n}\n\n.wp-block-group.has-background {\n padding: 1.25em 2.375em;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.wp-block-separator {\n border: none;\n border-bottom: 2px solid currentColor;\n margin-left: auto;\n margin-right: auto;\n opacity: 0.4;\n}\n.wp-block-separator:not(.is-style-wide):not(.is-style-dots) {\n width: 100px;\n}\n.wp-block-separator.has-background:not(.is-style-dots) {\n border-bottom: none;\n height: 1px;\n}\n.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots) {\n height: 2px;\n}\n\n.wp-block-table thead {\n border-bottom: 3px solid;\n}\n.wp-block-table tfoot {\n border-top: 3px solid;\n}\n.wp-block-table td,\n.wp-block-table th {\n padding: 0.5em;\n border: 1px solid;\n word-break: normal;\n}\n.wp-block-table figcaption {\n color: #555;\n font-size: 13px;\n text-align: center;\n}\n.is-dark-theme .wp-block-table figcaption {\n color: rgba(255, 255, 255, 0.65);\n}\n\n.wp-block-video figcaption {\n color: #555;\n font-size: 13px;\n text-align: center;\n}\n.is-dark-theme .wp-block-video figcaption {\n color: rgba(255, 255, 255, 0.65);\n}\n\n.wp-block-template-part.has-background {\n padding: 1.25em 2.375em;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n#end-resizable-editor-section {\n display: none;\n}";
21984
21930
  styleInject(css_248z$e);
21985
21931
 
21986
- var _styleModuleImportMap$6 = {
21932
+ var _styleModuleImportMap$7 = {
21987
21933
  "../wordpressStyles.css": {
21988
21934
  "helpArticleContent": "utilities_ops-app-frame_Help_wordpressStyles--helpArticleContent",
21989
21935
  "sr-only": "utilities_ops-app-frame_Help_wordpressStyles--sr-only",
@@ -22016,7 +21962,7 @@ function HelpArticleContent(_ref) {
22016
21962
  return /*#__PURE__*/React__default["default"].createElement("div", {
22017
21963
  className: "utilities_ops-app-frame_Help_wordpressStyles--helpArticleContent"
22018
21964
  }, /*#__PURE__*/React__default["default"].createElement("div", {
22019
- className: "elementor-kit-38 " + _getClassName(showQuestionSection ? 'nonInteractive' : '', _styleModuleImportMap$6, {
21965
+ className: "elementor-kit-38 " + _getClassName(showQuestionSection ? 'nonInteractive' : '', _styleModuleImportMap$7, {
22020
21966
  "handleMissingStyleName": "warn"
22021
21967
  })
22022
21968
  }, /*#__PURE__*/React__default["default"].createElement("div", {
@@ -22068,7 +22014,7 @@ var Dislike = function Dislike() {
22068
22014
  }));
22069
22015
  };
22070
22016
 
22071
- var _styleModuleImportMap$5 = {
22017
+ var _styleModuleImportMap$6 = {
22072
22018
  "../Help.css": {
22073
22019
  "backdrop": "utilities_ops-app-frame_Help_Help--backdrop",
22074
22020
  "miHelpSideBar": "utilities_ops-app-frame_Help_Help--miHelpSideBar",
@@ -22169,7 +22115,7 @@ var HelpArticle = function HelpArticle(_ref) {
22169
22115
  return /*#__PURE__*/React__default["default"].createElement("div", {
22170
22116
  className: "utilities_ops-app-frame_Help_Help--helpArticle"
22171
22117
  }, /*#__PURE__*/React__default["default"].createElement("h3", {
22172
- className: _getClassName(showQuestionSection ? 'nonInteractive' : '', _styleModuleImportMap$5, {
22118
+ className: _getClassName(showQuestionSection ? 'nonInteractive' : '', _styleModuleImportMap$6, {
22173
22119
  "handleMissingStyleName": "warn"
22174
22120
  })
22175
22121
  }, currentArticle.title), /*#__PURE__*/React__default["default"].createElement("div", {
@@ -22178,7 +22124,7 @@ var HelpArticle = function HelpArticle(_ref) {
22178
22124
  article: currentArticle,
22179
22125
  showQuestionSection: showQuestionSection
22180
22126
  }, /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
22181
- className: _getClassName("articleFooter ".concat(showQuestionSection ? 'nonInteractive' : ''), _styleModuleImportMap$5, {
22127
+ className: _getClassName("articleFooter ".concat(showQuestionSection ? 'nonInteractive' : ''), _styleModuleImportMap$6, {
22182
22128
  "handleMissingStyleName": "warn"
22183
22129
  })
22184
22130
  }, /*#__PURE__*/React__default["default"].createElement("span", {
@@ -22186,7 +22132,7 @@ var HelpArticle = function HelpArticle(_ref) {
22186
22132
  }, !currentArticle.showFeedback ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, !currentArticle.showThanksText ? /*#__PURE__*/React__default["default"].createElement("span", {
22187
22133
  className: "utilities_ops-app-frame_Help_Help--likeTxt"
22188
22134
  }, "Was this useful?") : null, /*#__PURE__*/React__default["default"].createElement("span", {
22189
- className: _getClassName("likebtnWrapper ".concat(currentArticle.liked ? 'active' : ''), _styleModuleImportMap$5, {
22135
+ className: _getClassName("likebtnWrapper ".concat(currentArticle.liked ? 'active' : ''), _styleModuleImportMap$6, {
22190
22136
  "handleMissingStyleName": "warn"
22191
22137
  })
22192
22138
  }, /*#__PURE__*/React__default["default"].createElement("span", {
@@ -22194,7 +22140,7 @@ var HelpArticle = function HelpArticle(_ref) {
22194
22140
  return likeHandler(currentArticle);
22195
22141
  }
22196
22142
  }, /*#__PURE__*/React__default["default"].createElement(Like, null)), /*#__PURE__*/React__default["default"].createElement("span", null, currentArticle.likes)), /*#__PURE__*/React__default["default"].createElement("span", {
22197
- className: _getClassName("likebtnWrapper dislike ".concat(currentArticle.disliked ? 'active' : ''), _styleModuleImportMap$5, {
22143
+ className: _getClassName("likebtnWrapper dislike ".concat(currentArticle.disliked ? 'active' : ''), _styleModuleImportMap$6, {
22198
22144
  "handleMissingStyleName": "warn"
22199
22145
  })
22200
22146
  }, /*#__PURE__*/React__default["default"].createElement("span", {
@@ -22222,7 +22168,7 @@ var HelpArticle = function HelpArticle(_ref) {
22222
22168
  }, "Skip")))), /*#__PURE__*/React__default["default"].createElement("span", {
22223
22169
  className: "utilities_ops-app-frame_Help_Help--dateWrapper"
22224
22170
  }, /*#__PURE__*/React__default["default"].createElement("b", null, "Last updated on:"), ' ', /*#__PURE__*/React__default["default"].createElement("span", null, currentArticle.updatedDate ? formatPublishDate(currentArticle.updatedDate) : null))), currentArticle.relatedHelpResources && /*#__PURE__*/React__default["default"].createElement("div", {
22225
- className: _getClassName("relatedResourcesWrapper ".concat(showQuestionSection ? 'nonInteractive' : ''), _styleModuleImportMap$5, {
22171
+ className: _getClassName("relatedResourcesWrapper ".concat(showQuestionSection ? 'nonInteractive' : ''), _styleModuleImportMap$6, {
22226
22172
  "handleMissingStyleName": "warn"
22227
22173
  })
22228
22174
  }, /*#__PURE__*/React__default["default"].createElement("h3", null, "Related Help Resources"), /*#__PURE__*/React__default["default"].createElement("ul", null, currentArticle.relatedHelpResources.map(function (article) {
@@ -22235,7 +22181,7 @@ var HelpArticle = function HelpArticle(_ref) {
22235
22181
  }), article.post_title);
22236
22182
  }))), /*#__PURE__*/React__default["default"].createElement("div", {
22237
22183
  ref: questionSectionRef,
22238
- className: _getClassName("submitQuestionWrapper ".concat(showQuestionSection && !showSuccessSection ? 'noFlex' : ''), _styleModuleImportMap$5, {
22184
+ className: _getClassName("submitQuestionWrapper ".concat(showQuestionSection && !showSuccessSection ? 'noFlex' : ''), _styleModuleImportMap$6, {
22239
22185
  "handleMissingStyleName": "warn"
22240
22186
  })
22241
22187
  }, !showQuestionSection ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("h2", null, "Got more questions?"), /*#__PURE__*/React__default["default"].createElement("p", null, "If these resources are not enough to satisfy your queries then"), /*#__PURE__*/React__default["default"].createElement("p", null, /*#__PURE__*/React__default["default"].createElement("b", null, "Feel free to submit your question here.")), /*#__PURE__*/React__default["default"].createElement("span", {
@@ -22294,7 +22240,7 @@ var HelpArticle = function HelpArticle(_ref) {
22294
22240
  }
22295
22241
  })), /*#__PURE__*/React__default["default"].createElement("span", {
22296
22242
  onClick: questionSubmitHandler,
22297
- className: _getClassName("submitBtn ".concat(!question.length || category === 'selectCategory' ? 'disable' : ''), _styleModuleImportMap$5, {
22243
+ className: _getClassName("submitBtn ".concat(!question.length || category === 'selectCategory' ? 'disable' : ''), _styleModuleImportMap$6, {
22298
22244
  "handleMissingStyleName": "warn"
22299
22245
  })
22300
22246
  }, "Submit")) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("img", {
@@ -22428,7 +22374,7 @@ var ReleaseNote = function ReleaseNote(_ref) {
22428
22374
  })));
22429
22375
  };
22430
22376
 
22431
- var _styleModuleImportMap$4 = {
22377
+ var _styleModuleImportMap$5 = {
22432
22378
  "./Help.css": {
22433
22379
  "backdrop": "utilities_ops-app-frame_Help_Help--backdrop",
22434
22380
  "miHelpSideBar": "utilities_ops-app-frame_Help_Help--miHelpSideBar",
@@ -23043,7 +22989,7 @@ var HelpSideBar = function HelpSideBar(_ref) {
23043
22989
  height: "calc(100dvh - ".concat(notifications !== null && notifications !== void 0 && notifications.length ? sideBarTopValue : 48, "px)")
23044
22990
  },
23045
22991
  ref: mihelpRef,
23046
- className: _getClassName("miHelpSideBar ".concat(!helpContent || isChrome() && overFlowHidden || !isChrome() && showQuestionSection ? 'overFlowHidden' : ''), _styleModuleImportMap$4, {
22992
+ className: _getClassName("miHelpSideBar ".concat(!helpContent || isChrome() && overFlowHidden || !isChrome() && showQuestionSection ? 'overFlowHidden' : ''), _styleModuleImportMap$5, {
23047
22993
  "handleMissingStyleName": "warn"
23048
22994
  })
23049
22995
  }, /*#__PURE__*/React__default["default"].createElement("div", {
@@ -23085,7 +23031,7 @@ var HelpSideBar = function HelpSideBar(_ref) {
23085
23031
  name: "open_in_new",
23086
23032
  variant: "material"
23087
23033
  }))), /*#__PURE__*/React__default["default"].createElement("div", {
23088
- className: _getClassName("searchWrapper ".concat(showQuestionSection ? 'nonInteractive' : ''), _styleModuleImportMap$4, {
23034
+ className: _getClassName("searchWrapper ".concat(showQuestionSection ? 'nonInteractive' : ''), _styleModuleImportMap$5, {
23089
23035
  "handleMissingStyleName": "warn"
23090
23036
  })
23091
23037
  }, /*#__PURE__*/React__default["default"].createElement("input", {
@@ -25542,7 +25488,7 @@ var SettingsView = /*#__PURE__*/function (_React$Component) {
25542
25488
  }]);
25543
25489
  }(React__default["default"].Component);
25544
25490
 
25545
- var css_248z$9 = ".utilities_ops-announcements_Banner--appBarContentBox {\r\n word-break: break-all;\r\n white-space: pre-wrap;\r\n font-weight: 600;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationBarContent {\r\n padding: 10px 10px;\r\n font-size: 13px;\r\n width: 95%;\r\n display: flex;\r\n align-items: center;\r\n grid-gap: 20px;\r\n gap: 20px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--tabNotificationInfoBar {\r\n display: flex;\r\n color: #6c7a89;\r\n grid-gap: 8px;\r\n gap: 8px;\r\n width: 90%;\r\n font-size: 12px;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--tabNotificationInfoBar b {\r\n color: #171717;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--tabNotificationInfoBox {\r\n color: white;\r\n width: 26px;\r\n min-height: 26px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationBarContentBox {\r\n display: -webkit-box;\r\n -webkit-line-clamp: 2;\r\n overflow: hidden;\r\n /* font-weight: 600; */\r\n /* autoprefixer: off */\r\n -webkit-box-orient: vertical;\r\n /* autoprefixer: on */\r\n font-size: 12px;\r\n color: #201f1e;\r\n cursor: default;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationBarContentBox * {\r\n display: inline;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationBarContentBox a {\r\n text-decoration: underline;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--tabNotificationBarContentBox {\r\n display: -webkit-box;\r\n -webkit-line-clamp: 2;\r\n overflow: hidden;\r\n width: 95%;\r\n /* font-weight: 600; */\r\n /* autoprefixer: off */\r\n -webkit-box-orient: vertical;\r\n /* autoprefixer: on */\r\n font-size: 12px;\r\n padding: 5px 5px;\r\n min-height: 20px;\r\n padding: 4px 5px 3px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationInfoBox b {\r\n color: #171717;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationInfoBox i {\r\n font-size: 20px !important;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationBtnContainer {\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: center;\r\n grid-gap: 10px;\r\n gap: 10px;\r\n font-size: 12px;\r\n align-items: center;\r\n padding: 0px 10px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationBtnContainer .utilities_ops-announcements_Banner--notificationLeftBtn i {\r\n position: relative;\r\n right: -4px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationBtnContainer .utilities_ops-announcements_Banner--notificationCountContainer {\r\n width: 50px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationContainer {\r\n display: flex;\r\n flex-direction: row;\r\n /* padding: 10px 10px; */\r\n grid-gap: 5px;\r\n gap: 5px;\r\n min-height: 40px;\r\n width: 100%;\r\n /* padding-top: env(safe-area-inset-top, 0px);\r\n position: sticky;\r\n top: 0; */\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideBar.utilities_ops-announcements_Banner--notificationContainer {\r\n padding: 8px 6px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationInfoBox {\r\n color: white;\r\n width: 52px;\r\n min-height: 52px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationInfoBox {\r\n color: white;\r\n width: 20px;\r\n height: 20px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n margin-right: 6px;\r\n}\r\n.utilities_ops-announcements_Banner--notificationBarBtn {\r\n width: 52px;\r\n min-height: 52px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideBar .utilities_ops-announcements_Banner--notificationBarBtn {\r\n width: auto;\r\n min-height: auto;\r\n align-items: flex-start;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationBtnContainer i {\r\n font-size: 22px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideBar .utilities_ops-announcements_Banner--notificationBarBtn i {\r\n font-size: 20px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationContainer.utilities_ops-announcements_Banner--tabNotificationBar {\r\n flex-direction: column;\r\n /* padding: 10px 10px; */\r\n grid-gap: 0px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationContainer.utilities_ops-announcements_Banner--tabNotificationBar i {\r\n font-size: 13px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--arrowTipContainer {\r\n width: 0px;\r\n height: 0px;\r\n border-left: 8px solid transparent;\r\n border-right: 8px solid transparent;\r\n border-bottom: 13px solid white;\r\n position: absolute;\r\n top: 51px;\r\n right: 50px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--appBarContentWrapper {\r\n padding-right: 10px;\r\n font-size: 12px;\r\n flex: 1 1 0%;\r\n display: flex;\r\n flex-direction: column;\r\n grid-gap: 4px;\r\n gap: 4px;\r\n margin-top: 5px;\r\n max-width: 100%;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideBar .utilities_ops-announcements_Banner--appBarContentWrapper {\r\n padding-left: 10px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--appBarContentWrapper b {\r\n color: #171717;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--feedUrl {\r\n text-decoration: none !important;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--feedUrl i {\r\n font-size: 14px;\r\n cursor: pointer;\r\n color: #1d5ab9;\r\n left: 2px;\r\n position: relative;\r\n top: 2px;\r\n margin-right: 3px;\r\n}\r\n\r\n@media (max-width: 1760px) {\r\n .utilities_ops-announcements_Banner--notificationBarContent input {\r\n width: 331px !important;\r\n }\r\n}\r\n";
25491
+ var css_248z$9 = ".utilities_ops-announcements_Banner--appBarContentBox {\r\n word-break: break-word;\r\n word-wrap: anywhere;\r\n white-space: pre-wrap;\r\n font-weight: 600;\r\n max-width: 100%;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationBarContent {\r\n padding: 10px 10px;\r\n font-size: 13px;\r\n width: 95%;\r\n display: flex;\r\n align-items: center;\r\n grid-gap: 20px;\r\n gap: 20px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--tabNotificationInfoBar {\r\n display: flex;\r\n color: #6c7a89;\r\n grid-gap: 8px;\r\n gap: 8px;\r\n width: 90%;\r\n font-size: 12px;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--tabNotificationInfoBar b {\r\n color: #171717;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--tabNotificationInfoBox {\r\n color: white;\r\n width: 26px;\r\n min-height: 26px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationBarContentBox {\r\n display: -webkit-box;\r\n -webkit-line-clamp: 2;\r\n overflow: hidden;\r\n /* font-weight: 600; */\r\n /* autoprefixer: off */\r\n -webkit-box-orient: vertical;\r\n /* autoprefixer: on */\r\n font-size: 12px;\r\n color: #201f1e;\r\n cursor: default;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationBarContentBox * {\r\n display: inline;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationBarContentBox a {\r\n text-decoration: underline;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--tabNotificationBarContentBox {\r\n display: -webkit-box;\r\n -webkit-line-clamp: 2;\r\n overflow: hidden;\r\n width: 95%;\r\n /* font-weight: 600; */\r\n /* autoprefixer: off */\r\n -webkit-box-orient: vertical;\r\n /* autoprefixer: on */\r\n font-size: 12px;\r\n padding: 5px 5px;\r\n min-height: 20px;\r\n padding: 4px 5px 3px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationInfoBox b {\r\n color: #171717;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationInfoBox i {\r\n font-size: 20px !important;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationBtnContainer {\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: center;\r\n grid-gap: 10px;\r\n gap: 10px;\r\n font-size: 12px;\r\n align-items: center;\r\n padding: 0px 10px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationBtnContainer .utilities_ops-announcements_Banner--notificationLeftBtn i {\r\n position: relative;\r\n right: -4px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationBtnContainer .utilities_ops-announcements_Banner--notificationCountContainer {\r\n width: 50px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationContainer {\r\n display: flex;\r\n flex-direction: row;\r\n /* padding: 10px 10px; */\r\n grid-gap: 5px;\r\n gap: 5px;\r\n min-height: 40px;\r\n width: 100%;\r\n /* padding-top: env(safe-area-inset-top, 0px);\r\n position: sticky;\r\n top: 0; */\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideBar.utilities_ops-announcements_Banner--notificationContainer {\r\n padding: 8px 6px;\r\n min-width: 0;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationInfoBox {\r\n color: white;\r\n width: 52px;\r\n min-height: 52px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationInfoBox {\r\n color: white;\r\n width: 20px;\r\n height: 20px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n margin-right: 6px;\r\n}\r\n.utilities_ops-announcements_Banner--notificationBarBtn {\r\n width: 52px;\r\n min-height: 52px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideBar .utilities_ops-announcements_Banner--notificationBarBtn {\r\n width: auto;\r\n min-height: auto;\r\n align-items: flex-start;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationBtnContainer i {\r\n font-size: 22px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideBar .utilities_ops-announcements_Banner--notificationBarBtn i {\r\n font-size: 20px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationContainer.utilities_ops-announcements_Banner--tabNotificationBar {\r\n flex-direction: column;\r\n /* padding: 10px 10px; */\r\n grid-gap: 0px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--notificationContainer.utilities_ops-announcements_Banner--tabNotificationBar i {\r\n font-size: 13px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--arrowTipContainer {\r\n width: 0px;\r\n height: 0px;\r\n border-left: 8px solid transparent;\r\n border-right: 8px solid transparent;\r\n border-bottom: 13px solid white;\r\n position: absolute;\r\n top: 51px;\r\n right: 50px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--appBarContentWrapper {\r\n padding-right: 10px;\r\n font-size: 12px;\r\n flex: 1 1 0%;\r\n min-width: 0;\r\n display: flex;\r\n flex-direction: column;\r\n grid-gap: 4px;\r\n gap: 4px;\r\n margin-top: 5px;\r\n max-width: 100%;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideBarNotificationMeta {\r\n display: flex;\r\n flex-wrap: wrap;\r\n min-width: 0;\r\n align-items: center;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideBar .utilities_ops-announcements_Banner--appBarContentWrapper {\r\n padding-left: 10px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--appBarContentWrapper b {\r\n color: #171717;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--feedUrl {\r\n text-decoration: none !important;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--feedUrl i {\r\n font-size: 14px;\r\n cursor: pointer;\r\n color: #1d5ab9;\r\n left: 2px;\r\n position: relative;\r\n top: 2px;\r\n margin-right: 3px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationGroup {\r\n border: 1px solid #e1dfdd;\r\n border-radius: 8px;\r\n padding: 12px;\r\n margin-bottom: 12px;\r\n background-color: #ffffff;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationGroupHeader {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-bottom: 10px;\r\n min-height: 28px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationGroupHeaderWithBack {\r\n position: relative;\r\n justify-content: center;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationGroupHeaderTitle {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n grid-gap: 8px;\r\n gap: 8px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationBackBtn {\r\n position: absolute;\r\n left: 0;\r\n top: 50%;\r\n -webkit-transform: translateY(-50%);\r\n transform: translateY(-50%);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 0;\r\n margin: 0;\r\n border: none;\r\n background: none;\r\n color: #3261bd;\r\n cursor: pointer;\r\n width: 28px;\r\n height: 28px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationBackBtn i {\r\n font-size: 18px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationGroupAppIcon {\r\n width: 20px;\r\n height: 20px;\r\n -o-object-fit: contain;\r\n object-fit: contain;\r\n -webkit-filter: invert(24%) sepia(100%) saturate(1350%) hue-rotate(201deg) brightness(96%) contrast(93%);\r\n filter: invert(24%) sepia(100%) saturate(1350%) hue-rotate(201deg) brightness(96%) contrast(93%);\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationGroupAppIconPlaceholder {\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 4px;\r\n background-color: #deecf9;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationGroupAppName {\r\n color: #3261bd;\r\n color: var(--Type-Copart-Neue-Rest, #3261bd);\r\n font-family: 'Segoe UI', SegoeUI, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Droid Sans, Helvetica Neue, sans-serif;\r\n font-size: 16px;\r\n font-style: normal;\r\n font-weight: 600;\r\n line-height: 20px;\r\n text-transform: uppercase;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationGroupList {\r\n display: flex;\r\n flex-direction: column;\r\n grid-gap: 6px;\r\n gap: 6px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationRow {\r\n display: flex;\r\n align-items: flex-start;\r\n grid-gap: 8px;\r\n gap: 8px;\r\n padding: 8px 10px;\r\n border-radius: 4px;\r\n min-height: 36px;\r\n min-width: 0;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationRowIcon {\r\n color: white;\r\n width: 20px;\r\n height: 20px;\r\n min-width: 20px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n margin-top: 1px;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationRowContent {\r\n flex: 1;\r\n min-width: 0;\r\n font-size: 12px;\r\n font-weight: 600;\r\n color: #201f1e;\r\n line-height: 1.35;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationRowText {\r\n word-break: break-word;\r\n word-wrap: anywhere;\r\n white-space: normal;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationRowText * {\r\n display: inline;\r\n word-wrap: inherit;\r\n word-break: inherit;\r\n white-space: inherit;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationRowMeta {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-end;\r\n grid-gap: 4px;\r\n gap: 4px;\r\n flex-shrink: 0;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationRowLink {\r\n text-decoration: none;\r\n line-height: 1;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationRowLink i {\r\n font-size: 16px;\r\n color: #1d5ab9;\r\n cursor: pointer;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationRowTime {\r\n font-size: 11px;\r\n color: #605e5c;\r\n font-weight: 400;\r\n white-space: nowrap;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationViewAll {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n grid-gap: 6px;\r\n gap: 6px;\r\n width: 100%;\r\n margin-top: 10px;\r\n padding: 0;\r\n border: none;\r\n background: none;\r\n color: #0f4cab;\r\n font-size: 13px;\r\n font-weight: 600;\r\n line-height: 1;\r\n cursor: pointer;\r\n}\r\n\r\n.utilities_ops-announcements_Banner--sideNotificationViewAll i {\r\n display: inline-flex;\r\n align-items: center;\r\n font-size: 16px;\r\n line-height: 1;\r\n}\r\n\r\n@media (max-width: 1760px) {\r\n .utilities_ops-announcements_Banner--notificationBarContent input {\r\n width: 331px !important;\r\n }\r\n}\r\n";
25546
25492
  styleInject(css_248z$9);
25547
25493
 
25548
25494
  function getViewedNotifications() {
@@ -25569,15 +25515,39 @@ function addNotificationToViewedList(notification) {
25569
25515
  }
25570
25516
  }
25571
25517
 
25572
- function filterOutViewedNotifications(notifications) {
25573
- var viewedNotifications = getViewedNotifications();
25574
- return notifications.filter(function (notification) {
25575
- return !viewedNotifications[notification.notificationId];
25576
- });
25518
+ // Removes entries whose endsAt has already passed.
25519
+ // endsAt is stored as a UTC string without Z (e.g. '2024-01-15 14:30:00'),
25520
+ // matching the end_date_ts_utc format used in generateQuery's Solr filter.
25521
+ // Any entry with endsAt < now will never be returned by the API again, so it
25522
+ // can be safely dropped.
25523
+ function pruneExpiredViewedNotifications() {
25524
+ try {
25525
+ var viewed = getViewedNotifications();
25526
+ if (!viewed || _typeof$1(viewed) !== 'object' || Array.isArray(viewed)) return;
25527
+ var entries = Object.entries(viewed);
25528
+ if (!entries.length) return;
25529
+ var now = new Date();
25530
+ var pruned = Object.fromEntries(entries.filter(function (_ref) {
25531
+ var _ref2 = _slicedToArray(_ref, 2),
25532
+ entry = _ref2[1];
25533
+ if (!entry || !entry.endsAt) return false;
25534
+ var endsAt = new Date(String(entry.endsAt).replace(' ', 'T') + 'Z');
25535
+ return !isNaN(endsAt.getTime()) && endsAt > now;
25536
+ }));
25537
+ // Skip the write if nothing was pruned to avoid unnecessary localStorage I/O
25538
+ if (Object.keys(pruned).length === entries.length) return;
25539
+ localStorage.setItem('viewedNotifications', JSON.stringify(pruned));
25540
+ } catch (err) {
25541
+ console.error(err);
25542
+ }
25577
25543
  }
25578
- function isOutOfRange(startDate, endDate) {
25579
- var current = new Date();
25580
- return new Date(startDate) < current && current < new Date(endDate);
25544
+
25545
+ // Parses a UTC date string like '2024-01-15 14:30:00' (no Z suffix) into a Date object.
25546
+ // startsAt/endsAt come from the API with the T and Z stripped, so we restore them here.
25547
+ function parseAsUTCDate(dateStr) {
25548
+ if (!dateStr) return null;
25549
+ var d = new Date(String(dateStr).replace(' ', 'T') + 'Z');
25550
+ return isNaN(d.getTime()) ? null : d;
25581
25551
  }
25582
25552
  var getLocalEndTime = function getLocalEndTime(notification) {
25583
25553
  var endsAt = notification.endsAt,
@@ -25588,76 +25558,93 @@ var getLocalEndTime = function getLocalEndTime(notification) {
25588
25558
  if (isRecipientTimeZone && endDateTimeZone !== 'UTC') {
25589
25559
  return endsAt;
25590
25560
  }
25591
- return moment.utc(endsAt).local().format('YYYY-MM-DD HH:mm:ss');
25561
+ var d = parseAsUTCDate(endsAt);
25562
+ if (!d) return null;
25563
+ var pad = function pad(n) {
25564
+ return String(n).padStart(2, '0');
25565
+ };
25566
+ return "".concat(d.getFullYear(), "-").concat(pad(d.getMonth() + 1), "-").concat(pad(d.getDate()), " ").concat(pad(d.getHours()), ":").concat(pad(d.getMinutes()), ":").concat(pad(d.getSeconds()));
25592
25567
  };
25593
25568
  function filterOutExpiredNotifications(notifications) {
25569
+ var now = new Date();
25594
25570
  return filter$1(function (_ref) {
25595
25571
  var startsAt = _ref.startsAt,
25596
25572
  endsAt = _ref.endsAt,
25597
25573
  timeZoneType = _ref.timeZoneType,
25598
25574
  endDateTimeZone = _ref.endDateTimeZone;
25599
- var startTime = timeZoneType === 'Recipient TimeZone' || timeZoneType === 'RPTZ' ? startsAt : moment.utc(startsAt).local().format('YYYY-MM-DD HH:mm:ss');
25575
+ var isRecipientTZ = timeZoneType === 'Recipient TimeZone' || timeZoneType === 'RPTZ';
25576
+ var startDate = isRecipientTZ ? new Date(String(startsAt).replace(' ', 'T')) : parseAsUTCDate(startsAt);
25600
25577
  var localEndTime = getLocalEndTime({
25601
25578
  endsAt: endsAt,
25602
25579
  timeZoneType: timeZoneType,
25603
25580
  endDateTimeZone: endDateTimeZone
25604
25581
  });
25605
- if (!localEndTime) return false;
25606
- return isOutOfRange(startTime, localEndTime);
25582
+ if (!localEndTime || !startDate) return false;
25583
+ var endDate = new Date(String(localEndTime).replace(' ', 'T'));
25584
+ return startDate < now && now < endDate;
25607
25585
  })(notifications);
25608
25586
  }
25609
- function filterOutNotificationForOtherApps(notifications) {
25610
- var currentApp = window.location.pathname === '/' ? 'home' : window.location.pathname;
25611
- var tilesConfig = storage$2.getLocalItem('opsportal-core:config').tiles || [];
25612
- var tile = tilesConfig.find(function (item) {
25613
- return item.path === currentApp || "".concat(item.path, "/") === currentApp || currentApp.startsWith(item.path);
25614
- }) || {};
25615
- return notifications.filter(function (notification) {
25616
- var targetApps = pathOr$1(null, ['targetAudience', 'targetApplications'])(notification);
25617
- var apps = pathOr$1([], [0, 'applications'])(targetApps);
25618
- if (currentApp === 'home') {
25619
- return targetApps === null || apps.includes("Ops Home");
25620
- } else {
25621
- return targetApps === null || apps.includes(tile.title || '');
25622
- }
25623
- });
25624
- }
25625
- function filterOutNotificationByAudience(notifications) {
25626
- var userEmail = storage$2.userEmail;
25627
- var yardNumber = storage$2.activeYardNumber;
25628
- // const countryCodes = window.location.hostname.includes('.com') ? ["USA", "CAN"] : ["ARE", "OMN", "BHR", "IRL", "GBR"]
25629
- return notifications.filter(function (notification) {
25630
- // if (!countryCodes.includes(notification.countryCode)) return false
25631
- var targets = pathOr$1([], ['targetAudience', 'targets'], notification);
25632
- if (!targets.length) return true;
25633
- return targets.some(function (target) {
25634
- switch (target.type) {
25635
- case 'users':
25636
- var usersList = pathOr$1([], ['emails'])(target);
25637
- return usersList.includes(userEmail);
25638
- case 'groups':
25639
- var groups = pathOr$1([], ['groups'])(target);
25640
- return groups.some(function (group) {
25641
- var users = pathOr$1([], ['users'])(group);
25642
- return users.includes(userEmail) || users.includes('*');
25643
- });
25644
- case 'yards':
25645
- var yards = pathOr$1([], ['yards'], target);
25646
- return yards.includes(yardNumber);
25647
- default:
25648
- return false;
25649
- }
25650
- });
25651
- });
25652
- }
25653
- function filterOutInActiveNotification(notifications) {
25654
- return notifications.filter(function (notification) {
25655
- return (notification === null || notification === void 0 ? void 0 : notification.status) === 'A';
25656
- });
25657
- }
25658
25587
  function filterNotifications(notifications) {
25659
25588
  try {
25660
- return compose(filterOutInActiveNotification, filterOutNotificationByAudience, filterOutViewedNotifications, filterOutExpiredNotifications, filterOutNotificationForOtherApps)(notifications);
25589
+ var coreAppConfig = storage$2.getLocalItem('opsportal-core:config') || {};
25590
+ var filterByTargets = coreAppConfig.filterNotificationsByTargets;
25591
+ // filterOutViewedNotifications
25592
+ var viewedNotifications = getViewedNotifications();
25593
+ // filterOutExpiredNotifications
25594
+ var now = new Date();
25595
+ // filterOutNotificationByAudience — only when filterNotificationsByTargets is true;
25596
+ // otherwise audience/app filtering is handled by channel_names in Solr query
25597
+ var userEmail = filterByTargets ? storage$2.userEmail : null;
25598
+ var yardNumber = filterByTargets ? storage$2.activeYardNumber : null;
25599
+ // filterOutNotificationForOtherApps
25600
+ var currentApp = filterByTargets ? window.location.pathname === '/' ? 'home' : window.location.pathname : null;
25601
+ var tile = filterByTargets ? (coreAppConfig.tiles || []).find(function (item) {
25602
+ return item.path === currentApp || "".concat(item.path, "/") === currentApp || currentApp.startsWith(item.path);
25603
+ }) || {} : null;
25604
+ return notifications.filter(function (notification) {
25605
+ // filterOutInActiveNotification
25606
+ if ((notification === null || notification === void 0 ? void 0 : notification.status) !== 'A') return false;
25607
+
25608
+ // filterOutViewedNotifications
25609
+ if (viewedNotifications[notification.notificationId]) return false;
25610
+
25611
+ // filterOutExpiredNotifications
25612
+ var startsAt = notification.startsAt,
25613
+ endsAt = notification.endsAt,
25614
+ timeZoneType = notification.timeZoneType,
25615
+ endDateTimeZone = notification.endDateTimeZone;
25616
+ var isRecipientTZ = timeZoneType === 'Recipient TimeZone' || timeZoneType === 'RPTZ';
25617
+ var startDate = isRecipientTZ ? new Date(String(startsAt).replace(' ', 'T')) : parseAsUTCDate(startsAt);
25618
+ var endDate = !endsAt ? null : isRecipientTZ && endDateTimeZone !== 'UTC' ? new Date(String(endsAt).replace(' ', 'T')) : parseAsUTCDate(endsAt);
25619
+ if (!endDate || !startDate || !(startDate < now && now < endDate)) return false;
25620
+ if (filterByTargets) {
25621
+ // filterOutNotificationForOtherApps
25622
+ var targetApps = pathOr$1(null, ['targetAudience', 'targetApplications'])(notification);
25623
+ var apps = pathOr$1([], [0, 'applications'])(targetApps);
25624
+ var appMatch = currentApp === 'home' ? targetApps === null || apps.includes('Ops Home') : targetApps === null || apps.includes(tile.title || '');
25625
+ if (!appMatch) return false;
25626
+
25627
+ // filterOutNotificationByAudience
25628
+ var targets = pathOr$1([], ['targetAudience', 'targets'], notification);
25629
+ if (!targets.length) return true;
25630
+ return targets.some(function (target) {
25631
+ switch (target.type) {
25632
+ case 'users':
25633
+ return pathOr$1([], ['emails'])(target).includes(userEmail);
25634
+ case 'groups':
25635
+ return pathOr$1([], ['groups'])(target).some(function (group) {
25636
+ var users = pathOr$1([], ['users'])(group);
25637
+ return users.includes(userEmail) || users.includes('*');
25638
+ });
25639
+ case 'yards':
25640
+ return pathOr$1([], ['yards'], target).includes(yardNumber);
25641
+ default:
25642
+ return false;
25643
+ }
25644
+ });
25645
+ }
25646
+ return true;
25647
+ });
25661
25648
  } catch (err) {
25662
25649
  console.error(err);
25663
25650
  return notifications;
@@ -25671,24 +25658,71 @@ function getPriorityCode(category) {
25671
25658
  information: 1
25672
25659
  }[category.toLowerCase()];
25673
25660
  }
25674
- function sortNotifications(notifications) {
25675
- var newNotifications = clone$1(notifications);
25676
- var notificationsWithStartTs = newNotifications.map(function (n) {
25677
- var isRecipientTimeZone = n.timeZoneType === 'Recipient TimeZone' || n.timeZoneType === 'RPTZ';
25678
- var localStart = isRecipientTimeZone ? n.startsAt : moment.utc(n.startsAt).local().format('YYYY-MM-DD HH:mm:ss');
25679
- var startTimestamp = localStart ? new Date(localStart).getTime() : 0;
25680
- return _objectSpread2(_objectSpread2({}, n), {}, {
25681
- _startTimestamp: startTimestamp
25661
+ var MAX_NOTIFICATIONS_PER_APP_GROUP = 5;
25662
+ function getAppTileIcon(sourceApplication) {
25663
+ var _storage$getLocalItem;
25664
+ if (!sourceApplication) return null;
25665
+ var tiles = ((_storage$getLocalItem = storage$2.getLocalItem('opsportal-core:config')) === null || _storage$getLocalItem === void 0 ? void 0 : _storage$getLocalItem.tiles) || [];
25666
+ var normalized = sourceApplication.trim().toLowerCase();
25667
+ var tile = tiles.find(function (t) {
25668
+ return (t.title || '').trim().toLowerCase() === normalized || (t.appName || '').trim().toLowerCase() === normalized;
25669
+ });
25670
+ return tile ? tile.faIconUrl || tile.iconUrl : null;
25671
+ }
25672
+ function groupNotificationsByApp(notifications) {
25673
+ var maxPerGroup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : MAX_NOTIFICATIONS_PER_APP_GROUP;
25674
+ var groupMap = new Map();
25675
+ var groupOrder = [];
25676
+ notifications.forEach(function (notification) {
25677
+ var appName = notification.sourceApplication || 'Other';
25678
+ if (!groupMap.has(appName)) {
25679
+ groupMap.set(appName, []);
25680
+ groupOrder.push(appName);
25681
+ }
25682
+ groupMap.get(appName).push(notification);
25683
+ });
25684
+ groupOrder.sort(function (a, b) {
25685
+ return a.localeCompare(b, undefined, {
25686
+ sensitivity: 'base'
25682
25687
  });
25683
25688
  });
25684
- var dateSortedNotifications = notificationsWithStartTs.sort(function (a, b) {
25685
- return b._startTimestamp - a._startTimestamp;
25689
+ return groupOrder.map(function (appName) {
25690
+ var all = groupMap.get(appName);
25691
+ return {
25692
+ appName: appName,
25693
+ totalCount: all.length,
25694
+ notifications: all.slice(0, maxPerGroup),
25695
+ hasMore: all.length > maxPerGroup
25696
+ };
25697
+ });
25698
+ }
25699
+ function getExpandedAppGroup(notifications, appName) {
25700
+ var appNotifications = notifications.filter(function (notification) {
25701
+ return (notification.sourceApplication || 'Other') === appName;
25686
25702
  });
25703
+ return {
25704
+ appName: appName,
25705
+ totalCount: appNotifications.length,
25706
+ notifications: appNotifications,
25707
+ hasMore: false
25708
+ };
25709
+ }
25710
+ function sortNotifications(notifications) {
25687
25711
  try {
25688
- return sortWith$1([ascend$1(compose(getPriorityCode, prop$1('categoryDescription')))], dateSortedNotifications);
25712
+ return _toConsumableArray(notifications).map(function (n) {
25713
+ var isRecipientTZ = n.timeZoneType === 'Recipient TimeZone' || n.timeZoneType === 'RPTZ';
25714
+ var startDate = isRecipientTZ ? new Date(String(n.startsAt).replace(' ', 'T')) : parseAsUTCDate(n.startsAt);
25715
+ return _objectSpread2(_objectSpread2({}, n), {}, {
25716
+ _startTimestamp: startDate ? startDate.getTime() : 0,
25717
+ _priorityCode: getPriorityCode(n.categoryDescription)
25718
+ });
25719
+ }).sort(function (a, b) {
25720
+ var priorityDiff = (a._priorityCode != null ? a._priorityCode : 99) - (b._priorityCode != null ? b._priorityCode : 99);
25721
+ return priorityDiff !== 0 ? priorityDiff : b._startTimestamp - a._startTimestamp;
25722
+ });
25689
25723
  } catch (err) {
25690
25724
  console.error(err);
25691
- return dateSortedNotifications;
25725
+ return _toConsumableArray(notifications);
25692
25726
  }
25693
25727
  }
25694
25728
  startsWith$1('http://');
@@ -25720,9 +25754,10 @@ var getTimeDiff = function getTimeDiff(startsAt) {
25720
25754
  }
25721
25755
  return '';
25722
25756
  };
25757
+ var SANITIZE_REGEX = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>|<iframe\b[^<]*(?:(?!<\/iframe>)<[^<]*)*<\/iframe>/gi;
25723
25758
  var SanitizeNotificationContent = function SanitizeNotificationContent(str) {
25724
- var regex = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>|<iframe\b[^<]*(?:(?!<\/iframe>)<[^<]*)*<\/iframe>/gi;
25725
- return str.replace(regex, '');
25759
+ SANITIZE_REGEX.lastIndex = 0;
25760
+ return str.replace(SANITIZE_REGEX, '');
25726
25761
  };
25727
25762
 
25728
25763
  var useWindowSize = function useWindowSize() {
@@ -25829,6 +25864,7 @@ var Banner = function Banner(props) {
25829
25864
  startsAt = notification.startsAt,
25830
25865
  timeZoneType = notification.timeZoneType,
25831
25866
  showSideBar = notification.showSideBar,
25867
+ isGroupedSideBar = notification.isGroupedSideBar,
25832
25868
  action = notification.action,
25833
25869
  content = notification.content,
25834
25870
  sourceApplication = notification.sourceApplication,
@@ -25939,28 +25975,73 @@ var Banner = function Banner(props) {
25939
25975
  variant: "material"
25940
25976
  }))));
25941
25977
  };
25942
- var sideNotificationBar = function sideNotificationBar() {
25978
+ var categoryKey = categoryDescription.toLowerCase();
25979
+ var categoryColor = alertInfoColorMapping[categoryKey];
25980
+ var categoryBackground = alertBackgroundColorMapping[categoryKey];
25981
+ var groupedSideNotificationRow = function groupedSideNotificationRow() {
25943
25982
  return /*#__PURE__*/React__default["default"].createElement("div", {
25944
- className: "utilities_ops-announcements_Banner--notificationContainer utilities_ops-announcements_Banner--sideBar",
25983
+ className: "utilities_ops-announcements_Banner--sideNotificationRow",
25945
25984
  style: {
25946
- backgroundColor: alertBackgroundColorMapping[categoryDescription.toLowerCase()]
25985
+ backgroundColor: categoryBackground
25947
25986
  }
25948
25987
  }, /*#__PURE__*/React__default["default"].createElement("div", {
25949
- className: "utilities_ops-announcements_Banner--appBarContentWrapper",
25988
+ className: "utilities_ops-announcements_Banner--sideNotificationRowIcon",
25989
+ style: {
25990
+ backgroundColor: categoryColor
25991
+ }
25992
+ }, /*#__PURE__*/React__default["default"].createElement(coreComponents.IconV2, {
25993
+ name: alertToIconMapping[categoryKey],
25994
+ style: {
25995
+ fontSize: '11px'
25996
+ }
25997
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
25998
+ className: "utilities_ops-announcements_Banner--sideNotificationRowContent"
25999
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
26000
+ className: "utilities_ops-announcements_Banner--sideNotificationRowText",
26001
+ dangerouslySetInnerHTML: {
26002
+ __html: SanitizeNotificationContent(content)
26003
+ }
26004
+ }), action && ActionComponent && /*#__PURE__*/React__default["default"].createElement("div", {
26005
+ style: {
26006
+ marginTop: '4px'
26007
+ }
26008
+ }, /*#__PURE__*/React__default["default"].createElement(ActionComponent, {
26009
+ notification: notification,
26010
+ saveActionComponentState: saveActionComponentState
26011
+ }))), /*#__PURE__*/React__default["default"].createElement("div", {
26012
+ className: "utilities_ops-announcements_Banner--sideNotificationRowMeta"
26013
+ }, (feedUrl || link) && /*#__PURE__*/React__default["default"].createElement("a", {
26014
+ href: feedUrl || link,
26015
+ target: "_blank",
26016
+ rel: "noopener noreferrer",
26017
+ className: "utilities_ops-announcements_Banner--sideNotificationRowLink"
26018
+ }, /*#__PURE__*/React__default["default"].createElement(coreComponents.Icon, {
26019
+ name: "open_in_new",
26020
+ variant: "material"
26021
+ })), /*#__PURE__*/React__default["default"].createElement("span", {
26022
+ className: "utilities_ops-announcements_Banner--sideNotificationRowTime"
26023
+ }, timeDiff)));
26024
+ };
26025
+ var sideNotificationBar = function sideNotificationBar() {
26026
+ return isGroupedSideBar ? groupedSideNotificationRow() : /*#__PURE__*/React__default["default"].createElement("div", {
26027
+ className: "utilities_ops-announcements_Banner--notificationContainer utilities_ops-announcements_Banner--sideBar",
25950
26028
  style: {
25951
- borderLeft: "2px solid ".concat(alertInfoColorMapping[categoryDescription.toLowerCase()])
26029
+ backgroundColor: categoryBackground
25952
26030
  }
25953
26031
  }, /*#__PURE__*/React__default["default"].createElement("div", {
26032
+ className: "utilities_ops-announcements_Banner--appBarContentWrapper",
25954
26033
  style: {
25955
- display: 'flex'
26034
+ borderLeft: "2px solid ".concat(categoryColor)
25956
26035
  }
26036
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
26037
+ className: "utilities_ops-announcements_Banner--sideBarNotificationMeta"
25957
26038
  }, /*#__PURE__*/React__default["default"].createElement("div", {
25958
26039
  className: "utilities_ops-announcements_Banner--sideNotificationInfoBox",
25959
26040
  style: {
25960
- backgroundColor: alertInfoColorMapping[categoryDescription.toLowerCase()]
26041
+ backgroundColor: categoryColor
25961
26042
  }
25962
26043
  }, /*#__PURE__*/React__default["default"].createElement(coreComponents.IconV2, {
25963
- name: alertToIconMapping[categoryDescription.toLowerCase()],
26044
+ name: alertToIconMapping[categoryKey],
25964
26045
  style: {
25965
26046
  fontSize: '12px'
25966
26047
  }
@@ -26090,11 +26171,138 @@ var Banner = function Banner(props) {
26090
26171
  return mainNotificationBar();
26091
26172
  };
26092
26173
 
26174
+ var _styleModuleImportMap$4 = {
26175
+ "./Banner.css": {
26176
+ "appBarContentBox": "utilities_ops-announcements_Banner--appBarContentBox",
26177
+ "notificationBarContent": "utilities_ops-announcements_Banner--notificationBarContent",
26178
+ "tabNotificationInfoBar": "utilities_ops-announcements_Banner--tabNotificationInfoBar",
26179
+ "tabNotificationInfoBox": "utilities_ops-announcements_Banner--tabNotificationInfoBox",
26180
+ "notificationBarContentBox": "utilities_ops-announcements_Banner--notificationBarContentBox",
26181
+ "tabNotificationBarContentBox": "utilities_ops-announcements_Banner--tabNotificationBarContentBox",
26182
+ "notificationInfoBox": "utilities_ops-announcements_Banner--notificationInfoBox",
26183
+ "notificationBtnContainer": "utilities_ops-announcements_Banner--notificationBtnContainer",
26184
+ "notificationLeftBtn": "utilities_ops-announcements_Banner--notificationLeftBtn",
26185
+ "notificationCountContainer": "utilities_ops-announcements_Banner--notificationCountContainer",
26186
+ "notificationContainer": "utilities_ops-announcements_Banner--notificationContainer",
26187
+ "sideBar": "utilities_ops-announcements_Banner--sideBar",
26188
+ "sideNotificationInfoBox": "utilities_ops-announcements_Banner--sideNotificationInfoBox",
26189
+ "notificationBarBtn": "utilities_ops-announcements_Banner--notificationBarBtn",
26190
+ "tabNotificationBar": "utilities_ops-announcements_Banner--tabNotificationBar",
26191
+ "arrowTipContainer": "utilities_ops-announcements_Banner--arrowTipContainer",
26192
+ "appBarContentWrapper": "utilities_ops-announcements_Banner--appBarContentWrapper",
26193
+ "sideBarNotificationMeta": "utilities_ops-announcements_Banner--sideBarNotificationMeta",
26194
+ "feedUrl": "utilities_ops-announcements_Banner--feedUrl",
26195
+ "sideNotificationGroup": "utilities_ops-announcements_Banner--sideNotificationGroup",
26196
+ "sideNotificationGroupHeader": "utilities_ops-announcements_Banner--sideNotificationGroupHeader",
26197
+ "sideNotificationGroupHeaderWithBack": "utilities_ops-announcements_Banner--sideNotificationGroupHeaderWithBack",
26198
+ "sideNotificationGroupHeaderTitle": "utilities_ops-announcements_Banner--sideNotificationGroupHeaderTitle",
26199
+ "sideNotificationBackBtn": "utilities_ops-announcements_Banner--sideNotificationBackBtn",
26200
+ "sideNotificationGroupAppIcon": "utilities_ops-announcements_Banner--sideNotificationGroupAppIcon",
26201
+ "sideNotificationGroupAppIconPlaceholder": "utilities_ops-announcements_Banner--sideNotificationGroupAppIconPlaceholder",
26202
+ "sideNotificationGroupAppName": "utilities_ops-announcements_Banner--sideNotificationGroupAppName",
26203
+ "sideNotificationGroupList": "utilities_ops-announcements_Banner--sideNotificationGroupList",
26204
+ "sideNotificationRow": "utilities_ops-announcements_Banner--sideNotificationRow",
26205
+ "sideNotificationRowIcon": "utilities_ops-announcements_Banner--sideNotificationRowIcon",
26206
+ "sideNotificationRowContent": "utilities_ops-announcements_Banner--sideNotificationRowContent",
26207
+ "sideNotificationRowText": "utilities_ops-announcements_Banner--sideNotificationRowText",
26208
+ "sideNotificationRowMeta": "utilities_ops-announcements_Banner--sideNotificationRowMeta",
26209
+ "sideNotificationRowLink": "utilities_ops-announcements_Banner--sideNotificationRowLink",
26210
+ "sideNotificationRowTime": "utilities_ops-announcements_Banner--sideNotificationRowTime",
26211
+ "sideNotificationViewAll": "utilities_ops-announcements_Banner--sideNotificationViewAll"
26212
+ }
26213
+ };
26214
+ var SideNotificationGroup = function SideNotificationGroup(_ref) {
26215
+ var appName = _ref.appName,
26216
+ totalCount = _ref.totalCount,
26217
+ notifications = _ref.notifications,
26218
+ hasMore = _ref.hasMore,
26219
+ showBackButton = _ref.showBackButton,
26220
+ onBack = _ref.onBack,
26221
+ onViewAll = _ref.onViewAll,
26222
+ _onDismiss = _ref.onDismiss,
26223
+ ActionComponent = _ref.ActionComponent,
26224
+ saveActionComponentState = _ref.saveActionComponentState;
26225
+ var appIconUrl = getAppTileIcon(appName);
26226
+ return /*#__PURE__*/React__default["default"].createElement("div", {
26227
+ className: "utilities_ops-announcements_Banner--sideNotificationGroup"
26228
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
26229
+ className: _getClassName("sideNotificationGroupHeader".concat(showBackButton ? ' sideNotificationGroupHeaderWithBack' : ''), _styleModuleImportMap$4, {
26230
+ "handleMissingStyleName": "warn"
26231
+ })
26232
+ }, showBackButton && /*#__PURE__*/React__default["default"].createElement("button", {
26233
+ type: "button",
26234
+ className: "utilities_ops-announcements_Banner--sideNotificationBackBtn",
26235
+ onClick: onBack,
26236
+ "aria-label": "Back to all apps"
26237
+ }, /*#__PURE__*/React__default["default"].createElement(coreComponents.IconV2, {
26238
+ name: "angle-left"
26239
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
26240
+ className: "utilities_ops-announcements_Banner--sideNotificationGroupHeaderTitle"
26241
+ }, appIconUrl ? /*#__PURE__*/React__default["default"].createElement("img", {
26242
+ className: "utilities_ops-announcements_Banner--sideNotificationGroupAppIcon",
26243
+ src: appIconUrl,
26244
+ alt: ""
26245
+ }) : /*#__PURE__*/React__default["default"].createElement("div", {
26246
+ className: "utilities_ops-announcements_Banner--sideNotificationGroupAppIconPlaceholder"
26247
+ }), /*#__PURE__*/React__default["default"].createElement("span", {
26248
+ className: "utilities_ops-announcements_Banner--sideNotificationGroupAppName"
26249
+ }, appName, " (", totalCount, ")"))), /*#__PURE__*/React__default["default"].createElement("div", {
26250
+ className: "utilities_ops-announcements_Banner--sideNotificationGroupList"
26251
+ }, notifications.map(function (notification) {
26252
+ return /*#__PURE__*/React__default["default"].createElement(Banner, _extends$1({
26253
+ key: notification.notificationId
26254
+ }, notification, {
26255
+ showSideBar: true,
26256
+ isGroupedSideBar: true,
26257
+ onDismiss: function onDismiss() {
26258
+ return _onDismiss(notification);
26259
+ },
26260
+ ActionComponent: ActionComponent,
26261
+ saveActionComponentState: saveActionComponentState
26262
+ }));
26263
+ })), hasMore && /*#__PURE__*/React__default["default"].createElement("button", {
26264
+ type: "button",
26265
+ className: "utilities_ops-announcements_Banner--sideNotificationViewAll",
26266
+ onClick: onViewAll
26267
+ }, /*#__PURE__*/React__default["default"].createElement(coreComponents.Icon, {
26268
+ name: "open_in_new",
26269
+ variant: "material"
26270
+ }), /*#__PURE__*/React__default["default"].createElement("span", null, "View all")));
26271
+ };
26272
+
26273
+ var ESTIMATED_ITEM_HEIGHT = 80;
26274
+ var ESTIMATED_GROUP_HEIGHT = 320;
26275
+ var OVERSCAN = 3;
26276
+ function buildOffsets(count, itemHeights) {
26277
+ var defaultHeight = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ESTIMATED_ITEM_HEIGHT;
26278
+ var offsets = new Array(count + 1);
26279
+ offsets[0] = 0;
26280
+ for (var i = 0; i < count; i++) {
26281
+ offsets[i + 1] = offsets[i] + (itemHeights[i] || defaultHeight) + 12;
26282
+ }
26283
+ return offsets;
26284
+ }
26285
+
26286
+ // Binary search: find the last index whose offset is <= scrollTop
26287
+ function findStartIndex(offsets, scrollTop) {
26288
+ var lo = 0;
26289
+ var hi = offsets.length - 2;
26290
+ while (lo < hi) {
26291
+ var mid = lo + hi + 1 >> 1;
26292
+ if (offsets[mid] <= scrollTop) {
26293
+ lo = mid;
26294
+ } else {
26295
+ hi = mid - 1;
26296
+ }
26297
+ }
26298
+ return lo;
26299
+ }
26093
26300
  var Notifications = function Notifications(_ref) {
26094
26301
  var notifications = _ref.notifications,
26095
26302
  _onDismiss = _ref.onDismiss;
26096
26303
  _ref.children;
26097
26304
  var showSideBar = _ref.showSideBar,
26305
+ sidebarOpen = _ref.sidebarOpen,
26098
26306
  ActionComponent = _ref.ActionComponent,
26099
26307
  saveActionComponentState = _ref.saveActionComponentState,
26100
26308
  notificationsTopContainerRef = _ref.notificationsTopContainerRef,
@@ -26108,18 +26316,131 @@ var Notifications = function Notifications(_ref) {
26108
26316
  _useState4 = _slicedToArray(_useState3, 2),
26109
26317
  last = _useState4[0],
26110
26318
  setLast = _useState4[1];
26319
+ var _useState5 = React.useState(null),
26320
+ _useState6 = _slicedToArray(_useState5, 2),
26321
+ expandedAppName = _useState6[0],
26322
+ setExpandedAppName = _useState6[1];
26323
+ var scrollRef = React.useRef(null);
26324
+ var itemHeightsRef = React.useRef({});
26325
+ var _useState7 = React.useState(0),
26326
+ _useState8 = _slicedToArray(_useState7, 2),
26327
+ scrollTop = _useState8[0],
26328
+ setScrollTop = _useState8[1];
26111
26329
  var onLeftButtonClick = function onLeftButtonClick() {
26112
26330
  return i === 0 ? setI(last) : setI(i - 1);
26113
26331
  };
26114
26332
  var onRightButtonClick = function onRightButtonClick() {
26115
26333
  return i === last ? setI(0) : setI(i + 1);
26116
26334
  };
26335
+ var resetSidebarView = React.useCallback(function () {
26336
+ setExpandedAppName(null);
26337
+ itemHeightsRef.current = {};
26338
+ setScrollTop(0);
26339
+ if (scrollRef.current) {
26340
+ scrollRef.current.scrollTop = 0;
26341
+ }
26342
+ }, []);
26117
26343
  React.useEffect(function () {
26118
26344
  if (notifications.length && notifications.length - 1 < i) {
26119
26345
  setI(notifications.length - 1);
26120
26346
  }
26121
26347
  setLast(notifications.length - 1);
26348
+ itemHeightsRef.current = {};
26349
+ if (expandedAppName) {
26350
+ var stillHasApp = notifications.some(function (n) {
26351
+ return (n.sourceApplication || 'Other') === expandedAppName;
26352
+ });
26353
+ if (!stillHasApp) {
26354
+ setExpandedAppName(null);
26355
+ }
26356
+ }
26122
26357
  }, [notifications]);
26358
+ React.useEffect(function () {
26359
+ if (sidebarOpen === false) {
26360
+ resetSidebarView();
26361
+ }
26362
+ }, [sidebarOpen, resetSidebarView]);
26363
+
26364
+ // Virtualizer state for the sidebar list
26365
+ var _useState9 = React.useState(600),
26366
+ _useState0 = _slicedToArray(_useState9, 2),
26367
+ viewportHeight = _useState0[0],
26368
+ setViewportHeight = _useState0[1];
26369
+ var rafPendingRef = React.useRef(false);
26370
+ var _useState1 = React.useState(0),
26371
+ _useState10 = _slicedToArray(_useState1, 2),
26372
+ forceUpdate = _useState10[1];
26373
+ React.useEffect(function () {
26374
+ var el = scrollRef.current;
26375
+ if (!el) return;
26376
+ var handleScroll = function handleScroll() {
26377
+ return setScrollTop(el.scrollTop);
26378
+ };
26379
+ var ro = new ResizeObserver(function (entries) {
26380
+ var _iterator = _createForOfIteratorHelper(entries),
26381
+ _step;
26382
+ try {
26383
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
26384
+ var entry = _step.value;
26385
+ setViewportHeight(entry.contentRect.height);
26386
+ }
26387
+ } catch (err) {
26388
+ _iterator.e(err);
26389
+ } finally {
26390
+ _iterator.f();
26391
+ }
26392
+ });
26393
+ el.addEventListener('scroll', handleScroll, {
26394
+ passive: true
26395
+ });
26396
+ ro.observe(el);
26397
+ return function () {
26398
+ el.removeEventListener('scroll', handleScroll);
26399
+ ro.disconnect();
26400
+ };
26401
+ }, [showSideBar]);
26402
+
26403
+ // Ref callback: measures rendered item height and triggers a rAF-batched re-render
26404
+ // when the measured height differs from the cached value.
26405
+ var measureItem = React.useCallback(function (index) {
26406
+ return function (node) {
26407
+ if (!node) return;
26408
+ var height = node.getBoundingClientRect().height;
26409
+ if (itemHeightsRef.current[index] === height) return;
26410
+ itemHeightsRef.current[index] = height;
26411
+ if (!rafPendingRef.current) {
26412
+ rafPendingRef.current = true;
26413
+ requestAnimationFrame(function () {
26414
+ rafPendingRef.current = false;
26415
+ forceUpdate(function (n) {
26416
+ return n + 1;
26417
+ });
26418
+ });
26419
+ }
26420
+ };
26421
+ }, []);
26422
+ var count = notifications.length;
26423
+ var notificationGroups = showSideBar ? expandedAppName ? [getExpandedAppGroup(notifications, expandedAppName)] : groupNotificationsByApp(notifications) : [];
26424
+ var handleViewAll = function handleViewAll(appName) {
26425
+ itemHeightsRef.current = {};
26426
+ setExpandedAppName(appName);
26427
+ setScrollTop(0);
26428
+ if (scrollRef.current) {
26429
+ scrollRef.current.scrollTop = 0;
26430
+ }
26431
+ };
26432
+ var handleBackToAllApps = function handleBackToAllApps() {
26433
+ resetSidebarView();
26434
+ };
26435
+ var virtualListCount = showSideBar ? notificationGroups.length : count;
26436
+ var estimatedHeight = showSideBar ? ESTIMATED_GROUP_HEIGHT : ESTIMATED_ITEM_HEIGHT;
26437
+ var offsets = buildOffsets(virtualListCount, itemHeightsRef.current, estimatedHeight);
26438
+ var totalHeight = offsets[virtualListCount];
26439
+ var rawStart = findStartIndex(offsets, scrollTop);
26440
+ var startIdx = Math.max(0, rawStart - OVERSCAN);
26441
+ var endRaw = rawStart;
26442
+ while (endRaw < virtualListCount && offsets[endRaw] < scrollTop + viewportHeight) endRaw++;
26443
+ var endIdx = Math.min(virtualListCount - 1, endRaw + OVERSCAN);
26123
26444
  var notification = notifications[i];
26124
26445
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, !isNil$2(notification) && !showSideBar ? /*#__PURE__*/React__default["default"].createElement(Banner, _extends$1({
26125
26446
  current: i + 1,
@@ -26137,21 +26458,48 @@ var Notifications = function Notifications(_ref) {
26137
26458
  notificationsTopContainerRef: notificationsTopContainerRef,
26138
26459
  mobileNotificationsTopContainerRef: mobileNotificationsTopContainerRef,
26139
26460
  setNotificationHeightFlag: setNotificationHeightFlag
26140
- })) : null, notifications.length > 0 && showSideBar ? notifications.map(function (notification) {
26141
- return /*#__PURE__*/React__default["default"].createElement(Banner, _extends$1({
26142
- key: notification.notificationId,
26143
- current: i + 1,
26144
- count: notifications.length,
26145
- showNavButtons: false,
26146
- onDismiss: function onDismiss() {
26147
- return _onDismiss(notification);
26148
- }
26149
- }, notification, {
26150
- showSideBar: showSideBar,
26461
+ })) : null, count > 0 && showSideBar ? /*#__PURE__*/React__default["default"].createElement("div", {
26462
+ ref: scrollRef,
26463
+ style: {
26464
+ height: '100%',
26465
+ overflowY: 'auto',
26466
+ overflowX: 'hidden'
26467
+ }
26468
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
26469
+ style: {
26470
+ height: totalHeight,
26471
+ position: 'relative',
26472
+ width: '100%'
26473
+ }
26474
+ }, Array.from({
26475
+ length: endIdx - startIdx + 1
26476
+ }, function (_, rel) {
26477
+ var index = startIdx + rel;
26478
+ var group = notificationGroups[index];
26479
+ return /*#__PURE__*/React__default["default"].createElement("div", {
26480
+ key: group.appName,
26481
+ ref: measureItem(index),
26482
+ style: {
26483
+ position: 'absolute',
26484
+ top: offsets[index],
26485
+ left: 0,
26486
+ width: '100%'
26487
+ }
26488
+ }, /*#__PURE__*/React__default["default"].createElement(SideNotificationGroup, {
26489
+ appName: group.appName,
26490
+ totalCount: group.totalCount,
26491
+ notifications: group.notifications,
26492
+ hasMore: group.hasMore,
26493
+ showBackButton: Boolean(expandedAppName),
26494
+ onBack: handleBackToAllApps,
26495
+ onViewAll: function onViewAll() {
26496
+ return handleViewAll(group.appName);
26497
+ },
26498
+ onDismiss: _onDismiss,
26151
26499
  ActionComponent: ActionComponent,
26152
26500
  saveActionComponentState: saveActionComponentState
26153
26501
  }));
26154
- }) : null);
26502
+ }))) : null);
26155
26503
  };
26156
26504
 
26157
26505
  var capitalizeAndReplaceUnderscores = function capitalizeAndReplaceUnderscores(role) {
@@ -27183,6 +27531,7 @@ var AppBar$1 = function AppBar(props) {
27183
27531
  notifications: notifications || [],
27184
27532
  onDismiss: onDismiss,
27185
27533
  showSideBar: true,
27534
+ sidebarOpen: notificationsVisible,
27186
27535
  ActionComponent: ActionComponent,
27187
27536
  saveActionComponentState: saveActionComponentState
27188
27537
  })))), showSearchContainer && /*#__PURE__*/React__default["default"].createElement("div", {
@@ -28997,26 +29346,9 @@ var getCurrentApp = function getCurrentApp() {
28997
29346
  return app;
28998
29347
  };
28999
29348
  var buildTargetingClause = function buildTargetingClause(yardNumber, email) {
29000
- encodeURIComponent(getCurrentApp());
29001
- // const clauses = [
29002
- // `(facilities:${yardNumber} AND -user_details:* AND -applications:* AND -group_user_details:*)`,
29003
- // `(-facilities:* AND user_details:"${email}" AND -applications:* AND -group_user_details:*)`,
29004
- // `(-facilities:* AND -user_details:* AND applications:"${app}" AND -group_user_details:*)`,
29005
- // `(-facilities:* AND -user_details:* AND -applications:* AND group_user_details:"${email}")`,
29006
- // `(facilities:${yardNumber} AND user_details:"${email}" AND -applications:* AND -group_user_details:*)`,
29007
- // `(facilities:${yardNumber} AND -user_details:* AND applications:"${app}" AND -group_user_details:*)`,
29008
- // `(facilities:${yardNumber} AND -user_details:* AND -applications:* AND group_user_details:"${email}")`,
29009
- // `(-facilities:* AND user_details:"${email}" AND applications:"${app}" AND -group_user_details:*)`,
29010
- // `(-facilities:* AND user_details:"${email}" AND -applications:* AND group_user_details:"${email}")`,
29011
- // `(-facilities:* AND -user_details:* AND applications:"${app}" AND group_user_details:"${email}")`,
29012
- // `(facilities:${yardNumber} AND user_details:"${email}" AND applications:"${app}" AND -group_user_details:*)`,
29013
- // `(facilities:${yardNumber} AND user_details:"${email}" AND -applications:* AND group_user_details:"${email}")`,
29014
- // `(facilities:${yardNumber} AND -user_details:* AND applications:"${app}" AND group_user_details:"${email}")`,
29015
- // `(-facilities:* AND user_details:"${email}" AND applications:"${app}" AND group_user_details:"${email}")`,
29016
- // `(facilities:${yardNumber} AND user_details:"${email}" AND applications:"${app}" AND group_user_details:"${email}")`,
29017
- // ]
29018
- // return clauses.join(' OR ')
29019
- return "(facilities:".concat(yardNumber, " OR user_details:\"").concat(email, "\" OR group_user_details:\"").concat(email, "\")");
29349
+ var app = encodeURIComponent(getCurrentApp());
29350
+ var clauses = ["(channel_names:".concat(yardNumber, ")"), "(channel_names:\"".concat(email, "\")"), "(channel_names:\"".concat(app, "\")"), "(channel_names:\"".concat(yardNumber, "%7C").concat(app, "\")"), "(channel_names:\"".concat(email, "%7C").concat(app, "\")")];
29351
+ return clauses.join(' OR ');
29020
29352
  };
29021
29353
  var generateQuery = function generateQuery(yardNumber, email) {
29022
29354
  var startDateTs = moment(new Date()).add(1, 'days').local().format('YYYY-MM-DDTHH:mm:ss[Z]');
@@ -29024,7 +29356,7 @@ var generateQuery = function generateQuery(yardNumber, email) {
29024
29356
  var startDateTsUTC = moment.utc(new Date()).add(1, 'days').format('YYYY-MM-DDTHH:mm:ss[Z]');
29025
29357
  var EndDateTsUTC = moment.utc(new Date()).format('YYYY-MM-DDTHH:mm:ss[Z]');
29026
29358
  var targetingClause = buildTargetingClause(yardNumber, email);
29027
- return "fq=(".concat(targetingClause, ")&fq=((start_date_timezone:\"UTC\" AND end_date_timezone:\"UTC\" AND start_date_ts_utc:[* TO ").concat(startDateTsUTC, "] AND end_date_ts_utc:[").concat(EndDateTsUTC, " TO *]) OR (!start_date_timezone:\"UTC\" AND !end_date_timezone:\"UTC\" AND start_date_ts_utc:[* TO ").concat(startDateTs, "] AND end_date_ts_utc:[").concat(EndDateTs, " TO *]) OR (!start_date_timezone:\"UTC\" AND end_date_timezone:\"UTC\" AND start_date_ts_utc:[* TO ").concat(startDateTs, "] AND end_date_ts_utc:[").concat(EndDateTsUTC, " TO *]))&fq=status:A&rows=10000&q=*:*");
29359
+ return "fq=(".concat(targetingClause, ")&fq=((start_date_timezone:\"UTC\" AND end_date_timezone:\"UTC\" AND start_date_ts_utc:[* TO ").concat(startDateTsUTC, "] AND end_date_ts_utc:[").concat(EndDateTsUTC, " TO *]) OR (!start_date_timezone:\"UTC\" AND !end_date_timezone:\"UTC\" AND start_date_ts_utc:[* TO ").concat(startDateTs, "] AND end_date_ts_utc:[").concat(EndDateTs, " TO *]) OR (!start_date_timezone:\"UTC\" AND end_date_timezone:\"UTC\" AND start_date_ts_utc:[* TO ").concat(startDateTs, "] AND end_date_ts_utc:[").concat(EndDateTsUTC, " TO *]))&fq=status:A&rows=1000&q=*:*");
29028
29360
  };
29029
29361
  var generateTargets = function generateTargets(notification) {
29030
29362
  var targets = [];
@@ -29108,6 +29440,9 @@ function fetchG2Notifications(updateNotifications, updateAllNotificationsList) {
29108
29440
  });
29109
29441
  compose(updateNotifications, filterNotifications)(modifiedNotifications);
29110
29442
  updateAllNotificationsList(modifiedNotifications, true);
29443
+ // Prune expired entries from viewedNotifications after the main logic
29444
+ // settles. Deferred so it never blocks the notifications render.
29445
+ setTimeout(pruneExpiredViewedNotifications, 0);
29111
29446
  }).catch(function (e) {
29112
29447
  console.log(e);
29113
29448
  });
@@ -29121,7 +29456,10 @@ function startWebSocketConnection(updateNotifications, updateAllNotificationsLis
29121
29456
  var onOpen = callbacks.onOpen,
29122
29457
  onClose = callbacks.onClose;
29123
29458
  var coreAppConfig = storage$2.getLocalItem('opsportal-core:config');
29124
- var webSocketURL = "".concat(coreAppConfig.webSocketURL, "/").concat((_storage$getSessionIt = storage$2.getSessionItem('dashboard')) === null || _storage$getSessionIt === void 0 ? void 0 : _storage$getSessionIt.selectedYard, ",").concat(storage$2.userEmail, ",").concat(encodeURIComponent(getCurrentApp()));
29459
+ var currentApp = encodeURIComponent(getCurrentApp());
29460
+ var selectedYard = (_storage$getSessionIt = storage$2.getSessionItem('dashboard')) === null || _storage$getSessionIt === void 0 ? void 0 : _storage$getSessionIt.selectedYard;
29461
+ var userEmail = storage$2.userEmail;
29462
+ var webSocketURL = "".concat(coreAppConfig.webSocketURL, "/").concat(selectedYard, ",").concat(userEmail, ",").concat(currentApp, ",").concat(selectedYard, "|").concat(currentApp, ",").concat(userEmail, "|").concat(currentApp);
29125
29463
  var domain = window.location.hostname.slice(window.location.hostname.indexOf('.copart'));
29126
29464
  var selectedCountryA3code = (_storage$getSessionIt2 = storage$2.getSessionItem('dashboard')) === null || _storage$getSessionIt2 === void 0 ? void 0 : _storage$getSessionIt2.selectedCountryA3code;
29127
29465
  var notificationCountry = selectedCountryA3code;
@@ -29148,13 +29486,19 @@ function startWebSocketConnection(updateNotifications, updateAllNotificationsLis
29148
29486
  var batch = notificationBuffer;
29149
29487
  notificationBuffer = [];
29150
29488
  flushTimerId = null;
29151
- var activeBatch = batch.filter(function (n) {
29489
+ var seenIds = new Map();
29490
+ batch.forEach(function (n) {
29491
+ var id = (n === null || n === void 0 ? void 0 : n.notification_id) || (n === null || n === void 0 ? void 0 : n.notificationId);
29492
+ if (id) seenIds.set(id, n);
29493
+ });
29494
+ var deduplicatedBatch = seenIds.size > 0 ? Array.from(seenIds.values()) : batch;
29495
+ var activeBatch = deduplicatedBatch.filter(function (n) {
29152
29496
  return (n === null || n === void 0 ? void 0 : n.status) === 'A';
29153
29497
  });
29154
29498
  if (activeBatch.length > 0) {
29155
29499
  compose(updateNotifications, filterNotifications)(activeBatch);
29156
29500
  }
29157
- updateAllNotificationsList(batch);
29501
+ updateAllNotificationsList(deduplicatedBatch);
29158
29502
  }
29159
29503
  function scheduleFlush() {
29160
29504
  if (flushTimerId === null) {
@@ -29189,7 +29533,7 @@ function startWebSocketConnection(updateNotifications, updateAllNotificationsLis
29189
29533
  return;
29190
29534
  }
29191
29535
 
29192
- // Handle notification messages: buffer and flush at interval
29536
+ // Buffer notifications deduplication happens at flush via notificationRegistry.
29193
29537
  var notification = Array.isArray(messageData) ? messageData : [messageData];
29194
29538
  if (notification.length > 0) {
29195
29539
  var _notificationBuffer;
@@ -29525,6 +29869,8 @@ var startTabLeaderCoordinator = function startTabLeaderCoordinator(_ref) {
29525
29869
  console.error('[TabLeaderCoordinator] BroadcastChannel creation failed:', error);
29526
29870
  bc = null;
29527
29871
  }
29872
+ var stopped = false;
29873
+ var pendingElectionTimeout = null;
29528
29874
  var isLeader = false;
29529
29875
  var renewTimer = null;
29530
29876
  var heartbeatTimer = null;
@@ -29570,7 +29916,7 @@ var startTabLeaderCoordinator = function startTabLeaderCoordinator(_ref) {
29570
29916
  });
29571
29917
  };
29572
29918
  var becomeLeader = function becomeLeader() {
29573
- if (isLeader) return;
29919
+ if (isLeader || stopped) return;
29574
29920
  isLeader = true;
29575
29921
  if (bc) {
29576
29922
  try {
@@ -29619,6 +29965,7 @@ var startTabLeaderCoordinator = function startTabLeaderCoordinator(_ref) {
29619
29965
  renewTimer = heartbeatTimer = interactionCheckTimer = null;
29620
29966
  };
29621
29967
  var tryBecomeLeader = function tryBecomeLeader() {
29968
+ if (stopped) return;
29622
29969
  var lock = readLock();
29623
29970
  var expired = !lock || lock.expiresAt <= now();
29624
29971
  if (expired) {
@@ -29662,10 +30009,15 @@ var startTabLeaderCoordinator = function startTabLeaderCoordinator(_ref) {
29662
30009
  window.addEventListener('beforeunload', handleBeforeUnload);
29663
30010
  window.addEventListener('pagehide', handleBeforeUnload);
29664
30011
  electionTimer = setInterval(function () {
29665
- setTimeout(tryBecomeLeader, Math.random() * JITTER_MS);
30012
+ pendingElectionTimeout = setTimeout(tryBecomeLeader, Math.random() * JITTER_MS);
29666
30013
  }, ELECTION_INTERVAL_MS);
29667
30014
  tryBecomeLeader();
29668
30015
  return function () {
30016
+ stopped = true;
30017
+ if (pendingElectionTimeout) {
30018
+ clearTimeout(pendingElectionTimeout);
30019
+ pendingElectionTimeout = null;
30020
+ }
29669
30021
  window.removeEventListener('storage', handleStorage);
29670
30022
  window.removeEventListener('beforeunload', handleBeforeUnload);
29671
30023
  window.removeEventListener('pagehide', handleBeforeUnload);
@@ -68244,6 +68596,16 @@ function ContextualHelp(_ref) {
68244
68596
  })));
68245
68597
  }
68246
68598
 
68599
+ var IFRAME_EVENTS = {
68600
+ UPDATE_URI: 'UPDATE_URI',
68601
+ UPDATE_CRUMBS: 'UPDATE_CRUMBS',
68602
+ SET_NAV_CONFIG: 'SET_NAV_CONFIG',
68603
+ UPDATE_NAV_COUNTS: 'UPDATE_NAV_COUNTS',
68604
+ REQUEST_NAV_COUNTS: 'REQUEST_NAV_COUNTS',
68605
+ NAV_COUNTS_RESPONSE: 'NAV_COUNTS_RESPONSE',
68606
+ SET_APP_ENV: 'SET_APP_ENV'
68607
+ };
68608
+
68247
68609
  var _excluded = ["signal"];
68248
68610
  var pending = new Map();
68249
68611
  var STORAGE_REQUEST_TIMEOUT_MS = 5000;
@@ -68459,18 +68821,18 @@ function getInitData() {
68459
68821
  }
68460
68822
  function postUpdateUri(uri) {
68461
68823
  var isPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
68462
- post('UPDATE_URI', {
68824
+ post(IFRAME_EVENTS.UPDATE_URI, {
68463
68825
  uri: uri,
68464
68826
  isPath: isPath
68465
68827
  });
68466
68828
  }
68467
68829
  function postUpdateCrumbs(crumbs) {
68468
- post('UPDATE_CRUMBS', {
68830
+ post(IFRAME_EVENTS.UPDATE_CRUMBS, {
68469
68831
  crumbs: crumbs
68470
68832
  });
68471
68833
  }
68472
68834
  function postNavConfig(navItems) {
68473
- post('SET_NAV_CONFIG', {
68835
+ post(IFRAME_EVENTS.SET_NAV_CONFIG, {
68474
68836
  navItems: navItems
68475
68837
  });
68476
68838
  }
@@ -68486,12 +68848,18 @@ function postNavConfig(navItems) {
68486
68848
  */
68487
68849
  function postNavCounts(countsByMenu) {
68488
68850
  if (!countsByMenu || _typeof$1(countsByMenu) !== 'object') return;
68489
- post('UPDATE_NAV_COUNTS', {
68851
+ post(IFRAME_EVENTS.UPDATE_NAV_COUNTS, {
68490
68852
  countsByMenu: countsByMenu
68491
68853
  });
68492
68854
  }
68855
+ function postNavCountsResponse(requestId, countsByMenu) {
68856
+ post(IFRAME_EVENTS.NAV_COUNTS_RESPONSE, {
68857
+ requestId: requestId,
68858
+ countsByMenu: countsByMenu || {}
68859
+ });
68860
+ }
68493
68861
  function postAppEnv(toolkitEnv, mihelpAgentProps) {
68494
- post('SET_APP_ENV', {
68862
+ post(IFRAME_EVENTS.SET_APP_ENV, {
68495
68863
  toolkitEnv: toolkitEnv,
68496
68864
  mihelpAgentProps: mihelpAgentProps
68497
68865
  });
@@ -69756,6 +70124,7 @@ var iframeFacade = {
69756
70124
  postUpdateCrumbs: postUpdateCrumbs,
69757
70125
  postNavConfig: postNavConfig,
69758
70126
  postNavCounts: postNavCounts,
70127
+ postNavCountsResponse: postNavCountsResponse,
69759
70128
  postAppEnv: postAppEnv,
69760
70129
  addMessageListener: addMessageListener,
69761
70130
  getInitData: getInitData,
@@ -69764,7 +70133,8 @@ var iframeFacade = {
69764
70133
  setExtraLocal: setExtraLocal,
69765
70134
  setAppName: setAppName,
69766
70135
  getInitDataForBootstrap: getInitDataForBootstrap,
69767
- sendStorageGet: sendStorageGet
70136
+ sendStorageGet: sendStorageGet,
70137
+ IFRAME_EVENTS: IFRAME_EVENTS
69768
70138
  }
69769
70139
  };
69770
70140
 
@@ -69988,7 +70358,7 @@ function NavConfigSender(_ref) {
69988
70358
  }
69989
70359
 
69990
70360
  var DEFAULT_POLL_INTERVAL_MS = 60000;
69991
- function resolveCountsLoader(mod) {
70361
+ function resolveCountsLoader$1(mod) {
69992
70362
  if (!mod) return null;
69993
70363
  if (typeof mod === 'function') return mod;
69994
70364
  if (typeof mod.default === 'function') return mod.default;
@@ -70021,7 +70391,7 @@ function NavCountsSender(_ref) {
70021
70391
  Promise.resolve().then(function () {
70022
70392
  return countsLoader();
70023
70393
  }).then(function (mod) {
70024
- var loader = resolveCountsLoader(mod);
70394
+ var loader = resolveCountsLoader$1(mod);
70025
70395
  if (!loader) {
70026
70396
  throw new Error('[NavCountsSender] countsLoader must export a function');
70027
70397
  }
@@ -70052,6 +70422,40 @@ function NavCountsSender(_ref) {
70052
70422
  return null;
70053
70423
  }
70054
70424
 
70425
+ function resolveCountsLoader(mod) {
70426
+ if (!mod) return null;
70427
+ if (typeof mod === 'function') return mod;
70428
+ if (typeof mod.default === 'function') return mod.default;
70429
+ if (typeof mod.getNavCounts === 'function') return mod.getNavCounts;
70430
+ return null;
70431
+ }
70432
+ function NavCountsResponder(_ref) {
70433
+ var countsLoader = _ref.countsLoader,
70434
+ onError = _ref.onError;
70435
+ React.useEffect(function () {
70436
+ if (!countsLoader) return undefined;
70437
+ return addMessageListener(function (data) {
70438
+ if (!data || data.eventType !== IFRAME_EVENTS.REQUEST_NAV_COUNTS) return;
70439
+ var _ref2 = data.eventProps || {},
70440
+ menuItemName = _ref2.menuItemName,
70441
+ requestId = _ref2.requestId;
70442
+ Promise.resolve().then(function () {
70443
+ return countsLoader();
70444
+ }).then(function (mod) {
70445
+ var loader = resolveCountsLoader(mod);
70446
+ if (!loader) throw new Error('[NavCountsResponder] countsLoader must export a function');
70447
+ return loader(menuItemName);
70448
+ }).then(function (countsByMenu) {
70449
+ return postNavCountsResponse(requestId, countsByMenu || {});
70450
+ }).catch(function (err) {
70451
+ postNavCountsResponse(requestId, {}); // always respond so the shell spinner clears
70452
+ if (onError) onError(err);else console.warn('[NavCountsResponder] Failed to load/post nav counts:', err);
70453
+ });
70454
+ });
70455
+ }, [countsLoader, onError]);
70456
+ return null;
70457
+ }
70458
+
70055
70459
  var defaultContentStyle = {
70056
70460
  height: '100%',
70057
70461
  display: 'flex',
@@ -70160,9 +70564,12 @@ function normalizePermissionKeys(permissionKeys) {
70160
70564
  if (!permissionKeys) return [];
70161
70565
  return Array.isArray(permissionKeys) ? permissionKeys : [permissionKeys];
70162
70566
  }
70567
+ function isNonEmptyObject(value) {
70568
+ return !!value && _typeof$1(value) === 'object' && !Array.isArray(value) && Object.keys(value).length > 0;
70569
+ }
70163
70570
  function isValidAppConfig(config, validateAppConfig) {
70164
70571
  if (validateAppConfig) return validateAppConfig(config);
70165
- return !!config;
70572
+ return isNonEmptyObject(config);
70166
70573
  }
70167
70574
  function hydrateAppConfig(_x) {
70168
70575
  return _hydrateAppConfig.apply(this, arguments);
@@ -70220,9 +70627,7 @@ function hydratePermissions(_x2) {
70220
70627
  * @param {string} [options.rootSelector] - Root element selector (default: #root then #app)
70221
70628
  * @param {(initData: *) => void} [options.onInitCache] - Called after setInitCache (e.g. initStoreData)
70222
70629
  * @param {(initialUri: string, rootNode: HTMLElement) => void} options.render - App render callback
70223
- * @param {'render'|'error'|'skip'} [options.standaloneMode='render'] - Behavior when not in iframe
70224
- * @param {(rootNode: HTMLElement) => void} [options.standaloneRender] - Custom standalone UI
70225
- * @param {string} [options.standaloneErrorMessage] - Message when standaloneMode is 'error'
70630
+ * @param {string} [options.standaloneErrorMessage] - Message when not in iframe
70226
70631
  * @param {boolean} [options.fetchConfigFromShell=true] - Fetch app config/permissions from shell
70227
70632
  * @param {string} [options.configFallbackUri] - Defaults to process.env.CONFIG_URI
70228
70633
  * @param {(config: *) => boolean} [options.validateAppConfig] - Config validity check before setExtraLocal
@@ -70284,11 +70689,11 @@ function bootstrapIframeApp(_x3) {
70284
70689
  }
70285
70690
  function _bootstrapIframeApp() {
70286
70691
  _bootstrapIframeApp = _asyncToGenerator$1(/*#__PURE__*/_regenerator().m(function _callee4(options) {
70287
- var _ref4, _ref4$appName, appName, permissionKeys, rootSelector, onInitCache, render, _ref4$standaloneMode, standaloneMode, standaloneRender, _ref4$standaloneError, standaloneErrorMessage, _ref4$fetchConfigFrom, fetchConfigFromShell, _ref4$configFallbackU, configFallbackUri, validateAppConfig, _ref4$permissionsOnly, permissionsOnlyIfArray, rootNode, bridge, fetcher, storage, getInitialUri, getInitData, setInitCache, setExtraLocal, sendStorageGet, setAppName, _yield$Promise$all, _yield$Promise$all2, initialUri, initData, getCachedLocalItem, tasks, _t;
70692
+ var _ref4, _ref4$appName, appName, _ref4$permissionKeys, permissionKeys, rootSelector, onInitCache, render, _ref4$standaloneError, standaloneErrorMessage, _ref4$fetchConfigFrom, fetchConfigFromShell, _ref4$configFallbackU, configFallbackUri, validateAppConfig, _ref4$permissionsOnly, permissionsOnlyIfArray, rootNode, bridge, fetcher, storage, getInitialUri, getInitData, setInitCache, setExtraLocal, sendStorageGet, setAppName, _yield$Promise$all, _yield$Promise$all2, initialUri, initData, getCachedLocalItem, tasks, _t;
70288
70693
  return _regenerator().w(function (_context4) {
70289
70694
  while (1) switch (_context4.p = _context4.n) {
70290
70695
  case 0:
70291
- _ref4 = options || {}, _ref4$appName = _ref4.appName, appName = _ref4$appName === void 0 ? process.env.APP_NAME : _ref4$appName, permissionKeys = _ref4.permissionKeys, rootSelector = _ref4.rootSelector, onInitCache = _ref4.onInitCache, render = _ref4.render, _ref4$standaloneMode = _ref4.standaloneMode, standaloneMode = _ref4$standaloneMode === void 0 ? 'render' : _ref4$standaloneMode, standaloneRender = _ref4.standaloneRender, _ref4$standaloneError = _ref4.standaloneErrorMessage, standaloneErrorMessage = _ref4$standaloneError === void 0 ? 'This application must be opened from the parent portal.' : _ref4$standaloneError, _ref4$fetchConfigFrom = _ref4.fetchConfigFromShell, fetchConfigFromShell = _ref4$fetchConfigFrom === void 0 ? true : _ref4$fetchConfigFrom, _ref4$configFallbackU = _ref4.configFallbackUri, configFallbackUri = _ref4$configFallbackU === void 0 ? process.env.CONFIG_URI : _ref4$configFallbackU, validateAppConfig = _ref4.validateAppConfig, _ref4$permissionsOnly = _ref4.permissionsOnlyIfArray, permissionsOnlyIfArray = _ref4$permissionsOnly === void 0 ? true : _ref4$permissionsOnly;
70696
+ _ref4 = options || {}, _ref4$appName = _ref4.appName, appName = _ref4$appName === void 0 ? process.env.APP_NAME : _ref4$appName, _ref4$permissionKeys = _ref4.permissionKeys, permissionKeys = _ref4$permissionKeys === void 0 ? appName ? "".concat(appName, ":permissions") : null : _ref4$permissionKeys, rootSelector = _ref4.rootSelector, onInitCache = _ref4.onInitCache, render = _ref4.render, _ref4$standaloneError = _ref4.standaloneErrorMessage, standaloneErrorMessage = _ref4$standaloneError === void 0 ? 'This application must be opened from the parent portal.' : _ref4$standaloneError, _ref4$fetchConfigFrom = _ref4.fetchConfigFromShell, fetchConfigFromShell = _ref4$fetchConfigFrom === void 0 ? true : _ref4$fetchConfigFrom, _ref4$configFallbackU = _ref4.configFallbackUri, configFallbackUri = _ref4$configFallbackU === void 0 ? process.env.CONFIG_URI : _ref4$configFallbackU, validateAppConfig = _ref4.validateAppConfig, _ref4$permissionsOnly = _ref4.permissionsOnlyIfArray, permissionsOnlyIfArray = _ref4$permissionsOnly === void 0 ? true : _ref4$permissionsOnly;
70292
70697
  if (!(typeof render !== 'function')) {
70293
70698
  _context4.n = 1;
70294
70699
  break;
@@ -70304,27 +70709,17 @@ function _bootstrapIframeApp() {
70304
70709
  return _context4.a(2);
70305
70710
  case 2:
70306
70711
  if (isInIframe()) {
70307
- _context4.n = 4;
70308
- break;
70309
- }
70310
- if (!(standaloneMode === 'error')) {
70311
70712
  _context4.n = 3;
70312
70713
  break;
70313
70714
  }
70314
- if (standaloneRender) standaloneRender(rootNode);else renderStandaloneError(rootNode, standaloneErrorMessage);
70715
+ renderStandaloneError(rootNode, standaloneErrorMessage);
70315
70716
  return _context4.a(2);
70316
70717
  case 3:
70317
- if (!(standaloneMode === 'skip')) {
70318
- _context4.n = 4;
70319
- break;
70320
- }
70321
- return _context4.a(2);
70322
- case 4:
70323
70718
  bridge = iframeFacade.bridge, fetcher = iframeFacade.fetcher, storage = iframeFacade.storage;
70324
70719
  getInitialUri = bridge.getInitialUri, getInitData = bridge.getInitData, setInitCache = bridge.setInitCache, setExtraLocal = bridge.setExtraLocal, sendStorageGet = bridge.sendStorageGet, setAppName = bridge.setAppName;
70325
- _context4.n = 5;
70720
+ _context4.n = 4;
70326
70721
  return Promise.all([getInitialUri(), getInitData()]);
70327
- case 5:
70722
+ case 4:
70328
70723
  _yield$Promise$all = _context4.v;
70329
70724
  _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 2);
70330
70725
  initialUri = _yield$Promise$all2[0];
@@ -70340,10 +70735,10 @@ function _bootstrapIframeApp() {
70340
70735
  return storage.getLocalItem(key);
70341
70736
  };
70342
70737
  if (!(fetchConfigFromShell && appName)) {
70343
- _context4.n = 9;
70738
+ _context4.n = 8;
70344
70739
  break;
70345
70740
  }
70346
- _context4.p = 6;
70741
+ _context4.p = 5;
70347
70742
  tasks = [hydrateAppConfig({
70348
70743
  appName: appName,
70349
70744
  getCachedLocalItem: getCachedLocalItem,
@@ -70362,21 +70757,21 @@ function _bootstrapIframeApp() {
70362
70757
  permissionsOnlyIfArray: permissionsOnlyIfArray
70363
70758
  }));
70364
70759
  }
70365
- _context4.n = 7;
70760
+ _context4.n = 6;
70366
70761
  return Promise.all(tasks);
70367
- case 7:
70368
- _context4.n = 9;
70762
+ case 6:
70763
+ _context4.n = 8;
70369
70764
  break;
70370
- case 8:
70371
- _context4.p = 8;
70765
+ case 7:
70766
+ _context4.p = 7;
70372
70767
  _t = _context4.v;
70373
70768
  console.warn('[Iframe] failed to fetch app config/permissions from shell:', _t);
70374
- case 9:
70769
+ case 8:
70375
70770
  render(initialUri, rootNode);
70376
- case 10:
70771
+ case 9:
70377
70772
  return _context4.a(2);
70378
70773
  }
70379
- }, _callee4, null, [[6, 8]]);
70774
+ }, _callee4, null, [[5, 7]]);
70380
70775
  }));
70381
70776
  return _bootstrapIframeApp.apply(this, arguments);
70382
70777
  }
@@ -81965,10 +82360,12 @@ exports.AutoRefresh = AutoRefresh;
81965
82360
  exports.CallLogger = CallLogger;
81966
82361
  exports.ContextualHelp = ContextualHelp;
81967
82362
  exports.Crumb = Crumb$1;
82363
+ exports.IFRAME_EVENTS = IFRAME_EVENTS;
81968
82364
  exports.IS_REACT_ROUTER_V6 = IS_REACT_ROUTER_V6;
81969
82365
  exports.IframeAppRoot = IframeAppRoot;
81970
82366
  exports.IframeRouteSync = IframeRouteSync;
81971
82367
  exports.NavConfigSender = NavConfigSender;
82368
+ exports.NavCountsResponder = NavCountsResponder;
81972
82369
  exports.NavCountsSender = NavCountsSender;
81973
82370
  exports.STANDARD_NAV_COUNT_THRESHOLDS = STANDARD_NAV_COUNT_THRESHOLDS;
81974
82371
  exports.accessHelpers = accessHelpers$1;