magneto365.ui 2.67.0 → 2.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.js CHANGED
@@ -221,10 +221,31 @@ var ResponsiveContextProvider = function (_a) {
221
221
  return React__default["default"].createElement(ResponsiveContext.Provider, { value: { dim: dim } }, children);
222
222
  };
223
223
 
224
+ var isClient = typeof window !== 'undefined';
225
+ var isServer = !isClient;
226
+
227
+ var ContainerContext = React.createContext({
228
+ container: isClient ? window.document.body : null
229
+ });
230
+ var ContainerContextProvider = function (_a) {
231
+ var children = _a.children, _b = _a.container, container = _b === void 0 ? null : _b;
232
+ var ctx = React.useMemo(function () {
233
+ var element = container;
234
+ if (!element && isClient) {
235
+ element = document.body;
236
+ }
237
+ return {
238
+ container: element
239
+ };
240
+ }, [container]);
241
+ return React__default["default"].createElement(ContainerContext.Provider, { value: ctx }, children);
242
+ };
243
+
224
244
  var ContextAppProvider = function (_a) {
225
- var children = _a.children, device = _a.device;
245
+ var children = _a.children, device = _a.device, container = _a.container;
226
246
  return (React__default["default"].createElement(EventDispatcherContextProvider, null,
227
- React__default["default"].createElement(ResponsiveContextProvider, { device: device }, children)));
247
+ React__default["default"].createElement(ContainerContextProvider, { container: container },
248
+ React__default["default"].createElement(ResponsiveContextProvider, { device: device }, children))));
228
249
  };
229
250
 
230
251
  var screenList = Object.entries(screenSize).sort(function (a, b) { return a[1] - b[1]; });
@@ -3032,20 +3053,21 @@ var AlertJobModalButton = function (_a) {
3032
3053
  var DrawerPortal = function (_a) {
3033
3054
  var children = _a.children;
3034
3055
  var portalNode = React.useRef(null);
3056
+ var container = React.useContext(ContainerContext).container;
3035
3057
  var _b = React.useState(false), mounted = _b[0], setMounted = _b[1];
3036
3058
  React.useEffect(function () {
3037
- if (!document)
3059
+ if (isServer || !container)
3038
3060
  return;
3039
3061
  portalNode.current = document.createElement('div');
3040
3062
  portalNode.current.classList.add('magneto-ui-drawer');
3041
- document.body.appendChild(portalNode.current);
3063
+ container.appendChild(portalNode.current);
3042
3064
  setMounted(true);
3043
3065
  return function () {
3044
3066
  if (portalNode.current) {
3045
- document.body.removeChild(portalNode.current);
3067
+ container.removeChild(portalNode.current);
3046
3068
  }
3047
3069
  };
3048
- }, []);
3070
+ }, [container]);
3049
3071
  return mounted && portalNode.current ? ReactDOM__default["default"].createPortal(children, portalNode.current) : null;
3050
3072
  };
3051
3073
 
@@ -3094,21 +3116,22 @@ var styles$2i = {"magneto-ui-modal":"mg_modal_magneto-ui-modal_1ffsw","magneto-u
3094
3116
 
3095
3117
  var ModalPortal = function (_a) {
3096
3118
  var children = _a.children;
3119
+ var container = React.useContext(ContainerContext).container;
3097
3120
  var portalNode = React.useRef(null);
3098
3121
  var _b = React.useState(false), mounted = _b[0], setMounted = _b[1];
3099
3122
  React.useEffect(function () {
3100
- if (!document)
3123
+ if (isServer || !container)
3101
3124
  return;
3102
3125
  portalNode.current = document.createElement('div');
3103
3126
  portalNode.current.classList.add('modal-ui-drawer');
3104
- document.body.appendChild(portalNode.current);
3127
+ container.appendChild(portalNode.current);
3105
3128
  setMounted(true);
3106
3129
  return function () {
3107
3130
  if (portalNode.current) {
3108
- document.body.removeChild(portalNode.current);
3131
+ container.removeChild(portalNode.current);
3109
3132
  }
3110
3133
  };
3111
- }, []);
3134
+ }, [container]);
3112
3135
  return mounted && portalNode.current ? ReactDOM__default["default"].createPortal(children, portalNode.current) : null;
3113
3136
  };
3114
3137
 
@@ -3290,6 +3313,7 @@ var BrandsMenuMobile = function (_a) {
3290
3313
 
3291
3314
  var withClickOut = function (WrappedComponent) {
3292
3315
  var Component = function (props) {
3316
+ var container = React.useContext(ContainerContext).container;
3293
3317
  var _a = React.useState(false), clickOut = _a[0], setClickOut = _a[1];
3294
3318
  var ref = React.useRef(null);
3295
3319
  var handleClick = React.useCallback(function (e) {
@@ -3300,11 +3324,11 @@ var withClickOut = function (WrappedComponent) {
3300
3324
  }
3301
3325
  }, [clickOut]);
3302
3326
  React.useEffect(function () {
3303
- document.addEventListener('click', handleClick);
3327
+ container === null || container === void 0 ? void 0 : container.addEventListener('click', handleClick);
3304
3328
  return function () {
3305
- document.removeEventListener('click', handleClick);
3329
+ container === null || container === void 0 ? void 0 : container.removeEventListener('click', handleClick);
3306
3330
  };
3307
- }, [handleClick]);
3331
+ }, [handleClick, container]);
3308
3332
  return (React__default["default"].createElement("div", { ref: ref },
3309
3333
  React__default["default"].createElement(WrappedComponent, __assign({ clickOut: clickOut, setClickOut: setClickOut }, props))));
3310
3334
  };
