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

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.18";
52
+ const version$3 = "1.13.0-beta.19";
53
53
  const main$1 = "dist/ops-tool-kit.js";
54
54
  const style = "dist/ops-tool-kit.css";
55
55
  const files = [
@@ -68864,6 +68864,21 @@ function postAppEnv(toolkitEnv, mihelpAgentProps) {
68864
68864
  mihelpAgentProps: mihelpAgentProps
68865
68865
  });
68866
68866
  }
68867
+ function defaultToolkitEnv() {
68868
+ return {
68869
+ STACK: process.env.STACK,
68870
+ APP_NAME: process.env.APP_NAME,
68871
+ CORE_CONFIG_URI: process.env.CORE_CONFIG_URI,
68872
+ CONFIG_URI: process.env.CONFIG_URI
68873
+ };
68874
+ }
68875
+ var appEnvSent = false;
68876
+ function sendAppEnv(toolkitEnv) {
68877
+ var mihelpAgentProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
68878
+ if (appEnvSent) return;
68879
+ appEnvSent = true;
68880
+ postAppEnv(toolkitEnv || defaultToolkitEnv(), mihelpAgentProps);
68881
+ }
68867
68882
  function addMessageListener(callback) {
68868
68883
  var handler = function handler(event) {
68869
68884
  var data = event.data;
@@ -70126,6 +70141,7 @@ var iframeFacade = {
70126
70141
  postNavCounts: postNavCounts,
70127
70142
  postNavCountsResponse: postNavCountsResponse,
70128
70143
  postAppEnv: postAppEnv,
70144
+ sendAppEnv: sendAppEnv,
70129
70145
  addMessageListener: addMessageListener,
70130
70146
  getInitData: getInitData,
70131
70147
  getInitialUri: getInitialUri,
@@ -70315,23 +70331,12 @@ function IframeRouteSync(_ref) {
70315
70331
  return null;
70316
70332
  }
70317
70333
 
70318
- function defaultToolkitEnv() {
70319
- return {
70320
- STACK: process.env.STACK,
70321
- APP_NAME: process.env.APP_NAME,
70322
- CORE_CONFIG_URI: process.env.CORE_CONFIG_URI,
70323
- CONFIG_URI: process.env.CONFIG_URI
70324
- };
70325
- }
70326
70334
  function AppEnvSender(_ref) {
70327
70335
  var toolkitEnv = _ref.toolkitEnv,
70328
70336
  _ref$mihelpAgentProps = _ref.mihelpAgentProps,
70329
70337
  mihelpAgentProps = _ref$mihelpAgentProps === void 0 ? null : _ref$mihelpAgentProps;
70330
- var sentRef = React.useRef(false);
70331
70338
  React.useEffect(function () {
70332
- if (sentRef.current) return;
70333
- sentRef.current = true;
70334
- postAppEnv(toolkitEnv || defaultToolkitEnv(), mihelpAgentProps);
70339
+ sendAppEnv(toolkitEnv, mihelpAgentProps);
70335
70340
  }, [toolkitEnv, mihelpAgentProps]);
70336
70341
  return null;
70337
70342
  }
@@ -70456,78 +70461,44 @@ function NavCountsResponder(_ref) {
70456
70461
  return null;
70457
70462
  }
70458
70463
 
70459
- var defaultContentStyle = {
70460
- height: '100%',
70461
- display: 'flex',
70462
- flexDirection: 'column',
70463
- overflow: 'hidden'
70464
- };
70465
- function IframeAppRootInner(_ref) {
70464
+ function defaultRenderError() {
70465
+ return /*#__PURE__*/React__default["default"].createElement("div", {
70466
+ role: "alert",
70467
+ style: {
70468
+ padding: 24,
70469
+ textAlign: 'center'
70470
+ }
70471
+ }, /*#__PURE__*/React__default["default"].createElement("h2", null, "Unable to load this application"), /*#__PURE__*/React__default["default"].createElement("p", null, "Your permissions could not be loaded from the portal. Please refresh the page."));
70472
+ }
70473
+ function IframeAppShell(_ref) {
70466
70474
  var children = _ref.children,
70467
- contentStyle = _ref.contentStyle,
70468
- toolkitEnv = _ref.toolkitEnv,
70469
- mihelpAgentProps = _ref.mihelpAgentProps,
70475
+ permissionKey = _ref.permissionKey,
70476
+ onPermissionsReady = _ref.onPermissionsReady,
70470
70477
  navItemsLoader = _ref.navItemsLoader,
70471
70478
  navConfigOnError = _ref.navConfigOnError,
70472
- navCountsLoader = _ref.navCountsLoader,
70473
- navCountsPollIntervalMs = _ref.navCountsPollIntervalMs,
70479
+ countsLoader = _ref.countsLoader,
70474
70480
  navCountsOnError = _ref.navCountsOnError,
70475
- updateUriIsPath = _ref.updateUriIsPath,
70476
- suppressRouteSyncEcho = _ref.suppressRouteSyncEcho;
70481
+ _ref$updateUriIsPath = _ref.updateUriIsPath,
70482
+ updateUriIsPath = _ref$updateUriIsPath === void 0 ? false : _ref$updateUriIsPath,
70483
+ renderError = _ref.renderError;
70477
70484
  var _useRouterNavigation = useRouterNavigation(),
70478
70485
  navigate = _useRouterNavigation.navigate;
70486
+ var key = permissionKey || "".concat(getAppName(), ":permissions");
70487
+ var ready = Array.isArray(storage$1.getLocalItem(key));
70488
+ React.useEffect(function () {
70489
+ if (ready && onPermissionsReady) onPermissionsReady();
70490
+ }, [ready, onPermissionsReady]);
70479
70491
  return /*#__PURE__*/React__default["default"].createElement(CrumbProvider, {
70480
70492
  navigate: navigate
70481
- }, /*#__PURE__*/React__default["default"].createElement(AppEnvSender, {
70482
- toolkitEnv: toolkitEnv,
70483
- mihelpAgentProps: mihelpAgentProps
70484
- }), /*#__PURE__*/React__default["default"].createElement(IframeRouteSync, {
70485
- updateUriIsPath: updateUriIsPath,
70486
- suppressEcho: suppressRouteSyncEcho
70487
- }), navItemsLoader ? /*#__PURE__*/React__default["default"].createElement(NavConfigSender, {
70493
+ }, /*#__PURE__*/React__default["default"].createElement(IframeRouteSync, {
70494
+ updateUriIsPath: updateUriIsPath
70495
+ }), ready ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, navItemsLoader ? /*#__PURE__*/React__default["default"].createElement(NavConfigSender, {
70488
70496
  navItemsLoader: navItemsLoader,
70489
70497
  onError: navConfigOnError
70490
- }) : null, navCountsLoader ? /*#__PURE__*/React__default["default"].createElement(NavCountsSender, {
70491
- countsLoader: navCountsLoader,
70492
- pollIntervalMs: navCountsPollIntervalMs,
70498
+ }) : null, countsLoader ? /*#__PURE__*/React__default["default"].createElement(NavCountsResponder, {
70499
+ countsLoader: countsLoader,
70493
70500
  onError: navCountsOnError
70494
- }) : null, /*#__PURE__*/React__default["default"].createElement("div", {
70495
- style: contentStyle || defaultContentStyle
70496
- }, children));
70497
- }
70498
- function IframeAppRoot(_ref2) {
70499
- var _ref2$initialUri = _ref2.initialUri,
70500
- initialUri = _ref2$initialUri === void 0 ? '/' : _ref2$initialUri,
70501
- children = _ref2.children,
70502
- contentStyle = _ref2.contentStyle,
70503
- toolkitEnv = _ref2.toolkitEnv,
70504
- _ref2$mihelpAgentProp = _ref2.mihelpAgentProps,
70505
- mihelpAgentProps = _ref2$mihelpAgentProp === void 0 ? null : _ref2$mihelpAgentProp,
70506
- navItemsLoader = _ref2.navItemsLoader,
70507
- navConfigOnError = _ref2.navConfigOnError,
70508
- navCountsLoader = _ref2.navCountsLoader,
70509
- navCountsPollIntervalMs = _ref2.navCountsPollIntervalMs,
70510
- navCountsOnError = _ref2.navCountsOnError,
70511
- _ref2$updateUriIsPath = _ref2.updateUriIsPath,
70512
- updateUriIsPath = _ref2$updateUriIsPath === void 0 ? false : _ref2$updateUriIsPath,
70513
- _ref2$suppressRouteSy = _ref2.suppressRouteSyncEcho,
70514
- suppressRouteSyncEcho = _ref2$suppressRouteSy === void 0 ? true : _ref2$suppressRouteSy;
70515
- var initialPath = normalizeIframePath(initialUri);
70516
- return /*#__PURE__*/React__default["default"].createElement(ReactRouterDOM.MemoryRouter, {
70517
- initialEntries: [initialPath],
70518
- initialIndex: 0
70519
- }, /*#__PURE__*/React__default["default"].createElement(IframeAppRootInner, {
70520
- contentStyle: contentStyle,
70521
- toolkitEnv: toolkitEnv,
70522
- mihelpAgentProps: mihelpAgentProps,
70523
- navItemsLoader: navItemsLoader,
70524
- navConfigOnError: navConfigOnError,
70525
- navCountsLoader: navCountsLoader,
70526
- navCountsPollIntervalMs: navCountsPollIntervalMs,
70527
- navCountsOnError: navCountsOnError,
70528
- updateUriIsPath: updateUriIsPath,
70529
- suppressRouteSyncEcho: suppressRouteSyncEcho
70530
- }, children));
70501
+ }) : null, children) : (renderError || defaultRenderError)());
70531
70502
  }
70532
70503
 
70533
70504
  /**
@@ -70632,6 +70603,9 @@ function hydratePermissions(_x2) {
70632
70603
  * @param {string} [options.configFallbackUri] - Defaults to process.env.CONFIG_URI
70633
70604
  * @param {(config: *) => boolean} [options.validateAppConfig] - Config validity check before setExtraLocal
70634
70605
  * @param {boolean} [options.permissionsOnlyIfArray=true] - Only set permissions when shell returns an array
70606
+ * @param {boolean} [options.autoSendAppEnv=true] - Post toolkit env to shell during bootstrap
70607
+ * @param {object} [options.toolkitEnv] - Env payload; defaults to build-time process.env values
70608
+ * @param {object|null} [options.mihelpAgentProps=null] - Optional miHelp agent props for SET_APP_ENV
70635
70609
  */
70636
70610
  function _hydratePermissions() {
70637
70611
  _hydratePermissions = _asyncToGenerator$1(/*#__PURE__*/_regenerator().m(function _callee3(_ref2) {
@@ -70689,11 +70663,12 @@ function bootstrapIframeApp(_x3) {
70689
70663
  }
70690
70664
  function _bootstrapIframeApp() {
70691
70665
  _bootstrapIframeApp = _asyncToGenerator$1(/*#__PURE__*/_regenerator().m(function _callee4(options) {
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;
70666
+ var _ref4, _ref4$appName, appName, _ref4$permissionKeys, permissionKeys, rootSelector, onInitCache, render, _ref4$standaloneError, standaloneErrorMessage, _ref4$fetchConfigFrom, fetchConfigFromShell, _ref4$configFallbackU, configFallbackUri, validateAppConfig, _ref4$permissionsOnly, permissionsOnlyIfArray, _ref4$autoSendAppEnv, autoSendAppEnv, toolkitEnv, _ref4$mihelpAgentProp, mihelpAgentProps, rootNode, bridge, fetcher, storage, getInitialUri, getInitData, setInitCache, setExtraLocal, sendStorageGet, setAppName, sendAppEnv, _yield$Promise$all, _yield$Promise$all2, initialUri, initData, getCachedLocalItem, tasks, _t;
70693
70667
  return _regenerator().w(function (_context4) {
70694
70668
  while (1) switch (_context4.p = _context4.n) {
70695
70669
  case 0:
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;
70670
+ registerEarlyLoadUriListener();
70671
+ _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, _ref4$autoSendAppEnv = _ref4.autoSendAppEnv, autoSendAppEnv = _ref4$autoSendAppEnv === void 0 ? true : _ref4$autoSendAppEnv, toolkitEnv = _ref4.toolkitEnv, _ref4$mihelpAgentProp = _ref4.mihelpAgentProps, mihelpAgentProps = _ref4$mihelpAgentProp === void 0 ? null : _ref4$mihelpAgentProp;
70697
70672
  if (!(typeof render !== 'function')) {
70698
70673
  _context4.n = 1;
70699
70674
  break;
@@ -70716,7 +70691,7 @@ function _bootstrapIframeApp() {
70716
70691
  return _context4.a(2);
70717
70692
  case 3:
70718
70693
  bridge = iframeFacade.bridge, fetcher = iframeFacade.fetcher, storage = iframeFacade.storage;
70719
- getInitialUri = bridge.getInitialUri, getInitData = bridge.getInitData, setInitCache = bridge.setInitCache, setExtraLocal = bridge.setExtraLocal, sendStorageGet = bridge.sendStorageGet, setAppName = bridge.setAppName;
70694
+ getInitialUri = bridge.getInitialUri, getInitData = bridge.getInitData, setInitCache = bridge.setInitCache, setExtraLocal = bridge.setExtraLocal, sendStorageGet = bridge.sendStorageGet, setAppName = bridge.setAppName, sendAppEnv = bridge.sendAppEnv;
70720
70695
  _context4.n = 4;
70721
70696
  return Promise.all([getInitialUri(), getInitData()]);
70722
70697
  case 4:
@@ -70725,6 +70700,9 @@ function _bootstrapIframeApp() {
70725
70700
  initialUri = _yield$Promise$all2[0];
70726
70701
  initData = _yield$Promise$all2[1];
70727
70702
  if (appName && typeof setAppName === 'function') setAppName(appName);
70703
+ if (autoSendAppEnv && typeof sendAppEnv === 'function') {
70704
+ sendAppEnv(toolkitEnv, mihelpAgentProps);
70705
+ }
70728
70706
  if (initData) {
70729
70707
  setInitCache(initData);
70730
70708
  if (onInitCache) onInitCache(initData);
@@ -82362,7 +82340,7 @@ exports.ContextualHelp = ContextualHelp;
82362
82340
  exports.Crumb = Crumb$1;
82363
82341
  exports.IFRAME_EVENTS = IFRAME_EVENTS;
82364
82342
  exports.IS_REACT_ROUTER_V6 = IS_REACT_ROUTER_V6;
82365
- exports.IframeAppRoot = IframeAppRoot;
82343
+ exports.IframeAppShell = IframeAppShell;
82366
82344
  exports.IframeRouteSync = IframeRouteSync;
82367
82345
  exports.NavConfigSender = NavConfigSender;
82368
82346
  exports.NavCountsResponder = NavCountsResponder;