@@ -5214,6 +5238,7 @@ var Component$1B = function (_a) {
5214
5238
  var _g = React.useState(false), isAnimating = _g[0], setIsAnimating = _g[1];
5215
5239
  var removeTimeoutRef = React.useRef(null);
5216
5240
  var hideTimeoutRef = React.useRef(null);
5241
+ var container = React.useContext(ContainerContext).container;
5217
5242
  var containerVar = React.useMemo(function () { return ({
5218
5243
  '--transition-duration': "".concat(transitionDuration / 1000, "s")
5219
5244
  }); }, []);
@@ -5258,13 +5283,13 @@ var Component$1B = function (_a) {
5258
5283
  setLocalVisible(visible);
5259
5284
  setIsAnimating(visible);
5260
5285
  }, [isAnimating, visible]);
5261
- return localVisible
5286
+ return localVisible && container
5262
5287
  ? ReactDOM__default["default"].createPortal(React__default["default"].createElement("div", { style: containerVar, className: CNM.get({ styles: styles$1r, cls: [className] }) },
5263
5288
  React__default["default"].createElement("div", { className: containerStyles },
5264
5289
  React__default["default"].createElement(IconItem, __assign({ alt: type, className: CNM.get({ styles: styles$1r, cls: ['message__icon'] }), icon: iconByType[type], showDefaultFallback: false, size: 20 }, iconProps)),
5265
5290
  React__default["default"].createElement("div", null,
5266
5291
  text && React__default["default"].createElement("span", { className: textStyles(!!description) }, text),
5267
- description && React__default["default"].createElement("span", { className: textStyles() }, description)))), document.body)
5292
+ description && React__default["default"].createElement("span", { className: textStyles() }, description)))), container)
5268
5293
  : null;
5269
5294
  };
5270
5295
  /**
@@ -7508,6 +7533,7 @@ var useContainerDesktop$1 = function (_a) {
7508
7533
  var ContainerDesktop$3 = function (_a) {
7509
7534
  var inputSearchProps = _a.inputSearchProps, selectedValues = _a.selectedValues, listOptions = _a.listOptions, removeValueToArray = _a.removeValueToArray, addValueToArray = _a.addValueToArray, numberOfSelectable = _a.numberOfSelectable, dropDownTitle = _a.dropDownTitle;
7510
7535
  var _b = useContainerDesktop$1({ numberOfSelectable: numberOfSelectable, selectedValues: selectedValues }), containerOptions = _b.containerOptions, menuPosition = _b.menuPosition, toggleDropdown = _b.toggleDropdown, limitOfSelectable = _b.limitOfSelectable, inputRef = _b.inputRef, isOpen = _b.isOpen, dropdownRef = _b.dropdownRef;
7536
+ var container = React.useContext(ContainerContext).container;
7511
7537
  var hideComponent = React.useMemo(function () {
7512
7538
  return isOpen ? style$f['hide'] : '';
7513
7539
  }, [isOpen]);
@@ -7516,6 +7542,7 @@ var ContainerDesktop$3 = function (_a) {
7516
7542
  React__default["default"].createElement(DropDownButton$1, { title: dropDownTitle, onClick: toggleDropdown }))),
7517
7543
  React__default["default"].createElement("div", { className: "".concat(style$f["".concat(classMUI, "-container-options-tags-container")], " ").concat(hideComponent) }, selectedValues.map(function (itemSelected) { return (React__default["default"].createElement(Tags, { key: itemSelected.id, text: itemSelected.name, icon: Close, bgColor: "#FFF", onClick: function () { return removeValueToArray(itemSelected); } })); })),
7518
7544
  React__default["default"].createElement("div", { ref: containerOptions, className: "".concat(style$f["".concat(classMUI, "-container-options")]) }, isOpen &&
7545
+ container &&
7519
7546
  ReactDOM__default["default"].createPortal(React__default["default"].createElement("div", { style: {
7520
7547
  position: 'absolute',
7521
7548
  top: "".concat(menuPosition.top - 60, "px "),
@@ -7525,7 +7552,7 @@ var ContainerDesktop$3 = function (_a) {
7525
7552
  }, ref: dropdownRef, className: "".concat(style$f["".concat(classMUI, "-container-options__menu")]) },
7526
7553
  inputSearchProps && React__default["default"].createElement(InputSearch, __assign({}, inputSearchProps)),
7527
7554
  React__default["default"].createElement("div", { className: "".concat(style$f["".concat(classMUI, "-container-options__menu--tags")]) }, selectedValues.map(function (itemSelected) { return (React__default["default"].createElement(Tags, { key: itemSelected.id, text: itemSelected.name, icon: Close, bgColor: "#F4F4FA", onClick: function () { return removeValueToArray(itemSelected); } })); })),
7528
- React__default["default"].createElement("div", { className: "".concat(style$f["".concat(classMUI, "-container-options__menu--list")]) }, listOptions.map(function (value) { return (React__default["default"].createElement(SelectItem$1, { disable: !limitOfSelectable || selectedValues.includes(value), key: value.id, onClick: function () { return addValueToArray(value); }, text: value.name })); }))), document.body))));
7555
+ React__default["default"].createElement("div", { className: "".concat(style$f["".concat(classMUI, "-container-options__menu--list")]) }, listOptions.map(function (value) { return (React__default["default"].createElement(SelectItem$1, { disable: !limitOfSelectable || selectedValues.includes(value), key: value.id, onClick: function () { return addValueToArray(value); }, text: value.name })); }))), container))));
7529
7556
  };
7530
7557
 
7531
7558
  var style$e = {"magneto-ui-container-options":"mg_container_mobile_magneto-ui-container-options_1caxk","magneto-ui-container-options-tags-container":"mg_container_mobile_magneto-ui-container-options-tags-container_1caxk","magneto-ui-container-options__menu":"mg_container_mobile_magneto-ui-container-options_menu_1caxk","magneto-ui-container-options__menu--tags":"mg_container_mobile_magneto-ui-container-options_menu--tags_1caxk","magneto-ui-container-options__menu--list":"mg_container_mobile_magneto-ui-container-options_menu--list_1caxk"};
@@ -8097,10 +8124,12 @@ var useContainerDesktop = function (_a) {
8097
8124
  var ContainerDesktop$1 = function (_a) {
8098
8125
  var listOptions = _a.listOptions, addValue = _a.addValue, dropDownTitle = _a.dropDownTitle, selectedValue = _a.selectedValue;
8099
8126
  var _b = useContainerDesktop({ addValue: addValue }), containerOptions = _b.containerOptions, menuPosition = _b.menuPosition, toggleDropdown = _b.toggleDropdown, isOpen = _b.isOpen, dropdownRef = _b.dropdownRef, inputRef = _b.inputRef, selectValue = _b.selectValue;
8127
+ var container = React.useContext(ContainerContext).container;
8100
8128
  return (React__default["default"].createElement("div", { style: { zIndex: 999999 } },
8101
8129
  React__default["default"].createElement("div", { ref: inputRef },
8102
8130
  React__default["default"].createElement(DropDownButton, { title: dropDownTitle, onClick: toggleDropdown })),
8103
8131
  React__default["default"].createElement("div", { ref: containerOptions, className: "".concat(style$b["".concat(classMUI, "-container-options")]) }, isOpen &&
8132
+ container &&
8104
8133
  ReactDOM__default["default"].createPortal(React__default["default"].createElement("div", { style: {
8105
8134
  position: 'absolute',
8106
8135
  top: "".concat(menuPosition.top - 8, "px "),
@@ -8108,7 +8137,7 @@ var ContainerDesktop$1 = function (_a) {
8108
8137
  width: "".concat(menuPosition.width, "px"),
8109
8138
  zIndex: 999999
8110
8139
  }, ref: dropdownRef, className: "".concat(style$b["".concat(classMUI, "-container-options__menu")]) },
8111
- React__default["default"].createElement("div", { className: "".concat(style$b["".concat(classMUI, "-container-options__menu--list")]) }, listOptions.map(function (value) { return (React__default["default"].createElement(SelectItem, { selected: (selectedValue === null || selectedValue === void 0 ? void 0 : selectedValue.id) === value.id, disable: (selectedValue === null || selectedValue === void 0 ? void 0 : selectedValue.id) === value.id, key: value.id, onClick: function () { return selectValue(value.id); }, text: value.label })); }))), document.body))));
8140
+ React__default["default"].createElement("div", { className: "".concat(style$b["".concat(classMUI, "-container-options__menu--list")]) }, listOptions.map(function (value) { return (React__default["default"].createElement(SelectItem, { selected: (selectedValue === null || selectedValue === void 0 ? void 0 : selectedValue.id) === value.id, disable: (selectedValue === null || selectedValue === void 0 ? void 0 : selectedValue.id) === value.id, key: value.id, onClick: function () { return selectValue(value.id); }, text: value.label })); }))), container))));
8112
8141
  };
8113
8142
 
8114
8143
  var style$a = {"magneto-ui-container-options":"mg_container_mobile_magneto-ui-container-options_16tb3","magneto-ui-container-options__menu":"mg_container_mobile_magneto-ui-container-options_menu_16tb3","magneto-ui-container-options__menu--list":"mg_container_mobile_magneto-ui-container-options_menu--list_16tb3"};