PageSourceSearch

https://frontend-cf.cjdropshipping.com/mf-components-v3/components/Menu/index.1800e7dc.js

js cjdropshipping.com collected 2026-10-01 09:03:22 UTC 1,927,845 bytes, 33,649 lines download raw bytes

1(function webpackUniversalModuleDefinition(root, factory) {
2	if(typeof exports === 'object' && typeof module === 'object')
3		module.exports = factory(require("axios"), require("react"), require("react-dom"));
4	else if(typeof define === 'function' && define.amd)
5		define(["axios", "react", "react-dom"], factory);
6	else if(typeof exports === 'object')
7		exports["Menu"] = factory(require("axios"), require("react"), require("react-dom"));
8	else
9		root["Menu"] = factory(root["axios"], root["React"], root["ReactDOM"]);
10})(this, (__WEBPACK_EXTERNAL_MODULE__62742__, __WEBPACK_EXTERNAL_MODULE__15442__, __WEBPACK_EXTERNAL_MODULE__56003__) => {
11return /******/ (() => { // webpackBootstrap
12/******/ 	var __webpack_modules__ = ({
13
14/***/ 1087:
15/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
16
17"use strict";
18/* harmony export */ __webpack_require__.d(__webpack_exports__, {
19/* harmony export */   A: () => (/* binding */ _setPrototypeOf)
20/* harmony export */ });
21function _setPrototypeOf(t, e) {
22  return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
23    return t.__proto__ = e, t;
24  }, _setPrototypeOf(t, e);
25}
26
27
28/***/ }),
29
30/***/ 1680:
31/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32
33"use strict";
34/* harmony export */ __webpack_require__.d(__webpack_exports__, {
35/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
36/* harmony export */ });
37/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15442);
38/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
39/* harmony import */ var _util_motion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(73688);
40
41
42
43/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function (onInternalMotionEnd) {
44  var cacheElementRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
45
46  // Remove events
47  function removeMotionEvents(element) {
48    if (element) {
49      element.removeEventListener(_util_motion__WEBPACK_IMPORTED_MODULE_1__/* .transitionEndName */ .m8, onInternalMotionEnd);
50      element.removeEventListener(_util_motion__WEBPACK_IMPORTED_MODULE_1__/* .animationEndName */ .Vc, onInternalMotionEnd);
51    }
52  }
53
54  // Patch events
55  function patchMotionEvents(element) {
56    if (cacheElementRef.current && cacheElementRef.current !== element) {
57      removeMotionEvents(cacheElementRef.current);
58    }
59    if (element && element !== cacheElementRef.current) {
60      element.addEventListener(_util_motion__WEBPACK_IMPORTED_MODULE_1__/* .transitionEndName */ .m8, onInternalMotionEnd);
61      element.addEventListener(_util_motion__WEBPACK_IMPORTED_MODULE_1__/* .animationEndName */ .Vc, onInternalMotionEnd);
62
63      // Save as cache in case dom removed trigger by `motionDeadline`
64      cacheElementRef.current = element;
65    }
66  }
67
68  // Clean up when removed
69  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {
70    return function () {
71      removeMotionEvents(cacheElementRef.current);
72    };
73  }, []);
74  return [patchMotionEvents, removeMotionEvents];
75});
76
77/***/ }),
78
79/***/ 2474:
80/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
81
82"use strict";
83/* harmony export */ __webpack_require__.d(__webpack_exports__, {
84/* harmony export */   A: () => (/* binding */ _assertThisInitialized)
85/* harmony export */ });
86function _assertThisInitialized(e) {
87  if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
88  return e;
89}
90
91
92/***/ }),
93
94/***/ 3251:
95/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
96
97"use strict";
98/* harmony export */ __webpack_require__.d(__webpack_exports__, {
99/* harmony export */   Ay: () => (__WEBPACK_DEFAULT_EXPORT__)
100/* harmony export */ });
101/* harmony import */ var _CSSMotion__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89614);
102/* harmony import */ var _CSSMotionList__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38818);
103/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(74568);
104
105
106
107
108/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_CSSMotion__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A);
109
110/***/ }),
111
112/***/ 3478:
113/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
114
115"use strict";
116/* harmony export */ __webpack_require__.d(__webpack_exports__, {
117/* harmony export */   A: () => (/* binding */ api)
118/* harmony export */ });
119/*! js-cookie v3.0.5 | MIT */
120/* eslint-disable no-var */
121function assign (target) {
122  for (var i = 1; i < arguments.length; i++) {
123    var source = arguments[i];
124    for (var key in source) {
125      target[key] = source[key];
126    }
127  }
128  return target
129}
130/* eslint-enable no-var */
131
132/* eslint-disable no-var */
133var defaultConverter = {
134  read: function (value) {
135    if (value[0] === '"') {
136      value = value.slice(1, -1);
137    }
138    return value.replace(/(%[\dA-F]{2})+/gi, decodeURIComponent)
139  },
140  write: function (value) {
141    return encodeURIComponent(value).replace(
142      /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,
143      decodeURIComponent
144    )
145  }
146};
147/* eslint-enable no-var */
148
149/* eslint-disable no-var */
150
151function init (converter, defaultAttributes) {
152  function set (name, value, attributes) {
153    if (typeof document === 'undefined') {
154      return
155    }
156
157    attributes = assign({}, defaultAttributes, attributes);
158
159    if (typeof attributes.expires === 'number') {
160      attributes.expires = new Date(Date.now() + attributes.expires * 864e5);
161    }
162    if (attributes.expires) {
163      attributes.expires = attributes.expires.toUTCString();
164    }
165
166    name = encodeURIComponent(name)
167      .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)
168      .replace(/[()]/g, escape);
169
170    var stringifiedAttributes = '';
171    for (var attributeName in attributes) {
172      if (!attributes[attributeName]) {
173        continue
174      }
175
176      stringifiedAttributes += '; ' + attributeName;
177
178      if (attributes[attributeName] === true) {
179        continue
180      }
181
182      // Considers RFC 6265 section 5.2:
183      // ...
184      // 3.  If the remaining unparsed-attributes contains a %x3B (";")
185      //     character:
186      // Consume the characters of the unparsed-attributes up to,
187      // not including, the first %x3B (";") character.
188      // ...
189      stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];
190    }
191
192    return (document.cookie =
193      name + '=' + converter.write(value, name) + stringifiedAttributes)
194  }
195
196  function get (name) {
197    if (typeof document === 'undefined' || (arguments.length && !name)) {
198      return
199    }
200
201    // To prevent the for loop in the first place assign an empty array
202    // in case there are no cookies at all.
203    var cookies = document.cookie ? document.cookie.split('; ') : [];
204    var jar = {};
205    for (var i = 0; i < cookies.length; i++) {
206      var parts = cookies[i].split('=');
207      var value = parts.slice(1).join('=');
208
209      try {
210        var found = decodeURIComponent(parts[0]);
211        jar[found] = converter.read(value, found);
212
213        if (name === found) {
214          break
215        }
216      } catch (e) {}
217    }
218
219    return name ? jar[name] : jar
220  }
221
222  return Object.create(
223    {
224      set,
225      get,
226      remove: function (name, attributes) {
227        set(
228          name,
229          '',
230          assign({}, attributes, {
231            expires: -1
232          })
233        );
234      },
235      withAttributes: function (attributes) {
236        return init(this.converter, assign({}, this.attributes, attributes))
237      },
238      withConverter: function (converter) {
239        return init(assign({}, this.converter, converter), this.attributes)
240      }
241    },
242    {
243      attributes: { value: Object.freeze(defaultAttributes) },
244      converter: { value: Object.freeze(converter) }
245    }
246  )
247}
248
249var api = init(defaultConverter, { path: '/' });
250/* eslint-enable no-var */
251
252
253
254
255/***/ }),
256
257/***/ 3700:
258/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
259
260"use strict";
261/* harmony export */ __webpack_require__.d(__webpack_exports__, {
262/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
263/* harmony export */ });
264/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function (element) {
265  if (!element) {
266    return false;
267  }
268  if (element instanceof Element) {
269    if (element.offsetParent) {
270      return true;
271    }
272    if (element.getBBox) {
273      var _getBBox = element.getBBox(),
274        width = _getBBox.width,
275        height = _getBBox.height;
276      if (width || height) {
277        return true;
278      }
279    }
280    if (element.getBoundingClientRect) {
281      var _element$getBoundingC = element.getBoundingClientRect(),
282        _width = _element$getBoundingC.width,
283        _height = _element$getBoundingC.height;
284      if (_width || _height) {
285        return true;
286      }
287    }
288  }
289  return false;
290});
291
292/***/ }),
293
294/***/ 4703:
295/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
296
297"use strict";
298/* harmony export */ __webpack_require__.d(__webpack_exports__, {
299/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
300/* harmony export */ });
301/* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(93584);
302
303var store = {
304  get: function get(key, options) {
305    if (options === void 0) {
306      options = {
307        decode: false,
308        parse: false
309      };
310    }
311    var r;
312    try {
313      if (Array.isArray(key)) {
314        r = key.map(function (k) {
315          return localStorage.getItem(k);
316        });
317        if (options.decode) r = r.map(function (item) {
318          if (item) {
319            try {
320              item = js_base64__WEBPACK_IMPORTED_MODULE_0__/* .Base64 */ .o4.decode(item);
321            } catch (_a) {
322              console.log('base64解析报错', item);
323            }
324          }
325          return item;
326        });
327        if (options.parse) r = r.map(function (item) {
328          return JSON.parse(item);
329        });
330      } else {
331        r = localStorage.getItem(key);
332        if (options.decode) {
333          if (r) {
334            try {
335              r = js_base64__WEBPACK_IMPORTED_MODULE_0__/* .Base64 */ .o4.decode(r);
336            } catch (_a) {
337              console.log('base64解析报错', r);
338            }
339          }
340        }
341        if (options.parse) r = JSON.parse(r);
342      }
343    } catch (e) {}
344    return r;
345  },
346  set: function set(key, val) {
347    var _val = val;
348    if (Array.isArray(val) || Object.prototype.toString.call(val) === '[object Object]') {
349      _val = JSON.stringify(val);
350    }
351    localStorage.setItem(key, _val);
352  },
353  del: function del(key) {
354    localStorage.removeItem(key);
355  }
356};
357/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (store);
358
359/***/ }),
360
361/***/ 5405:
362/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
363
364"use strict";
365/* harmony export */ __webpack_require__.d(__webpack_exports__, {
366/* harmony export */   A: () => (/* binding */ _nonIterableRest)
367/* harmony export */ });
368function _nonIterableRest() {
369  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
370}
371
372
373/***/ }),
374
375/***/ 6131:
376/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
377
378var baseTrim = __webpack_require__(86403),
379    isObject = __webpack_require__(41580),
380    isSymbol = __webpack_require__(51187);
381
382/** Used as references for various `Number` constants. */
383var NAN = 0 / 0;
384
385/** Used to detect bad signed hexadecimal string values. */
386var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
387
388/** Used to detect binary string values. */
389var reIsBinary = /^0b[01]+$/i;
390
391/** Used to detect octal string values. */
392var reIsOctal = /^0o[0-7]+$/i;
393
394/** Built-in method references without a dependency on `root`. */
395var freeParseInt = parseInt;
396
397/**
398 * Converts `value` to a number.
399 *
400 * @static
401 * @memberOf _
402 * @since 4.0.0
403 * @category Lang
404 * @param {*} value The value to process.
405 * @returns {number} Returns the number.
406 * @example
407 *
408 * _.toNumber(3.2);
409 * // => 3.2
410 *
411 * _.toNumber(Number.MIN_VALUE);
412 * // => 5e-324
413 *
414 * _.toNumber(Infinity);
415 * // => Infinity
416 *
417 * _.toNumber('3.2');
418 * // => 3.2
419 */
420function toNumber(value) {
421  if (typeof value == 'number') {
422    return value;
423  }
424  if (isSymbol(value)) {
425    return NAN;
426  }
427  if (isObject(value)) {
428    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
429    value = isObject(other) ? (other + '') : other;
430  }
431  if (typeof value != 'string') {
432    return value === 0 ? value : +value;
433  }
434  value = baseTrim(value);
435  var isBinary = reIsBinary.test(value);
436  return (isBinary || reIsOctal.test(value))
437    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
438    : (reIsBadHex.test(value) ? NAN : +value);
439}
440
441module.exports = toNumber;
442
443
444/***/ }),
445
446/***/ 6553:
447/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
448
449"use strict";
450/* harmony export */ __webpack_require__.d(__webpack_exports__, {
451/* harmony export */   A: () => (/* binding */ useScrollLocker)
452/* harmony export */ });
453/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79082);
454/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
455/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
456/* harmony import */ var rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65856);
457/* harmony import */ var rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84238);
458/* harmony import */ var rc_util_es_getScrollBarSize__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9966);
459/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(98331);
460
461
462
463
464
465
466var UNIQUE_ID = "rc-util-locker-".concat(Date.now());
467var uuid = 0;
468function useScrollLocker(lock) {
469  var mergedLock = !!lock;
470  var _React$useState = react__WEBPACK_IMPORTED_MODULE_1__.useState(function () {
471      uuid += 1;
472      return "".concat(UNIQUE_ID, "_").concat(uuid);
473    }),
474    _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(_React$useState, 1),
475    id = _React$useState2[0];
476  (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)(function () {
477    if (mergedLock) {
478      var scrollbarSize = (0,rc_util_es_getScrollBarSize__WEBPACK_IMPORTED_MODULE_4__/* .getTargetScrollBarSize */ .V)(document.body).width;
479      var isOverflow = (0,_util__WEBPACK_IMPORTED_MODULE_5__/* .isBodyOverflowing */ .$)();
480      (0,rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_2__/* .updateCSS */ .BD)("\nhtml body {\n  overflow-y: hidden;\n  ".concat(isOverflow ? "width: calc(100% - ".concat(scrollbarSize, "px);") : '', "\n}"), id);
481    } else {
482      (0,rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_2__/* .removeCSS */ .m6)(id);
483    }
484    return function () {
485      (0,rc_util_es_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_2__/* .removeCSS */ .m6)(id);
486    };
487  }, [mergedLock, id]);
488}
489
490/***/ }),
491
492/***/ 6925:
493/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
494
495"use strict";
496/* harmony export */ __webpack_require__.d(__webpack_exports__, {
497/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
498/* harmony export */ });
499/* harmony import */ var _contexts_PropsContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44148);
500/* harmony import */ var _common_get_page_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13351);
501
502
503/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function () {
504  var flowVersionPaths = ['paymentAgency', 'integrations/temu', 'integrations/shopify', '/integrations/shoplazza', 'integrations/woocommerce', 'integrations/tiktok-shop', 'high-quality-factory', 'overview', 'aboutus', 'contactus', 'bulkPurchase', 'payment-agency', 'payment-wed2c', 'loancredit', 'agents/product-development', 'agents/cogs-reduction', 'agents/faster-order-fulfillment', 'agents/shorten-delivery-time', 'agents/cj-account-management', 'agents/customer-success-growth', 'agents/visiting-guide', 'free-temu-tiktok-stores', 'sourcing-agents', 'odm', 'alternatives', '/ai/chatgpt', '/ai/claude', '/ai/codex', 'cjdropshipping-vs-zendrop', 'cjdropshipping-vs-autods', 'cjdropshipping-vs-spocket', 'cjdropshipping-vs-aliexpress', 'cjdropshipping-vs-day-one-fulfillment', 'careers', 'printonDemand/home', 'partnership/home', 'advertisingservice', '/cj-entity', '/cj-business-travel', '/worldfirst'];
505  var _a = (0,_contexts_PropsContext__WEBPACK_IMPORTED_MODULE_0__/* .useGlobalProps */ .v)(),
506    platform = _a.platform,
507    _MatchReqHost = _a._MatchReqHost,
508    isM = _a.isM;
509  if (isM) {
510    flowVersionPaths.push('agents', 'agents/detail', 'global-warehouses', 'ready-to-ship', 'mentors');
511  }
512  return {
513    isCj: platform === 'cj',
514    isSupplier: platform === 'supplier',
515    isGlobalWarehouse: platform === 'globalWarehouse',
516    isSupplierShop: platform === 'supplierShop',
517    isBlog: platform === 'blog',
518    _PageName: (0,_common_get_page_config__WEBPACK_IMPORTED_MODULE_1__/* .getPageName */ .bg)(_MatchReqHost, isM),
519    isFlowVersionPage: flowVersionPaths.some(function (path) {
520      return (_MatchReqHost === null || _MatchReqHost === void 0 ? void 0 : _MatchReqHost.indexOf(path)) > -1;
521    })
522  };
523});
524
525/***/ }),
526
527/***/ 8870:
528/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
529
530var Symbol = __webpack_require__(65650);
531
532/** Used for built-in method references. */
533var objectProto = Object.prototype;
534
535/** Used to check objects for own properties. */
536var hasOwnProperty = objectProto.hasOwnProperty;
537
538/**
539 * Used to resolve the
540 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
541 * of values.
542 */
543var nativeObjectToString = objectProto.toString;
544
545/** Built-in value references. */
546var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
547
548/**
549 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
550 *
551 * @private
552 * @param {*} value The value to query.
553 * @returns {string} Returns the raw `toStringTag`.
554 */
555function getRawTag(value) {
556  var isOwn = hasOwnProperty.call(value, symToStringTag),
557      tag = value[symToStringTag];
558
559  try {
560    value[symToStringTag] = undefined;
561    var unmasked = true;
562  } catch (e) {}
563
564  var result = nativeObjectToString.call(value);
565  if (unmasked) {
566    if (isOwn) {
567      value[symToStringTag] = tag;
568    } else {
569      delete value[symToStringTag];
570    }
571  }
572  return result;
573}
574
575module.exports = getRawTag;
576
577
578/***/ }),
579
580/***/ 9449:
581/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
582
583"use strict";
584/* harmony export */ __webpack_require__.d(__webpack_exports__, {
585/* harmony export */   A: () => (/* binding */ useEvent)
586/* harmony export */ });
587/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15442);
588/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
589
590function useEvent(callback) {
591  var fnRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef();
592  fnRef.current = callback;
593  var memoFn = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function () {
594    var _fnRef$current;
595    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
596      args[_key] = arguments[_key];
597    }
598    return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));
599  }, []);
600  return memoFn;
601}
602
603/***/ }),
604
605/***/ 9966:
606/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
607
608"use strict";
609/* harmony export */ __webpack_require__.d(__webpack_exports__, {
610/* harmony export */   V: () => (/* binding */ getTargetScrollBarSize)
611/* harmony export */ });
612/* unused harmony export default */
613/* harmony import */ var _Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65856);
614/* eslint-disable no-param-reassign */
615
616var cached;
617function measureScrollbarSize(ele) {
618  var randomId = "rc-scrollbar-measure-".concat(Math.random().toString(36).substring(7));
619  var measureEle = document.createElement('div');
620  measureEle.id = randomId;
621
622  // Create Style
623  var measureStyle = measureEle.style;
624  measureStyle.position = 'absolute';
625  measureStyle.left = '0';
626  measureStyle.top = '0';
627  measureStyle.width = '100px';
628  measureStyle.height = '100px';
629  measureStyle.overflow = 'scroll';
630
631  // Clone Style if needed
632  var fallbackWidth;
633  var fallbackHeight;
634  if (ele) {
635    var targetStyle = getComputedStyle(ele);
636    measureStyle.scrollbarColor = targetStyle.scrollbarColor;
637    measureStyle.scrollbarWidth = targetStyle.scrollbarWidth;
638
639    // Set Webkit style
640    var webkitScrollbarStyle = getComputedStyle(ele, '::-webkit-scrollbar');
641    var width = parseInt(webkitScrollbarStyle.width, 10);
642    var height = parseInt(webkitScrollbarStyle.height, 10);
643
644    // Try wrap to handle CSP case
645    try {
646      var widthStyle = width ? "width: ".concat(webkitScrollbarStyle.width, ";") : '';
647      var heightStyle = height ? "height: ".concat(webkitScrollbarStyle.height, ";") : '';
648      (0,_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_0__/* .updateCSS */ .BD)("\n#".concat(randomId, "::-webkit-scrollbar {\n").concat(widthStyle, "\n").concat(heightStyle, "\n}"), randomId);
649    } catch (e) {
650      // Can't wrap, just log error
651      console.error(e);
652
653      // Get from style directly
654      fallbackWidth = width;
655      fallbackHeight = height;
656    }
657  }
658  document.body.appendChild(measureEle);
659
660  // Measure. Get fallback style if provided
661  var scrollWidth = ele && fallbackWidth && !isNaN(fallbackWidth) ? fallbackWidth : measureEle.offsetWidth - measureEle.clientWidth;
662  var scrollHeight = ele && fallbackHeight && !isNaN(fallbackHeight) ? fallbackHeight : measureEle.offsetHeight - measureEle.clientHeight;
663
664  // Clean up
665  document.body.removeChild(measureEle);
666  (0,_Dom_dynamicCSS__WEBPACK_IMPORTED_MODULE_0__/* .removeCSS */ .m6)(randomId);
667  return {
668    width: scrollWidth,
669    height: scrollHeight
670  };
671}
672function getScrollBarSize(fresh) {
673  if (typeof document === 'undefined') {
674    return 0;
675  }
676  if (fresh || cached === undefined) {
677    cached = measureScrollbarSize();
678  }
679  return cached.width;
680}
681function getTargetScrollBarSize(target) {
682  if (typeof document === 'undefined' || !target || !(target instanceof Element)) {
683    return {
684      width: 0,
685      height: 0
686    };
687  }
688  return measureScrollbarSize(target);
689}
690
691/***/ }),
692
693/***/ 11543:
694/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
695
696"use strict";
697/* harmony export */ __webpack_require__.d(__webpack_exports__, {
698/* harmony export */   l: () => (/* binding */ toGtagElement)
699/* harmony export */ });
700var toGtagElement = function toGtagElement(value) {
701  if (value === void 0) {
702    value = '';
703  }
704  return String(value).trim().toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_+|_+$/g, '');
705};
706
707/***/ }),
708
709/***/ 12097:
710/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
711
712"use strict";
713/* harmony export */ __webpack_require__.d(__webpack_exports__, {
714/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
715/* harmony export */ });
716/* unused harmony export LoginInfoController */
717/* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(93584);
718/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(81002);
719/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4703);
720/* harmony import */ var _hook_use_guid_show__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(79191);
721/* harmony import */ var _components_Menu_hooks_useIsVP__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(63301);
722/* harmony import */ var _components_Menu_hooks_useIsZS__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(60488);
723function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
724var __assign = undefined && undefined.__assign || function () {
725  __assign = Object.assign || function (t) {
726    for (var s, i = 1, n = arguments.length; i < n; i++) {
727      s = arguments[i];
728      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
729    }
730    return t;
731  };
732  return __assign.apply(this, arguments);
733};
734
735
736
737
738
739
740var LoginInfoController = function () {
741  function LoginInfoController() {
742    this.loginInfo = {};
743    this.isFirstRunInfo = true;
744    if (_index__WEBPACK_IMPORTED_MODULE_1__/* .isBrowser */ .Bd) {
745      this.get();
746    }
747  }
748  LoginInfoController.prototype.parseCookie = function (userInfo) {
749    var _a, _b;
750    if (userInfo === void 0) {
751      userInfo = {};
752    }
753    var isZesty = (0,_components_Menu_hooks_useIsZS__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)();
754    var vip = ((0,_components_Menu_hooks_useIsVP__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)() ? '1' : userInfo === null || userInfo === void 0 ? void 0 : userInfo.vip) || '0';
755    if (isZesty) {
756      vip = '0';
757    }
758    var result = ['loginName', 'token', 'name', 'firstName', 'lastName', 'contactID', 'contry', 'email', 'phone', 'storeLink', 'relateSalesman', 'salesmanId', 'address', {
759      name: 'loginfromerp',
760      key: 'loginfromerp',
761      encode: false
762    }, {
763      name: 'cjLoginName',
764      key: 'loginName',
765      encode: false
766    }, {
767      name: 'accessToken',
768      key: 'accessToken',
769      encode: false
770    }, {
771      name: 'cjLoginToken',
772      key: 'token',
773      encode: false
774    }, {
775      name: 'vip',
776      value: vip,
777      encode: false
778    }, {
779      name: 'userId',
780      value: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.id) || (userInfo === null || userInfo === void 0 ? void 0 : userInfo.userId) || ''
781    }, {
782      name: 'avatar',
783      key: 'img',
784      value: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.avatar) || '',
785      encode: false
786    }, {
787      name: 'emailVerifyStatus',
788      key: 'status',
789      encode: false
790    }, {
791      name: 'lastAccess',
792      value: ((_a = userInfo === null || userInfo === void 0 ? void 0 : userInfo.lastAccess) === null || _a === void 0 ? void 0 : _a.loginDate) || '',
793      condition: (_b = userInfo === null || userInfo === void 0 ? void 0 : userInfo.lastAccess) === null || _b === void 0 ? void 0 : _b.loginDate
794    }, {
795      name: 'isFirstLogin',
796      value: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.isFirstLogin) || '0',
797      encode: false
798    }, {
799      name: 'loginTime',
800      value: new Date().getTime(),
801      encode: false
802    }, {
803      name: 'memberLevelTagType',
804      value: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.plusExpirationTime) ? (userInfo === null || userInfo === void 0 ? void 0 : userInfo.vipLevel) || 'Free' : 'Free',
805      encode: false
806    }, {
807      name: 'plusExpirationTime',
808      value: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.plusExpirationTime) || new Date().getTime(),
809      encode: false
810    }, {
811      name: 'num',
812      value: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.num) || '',
813      encode: false
814    }, {
815      name: 'subAccountName',
816      condition: userInfo === null || userInfo === void 0 ? void 0 : userInfo.subAccountName
817    }, {
818      name: 'subAccountRole',
819      condition: userInfo === null || userInfo === void 0 ? void 0 : userInfo.subAccountRole,
820      encode: false
821    }, {
822      name: 'moneyLevelType',
823      encode: false
824    }, {
825      name: 'specifyVisible',
826      key: 'specifyVisible',
827      encode: false
828    }, {
829      name: 'internalAccount',
830      value: (userInfo === null || userInfo === void 0 ? void 0 : userInfo.internalAccount) ? '1' : '',
831      encode: false
832    }];
833    return result;
834  };
835  LoginInfoController.prototype.get = function (ctx) {
836    var _this = this;
837    var cookies = this.parseCookie();
838    cookies.forEach(function (item) {
839      var _a, _b;
840      var name, _decode;
841      if (_typeof(item) === 'object') {
842        name = item.name;
843        _decode = item.encode === false ? false : true;
844      } else {
845        name = item;
846        _decode = true;
847      }
848      try {
849        var val = ctx ? (_a = ctx.cookies) === null || _a === void 0 ? void 0 : _a.get(name, {
850          signed: false
851        }) : _index__WEBPACK_IMPORTED_MODULE_1__/* .Cookies */ .Wc.get(name);
852        if (!val || val === null) return;
853        if (name === 'avatar' && val.indexOf('http') === -1) {
854          _this.loginInfo[name] = (0,js_base64__WEBPACK_IMPORTED_MODULE_0__/* .decode */ .D4)(val) || '';
855        } else {
856          _this.loginInfo[name] = (_decode ? (0,js_base64__WEBPACK_IMPORTED_MODULE_0__/* .decode */ .D4)(val) : val) || '';
857        }
858      } catch (e) {
859        var val = ctx ? (_b = ctx.cookies) === null || _b === void 0 ? void 0 : _b.get(name, {
860          signed: false
861        }) : _index__WEBPACK_IMPORTED_MODULE_1__/* .Cookies */ .Wc.get(name);
862        console.log('cookie解析报错', name, val);
863        _this.loginInfo[name] = val || '';
864      }
865    });
866    return this.loginInfo;
867  };
868  LoginInfoController.prototype.set = function (userInfo) {
869    function _encode(v) {
870      return typeof v === 'string' ? (0,js_base64__WEBPACK_IMPORTED_MODULE_0__/* .encode */ .lF)(v) : v;
871    }
872    function _cookie(args) {
873      var _args = __assign({
874        name: '',
875        key: '',
876        value: '',
877        condition: true,
878        encode: true
879      }, _typeof(args) === 'object' ? args : {
880        name: args
881      });
882      var key = _args.key;
883      var name = _args.name,
884        value = _args.value,
885        encode = _args.encode,
886        condition = _args.condition;
887      _index__WEBPACK_IMPORTED_MODULE_1__/* .Cookies */ .Wc.remove(name);
888      if (!condition) return;
889      if (!key) key = name;
890      var val = userInfo[key];
891      if (value) val = value;
892      if (val === undefined || val === null) return;
893      val = encode ? _encode(val) : val;
894      var httpsOptions = (0,_index__WEBPACK_IMPORTED_MODULE_1__/* .httpsOptionsConfig */ .Me)();
895      _index__WEBPACK_IMPORTED_MODULE_1__/* .Cookies */ .Wc.set(name, val, httpsOptions);
896    }
897    var cookies_list = this.parseCookie(userInfo);
898    cookies_list.forEach(_cookie);
899  };
900  LoginInfoController.prototype.update = function (userInfo) {
901    var _this = this;
902    this.loginInfo = __assign(__assign({}, this.loginInfo), userInfo);
903    Object.keys(userInfo).forEach(function (key) {
904      var val = userInfo[key];
905      if (val) {
906        var find = _this.parseCookie().find(function (item) {
907          if (_typeof(item) === 'object') {
908            return item.name === key;
909          }
910          return item === key;
911        });
912        if (find) {
913          if (_typeof(find) === 'object') {
914            var _encode = find.encode === false ? false : true;
915            _index__WEBPACK_IMPORTED_MODULE_1__/* .Cookies */ .Wc.set(find.name, _encode ? (0,js_base64__WEBPACK_IMPORTED_MODULE_0__/* .encode */ .lF)(val) : val);
916          } else {
917            _index__WEBPACK_IMPORTED_MODULE_1__/* .Cookies */ .Wc.set(find, (0,js_base64__WEBPACK_IMPORTED_MODULE_0__/* .encode */ .lF)(val));
918          }
919        }
920      }
921    });
922    this.get();
923  };
924  LoginInfoController.prototype.clear = function () {
925    var cookies = this.parseCookie();
926    cookies.forEach(function (item) {
927      if (_typeof(item) === 'object') {
928        _index__WEBPACK_IMPORTED_MODULE_1__/* .Cookies */ .Wc.remove(item.name);
929      } else {
930        _index__WEBPACK_IMPORTED_MODULE_1__/* .Cookies */ .Wc.remove(item);
931      }
932    });
933    _index__WEBPACK_IMPORTED_MODULE_1__/* .Cookies */ .Wc.remove('awc');
934    _index__WEBPACK_IMPORTED_MODULE_1__/* .Cookies */ .Wc.remove('cj-agent-flag');
935    _store__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.del('utmSource');
936    _store__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.del('loginfromerp');
937    _store__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.del('erpUserId');
938    _store__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.del('erpUserName');
939    _store__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.del(_hook_use_guid_show__WEBPACK_IMPORTED_MODULE_3__/* .STORAGE_GUIDE_DATA */ .E);
940  };
941  LoginInfoController.prototype.info = function (key) {
942    var _loginInfo = {};
943    if (Object.keys(this.loginInfo).length === 0 && _index__WEBPACK_IMPORTED_MODULE_1__/* .isBrowser */ .Bd && this.isFirstRunInfo) {
944      _loginInfo = this.get();
945      this.loginInfo = __assign({}, _loginInfo);
946      this.isFirstRunInfo = false;
947    }
948    if (key) return this.loginInfo[key] || '';
949    return __assign({}, this.loginInfo);
950  };
951  LoginInfoController.prototype.isHideSpecialCate = function (cateId) {
952    var _a;
953    if (window && (window === null || window === void 0 ? void 0 : window.siteCheck) && !((_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.isShow('global-qkff'))) {
954      return false;
955    }
956    var hideQKCateIds = ['1712447645563756544', '1711658677159079936'];
957    if (hideQKCateIds.includes(cateId)) {
958      return true;
959    }
960    var level = this.loginInfo['moneyLevelType'];
961    var isVip = this.loginInfo['vip'] == '1';
962    if (isVip) return false;
963    if (!level || level === '1' || level === '2') {
964      var hideCateIds = ['EF619898-429D-49B6-BD66-49057C06259B', '2EB0613C-E73D-4A09-A21C-90E5F1C227D3', '3B4C41C0-EA46-4F03-A2F4-9A9948947439', '7992143D-A8B2-4A05-A4E4-7F4AF73AA577', '1697200256204677120'];
965      return hideCateIds.includes(cateId);
966    }
967    return false;
968  };
969  return LoginInfoController;
970}();
971var loginInfoController = null;
972if (!loginInfoController) {
973  loginInfoController = new LoginInfoController();
974}
975/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (loginInfoController);
976
977
978/***/ }),
979
980/***/ 12191:
981/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
982
983"use strict";
984/* harmony export */ __webpack_require__.d(__webpack_exports__, {
985/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
986/* harmony export */ });
987/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(81002);
988/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
989/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
990/* harmony import */ var _common_oss_controller__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44190);
991/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58965);
992var __assign = undefined && undefined.__assign || function () {
993  __assign = Object.assign || function (t) {
994    for (var s, i = 1, n = arguments.length; i < n; i++) {
995      s = arguments[i];
996      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
997    }
998    return t;
999  };
1000  return __assign.apply(this, arguments);
1001};
1002var __rest = undefined && undefined.__rest || function (s, e) {
1003  var t = {};
1004  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
1005  if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1006    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
1007  }
1008  return t;
1009};
1010
1011
1012
1013
1014function addIconFontJs() {
1015  var iconfontScriptId = 'iconfont-mf-mycj-components';
1016  if (document.querySelector("#".concat(iconfontScriptId))) return;
1017  var style = document.createElement('link');
1018  style.rel = 'stylesheet';
1019  style.id = iconfontScriptId;
1020  style.href = "//at.alicdn.com/t/c/font_2820521_fmvep980jwr.css";
1021  document.head.append(style);
1022}
1023function addFlagCss() {
1024  var flagCssId = 'flag-css-mf-mycj-components';
1025  if (document.querySelector("#".concat(flagCssId))) return;
1026  var style = document.createElement('link');
1027  style.rel = 'stylesheet';
1028  style.id = flagCssId;
1029  style.href = _common_oss_controller__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay.join('.sprite/flag.css');
1030  document.head.append(style);
1031}
1032if (_common__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) {
1033  addIconFontJs();
1034  addFlagCss();
1035}
1036var Iconfont = function Iconfont(_a) {
1037  var type = _a.type,
1038    size = _a.size,
1039    _b = _a.className,
1040    className = _b === void 0 ? '' : _b,
1041    _c = _a.style,
1042    style = _c === void 0 ? {} : _c,
1043    _d = _a.onClick,
1044    onClick = _d === void 0 ? function (e) {} : _d,
1045    resetProps = __rest(_a, ["type", "size", "className", "style", "onClick"]);
1046  var customizeStyle = {};
1047  size && (customizeStyle['fontSize'] = size);
1048  if (type.startsWith('cckj-mf-')) {
1049    console.warn('Iconfont: type 应去掉 cckj-mf-');
1050  }
1051  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement("i", __assign({
1052    className: ['mf-iconfont', "cckj-mf-".concat(type), className].join(' '),
1053    style: __assign(__assign({}, customizeStyle), style),
1054    onClick: onClick
1055  }, resetProps));
1056};
1057/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.memo)(Iconfont));
1058
1059/***/ }),
1060
1061/***/ 12784:
1062/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1063
1064var isObject = __webpack_require__(41580),
1065    now = __webpack_require__(94495),
1066    toNumber = __webpack_require__(6131);
1067
1068/** Error message constants. */
1069var FUNC_ERROR_TEXT = 'Expected a function';
1070
1071/* Built-in method references for those with the same name as other `lodash` methods. */
1072var nativeMax = Math.max,
1073    nativeMin = Math.min;
1074
1075/**
1076 * Creates a debounced function that delays invoking `func` until after `wait`
1077 * milliseconds have elapsed since the last time the debounced function was
1078 * invoked. The debounced function comes with a `cancel` method to cancel
1079 * delayed `func` invocations and a `flush` method to immediately invoke them.
1080 * Provide `options` to indicate whether `func` should be invoked on the
1081 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
1082 * with the last arguments provided to the debounced function. Subsequent
1083 * calls to the debounced function return the result of the last `func`
1084 * invocation.
1085 *
1086 * **Note:** If `leading` and `trailing` options are `true`, `func` is
1087 * invoked on the trailing edge of the timeout only if the debounced function
1088 * is invoked more than once during the `wait` timeout.
1089 *
1090 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
1091 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
1092 *
1093 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
1094 * for details over the differences between `_.debounce` and `_.throttle`.
1095 *
1096 * @static
1097 * @memberOf _
1098 * @since 0.1.0
1099 * @category Function
1100 * @param {Function} func The function to debounce.
1101 * @param {number} [wait=0] The number of milliseconds to delay.
1102 * @param {Object} [options={}] The options object.
1103 * @param {boolean} [options.leading=false]
1104 *  Specify invoking on the leading edge of the timeout.
1105 * @param {number} [options.maxWait]
1106 *  The maximum time `func` is allowed to be delayed before it's invoked.
1107 * @param {boolean} [options.trailing=true]
1108 *  Specify invoking on the trailing edge of the timeout.
1109 * @returns {Function} Returns the new debounced function.
1110 * @example
1111 *
1112 * // Avoid costly calculations while the window size is in flux.
1113 * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
1114 *
1115 * // Invoke `sendMail` when clicked, debouncing subsequent calls.
1116 * jQuery(element).on('click', _.debounce(sendMail, 300, {
1117 *   'leading': true,
1118 *   'trailing': false
1119 * }));
1120 *
1121 * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
1122 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
1123 * var source = new EventSource('/stream');
1124 * jQuery(source).on('message', debounced);
1125 *
1126 * // Cancel the trailing debounced invocation.
1127 * jQuery(window).on('popstate', debounced.cancel);
1128 */
1129function debounce(func, wait, options) {
1130  var lastArgs,
1131      lastThis,
1132      maxWait,
1133      result,
1134      timerId,
1135      lastCallTime,
1136      lastInvokeTime = 0,
1137      leading = false,
1138      maxing = false,
1139      trailing = true;
1140
1141  if (typeof func != 'function') {
1142    throw new TypeError(FUNC_ERROR_TEXT);
1143  }
1144  wait = toNumber(wait) || 0;
1145  if (isObject(options)) {
1146    leading = !!options.leading;
1147    maxing = 'maxWait' in options;
1148    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
1149    trailing = 'trailing' in options ? !!options.trailing : trailing;
1150  }
1151
1152  function invokeFunc(time) {
1153    var args = lastArgs,
1154        thisArg = lastThis;
1155
1156    lastArgs = lastThis = undefined;
1157    lastInvokeTime = time;
1158    result = func.apply(thisArg, args);
1159    return result;
1160  }
1161
1162  function leadingEdge(time) {
1163    // Reset any `maxWait` timer.
1164    lastInvokeTime = time;
1165    // Start the timer for the trailing edge.
1166    timerId = setTimeout(timerExpired, wait);
1167    // Invoke the leading edge.
1168    return leading ? invokeFunc(time) : result;
1169  }
1170
1171  function remainingWait(time) {
1172    var timeSinceLastCall = time - lastCallTime,
1173        timeSinceLastInvoke = time - lastInvokeTime,
1174        timeWaiting = wait - timeSinceLastCall;
1175
1176    return maxing
1177      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)
1178      : timeWaiting;
1179  }
1180
1181  function shouldInvoke(time) {
1182    var timeSinceLastCall = time - lastCallTime,
1183        timeSinceLastInvoke = time - lastInvokeTime;
1184
1185    // Either this is the first call, activity has stopped and we're at the
1186    // trailing edge, the system time has gone backwards and we're treating
1187    // it as the trailing edge, or we've hit the `maxWait` limit.
1188    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
1189      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
1190  }
1191
1192  function timerExpired() {
1193    var time = now();
1194    if (shouldInvoke(time)) {
1195      return trailingEdge(time);
1196    }
1197    // Restart the timer.
1198    timerId = setTimeout(timerExpired, remainingWait(time));
1199  }
1200
1201  function trailingEdge(time) {
1202    timerId = undefined;
1203
1204    // Only invoke if we have `lastArgs` which means `func` has been
1205    // debounced at least once.
1206    if (trailing && lastArgs) {
1207      return invokeFunc(time);
1208    }
1209    lastArgs = lastThis = undefined;
1210    return result;
1211  }
1212
1213  function cancel() {
1214    if (timerId !== undefined) {
1215      clearTimeout(timerId);
1216    }
1217    lastInvokeTime = 0;
1218    lastArgs = lastCallTime = lastThis = timerId = undefined;
1219  }
1220
1221  function flush() {
1222    return timerId === undefined ? result : trailingEdge(now());
1223  }
1224
1225  function debounced() {
1226    var time = now(),
1227        isInvoking = shouldInvoke(time);
1228
1229    lastArgs = arguments;
1230    lastThis = this;
1231    lastCallTime = time;
1232
1233    if (isInvoking) {
1234      if (timerId === undefined) {
1235        return leadingEdge(lastCallTime);
1236      }
1237      if (maxing) {
1238        // Handle invocations in a tight loop.
1239        clearTimeout(timerId);
1240        timerId = setTimeout(timerExpired, wait);
1241        return invokeFunc(lastCallTime);
1242      }
1243    }
1244    if (timerId === undefined) {
1245      timerId = setTimeout(timerExpired, wait);
1246    }
1247    return result;
1248  }
1249  debounced.cancel = cancel;
1250  debounced.flush = flush;
1251  return debounced;
1252}
1253
1254module.exports = debounce;
1255
1256
1257/***/ }),
1258
1259/***/ 13351:
1260/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1261
1262"use strict";
1263/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1264/* harmony export */   bg: () => (/* binding */ getPageName)
1265/* harmony export */ });
1266/* unused harmony exports getPageLogo, getPageLogoMobile */
1267/* harmony import */ var _common_oss_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44190);
1268/* harmony import */ var _hook_use_site_check__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82058);
1269
1270
1271var getPageName = function getPageName(host, isM) {
1272  if ((host === null || host === void 0 ? void 0 : host.indexOf('paymentAgency')) > -1) {
1273    return 'paymentAgency';
1274  }
1275  if ((host === null || host === void 0 ? void 0 : host.indexOf('integrations/temu')) > -1) {
1276    return 'temu';
1277  }
1278  if ((host === null || host === void 0 ? void 0 : host.indexOf('integrations/shopify')) > -1) {
1279    return 'shopify';
1280  }
1281  if ((host === null || host === void 0 ? void 0 : host.indexOf('integrations/shoplazza')) > -1) {
1282    return 'shoplazza';
1283  }
1284  if ((host === null || host === void 0 ? void 0 : host.indexOf('integrations/woocommerce')) > -1) {
1285    return 'woocommerce';
1286  }
1287  if ((host === null || host === void 0 ? void 0 : host.indexOf('free-temu-tiktok-stores')) > -1) {
1288    return 'free-temu-tiktok-stores';
1289  }
1290  if ((host === null || host === void 0 ? void 0 : host.indexOf('integrations/tiktok-shop')) > -1) {
1291    return 'tiktok-shop';
1292  }
1293  if ((host === null || host === void 0 ? void 0 : host.indexOf('high-quality-factory')) > -1) {
1294    return 'high-quality-factory';
1295  }
1296  if ((host === null || host === void 0 ? void 0 : host.indexOf('overview')) > -1) {
1297    return 'overview';
1298  }
1299  if ((host === null || host === void 0 ? void 0 : host.indexOf('aboutus')) > -1) {
1300    return 'aboutus';
1301  }
1302  if ((host === null || host === void 0 ? void 0 : host.indexOf('contactus')) > -1) {
1303    return 'contactus';
1304  }
1305  if ((host === null || host === void 0 ? void 0 : host.indexOf('bulkPurchase')) > -1) {
1306    return 'bulkPurchase';
1307  }
1308  if ((host === null || host === void 0 ? void 0 : host.indexOf('payment-wed2c')) > -1) {
1309    return 'payment-wed2c';
1310  }
1311  if ((host === null || host === void 0 ? void 0 : host.indexOf('payment-agency')) > -1) {
1312    return 'payment-agency';
1313  }
1314  if ((host === null || host === void 0 ? void 0 : host.indexOf('loancredit')) > -1) {
1315    return 'loancredit';
1316  }
1317  if ((host === null || host === void 0 ? void 0 : host.indexOf('sourcing-agents')) > -1) {
1318    return 'sourcing-agents';
1319  }
1320  if ((host === null || host === void 0 ? void 0 : host.indexOf('careers')) > -1) {
1321    return 'careers';
1322  }
1323  if (isM && ((host === null || host === void 0 ? void 0 : host.indexOf('agents')) > -1 || (host === null || host === void 0 ? void 0 : host.indexOf('agents/detail')) > -1)) {
1324    return 'paidService';
1325  }
1326  if (isM && (host === null || host === void 0 ? void 0 : host.indexOf('global-warehouses')) > -1) {
1327    return 'globalWarehouse';
1328  }
1329  if (isM && (host === null || host === void 0 ? void 0 : host.indexOf('ready-to-ship')) > -1) {
1330    return 'readyToShip';
1331  }
1332  if (isM && (host === null || host === void 0 ? void 0 : host.indexOf('mentors')) > -1) {
1333    return 'mentors';
1334  }
1335  if ((host === null || host === void 0 ? void 0 : host.indexOf('factories')) > -1) {
1336    return 'factories';
1337  }
1338  if ((host === null || host === void 0 ? void 0 : host.indexOf('agents/product-development')) > -1) {
1339    return 'agents-product-development';
1340  }
1341  if ((host === null || host === void 0 ? void 0 : host.indexOf('agents/cogs-reduction')) > -1) {
1342    return 'agents-cogs-reduction';
1343  }
1344  if ((host === null || host === void 0 ? void 0 : host.indexOf('agents/faster-order-fulfillment')) > -1) {
1345    return 'agents-faster-order-fulfillment';
1346  }
1347  if ((host === null || host === void 0 ? void 0 : host.indexOf('agents/shorten-delivery-time')) > -1) {
1348    return 'agents-shorten-delivery-time';
1349  }
1350  if ((host === null || host === void 0 ? void 0 : host.indexOf('agents/cj-account-management')) > -1) {
1351    return 'agents-cj-account-management';
1352  }
1353  if ((host === null || host === void 0 ? void 0 : host.indexOf('agents/customer-success-growth')) > -1) {
1354    return 'agents-customer-success-growth';
1355  }
1356  if ((host === null || host === void 0 ? void 0 : host.indexOf('agents/visiting-guide')) > -1) {
1357    return 'agents-visiting-guide';
1358  }
1359  if ((host === null || host === void 0 ? void 0 : host.indexOf('alternatives')) > -1) {
1360    return 'alternatives';
1361  }
1362  if ((host === null || host === void 0 ? void 0 : host.indexOf('/ai/chatgpt')) > -1) {
1363    return 'chatgpt';
1364  }
1365  if ((host === null || host === void 0 ? void 0 : host.indexOf('/ai/claude')) > -1) {
1366    return 'claude';
1367  }
1368  if ((host === null || host === void 0 ? void 0 : host.indexOf('/ai/codex')) > -1) {
1369    return 'codex';
1370  }
1371  if ((host === null || host === void 0 ? void 0 : host.indexOf('cjdropshipping-vs-zendrop')) > -1) {
1372    return 'cjdropshipping-vs-zendrop';
1373  }
1374  if ((host === null || host === void 0 ? void 0 : host.indexOf('cjdropshipping-vs-autods')) > -1) {
1375    return 'cjdropshipping-vs-zendrop';
1376  }
1377  if ((host === null || host === void 0 ? void 0 : host.indexOf('cjdropshipping-vs-spocket')) > -1) {
1378    return 'cjdropshipping-vs-spocket';
1379  }
1380  if ((host === null || host === void 0 ? void 0 : host.indexOf('cjdropshipping-vs-aliexpress')) > -1) {
1381    return 'cjdropshipping-vs-aliexpress';
1382  }
1383  if ((host === null || host === void 0 ? void 0 : host.indexOf('cjdropshipping-vs-day-one-fulfillment')) > -1) {
1384    return 'cjdropshipping-vs-day-one-fulfillment';
1385  }
1386  if ((host === null || host === void 0 ? void 0 : host.indexOf('odm')) > -1) {
1387    return 'odm';
1388  }
1389  if ((host === null || host === void 0 ? void 0 : host.indexOf('blogs')) > -1) {
1390    return /blogs\/.+/.test(host) ? 'blog-other' : 'blog';
1391  }
1392  if ((host === null || host === void 0 ? void 0 : host.indexOf('/printonDemand/home')) > -1) {
1393    return 'printon-demand-home';
1394  }
1395  if ((host === null || host === void 0 ? void 0 : host.indexOf('partnership/home')) > -1) {
1396    return 'partnership-home';
1397  }
1398  if ((host === null || host === void 0 ? void 0 : host.indexOf('advertisingservice')) > -1) {
1399    return 'advertisingservice';
1400  }
1401  if (/(^|\/)(cj-)?entity(\/|\?|#|$)/.test(host || '')) {
1402    return 'entity';
1403  }
1404  if (/(^|\/)cj-business-travel(\/|\?|#|$)/.test(host || '')) {
1405    return 'cj-business-travel';
1406  }
1407  if (/(^|\/)worldfirst(\/|\?|#|$)/.test(host || '')) {
1408    return 'worldfirst';
1409  }
1410  return '';
1411};
1412var getPageLogo = function getPageLogo(name) {
1413  var siteCheck = useSiteCheck();
1414  if (name == 'woocommerce' || name == 'shoplazza' || name == 'overview' || name == 'aboutus' || name == 'contactus' || name == 'bulkPurchase' || name == 'payment-wed2c' || name == 'payment-agency' || name == 'agents-product-development' || name == 'agents-cogs-reduction' || name == 'agents-faster-order-fulfillment' || name == 'agents-shorten-delivery-time' || name == 'agents-cj-account-management' || name == 'agents-customer-success-growth' || name == 'agents-visiting-guide' || name == 'free-temu-tiktok-stores' || name == 'loancredit' || name == 'alternatives' || name == 'chatgpt' || name == 'claude' || name == 'codex' || name == 'cjdropshipping-vs-zendrop' || name == 'cjdropshipping-vs-autods' || name == 'cjdropshipping-vs-spocket' || name == 'cjdropshipping-vs-aliexpress' || name == 'cjdropshipping-vs-day-one-fulfillment' || name == 'odm' || name == 'careers' || name == 'printon-demand-home' || name == 'partnership-home' || name == 'advertisingservice' || name == 'entity' || name == 'cj-business-travel' || name == 'worldfirst') {
1415    return siteCheck.data('logo');
1416  }
1417  return '';
1418};
1419var getPageLogoMobile = function getPageLogoMobile(name) {
1420  if (name == 'paymentAgency' || name == 'temu') {
1421    return ossController.join('resources/paymentAgency/logo_mobile.png');
1422  }
1423  return '';
1424};
1425
1426/***/ }),
1427
1428/***/ 14919:
1429/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1430
1431"use strict";
1432/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1433/* harmony export */   A: () => (/* binding */ RcToolTip)
1434/* harmony export */ });
1435/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15442);
1436/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1437/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(53373);
1438/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
1439/* harmony import */ var rc_tooltip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(86488);
1440/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(77517);
1441var __assign = undefined && undefined.__assign || function () {
1442  __assign = Object.assign || function (t) {
1443    for (var s, i = 1, n = arguments.length; i < n; i++) {
1444      s = arguments[i];
1445      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
1446    }
1447    return t;
1448  };
1449  return __assign.apply(this, arguments);
1450};
1451var __rest = undefined && undefined.__rest || function (s, e) {
1452  var t = {};
1453  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
1454  if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1455    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
1456  }
1457  return t;
1458};
1459
1460
1461
1462
1463
1464function RcToolTip(_a) {
1465  var _b;
1466  var children = _a.children,
1467    theme = _a.theme,
1468    props = __rest(_a, ["children", "theme"]);
1469  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(rc_tooltip__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A, __assign({}, props, {
1470    overlayClassName: classnames__WEBPACK_IMPORTED_MODULE_1___default()((_b = {}, _b[_index_less__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A.tooltipOverlayBox] = true, _b[_index_less__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A.light] = theme === 'light', _b[props.overlayClassName || ''] = !!props.overlayClassName, _b))
1471  }), children);
1472}
1473
1474/***/ }),
1475
1476/***/ 15442:
1477/***/ ((module) => {
1478
1479"use strict";
1480module.exports = __WEBPA
1480CK_EXTERNAL_MODULE__15442__;
1481
1482/***/ }),
1483
1484/***/ 16754:
1485/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1486
1487"use strict";
1488
1489// EXPORTS
1490__webpack_require__.d(__webpack_exports__, {
1491  A: () => (/* binding */ MenuNormal_MultipleMenuItem),
1492  $: () => (/* binding */ showName)
1493});
1494
1495// EXTERNAL MODULE: external {"root":"React","commonjs2":"react","commonjs":"react","amd":"react"}
1496var external_root_React_commonjs2_react_commonjs_react_amd_react_ = __webpack_require__(15442);
1497var external_root_React_commonjs2_react_commonjs_react_amd_react_default = /*#__PURE__*/__webpack_require__.n(external_root_React_commonjs2_react_commonjs_react_amd_react_);
1498;// ./src/components/Menu/MenuNormal/MultipleMenuItem.less
1499// extracted by mini-css-extract-plugin
1500/* harmony default export */ const MultipleMenuItem = ({"multipleMenuItem":"multipleMenuItem--Ut2ov","pb110":"pb110--B6KdA","zs":"zs--fGj6L","tit":"tit--eo1zg","item":"item--TYhGo","link":"link--UzqWO","name":"name--fUMBI","market":"market--EfcvO","active":"active--mPFzl","linkWrapper":"linkWrapper--Chcks","pic":"pic--A4XWf","MiaoshouPlatforms":"MiaoshouPlatforms--Eo0I7","text":"text--GWxKa","images":"images--wr4hF"});
1501// EXTERNAL MODULE: ../../node_modules/classnames/index.js
1502var classnames = __webpack_require__(53373);
1503var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
1504// EXTERNAL MODULE: ./src/components/Menu/hooks/useMyCjReactRoute.ts
1505var useMyCjReactRoute = __webpack_require__(92252);
1506// EXTERNAL MODULE: ./src/hook/use-platform-href.ts
1507var use_platform_href = __webpack_require__(50137);
1508// EXTERNAL MODULE: ./src/hook/use-site-check.ts
1509var use_site_check = __webpack_require__(82058);
1510;// ./src/universalComps/lazy-image/index.tsx
1511var __assign = undefined && undefined.__assign || function () {
1512  __assign = Object.assign || function (t) {
1513    for (var s, i = 1, n = arguments.length; i < n; i++) {
1514      s = arguments[i];
1515      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
1516    }
1517    return t;
1518  };
1519  return __assign.apply(this, arguments);
1520};
1521var __rest = undefined && undefined.__rest || function (s, e) {
1522  var t = {};
1523  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
1524  if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1525    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
1526  }
1527  return t;
1528};
1529
1530
1531function intersectionObserver(el, callback) {
1532  var io = new IntersectionObserver(function (ioes) {
1533    if (ioes[0].intersectionRatio <= 0) return;
1534    el.onerror = function () {
1535      io.unobserve(el);
1536      io.disconnect();
1537    };
1538    callback === null || callback === void 0 ? void 0 : callback();
1539  });
1540  io.observe(el);
1541  return io;
1542}
1543var LazyImage = function LazyImage(_a) {
1544  var source = _a.src,
1545    noDefault = _a.noDefault,
1546    props = __rest(_a, ["src", "noDefault"]);
1547  var siteCheck = (0,use_site_check/* default */.A)();
1548  var defaultSrc = siteCheck.source('img_default.jpeg');
1549  var _b = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(defaultSrc),
1550    src = _b[0],
1551    setSrc = _b[1];
1552  var ref = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(null);
1553  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
1554    var _a;
1555    var io = intersectionObserver(ref.current, function () {
1556      setSrc(source);
1557      io.unobserve(ref.current);
1558      io.disconnect();
1559    });
1560    (_a = ref.current) === null || _a === void 0 ? void 0 : _a.addEventListener('error', function () {
1561      !noDefault && setSrc(defaultSrc);
1562    });
1563  }, []);
1564  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("img", __assign({
1565    key: src,
1566    ref: ref,
1567    src: src
1568  }, props));
1569};
1570/* harmony default export */ const lazy_image = (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().memo(LazyImage));
1571;// ./src/components/Menu/assets/miao_shou_platforms.png
1572/* harmony default export */ const miao_shou_platforms = (__webpack_require__.p + "assets/miao_shou_platforms.429d1cfd.png");
1573// EXTERNAL MODULE: ./src/common/gtag.ts
1574var gtag = __webpack_require__(11543);
1575;// ./src/components/Menu/MenuNormal/MultipleMenuItem.tsx
1576var MultipleMenuItem_assign = undefined && undefined.__assign || function () {
1577  MultipleMenuItem_assign = Object.assign || function (t) {
1578    for (var s, i = 1, n = arguments.length; i < n; i++) {
1579      s = arguments[i];
1580      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
1581    }
1582    return t;
1583  };
1584  return MultipleMenuItem_assign.apply(this, arguments);
1585};
1586
1587
1588
1589
1590
1591
1592
1593
1594var showName = function showName(_a) {
1595  var key = _a.key,
1596    name = _a.name,
1597    count = _a.count,
1598    _b = _a.showCount,
1599    showCount = _b === void 0 ? true : _b;
1600  if (/tiktok_us|tiktok_us_cross|tiktok|temu|temu_us_local|shein/i.test(key)) {
1601    var i18nName = {
1602      tiktok_us: window.i18next.t('common-mycj-menu-tiktok-us', 'TikTok-US'),
1603      tiktok_us_cross: window.i18next.t('common-mycj-menu-tiktok-us', 'TikTok-US'),
1604      tiktok: window.i18next.t('common-mycj-menu-tiktok', 'TikTok'),
1605      temu: window.i18next.t('common-mycj-menu-temu', 'Temu'),
1606      temu_us_local: window.i18next.t('common-mycj-menu-temu', 'Temu'),
1607      temu_certified_overseas: window.i18next.t('common-mycj-menu-temu', 'Temu'),
1608      shein: window.i18next.t('common-mycj-menu-shein', 'Shein')
1609    };
1610    var market = {
1611      tiktok_us: window.i18next.t('common-mycj-menu-us-local', 'US Local'),
1612      tiktok_us_cross: window.i18next.t('common-mycj-menu-cross-border', 'Cross Border'),
1613      tiktok: window.i18next.t('common-mycj-menu-non-us', 'Non-US'),
1614      temu: window.i18next.t('common-mycj-menu-temu-semi-managed', 'Semi-Managed'),
1615      temu_us_local: window.i18next.t('common-mycj-menu-temu-local', 'Local'),
1616      temu_certified_overseas: window.i18next.t('common-mycj-menu-temu-cooperative-warehouse', 'Cooperative Warehouse'),
1617      shein: window.i18next.t('common-mycj-menu-temu-semi-managed', 'Semi-Managed')
1618    };
1619    return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
1620      className: "".concat(MultipleMenuItem.name, " specialName")
1621    }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", null, i18nName[key], " ", count > 0 && showCount ? "(".concat(count, ")") : null), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
1622      className: "".concat(MultipleMenuItem.market, " market")
1623    }, market[key]));
1624  }
1625  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
1626    className: "".concat(MultipleMenuItem.name, " specialName")
1627  }, name, " ", count > 0 && showCount ? "(".concat(count, ")") : null);
1628};
1629function MultipleMenuItem_MultipleMenuItem(_a) {
1630  var _b;
1631  var _c;
1632  var list = _a.list;
1633  var hookMyCjRoute = (0,useMyCjReactRoute/* default */.A)();
1634  var platformHref = (0,use_platform_href/* default */.A)();
1635  var isZesty = window.siteCheck.isSite('ZS');
1636  var crossList = list.filter(function (item) {
1637    return !item.isErpPlatform;
1638  });
1639  var erpList = list.filter(function (item) {
1640    return item.isErpPlatform && item.isShow;
1641  }).sort(function (a, b) {
1642    if (a.key === 'miaoshou') return -1;
1643    if (b.key === 'miaoshou') return 1;
1644    return 0;
1645  });
1646  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
1647    className: classnames_default()(MultipleMenuItem.multipleMenuItem, (_b = {}, _b[MultipleMenuItem.pb110] = erpList.length > 0 && ((_c = erpList.filter(function (_) {
1648      return _.key === 'miaoshou';
1649    })) === null || _c === void 0 ? void 0 : _c.length) > 0, _b[MultipleMenuItem.zs] = isZesty, _b))
1650  }, (erpList === null || erpList === void 0 ? void 0 : erpList.length) > 0 && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
1651    className: MultipleMenuItem.tit
1652  }, window.i18next.t('common-platforms-tit-cross', 'Ecommerce Platforms'))), isZesty && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
1653    className: MultipleMenuItem.tit
1654  }, window.i18next.t('common-platforms-tit-zesty-platforms', 'Platforms'))), crossList.map(function (item) {
1655    var _a;
1656    if (!item.isShow) return null;
1657    return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
1658      className: classnames_default()(MultipleMenuItem.item, (_a = {}, _a[MultipleMenuItem.active] = item.isActive, _a)),
1659      key: item.name
1660    }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("a", MultipleMenuItem_assign({
1661      href: platformHref(item.link),
1662      className: MultipleMenuItem.link
1663    }, hookMyCjRoute.getAProps(item.link), {
1664      "data-gtag-element": (0,gtag/* toGtagElement */.l)(item.key || item.name)
1665    }), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
1666      className: MultipleMenuItem.linkWrapper
1667    }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(lazy_image, {
1668      src: item.imageUrl,
1669      alt: item.name,
1670      className: MultipleMenuItem.pic
1671    }), showName({
1672      key: item.key,
1673      name: item.name,
1674      count: item.count
1675    }
1675))));
1676  }), erpList.length > 0 && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
1677    className: MultipleMenuItem.tit,
1678    style: {
1679      marginTop: 18
1680    }
1681  }, window.i18next.t('common-platforms-tit-erp', 'ERP Platforms'))), erpList.map(function (item) {
1682    var _a;
1683    if (!item.isShow) return null;
1684    return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
1685      className: classnames_default()(MultipleMenuItem.item, (_a = {}, _a[MultipleMenuItem.active] = item.isActive, _a)),
1686      key: item.name
1687    }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("a", MultipleMenuItem_assign({
1688      href: platformHref(item.link),
1689      className: MultipleMenuItem.link
1690    }, hookMyCjRoute.getAProps(item.link), {
1691      "data-gtag-element": (0,gtag/* toGtagElement */.l)(item.key || item.name)
1692    }), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
1693      className: MultipleMenuItem.linkWrapper
1694    }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(lazy_image, {
1695      src: item.imageUrl,
1696      alt: item.name,
1697      className: MultipleMenuItem.pic
1698    }), showName({
1699      key: item.key,
1700      name: item.name,
1701      count: item.count
1702    }))), item.key === 'miaoshou' && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
1703      className: MultipleMenuItem.MiaoshouPlatforms
1704    }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
1705      className: MultipleMenuItem.text
1706    }, window.i18next.t('common-connect-e-commerce-platforms-miaoshou-erp', 'Connect E-commerce Platforms via Miaoshou ERP')), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(lazy_image, {
1707      src: miao_shou_platforms,
1708      alt: "miaoshou",
1709      className: MultipleMenuItem.images
1710    }))));
1711  }));
1712}
1713/* harmony default export */ const MenuNormal_MultipleMenuItem = (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().memo(MultipleMenuItem_MultipleMenuItem));
1714
1715/***/ }),
1716
1717/***/ 17502:
1718/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1719
1720"use strict";
1721/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1722/* harmony export */   A: () => (/* binding */ _objectWithoutPropertiesLoose)
1723/* harmony export */ });
1724function _objectWithoutPropertiesLoose(r, e) {
1725  if (null == r) return {};
1726  var t = {};
1727  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
1728    if (-1 !== e.indexOf(n)) continue;
1729    t[n] = r[n];
1730  }
1731  return t;
1732}
1733
1734
1735/***/ }),
1736
1737/***/ 17545:
1738/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1739
1740"use strict";
1741/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1742/* harmony export */   A: () => (/* binding */ _typeof)
1743/* harmony export */ });
1744function _typeof(o) {
1745  "@babel/helpers - typeof";
1746
1747  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
1748    return typeof o;
1749  } : function (o) {
1750    return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
1751  }, _typeof(o);
1752}
1753
1754
1755/***/ }),
1756
1757/***/ 19284:
1758/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1759
1760"use strict";
1761/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1762/* harmony export */   A9: () => (/* binding */ getNodeRef),
1763/* harmony export */   K4: () => (/* binding */ composeRef),
1764/* harmony export */   Xf: () => (/* binding */ fillRef),
1765/* harmony export */   f3: () => (/* binding */ supportRef),
1766/* harmony export */   xK: () => (/* binding */ useComposeRef)
1767/* harmony export */ });
1768/* unused harmony export supportNodeRef */
1769/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17545);
1770/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
1771/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
1772/* harmony import */ var react_is__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(53790);
1773/* harmony import */ var _hooks_useMemo__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34511);
1774/* harmony import */ var _React_isFragment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20785);
1775
1776
1777
1778
1779
1780var ReactMajorVersion = Number(react__WEBPACK_IMPORTED_MODULE_1__.version.split('.')[0]);
1781var fillRef = function fillRef(ref, node) {
1782  if (typeof ref === 'function') {
1783    ref(node);
1784  } else if ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(ref) === 'object' && ref && 'current' in ref) {
1785    ref.current = node;
1786  }
1787};
1788
1789/**
1790 * Merge refs into one ref function to support ref passing.
1791 */
1792var composeRef = function composeRef() {
1793  for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
1794    refs[_key] = arguments[_key];
1795  }
1796  var refList = refs.filter(Boolean);
1797  if (refList.length <= 1) {
1798    return refList[0];
1799  }
1800  return function (node) {
1801    refs.forEach(function (ref) {
1802      fillRef(ref, node);
1803    });
1804  };
1805};
1806var useComposeRef = function useComposeRef() {
1807  for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1808    refs[_key2] = arguments[_key2];
1809  }
1810  return (0,_hooks_useMemo__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)(function () {
1811    return composeRef.apply(void 0, refs);
1812  }, refs, function (prev, next) {
1813    return prev.length !== next.length || prev.every(function (ref, i) {
1814      return ref !== next[i];
1815    });
1816  });
1817};
1818var supportRef = function supportRef(nodeOrComponent) {
1819  var _type$prototype, _nodeOrComponent$prot;
1820  if (!nodeOrComponent) {
1821    return false;
1822  }
1823
1824  // React 19 no need `forwardRef` anymore. So just pass if is a React element.
1825  if (isReactElement(nodeOrComponent) && ReactMajorVersion >= 19) {
1826    return true;
1827  }
1828  var type = (0,react_is__WEBPACK_IMPORTED_MODULE_2__.isMemo)(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;
1829
1830  // Function component node
1831  if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render) && type.$$typeof !== react_is__WEBPACK_IMPORTED_MODULE_2__.ForwardRef) {
1832    return false;
1833  }
1834
1835  // Class component
1836  if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render) && nodeOrComponent.$$typeof !== react_is__WEBPACK_IMPORTED_MODULE_2__.ForwardRef) {
1837    return false;
1838  }
1839  return true;
1840};
1841function isReactElement(node) {
1842  return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.isValidElement)(node) && !(0,_React_isFragment__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)(node);
1843}
1844var supportNodeRef = function supportNodeRef(node) {
1845  return isReactElement(node) && supportRef(node);
1846};
1847
1848/**
1849 * In React 19. `ref` is not a property from node.
1850 * But a property from `props.ref`.
1851 * To check if `props.ref` exist or fallback to `ref`.
1852 */
1853var getNodeRef = function getNodeRef(node) {
1854  if (node && isReactElement(node)) {
1855    var ele = node;
1856
1857    // Source from:
1858    // https://github.com/mui/material-ui/blob/master/packages/mui-utils/src/getReactNodeRef/getReactNodeRef.ts
1859    return ele.props.propertyIsEnumerable('ref') ? ele.props.ref : ele.ref;
1860  }
1861  return null;
1862};
1863
1864/***/ }),
1865
1866/***/ 20000:
1867/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1868
1869"use strict";
1870/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1871/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
1872/* harmony export */ });
1873var replacePrefixForApi = {
1874  'elastic-api': {
1875    normal: 'website-api',
1876    vip: 'website-vip-api'
1877  },
1878  'order-center': {
1879    vip: 'order-center-vip'
1880  }
1881};
1882/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (replacePrefixForApi);
1883
1884/***/ }),
1885
1886/***/ 20181:
1887/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1888
1889"use strict";
1890/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1891/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
1892/* harmony export */ });
1893/* harmony import */ var rc_util_es_raf__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67536);
1894/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
1895/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
1896
1897
1898/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function () {
1899  var nextFrameRef = react__WEBPACK_IMPORTED_MODULE_1__.useRef(null);
1900  function cancelNextFrame() {
1901    rc_util_es_raf__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.cancel(nextFrameRef.current);
1902  }
1903  function nextFrame(callback) {
1904    var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
1905    cancelNextFrame();
1906    var nextFrameId = (0,rc_util_es_raf__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(function () {
1907      if (delay <= 1) {
1908        callback({
1909          isCanceled: function isCanceled() {
1910            return nextFrameId !== nextFrameRef.current;
1911          }
1912        });
1913      } else {
1914        nextFrame(callback, delay - 1);
1915      }
1916    });
1917    nextFrameRef.current = nextFrameId;
1918  }
1919  react__WEBPACK_IMPORTED_MODULE_1__.useEffect(function () {
1920    return function () {
1921      cancelNextFrame();
1922    };
1923  }, []);
1924  return [nextFrame, cancelNextFrame];
1925});
1926
1927/***/ }),
1928
1929/***/ 20194:
1930/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => {
1931
1932"use strict";
1933/* harmony import */ var _components_CjHeader_get_top_nav_props__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72777);
1934/* harmony import */ var _hook_useAxios__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(92513);
1935/* harmony import */ var _check_site_show__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27880);
1936/* harmony import */ var _cj_href__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84963);
1937/* harmony import */ var _common_login_info_controller__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(12097);
1938/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(81002);
1939var __assign = undefined && undefined.__assign || function () {
1940  __assign = Object.assign || function (t) {
1941    for (var s, i = 1, n = arguments.length; i < n; i++) {
1942      s = arguments[i];
1943      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
1944    }
1945    return t;
1946  };
1947  return __assign.apply(this, arguments);
1948};
1949
1950
1951
1952
1953
1954
1955
1956/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = (function (props) {
1957  var _a, _b;
1958  var ctx = props.ctx,
1959    getDomainByUrl = props.getDomainByUrl,
1960    _c = props.platform,
1961    platform = _c === void 0 ? 'cj' : _c;
1962  var i18n = ctx ? ctx.i18nextInstance : window.i18next;
1963  var loginInfo = new LoginInfoController().get(ctx);
1964  var otherCookies = getOtherCookies({
1965    ctx: ctx
1966  });
1967  var host = (_a = ctx === null || ctx === void 0 ? void 0 : ctx.host) !== null && _a !== void 0 ? _a : '';
1968  var $axios = getAxios(loginInfo.token, getDomainByUrl);
1969  var cjDomain = platform === 'cj' ? '/' : cjHref('/', host);
1970  if (ctx === null || ctx === void 0 ? void 0 : ctx.service_cookies) {
1971    otherCookies.lng = ctx.service_cookies.lng;
1972  }
1973  var siteCheck = new SiteCheck({
1974    getDomainByUrl: getDomainByUrl,
1975    ctx: ctx
1976  });
1977  var lng = (_b = otherCookies.lng) !== null && _b !== void 0 ? _b : siteCheck.get().data('default-lng') || 'en';
1978  if (!sixCountryLanguage.includes(lng)) lng = siteCheck.get().data('default-lng') || 'en';
1979  var isGoogleTranslate = !sixCountryLanguage.includes(otherCookies.lng);
1980  var isCj = platform === 'cj';
1981  var isGlobalWarehouse = platform === 'global-warehouse';
1982  var querySearch = getQueryParams({
1983    ctx: ctx
1984  });
1985  var path = ctx ? ctx.request.path || '' : location.pathname;
1986  var _MatchReqHost = ctx ? ctx.originalUrl : '';
1987  if ((_MatchReqHost === null || _MatchReqHost === void 0 ? void 0 : _MatchReqHost.indexOf('paymentAgency')) > -1 && platform === 'cj') {
1988    cjDomain = cjHref('/', ctx === null || ctx === void 0 ? void 0 : ctx.request.host);
1989  }
1990  var isM = isMobile(ctx);
1991  return __assign(__assign({}, props), {
1992    otherCookies: otherCookies,
1993    querySearch: querySearch,
1994    loginInfo: loginInfo,
1995    cjDomain: cjDomain,
1996    host: host,
1997    path: path,
1998    i18n: i18n,
1999    siteCheck: siteCheck,
2000    isCj: isCj,
2001    isGlobalWarehouse: isGlobalWarehouse,
2002    $axios: $axios,
2003    isGoogleTranslate: isGoogleTranslate,
2004    lng: lng,
2005    isM: isM,
2006    _MatchReqHost: _MatchReqHost
2007  });
2008});
2009
2010/***/ }),
2011
2012/***/ 20205:
2013/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2014
2015"use strict";
2016/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2017/* harmony export */   A: () => (/* binding */ toPropertyKey)
2018/* harmony export */ });
2019/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17545);
2020/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79824);
2021
2022
2023function toPropertyKey(t) {
2024  var i = (0,_toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(t, "string");
2025  return "symbol" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(i) ? i : i + "";
2026}
2027
2028
2029/***/ }),
2030
2031/***/ 20785:
2032/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2033
2034"use strict";
2035/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2036/* harmony export */   A: () => (/* binding */ isFragment)
2037/* harmony export */ });
2038/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17545);
2039
2040var REACT_ELEMENT_TYPE_18 = Symbol.for('react.element');
2041var REACT_ELEMENT_TYPE_19 = Symbol.for('react.transitional.element');
2042var REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');
2043
2044/**
2045 * Compatible with React 18 or 19 to check if node is a Fragment.
2046 */
2047function isFragment(object) {
2048  return (
2049    // Base object type
2050    object && (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(object) === 'object' && (
2051    // React Element type
2052    object.$$typeof === REACT_ELEMENT_TYPE_18 || object.$$typeof === REACT_ELEMENT_TYPE_19) &&
2053    // React Fragment type
2054    object.type === REACT_FRAGMENT_TYPE
2055  );
2056}
2057
2058/***/ }),
2059
2060/***/ 21421:
2061/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2062
2063"use strict";
2064/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2065/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
2066/* harmony export */ });
2067/* harmony import */ var _common_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4703);
2068/* harmony import */ var _common_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(81002);
2069/* harmony import */ var _common_login_info_controller__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12097);
2070
2071
2072
2073var AddStore = function () {
2074  function AddStore() {
2075    this.addStoreKey = 'installedApp';
2076    this.addStoreList = [];
2077    var userId = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.info('userId');
2078    if (userId) {
2079      this.addStoreKey = "installedApp_".concat(userId);
2080    }
2081    if (_common_index__WEBPACK_IMPORTED_MODULE_1__/* .isBrowser */ .Bd) {
2082      this.get();
2083    }
2084  }
2085  AddStore.prototype.get = function () {
2086    var _a;
2087    this.addStoreList = (_a = _common_store__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get(this.addStoreKey, {
2088      parse: true
2089    })) === null || _a === void 0 ? void 0 : _a.value;
2090    return _common_store__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get(this.addStoreKey, {
2091      parse: true
2092    });
2093  };
2094  AddStore.prototype.del = function () {
2095    _common_store__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.del(this.addStoreKey);
2096  };
2097  AddStore.prototype.save = function (data) {
2098    var allKeys = Object.keys(localStorage);
2099    allKeys.forEach(function (key) {
2100      if (key.startsWith('installedApp_')) {
2101        localStorage.removeItem(key);
2102      }
2103    });
2104    _common_store__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.set(this.addStoreKey, {
2105      value: data,
2106      expire: new Date().getTime() + 1000 * 60 * 10
2107    });
2108  };
2109  return AddStore;
2110}();
2111/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AddStore);
2112
2113/***/ }),
2114
2115/***/ 22128:
2116/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2117
2118"use strict";
2119/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2120/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
2121/* harmony export */ });
2122// extracted by mini-css-extract-plugin
2123/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({"wrapperTooltip":"wrapperTooltip--Sv_9_","tooltip":"tooltip--llVdk","box":"box--d5ApC","content":"content--jE76g","arrow":"arrow--DjN_p","rightArrow":"rightArrow--UlF5m","white":"white--T6tqr"});
2124
2125/***/ }),
2126
2127/***/ 22616:
2128/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2129
2130"use strict";
2131/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2132/* harmony export */   OV: () => (/* binding */ unobserve),
2133/* harmony export */   lB: () => (/* binding */ observe)
2134/* harmony export */ });
2135/* unused harmony exports _el, _rs */
2136/* harmony import */ var resize_observer_polyfill__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(99126);
2137
2138// =============================== Const ===============================
2139var elementListeners = new Map();
2140function onResize(entities) {
2141  entities.forEach(function (entity) {
2142    var _elementListeners$get;
2143    var target = entity.target;
2144    (_elementListeners$get = elementListeners.get(target)) === null || _elementListeners$get === void 0 || _elementListeners$get.forEach(function (listener) {
2145      return listener(target);
2146    });
2147  });
2148}
2149
2150// Note: ResizeObserver polyfill not support option to measure border-box resize
2151var resizeObserver = new resize_observer_polyfill__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A(onResize);
2152
2153// Dev env only
2154var _el = (/* unused pure expression or super */ null && ( false ? 0 : null)); // eslint-disable-line
2155var _rs = (/* unused pure expression or super */ null && ( false ? 0 : null)); // eslint-disable-line
2156
2157// ============================== Observe ==============================
2158function observe(element, callback) {
2159  if (!elementListeners.has(element)) {
2160    elementListeners.set(element, new Set());
2161    resizeObserver.observe(element);
2162  }
2163  elementListeners.get(element).add(callback);
2164}
2165function unobserve(element, callback) {
2166  if (elementListeners.has(element)) {
2167    elementListeners.get(element).delete(callback);
2168    if (!elementListeners.get(element).size) {
2169      resizeObserver.unobserve(element);
2170      elementListeners.delete(element);
2171    }
2172  }
2173}
2174
2175/***/ }),
2176
2177/***/ 23126:
2178/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2179
2180"use strict";
2181
2182// EXPORTS
2183__webpack_require__.d(__webpack_exports__, {
2184  "default": () => (/* binding */ components_message)
2185});
2186
2187// EXTERNAL MODULE: external {"root":"React","commonjs2":"react","commonjs":"react","amd":"react"}
2188var external_root_React_commonjs2_react_commonjs_react_amd_react_ = __webpack_require__(15442);
2189var external_root_React_commonjs2_react_commonjs_react_amd_react_default = /*#__PURE__*/__webpack_require__.n(external_root_React_commonjs2_react_commonjs_react_amd_react_);
2190// EXTERNAL MODULE: ../../node_modules/classnames/index.js
2191var classnames = __webpack_require__(53373);
2192var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
2193// EXTERNAL MODULE: external {"root":"ReactDOM","commonjs2":"react-dom","commonjs":"react-dom","amd":"react-dom"}
2194var external_root_ReactDOM_commonjs2_react_dom_commonjs_react_dom_amd_react_dom_ = __webpack_require__(56003);
2195// EXTERNAL MODULE: ../../node_modules/lodash/debounce.js
2196var debounce = __webpack_require__(12784);
2197var debounce_default = /*#__PURE__*/__webpack_require__.n(debounce);
2198;// ./src/components/message/index.less
2199// extracted by mini-css-extract-plugin
2200/* harmony default export */ const message = ({});
2201;// ./src/components/message/index.tsx
2202var __assign = undefined && undefined.__assign || function () {
2203  __assign = Object.assign || function (t) {
2204    for (var s, i = 1, n = arguments.length; i < n; i++) {
2205      s = arguments[i];
2206      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
2207    }
2208    return t;
2209  };
2210  return __assign.apply(this, arguments);
2211};
2212
2213
2214
2215
2216
2217var Message = function Message(_a) {
2218  var icon = _a.icon,
2219    content = _a.content,
2220    _b = _a.type,
2221    type = _b === void 0 ? 'info' : _b,
2222    onClose = _a.onClose;
2223  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
2224    var t = setTimeout(onClose, 1000);
2225    return function () {
2226      t && clearTimeout(t);
2227    };
2228  }, []);
2229  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
2230    className: classnames_default()("fastLogin-alert fastLogin-alert-".concat(type)),
2231    onClick: onClose
2232  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
2233    className: "fastLogin-text"
2234  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("label", null, content)));
2235};
2236var getContainer = function getContainer() {
2237  var container = document.querySelector('#customMessageWrapper');
2238  if (!container) {
2239    var _container = document.createElement('div');
2240    _container.id = 'customMessageWrapper';
2241    document.body.appendChild(_container);
2242    return _container;
2243  }
2244  return container;
2245};
2246var _message = function _message(type) {
2247  return function (props) {
2248    var container = getContainer();
2249    var _dom = document.createElement('div');
2250    _dom.classList.add('fastLogin-alert-main');
2251    container.appendChild(_dom);
2252    var hanldeClose = function hanldeClose() {
2253      (0,external_root_ReactDOM_commonjs2_react_dom_commonjs_react_dom_amd_react_dom_.unmountComponentAtNode)(_dom);
2254      container.removeChild(_dom);
2255    };
2256    (0,external_root_ReactDOM_commonjs2_react_dom_commonjs_react_dom_amd_react_dom_.render)(/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Message, __assign({}, props, {
2257      type: type,
2258      onClose: debounce_default()(hanldeClose, 500)
2259    })), _dom);
2260  };
2261};
2262var error = _message('error');
2263var warning = _message('warning');
2264var success = _message('success');
2265var info = _message('info');
2266/* harmony default export */ const components_message = ({
2267  error: error,
2268  warning: warning,
2269  success: success,
2270  info: info
2271});
2272
2273/***/ }),
2274
2275/***/ 23171:
2276/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2277
2278"use strict";
2279/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2280/* harmony export */   A: () => (/* binding */ _iterableToArrayLimit)
2281/* harmony export */ });
2282function _iterableToArrayLimit(r, l) {
2283  var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
2284  if (null != t) {
2285    var e,
2286      n,
2287      i,
2288      u,
2289      a = [],
2290      f = !0,
2291      o = !1;
2292    try {
2293      if (i = (t = t.call(r)).next, 0 === l) {
2294        if (Object(t) !== t) return;
2295        f = !1;
2296      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
2297    } catch (r) {
2298      o = !0, n = r;
2299    } finally {
2300      try {
2301        if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
2302      } finally {
2303        if (o) throw n;
2304      }
2305    }
2306    return a;
2307  }
2308}
2309
2310
2311/***/ }),
2312
2313/***/ 23294:
2314/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2315
2316"use strict";
2317/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2318/* harmony export */   A: () => (/* binding */ Popup)
2319/* harmony export */ });
2320/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53373);
2321/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
2322/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
2323/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
2324
2325
2326function Popup(props) {
2327  var children = props.children,
2328    prefixCls = props.prefixCls,
2329    id = props.id,
2330    innerStyle = props.overlayInnerStyle,
2331    bodyClassName = props.bodyClassName,
2332    className = props.className,
2333    style = props.style;
2334  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", {
2335    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()("".concat(prefixCls, "-content"), className),
2336    style: style
2337  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", {
2338    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()("".concat(prefixCls, "-inner"), bodyClassName),
2339    id: id,
2340    role: "tooltip",
2341    style: innerStyle
2342  }, typeof children === 'function' ? children() : children));
2343}
2344
2345/***/ }),
2346
2347/***/ 23492:
2348/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2349
2350"use strict";
2351/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2352/* harmony export */   A: () => (/* binding */ _arrayWithoutHoles)
2353/* harmony export */ });
2354/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86284);
2355
2356function _arrayWithoutHoles(r) {
2357  if (Array.isArray(r)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(r);
2358}
2359
2360
2361/***/ }),
2362
2363/***/ 23581:
2364/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2365
2366"use strict";
2367/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2368/* harmony export */   A: () => (/* binding */ Arrow)
2369/* harmony export */ });
2370/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53373);
2371/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
2372/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
2373/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
2374
2375
2376function Arrow(props) {
2377  var prefixCls = props.prefixCls,
2378    align = props.align,
2379    arrow = props.arrow,
2380    arrowPos = props.arrowPos;
2381  var _ref = arrow || {},
2382    className = _ref.className,
2383    content = _ref.content;
2384  var _arrowPos$x = arrowPos.x,
2385    x = _arrowPos$x === void 0 ? 0 : _arrowPos$x,
2386    _arrowPos$y = arrowPos.y,
2387    y = _arrowPos$y === void 0 ? 0 : _arrowPos$y;
2388  var arrowRef = react__WEBPACK_IMPORTED_MODULE_1__.useRef();
2389
2390  // Skip if no align
2391  if (!align || !align.points) {
2392    return null;
2393  }
2394  var alignStyle = {
2395    position: 'absolute'
2396  };
2397
2398  // Skip if no need to align
2399  if (align.autoArrow !== false) {
2400    var popupPoints = align.points[0];
2401    var targetPoints = align.points[1];
2402    var popupTB = popupPoints[0];
2403    var popupLR = popupPoints[1];
2404    var targetTB = targetPoints[0];
2405    var targetLR = targetPoints[1];
2406
2407    // Top & Bottom
2408    if (popupTB === targetTB || !['t', 'b'].includes(popupTB)) {
2409      alignStyle.top = y;
2410    } else if (popupTB === 't') {
2411      alignStyle.top = 0;
2412    } else {
2413      alignStyle.bottom = 0;
2414    }
2415
2416    // Left & Right
2417    if (popupLR === targetLR || !['l', 'r'].includes(popupLR)) {
2418      alignStyle.left = x;
2419    } else if (popupLR === 'l') {
2420      alignStyle.left = 0;
2421    } else {
2422      alignStyle.right = 0;
2423    }
2424  }
2425  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", {
2426    ref: arrowRef,
2427    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()("".concat(prefixCls, "-arrow"), className),
2428    style: alignStyle
2429  }, content);
2430}
2431
2432/***/ }),
2433
2434/***/ 23660:
2435/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2436
2437"use strict";
2438/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2439/* harmony export */   C: () => (/* binding */ CollectionContext),
2440/* harmony export */   p: () => (/* binding */ Collection)
2441/* harmony export */ });
2442/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15442);
2443/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2444
2445var CollectionContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createContext(null);
2446/**
2447 * Collect all the resize event from children ResizeObserver
2448 */
2449function Collection(_ref) {
2450  var children = _ref.children,
2451    onBatchResize = _ref.onBatchResize;
2452  var resizeIdRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(0);
2453  var resizeInfosRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef([]);
2454  var onCollectionResize = react__WEBPACK_IMPORTED_MODULE_0__.useContext(CollectionContext);
2455  var onResize = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (size, element, data) {
2456    resizeIdRef.current += 1;
2457    var currentId = resizeIdRef.current;
2458    resizeInfosRef.current.push({
2459      size: size,
2460      element: element,
2461      data: data
2462    });
2463    Promise.resolve().then(function () {
2464      if (currentId === resizeIdRef.current) {
2465        onBatchResize === null || onBatchResize === void 0 || onBatchResize(resizeInfosRef.current);
2466        resizeInfosRef.current = [];
2467      }
2468    });
2469
2470    // Continue bubbling if parent exist
2471    onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(size, element, data);
2472  }, [onBatchResize, onCollectionResize]);
2473  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(CollectionContext.Provider, {
2474    value: onResize
2475  }, children);
2476}
2477
2478/***/ }),
2479
2480/***/ 24586:
2481/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
2482
2483"use strict";
2484/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2485/* harmony export */   A: () => (/* binding */ _defineProperty)
2486/* harmony export */ });
2487/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20205);
2488
2489function _defineProperty(e, r, t) {
2490  return (r = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(r)) in e ? Object.defineProperty(e, r, {
2491    value: t,
2492    enumerable: !0,
2493    configurable: !0,
2494    writable: !0
2495  }) : e[r] = t, e;
2496}
2497
2498
2499/***/ }),
2500
2501/***/ 24628:
2502/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2503
2504"use strict";
2505/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2506/* harmony export */   A: () => (/* binding */ useAlign)
2507/* harmony export */ });
2508/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69740);
2509/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79082);
2510/* harmony import */ var rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(28299);
2511/* harmony import */ var rc_util_es_Dom_isVisible__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3700);
2512/* harmony import */ var rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9449);
2513/* harmony import */ var rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(84238);
2514/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(15442);
2515/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
2516/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61225);
2517
2518
2519
2520
2521
2522
2523
2524
2525function getUnitOffset(size) {
2526  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
2527  var offsetStr = "".concat(offset);
2528  var cells = offsetStr.match(/^(.*)\%$/);
2529  if (cells) {
2530    return size * (parseFloat(cells[1]) / 100);
2531  }
2532  return parseFloat(offsetStr);
2533}
2534function getNumberOffset(rect, offset) {
2535  var _ref = offset || [],
2536    _ref2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_ref, 2),
2537    offsetX = _ref2[0],
2538    offsetY = _ref2[1];
2539  return [getUnitOffset(rect.width, offsetX), getUnitOffset(rect.height, offsetY)];
2540}
2541function splitPoints() {
2542  var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
2543  return [points[0], points[1]];
2544}
2545function getAlignPoint(rect, points) {
2546  var topBottom = points[0];
2547  var leftRight = points[1];
2548  var x;
2549  var y;
2550
2551  // Top & Bottom
2552  if (topBottom === 't') {
2553    y = rect.y;
2554  } else if (topBottom === 'b') {
2555    y = rect.y + rect.height;
2556  } else {
2557    y = rect.y + rect.height / 2;
2558  }
2559
2560  // Left & Right
2561  if (leftRight === 'l') {
2562    x = rect.x;
2563  } else if (leftRight === 'r') {
2564    x = rect.x + rect.width;
2565  } else {
2566    x = rect.x + rect.width / 2;
2567  }
2568  return {
2569    x: x,
2570    y: y
2571  };
2572}
2573function reversePoints(points, index) {
2574  var reverseMap = {
2575    t: 'b',
2576    b: 't',
2577    l: 'r',
2578    r: 'l'
2579  };
2580  return points.map(function (point, i) {
2581    if (i === index) {
2582      return reverseMap[point] || 'c';
2583    }
2584    return point;
2585  }).join('');
2586}
2587function useAlign(open, popupEle, target, placement, builtinPlacements, popupAlign, onPopupAlign) {
2588  var _React$useState = react__WEBPACK_IMPORTED_MODULE_6__.useState({
2589      ready: false,
2590      offsetX: 0,
2591      offsetY: 0,
2592      offsetR: 0,
2593      offsetB: 0,
2594      arrowX: 0,
2595      arrowY: 0,
2596      scaleX: 1,
2597      scaleY: 1,
2598      align: builtinPlacements[placement] || {}
2599    }),
2600    _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState, 2),
2601    offsetInfo = _React$useState2[0],
2602    setOffsetInfo = _React$useState2[1];
2603  var alignCountRef = react__WEBPACK_IMPORTED_MODULE_6__.useRef(0);
2604  var scrollerList = react__WEBPACK_IMPORTED_MODULE_6__.useMemo(function () {
2605    if (!popupEle) {
2606      return [];
2607    }
2608    return (0,_util__WEBPACK_IMPORTED_MODULE_7__/* .collectScroller */ .TK)(popupEle);
2609  }, [popupEle]);
2610
2611  // ========================= Flip ==========================
2612  // We will memo flip info.
2613  // If size change to make flip, it will memo the flip info and use it in next align.
2614  var prevFlipRef = react__WEBPACK_IMPORTED_MODULE_6__.useRef({});
2615  var resetFlipCache = function resetFlipCache() {
2616    prevFlipRef.current = {};
2617  };
2618  if (!open) {
2619    resetFlipCache();
2620  }
2621
2622  // ========================= Align =========================
2623  var onAlign = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)(function () {
2624    if (popupEle && target && open) {
2625      var _popupElement$parentE, _popupRect$x, _popupRect$y, _popupElement$parentE2;
2626      var popupElement = popupEle;
2627      var doc = popupElement.ownerDocument;
2628      var win = (0,_util__WEBPACK_IMPORTED_MODULE_7__/* .getWin */ .D)(popupElement);
2629      var _win$getComputedStyle = win.getComputedStyle(popupElement),
2630        popupPosition = _win$getComputedStyle.position;
2631      var originLeft = popupElement.style.left;
2632      var originTop = popupElement.style.top;
2633      var originRight = popupElement.style.right;
2634      var originBottom = popupElement.style.bottom;
2635      var originOverflow = popupElement.style.overflow;
2636
2637      // Placement
2638      var placementInfo = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, builtinPlacements[placement]), popupAlign);
2639
2640      // placeholder element
2641      var placeholderElement = doc.createElement('div');
2642      (_popupElement$parentE = popupElement.parentElement) === null || _popupElement$parentE === void 0 || _popupElement$parentE.appendChild(placeholderElement);
2643      placeholderElement.style.left = "".concat(popupElement.offsetLeft, "px");
2644      placeholderElement.style.top = "".concat(popupElement.offsetTop, "px");
2645      placeholderElement.style.position = popupPosition;
2646      placeholderElement.style.height = "".concat(popupElement.offsetHeight, "px");
2647      placeholderElement.style.width = "".concat(popupElement.offsetWidth, "px");
2648
2649      // Reset first
2650      popupElement.style.left = '0';
2651      popupElement.style.top = '0';
2652      popupElement.style.right = 'auto';
2653      popupElement.style.bottom = 'auto';
2654      popupElement.style.overflow = 'hidden';
2655
2656      // Calculate align style, we should consider `transform` case
2657      var targetRect;
2658      if (Array.isArray(target)) {
2659        targetRect = {
2660          x: target[0],
2661          y: target[1],
2662          width: 0,
2663          height: 0
2664        };
2665      } else {
2666        var _rect$x, _rect$y;
2667        var rect = target.getBoundingClientRect();
2668        rect.x = (_rect$x = rect.x) !== null && _rect$x !== void 0 ? _rect$x : rect.left;
vendor: 16,060 bytes, lines 2669-3021
2669        rect.y = (_rect$y = rect.y) !== null && _rect$y !== void 0 ? _rect$y : rect.top;
2670        targetRect = {
2671          x: rect.x,
2672          y: rect.y,
2673          width: rect.width,
2674          height: rect.height
2675        };
2676      }
2677      var popupRect = popupElement.getBoundingClientRect();
2678      var _win$getComputedStyle2 = win.getComputedStyle(popupElement),
2679        height = _win$getComputedStyle2.height,
2680        width = _win$getComputedStyle2.width;
2681      popupRect.x = (_popupRect$x = popupRect.x) !== null && _popupRect$x !== void 0 ? _popupRect$x : popupRect.left;
2682      popupRect.y = (_popupRect$y = popupRect.y) !== null && _popupRect$y !== void 0 ? _popupRect$y : popupRect.top;
2683      var _doc$documentElement = doc.documentElement,
2684        clientWidth = _doc$documentElement.clientWidth,
2685        clientHeight = _doc$documentElement.clientHeight,
2686        scrollWidth = _doc$documentElement.scrollWidth,
2687        scrollHeight = _doc$documentElement.scrollHeight,
2688        scrollTop = _doc$documentElement.scrollTop,
2689        scrollLeft = _doc$documentElement.scrollLeft;
2690      var popupHeight = popupRect.height;
2691      var popupWidth = popupRect.width;
2692      var targetHeight = targetRect.height;
2693      var targetWidth = targetRect.width;
2694
2695      // Get bounding of visible area
2696      var visibleRegion = {
2697        left: 0,
2698        top: 0,
2699        right: clientWidth,
2700        bottom: clientHeight
2701      };
2702      var scrollRegion = {
2703        left: -scrollLeft,
2704        top: -scrollTop,
2705        right: scrollWidth - scrollLeft,
2706        bottom: scrollHeight - scrollTop
2707      };
2708      var htmlRegion = placementInfo.htmlRegion;
2709      var VISIBLE = 'visible';
2710      var VISIBLE_FIRST = 'visibleFirst';
2711      if (htmlRegion !== 'scroll' && htmlRegion !== VISIBLE_FIRST) {
2712        htmlRegion = VISIBLE;
2713      }
2714      var isVisibleFirst = htmlRegion === VISIBLE_FIRST;
2715      var scrollRegionArea = (0,_util__WEBPACK_IMPORTED_MODULE_7__/* .getVisibleArea */ .Iq)(scrollRegion, scrollerList);
2716      var visibleRegionArea = (0,_util__WEBPACK_IMPORTED_MODULE_7__/* .getVisibleArea */ .Iq)(visibleRegion, scrollerList);
2717      var visibleArea = htmlRegion === VISIBLE ? visibleRegionArea : scrollRegionArea;
2718
2719      // When set to `visibleFirst`,
2720      // the check `adjust` logic will use `visibleRegion` for check first.
2721      var adjustCheckVisibleArea = isVisibleFirst ? visibleRegionArea : visibleArea;
2722
2723      // Record right & bottom align data
2724      popupElement.style.left = 'auto';
2725      popupElement.style.top = 'auto';
2726      popupElement.style.right = '0';
2727      popupElement.style.bottom = '0';
2728      var popupMirrorRect = popupElement.getBoundingClientRect();
2729
2730      // Reset back
2731      popupElement.style.left = originLeft;
2732      popupElement.style.top = originTop;
2733      popupElement.style.right = originRight;
2734      popupElement.style.bottom = originBottom;
2735      popupElement.style.overflow = originOverflow;
2736      (_popupElement$parentE2 = popupElement.parentElement) === null || _popupElement$parentE2 === void 0 || _popupElement$parentE2.removeChild(placeholderElement);
2737
2738      // Calculate scale
2739      var _scaleX = (0,_util__WEBPACK_IMPORTED_MODULE_7__/* .toNum */ .ac)(Math.round(popupWidth / parseFloat(width) * 1000) / 1000);
2740      var _scaleY = (0,_util__WEBPACK_IMPORTED_MODULE_7__/* .toNum */ .ac)(Math.round(popupHeight / parseFloat(height) * 1000) / 1000);
2741
2742      // No need to align since it's not visible in view
2743      if (_scaleX === 0 || _scaleY === 0 || (0,rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_2__/* .isDOM */ .fk)(target) && !(0,rc_util_es_Dom_isVisible__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)(target)) {
2744        return;
2745      }
2746
2747      // Offset
2748      var offset = placementInfo.offset,
2749        targetOffset = placementInfo.targetOffset;
2750      var _getNumberOffset = getNumberOffset(popupRect, offset),
2751        _getNumberOffset2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_getNumberOffset, 2),
2752        popupOffsetX = _getNumberOffset2[0],
2753        popupOffsetY = _getNumberOffset2[1];
2754      var _getNumberOffset3 = getNumberOffset(targetRect, targetOffset),
2755        _getNumberOffset4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_getNumberOffset3, 2),
2756        targetOffsetX = _getNumberOffset4[0],
2757        targetOffsetY = _getNumberOffset4[1];
2758      targetRect.x -= targetOffsetX;
2759      targetRect.y -= targetOffsetY;
2760
2761      // Points
2762      var _ref3 = placementInfo.points || [],
2763        _ref4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_ref3, 2),
2764        popupPoint = _ref4[0],
2765        targetPoint = _ref4[1];
2766      var targetPoints = splitPoints(targetPoint);
2767      var popupPoints = splitPoints(popupPoint);
2768      var targetAlignPoint = getAlignPoint(targetRect, targetPoints);
2769      var popupAlignPoint = getAlignPoint(popupRect, popupPoints);
2770
2771      // Real align info may not same as origin one
2772      var nextAlignInfo = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, placementInfo);
2773
2774      // Next Offset
2775      var nextOffsetX = targetAlignPoint.x - popupAlignPoint.x + popupOffsetX;
2776      var nextOffsetY = targetAlignPoint.y - popupAlignPoint.y + popupOffsetY;
2777
2778      // ============== Intersection ===============
2779      // Get area by position. Used for check if flip area is better
2780      function getIntersectionVisibleArea(offsetX, offsetY) {
2781        var area = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : visibleArea;
2782        var l = popupRect.x + offsetX;
2783        var t = popupRect.y + offsetY;
2784        var r = l + popupWidth;
2785        var b = t + popupHeight;
2786        var visibleL = Math.max(l, area.left);
2787        var visibleT = Math.max(t, area.top);
2788        var visibleR = Math.min(r, area.right);
2789        var visibleB = Math.min(b, area.bottom);
2790        return Math.max(0, (visibleR - visibleL) * (visibleB - visibleT));
2791      }
2792      var originIntersectionVisibleArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY);
2793
2794      // As `visibleFirst`, we prepare this for check
2795      var originIntersectionRecommendArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY, visibleRegionArea);
2796
2797      // ========================== Overflow ===========================
2798      var targetAlignPointTL = getAlignPoint(targetRect, ['t', 'l']);
2799      var popupAlignPointTL = getAlignPoint(popupRect, ['t', 'l']);
2800      var targetAlignPointBR = getAlignPoint(targetRect, ['b', 'r']);
2801      var popupAlignPointBR = getAlignPoint(popupRect, ['b', 'r']);
2802      var overflow = placementInfo.overflow || {};
2803      var adjustX = overflow.adjustX,
2804        adjustY = overflow.adjustY,
2805        shiftX = overflow.shiftX,
2806        shiftY = overflow.shiftY;
2807      var supportAdjust = function supportAdjust(val) {
2808        if (typeof val === 'boolean') {
2809          return val;
2810        }
2811        return val >= 0;
2812      };
2813
2814      // Prepare position
2815      var nextPopupY;
2816      var nextPopupBottom;
2817      var nextPopupX;
2818      var nextPopupRight;
2819      function syncNextPopupPosition() {
2820        nextPopupY = popupRect.y + nextOffsetY;
2821        nextPopupBottom = nextPopupY + popupHeight;
2822        nextPopupX = popupRect.x + nextOffsetX;
2823        nextPopupRight = nextPopupX + popupWidth;
2824      }
2825      syncNextPopupPosition();
2826
2827      // >>>>>>>>>> Top & Bottom
2828      var needAdjustY = supportAdjust(adjustY);
2829      var sameTB = popupPoints[0] === targetPoints[0];
2830
2831      // Bottom to Top
2832      if (needAdjustY && popupPoints[0] === 't' && (nextPopupBottom > adjustCheckVisibleArea.bottom || prevFlipRef.current.bt)) {
2833        var tmpNextOffsetY = nextOffsetY;
2834        if (sameTB) {
2835          tmpNextOffsetY -= popupHeight - targetHeight;
2836        } else {
2837          tmpNextOffsetY = targetAlignPointTL.y - popupAlignPointBR.y - popupOffsetY;
2838        }
2839        var newVisibleArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY);
2840        var newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY, visibleRegionArea);
2841        if (
2842        // Of course use larger one
2843        newVisibleArea > originIntersectionVisibleArea || newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||
2844        // Choose recommend one
2845        newVisibleRecommendArea >= originIntersectionRecommendArea)) {
2846          prevFlipRef.current.bt = true;
2847          nextOffsetY = tmpNextOffsetY;
2848          popupOffsetY = -popupOffsetY;
2849          nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];
2850        } else {
2851          prevFlipRef.current.bt = false;
2852        }
2853      }
2854
2855      // Top to Bottom
2856      if (needAdjustY && popupPoints[0] === 'b' && (nextPopupY < adjustCheckVisibleArea.top || prevFlipRef.current.tb)) {
2857        var _tmpNextOffsetY = nextOffsetY;
2858        if (sameTB) {
2859          _tmpNextOffsetY += popupHeight - targetHeight;
2860        } else {
2861          _tmpNextOffsetY = targetAlignPointBR.y - popupAlignPointTL.y - popupOffsetY;
2862        }
2863        var _newVisibleArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY);
2864        var _newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY, visibleRegionArea);
2865        if (
2866        // Of course use larger one
2867        _newVisibleArea > originIntersectionVisibleArea || _newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||
2868        // Choose recommend one
2869        _newVisibleRecommendArea >= originIntersectionRecommendArea)) {
2870          prevFlipRef.current.tb = true;
2871          nextOffsetY = _tmpNextOffsetY;
2872          popupOffsetY = -popupOffsetY;
2873          nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];
2874        } else {
2875          prevFlipRef.current.tb = false;
2876        }
2877      }
2878
2879      // >>>>>>>>>> Left & Right
2880      var needAdjustX = supportAdjust(adjustX);
2881
2882      // >>>>> Flip
2883      var sameLR = popupPoints[1] === targetPoints[1];
2884
2885      // Right to Left
2886      if (needAdjustX && popupPoints[1] === 'l' && (nextPopupRight > adjustCheckVisibleArea.right || prevFlipRef.current.rl)) {
2887        var tmpNextOffsetX = nextOffsetX;
2888        if (sameLR) {
2889          tmpNextOffsetX -= popupWidth - targetWidth;
2890        } else {
2891          tmpNextOffsetX = targetAlignPointTL.x - popupAlignPointBR.x - popupOffsetX;
2892        }
2893        var _newVisibleArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY);
2894        var _newVisibleRecommendArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY, visibleRegionArea);
2895        if (
2896        // Of course use larger one
2897        _newVisibleArea2 > originIntersectionVisibleArea || _newVisibleArea2 === originIntersectionVisibleArea && (!isVisibleFirst ||
2898        // Choose recommend one
2899        _newVisibleRecommendArea2 >= originIntersectionRecommendArea)) {
2900          prevFlipRef.current.rl = true;
2901          nextOffsetX = tmpNextOffsetX;
2902          popupOffsetX = -popupOffsetX;
2903          nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];
2904        } else {
2905          prevFlipRef.current.rl = false;
2906        }
2907      }
2908
2909      // Left to Right
2910      if (needAdjustX && popupPoints[1] === 'r' && (nextPopupX < adjustCheckVisibleArea.left || prevFlipRef.current.lr)) {
2911        var _tmpNextOffsetX = nextOffsetX;
2912        if (sameLR) {
2913          _tmpNextOffsetX += popupWidth - targetWidth;
2914        } else {
2915          _tmpNextOffsetX = targetAlignPointBR.x - popupAlignPointTL.x - popupOffsetX;
2916        }
2917        var _newVisibleArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY);
2918        var _newVisibleRecommendArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY, visibleRegionArea);
2919        if (
2920        // Of course use larger one
2921        _newVisibleArea3 > originIntersectionVisibleArea || _newVisibleArea3 === originIntersectionVisibleArea && (!isVisibleFirst ||
2922        // Choose recommend one
2923        _newVisibleRecommendArea3 >= originIntersectionRecommendArea)) {
2924          prevFlipRef.current.lr = true;
2925          nextOffsetX = _tmpNextOffsetX;
2926          popupOffsetX = -popupOffsetX;
2927          nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];
2928        } else {
2929          prevFlipRef.current.lr = false;
2930        }
2931      }
2932
2933      // ============================ Shift ============================
2934      syncNextPopupPosition();
2935      var numShiftX = shiftX === true ? 0 : shiftX;
2936      if (typeof numShiftX === 'number') {
2937        // Left
2938        if (nextPopupX < visibleRegionArea.left) {
2939          nextOffsetX -= nextPopupX - visibleRegionArea.left - popupOffsetX;
2940          if (targetRect.x + targetWidth < visibleRegionArea.left + numShiftX) {
2941            nextOffsetX += targetRect.x - visibleRegionArea.left + targetWidth - numShiftX;
2942          }
2943        }
2944
2945        // Right
2946        if (nextPopupRight > visibleRegionArea.right) {
2947          nextOffsetX -= nextPopupRight - visibleRegionArea.right - popupOffsetX;
2948          if (targetRect.x > visibleRegionArea.right - numShiftX) {
2949            nextOffsetX += targetRect.x - visibleRegionArea.right + numShiftX;
2950          }
2951        }
2952      }
2953      var numShiftY = shiftY === true ? 0 : shiftY;
2954      if (typeof numShiftY === 'number') {
2955        // Top
2956        if (nextPopupY < visibleRegionArea.top) {
2957          nextOffsetY -= nextPopupY - visibleRegionArea.top - popupOffsetY;
2958
2959          // When target if far away from visible area
2960          // Stop shift
2961          if (targetRect.y + targetHeight < visibleRegionArea.top + numShiftY) {
2962            nextOffsetY += targetRect.y - visibleRegionArea.top + targetHeight - numShiftY;
2963          }
2964        }
2965
2966        // Bottom
2967        if (nextPopupBottom > visibleRegionArea.bottom) {
2968          nextOffsetY -= nextPopupBottom - visibleRegionArea.bottom - popupOffsetY;
2969          if (targetRect.y > visibleRegionArea.bottom - numShiftY) {
2970            nextOffsetY += targetRect.y - visibleRegionArea.bottom + numShiftY;
2971          }
2972        }
2973      }
2974
2975      // ============================ Arrow ============================
2976      // Arrow center align
2977      var popupLeft = popupRect.x + nextOffsetX;
2978      var popupRight = popupLeft + popupWidth;
2979      var popupTop = popupRect.y + nextOffsetY;
2980      var popupBottom = popupTop + popupHeight;
2981      var targetLeft = targetRect.x;
2982      var targetRight = targetLeft + targetWidth;
2983      var targetTop = targetRect.y;
2984      var targetBottom = targetTop + targetHeight;
2985      var maxLeft = Math.max(popupLeft, targetLeft);
2986      var minRight = Math.min(popupRight, targetRight);
2987      var xCenter = (maxLeft + minRight) / 2;
2988      var nextArrowX = xCenter - popupLeft;
2989      var maxTop = Math.max(popupTop, targetTop);
2990      var minBottom = Math.min(popupBottom, targetBottom);
2991      var yCenter = (maxTop + minBottom) / 2;
2992      var nextArrowY = yCenter - popupTop;
2993      onPopupAlign === null || onPopupAlign === void 0 || onPopupAlign(popupEle, nextAlignInfo);
2994
2995      // Additional calculate right & bottom position
2996      var offsetX4Right = popupMirrorRect.right - popupRect.x - (nextOffsetX + popupRect.width);
2997      var offsetY4Bottom = popupMirrorRect.bottom - popupRect.y - (nextOffsetY + popupRect.height);
2998      if (_scaleX === 1) {
2999        nextOffsetX = Math.round(nextOffsetX);
3000        offsetX4Right = Math.round(offsetX4Right);
3001      }
3002      if (_scaleY === 1) {
3003        nextOffsetY = Math.round(nextOffsetY);
3004        offsetY4Bottom = Math.round(offsetY4Bottom);
3005      }
3006      var nextOffsetInfo = {
3007        ready: true,
3008        offsetX: nextOffsetX / _scaleX,
3009        offsetY: nextOffsetY / _scaleY,
3010        offsetR: offsetX4Right / _scaleX,
3011        offsetB: offsetY4Bottom / _scaleY,
3012        arrowX: nextArrowX / _scaleX,
3013        arrowY: nextArrowY / _scaleY,
3014        scaleX: _scaleX,
3015        scaleY: _scaleY,
3016        align: nextAlignInfo
3017      };
3018      setOffsetInfo(nextOffsetInfo);
3019    }
3020  });
3021  var triggerAlign = function triggerAlign() {
3022    alignCountRef.current += 1;
3023    var id = alignCountRef.current;
3024
3025    // Merge all align requirement into one frame
3026    Promise.resolve().then(function () {
3027      if (alignCountRef.current === id) {
3028        onAlign();
3029      }
3030    });
3031  };
3032
3033  // Reset ready status when placement & open changed
3034  var resetReady = function resetReady() {
3035    setOffsetInfo(function (ori) {
3036      return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, ori), {}, {
3037        ready: false
3038      });
3039    });
3040  };
3041  (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)(resetReady, [placement]);
3042  (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)(function () {
3043    if (!open) {
3044      resetReady();
3045    }
3046  }, [open]);
3047  return [offsetInfo.ready, offsetInfo.offsetX, offsetInfo.offsetY, offsetInfo.offsetR, offsetInfo.offsetB, offsetInfo.arrowX, offsetInfo.arrowY, offsetInfo.scaleX, offsetInfo.scaleY, offsetInfo.align, triggerAlign];
3048}
3049
3050/***/ }),
3051
3052/***/ 24898:
3053/***/ ((__unused_webpack_module, exports) => {
3054
3055"use strict";
3056var __webpack_unused_export__;
3057/**
3058 * @license React
3059 * react-is.production.min.js
3060 *
3061 * Copyright (c) Facebook, Inc. and its affiliates.
3062 *
3063 * This source code is licensed under the MIT license found in the
3064 * LICENSE file in the root directory of this source tree.
3065 */
3066var b=Symbol.for("react.element"),c=Symbol.for("react.portal"),d=Symbol.for("react.fragment"),e=Symbol.for("react.strict_mode"),f=Symbol.for("react.profiler"),g=Symbol.for("react.provider"),h=Symbol.for("react.context"),k=Symbol.for("react.server_context"),l=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),n=Symbol.for("react.suspense_list"),p=Symbol.for("react.memo"),q=Symbol.for("react.lazy"),t=Symbol.for("react.offscreen"),u;u=Symbol.for("react.module.reference");
3067function v(a){if("object"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}__webpack_unused_export__=h;__webpack_unused_export__=g;__webpack_unused_export__=b;exports.ForwardRef=l;__webpack_unused_export__=d;__webpack_unused_export__=q;__webpack_unused_export__=p;__webpack_unused_export__=c;__webpack_unused_export__=f;__webpack_unused_export__=e;__webpack_unused_export__=m;
3068__webpack_unused_export__=n;__webpack_unused_export__=function(){return!1};__webpack_unused_export__=function(){return!1};__webpack_unused_export__=function(a){return v(a)===h};__webpack_unused_export__=function(a){return v(a)===g};__webpack_unused_export__=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===b};__webpack_unused_export__=function(a){return v(a)===l};__webpack_unused_export__=function(a){return v(a)===d};__webpack_unused_export__=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};
3069__webpack_unused_export__=function(a){return v(a)===c};__webpack_unused_export__=function(a){return v(a)===f};__webpack_unused_export__=function(a){return v(a)===e};__webpack_unused_export__=function(a){return v(a)===m};__webpack_unused_export__=function(a){return v(a)===n};
3070__webpack_unused_export__=function(a){return"string"===typeof a||"function"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||"object"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};__webpack_unused_export__=v;
3071
3072
3073/***/ }),
3074
3075/***/ 25435:
3076/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3077
3078"use strict";
3079/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3080/* harmony export */   Vm: () => (/* binding */ hasAuth),
3081/* harmony export */   Z7: () => (/* binding */ noAuthPath),
3082/* harmony export */   lU: () => (/* binding */ goNoAuthPath),
3083/* harmony export */   tw: () => (/* binding */ fetchAuth)
3084/* harmony export */ });
3085/* harmony import */ var _common_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4703);
3086/* harmony import */ var _hook_useAxios__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(92513);
3087/* harmony import */ var _components_Menu_bar_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(34692);
3088/* harmony import */ var _components_Menu_bar_config_zs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(81943);
3089/* harmony import */ var _components_Header_HeaderUserSupport_bar_config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(78068);
3090var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
3091  function adopt(value) {
3092    return value instanceof P ? value : new P(function (resolve) {
3093      resolve(value);
3094    });
3095  }
3096  return new (P || (P = Promise))(function (resolve, reject) {
3097    function fulfilled(value) {
3098      try {
3099        step(generator.next(value));
3100      } catch (e) {
3101        reject(e);
3102      }
3103    }
3104    function rejected(value) {
3105      try {
3106        step(generator["throw"](value));
3107      } catch (e) {
3108        reject(e);
3109      }
3110    }
3111    function step(result) {
3112      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
3113    }
3114    step((generator = generator.apply(thisArg, _arguments || [])).next());
3115  });
3116};
3117var __generator = undefined && undefined.__generator || function (thisArg, body) {
3118  var _ = {
3119      label: 0,
3120      sent: function sent() {
3121        if (t[0] & 1) throw t[1];
3122        return t[1];
3123      },
3124      trys: [],
3125      ops: []
3126    },
3127    f,
3128    y,
3129    t,
3130    g;
3131  return g = {
3132    next: verb(0),
3133    "throw": verb(1),
3134    "return": verb(2)
3135  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
3136    return this;
3137  }), g;
3138  function verb(n) {
3139    return function (v) {
3140      return step([n, v]);
3141    };
3142  }
3143  function step(op) {
3144    if (f) throw new TypeError("Generator is already executing.");
3145    while (g && (g = 0, op[0] && (_ = 0)), _) try {
3146      if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
3147      if (y = 0, t) op = [op[0] & 2, t.value];
3148      switch (op[0]) {
3149        case 0:
3150        case 1:
3151          t = op;
3152          break;
3153        case 4:
3154          _.label++;
3155          return {
3156            value: op[1],
3157            done: false
3158          };
3159        case 5:
3160          _.label++;
3161          y = op[1];
3162          op = [0];
3163          continue;
3164        case 7:
3165          op = _.ops.pop();
3166          _.trys.pop();
3167          continue;
3168        default:
3169          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
3170            _ = 0;
3171            continue;
3172          }
3173          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
3174            _.label = op[1];
3175            break;
3176          }
3177          if (op[0] === 6 && _.label < t[1]) {
3178            _.label = t[1];
3179            t = op;
3180            break;
3181          }
3182          if (t && _.label < t[2]) {
3183            _.label = t[2];
3184            _.ops.push(op);
3185            break;
3186          }
3187          if (t[2]) _.ops.pop();
3188          _.trys.pop();
3189          continue;
3190      }
3191      op = body.call(thisArg, _);
3192    } catch (e) {
3193      op = [6, e];
3194      y = 0;
3195    } finally {
3196      f = t = 0;
3197    }
3198    if (op[0] & 5) throw op[1];
3199    return {
3200      value: op[0] ? op[1] : void 0,
3201      done: true
3202    };
3203  }
3204};
3205
3206
3207
3208
3209
3210var fetchAuth = function fetchAuth(info, getDomainByUrl) {
3211  return __awaiter(void 0, void 0, void 0, function () {
3212    var $axios, _a, err2, res2, arr;
3213    var _b, _c;
3214    return __generator(this, function (_d) {
3215      switch (_d.label) {
3216        case 0:
3217          $axios = (0,_hook_useAxios__WEBPACK_IMPORTED_MODULE_1__/* .getAxios */ .p)((info === null || info === void 0 ? void 0 : info.token) || '', getDomainByUrl);
3218          return [4, $axios({
3219            method: 'post',
3220            url: 'userCenterForeignWeb/app/subAccount/getUserMenus',
3221            data: {
3222              userId: (info === null || info === void 0 ? void 0 : info.subAccountId) || ''
3223            },
3224            headers: {
3225              token: (info === null || info === void 0 ? void 0 : info.token) || ''
3226            }
3227          })];
3228        case 1:
3229          _a = _d.sent(), err2 = _a[0], res2 = _a[1];
3230          if (err2 || Number(res2 === null || res2 === void 0 ? void 0 : res2.code) !== 200) return [2, Promise.reject()];
3231          arr = [];
3232          if (((_b = (res2 === null || res2 === void 0 ? void 0 : res2.data) || []) === null || _b === void 0 ? void 0 : _b.length) > 0) {
3233            (_c = res2 === null || res2 === void 0 ? void 0 : res2.data) === null || _c === void 0 ? void 0 : _c.forEach(function (_) {
3234              var _a;
3235              if ((_a = _ === null || _ === void 0 ? void 0 : _.code) === null || _a === void 0 ? void 0 : _a.startsWith('mycj_')) arr.push(_.code);
3236            });
3237          }
3238          _common_store__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.set('_AUTH_CODES_', arr);
3239          return [2];
3240      }
3241    });
3242  });
3243};
3244var getAuth = function getAuth() {
3245  return _common_store__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get('_AUTH_CODES_', {
3246    parse: true
3247  });
3248};
3249var menuAuthTreeList = null;
3250var headerMenuAuthTreeList = null;
3251var menuAuthTreeMap = {
3252  ZS: _components_Menu_bar_config_zs__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Ay
3253};
3254var matchMenuPath = function matchMenuPath(url) {
3255  var _a = url ? new URL(url) : window.location,
3256    pathname = _a.pathname,
3257    hash = _a.hash,
3258    search = _a.search;
3259  var route = pathname + search + hash;
3260  var route1 = "".concat(pathname, "/").concat(search).concat(hash);
3261  if (!menuAuthTreeList) {
3262    var selectedMenuAuthTree = _components_Menu_bar_config__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay;
3263    if (typeof window !== 'undefined' && (window === null || window === void 0 ? void 0 : window.siteCheck)) {
3264      for (var _i = 0, _b = Object.entries(menuAuthTreeMap); _i < _b.length; _i++) {
3265        var _c = _b[_i],
3266          platform = _c[0],
3267          authTree = _c[1];
3268        if (window.siteCheck.isSite(platform)) {
3269          selectedMenuAuthTree = authTree;
3270          break;
3271        }
3272      }
3273    }
3274    menuAuthTreeList = selectedMenuAuthTree()[1];
3275  }
3276  return menuAuthTreeList.find(function (k) {
3277    return route.includes(k.route) || route1.includes(k.route);
3278  });
3279};
3280var matchHeaderMenuPath = function matchHeaderMenuPath(url) {
3281  var _a = url ? new URL(url) : window.location,
3282    pathname = _a.pathname,
3283    hash = _a.hash,
3284    search = _a.search;
3285  var route = pathname + search + hash;
3286  var route1 = "".concat(pathname, "/").concat(search).concat(hash);
3287  if (!headerMenuAuthTreeList) {
3288    headerMenuAuthTreeList = (0,_components_Header_HeaderUserSupport_bar_config__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Ay)()[1];
3289  }
3290  return headerMenuAuthTreeList.find(function (k) {
3291    return route.includes(k.route) || route1.includes(k.route);
3292  });
3293};
3294var hasAuth = function hasAuth(options) {
3295  var _a, _b;
3296  var _c = options || {},
3297    code = _c.code,
3298    url = _c.url;
3299  var auth = getAuth();
3300  if (!auth) return true;
3301  if (code) {
3302    return auth.includes(code);
3303  }
3304  var menuAuthCode = (_a = matchMenuPath(url)) === null || _a === void 0 ? void 0 : _a.code;
3305  var headerMenuAuthCode = (_b = matchHeaderMenuPath(url)) === null || _b === void 0 ? void 0 : _b.code;
3306  if (!menuAuthCode && !headerMenuAuthCode) {
3307    return true;
3308  }
3309  return auth.includes(menuAuthCode) || auth.includes(headerMenuAuthCode);
3310};
3311var noAuthPath = '/my.html#/noPower';
3312var goNoAuthPath = function goNoAuthPath() {
3313  window.location.href = noAuthPath;
3314};
3315
3316/***/ }),
3317
3318/***/ 25893:
3319/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3320
3321"use strict";
3322/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3323/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
3324/* harmony export */ });
3325/* harmony import */ var rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(47169);
3326/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
3327/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
3328
3329
3330
3331// It's safe to use `useLayoutEffect` but the warning is annoying
3332var useIsomorphicLayoutEffect = (0,rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)() ? react__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_1__.useEffect;
3333/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useIsomorphicLayoutEffect);
3334
3335/***/ }),
3336
3337/***/ 26651:
3338/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3339
3340"use strict";
3341/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3342/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
3343/* harmony export */ });
3344/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function () {
3345  if (typeof navigator === 'undefined' || typeof window === 'undefined') {
3346    return false;
3347  }
3348  var agent = navigator.userAgent || navigator.vendor || window.opera;
3349  return /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4));
3350});
3351
3352/***/ }),
3353
3354/***/ 27880:
3355/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3356
3357"use strict";
3358/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3359/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
3360/* harmony export */ });
3361/* unused harmony export isHome */
3362/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(81002);
3363/* harmony import */ var _common_request__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(77427);
3364/* harmony import */ var _const_site_config_cj__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(62194);
3365/* harmony import */ var _check_site_vp_menu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(96551);
3366/* harmony import */ var _oss_controller__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44190);
3367/* harmony import */ var deepmerge__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(52743);
3368/* harmony import */ var deepmerge__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(deepmerge__WEBPACK_IMPORTED_MODULE_5__);
3369/* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(3478);
3370/* harmony import */ var _dexie_cache__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(36762);
3371function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
3372var __assign = undefined && undefined.__assign || function () {
3373  __assign = Object.assign || function (t) {
3374    for (var s, i = 1, n = arguments.length; i < n; i++) {
3375      s = arguments[i];
3376      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
3377    }
3378    return t;
3379  };
3380  return __assign.apply(this, arguments);
3381};
3382var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
3383  function adopt(value) {
3384    return value instanceof P ? value : new P(function (resolve) {
3385      resolve(value);
3386    });
3387  }
3388  return new (P || (P = Promise))(function (resolve, reject) {
3389    function fulfilled(value) {
3390      try {
3391        step(generator.next(value));
3392      } catch (e) {
3393        reject(e);
3394      }
3395    }
3396    function rejected(value) {
3397      try {
3398        step(generator["throw"](value));
3399      } catch (e) {
3400        reject(e);
3401      }
3402    }
3403    function step(result) {
3404      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
3405    }
3406    step((generator = generator.apply(thisArg, _arguments || [])).next());
3407  });
3408};
3409var __generator = undefined && undefined.__generator || function (thisArg, body) {
3410  var _ = {
3411      label: 0,
3412      sent: function sent() {
3413        if (t[0] & 1) throw t[1];
3414        return t[1];
3415      },
3416      trys: [],
3417      ops: []
3418    },
3419    f,
3420    y,
3421    t,
3422    g;
3423  return g = {
3424    next: verb(0),
3425    "throw": verb(1),
3426    "return": verb(2)
3427  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
3428    return this;
3429  }), g;
3430  function verb(n) {
3431    return function (v) {
3432      return step([n, v]);
3433    };
3434  }
3435  function step(op) {
3436    if (f) throw new TypeError("Generator is already executing.");
3437    while (g && (g = 0, op[0] && (_ = 0)), _) try {
3438      if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
3439      if (y = 0, t) op = [op[0] & 2, t.value];
3440      switch (op[0]) {
3441        case 0:
3442        case 1:
3443          t = op;
3444          break;
3445        case 4:
3446          _.label++;
3447          return {
3448            value: op[1],
3449            done: false
3450          };
3451        case 5:
3452          _.label++;
3453          y = op[1];
3454          op = [0];
3455          continue;
3456        case 7:
3457          op = _.ops.pop();
3458          _.trys.pop();
3459          continue;
3460        default:
3461          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
3462            _ = 0;
3463            continue;
3464          }
3465          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
3466            _.label = op[1];
3467            break;
3468          }
3469          if (op[0] === 6 && _.label < t[1]) {
3470            _.label = t[1];
3471            t = op;
3472            break;
3473          }
3474          if (t && _.label < t[2]) {
3475            _.label = t[2];
3476            _.ops.push(op);
3477            break;
3478          }
3479          if (t[2]) _.ops.pop();
3480          _.trys.pop();
3481          continue;
3482      }
3483      op = body.call(thisArg, _);
3484    } catch (e) {
3485      op = [6, e];
3486      y = 0;
3487    } finally {
3488      f = t = 0;
3489    }
3490    if (op[0] & 5) throw op[1];
3491    return {
3492      value: op[0] ? op[1] : void 0,
3493      done: true
3494    };
3495  }
3496};
3497var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
3498  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
3499    if (ar || !(i in from)) {
3500      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
3501      ar[i] = from[i];
3502    }
3503  }
3504  return to.concat(ar || Array.prototype.slice.call(from));
3505};
3506
3507
3508
3509
3510
3511
3512
3513
3514var isHome = function isHome(path) {
3515  return ['/home.html', '/index.html', '/'].includes(path);
3516};
3517function getNextFiveMinuteIntervalUTC() {
3518  var now = new Date();
3519  var currentMinutes = now.getUTCMinutes();
3520  var currentSeconds = now.getUTCSeconds();
3521  var currentMilliseconds = now.getUTCMilliseconds();
3522  var intervals = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55];
3523  var nextInterval;
3524  if (currentMinutes % 5 === 0) {
3525    if (currentSeconds === 0 && currentMilliseconds === 0) {
3526      nextInterval = intervals.find(function (interval) {
3527        return interval > currentMinutes;
3528      });
3529    } else {
3530      nextInterval = currentMinutes + 5;
3531    }
3532  } else {
3533    nextInterval = intervals.find(function (interval) {
3534      return interval > currentMinutes;
3535    });
3536  }
3537  if (nextInterval === undefined || nextInterval >= 60) {
3538    var nextHour = new Date(now);
3539    nextHour.setUTCHours(nextHour.getUTCHours() + 1);
3540    nextHour.setUTCMinutes(0);
3541    nextHour.setUTCSeconds(0);
3542    nextHour.setUTCMilliseconds(0);
3543    return nextHour.getTime() - now.getTime();
3544  }
3545  var nextTime = new Date(now);
3546  nextTime.setUTCMinutes(nextInterval);
3547  nextTime.setUTCSeconds(0);
3548  nextTime.setUTCMilliseconds(0);
3549  return nextTime.getTime() - now.getTime();
3550}
3551var SiteCheck = function () {
3552  function SiteCheck(_a) {
3553    var getDomainByUrl = _a.getDomainByUrl,
3554      _b = _a.ctx,
3555      ctx = _b === void 0 ? undefined : _b,
3556      _c = _a.host,
3557      host = _c === void 0 ? '' : _c,
3558      _d = _a.path,
3559      path = _d === void 0 ? '' : _d,
3560      _e = _a.cacheConfig,
3561      cacheConfig = _e === void 0 ? undefined : _e,
3562      _f = _a.customConfig,
3563      customConfig = _f === void 0 ? {} : _f,
3564      _g = _a.specifyVisible,
3565      specifyVisible = _g === void 0 ? '' : _g;
3566    this.modules = {};
3567    this.datas = {};
3568    this.cacheConfig = undefined;
3569    this.customConfig = {};
3570    this.host = '';
3571    this.path = '';
3572    this.totalSiteConfig = undefined;
3573    if (_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) {
3574      var _h = window.SITE_CHECK_DATA || {},
3575        datas = _h.datas,
3576        modules = _h.modules;
3577      this.datas = datas;
3578      this.modules = modules;
3579    } else if (typeof ctx !== 'undefined') {
3580      var _j = ctx.SITE_CHECK_DATA || {},
3581        datas = _j.datas,
3582        modules = _j.modules;
3583      this.datas = datas;
3584      this.modules = modules;
3585    }
3586    if (_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) {
3587      var showMessage = js_cookie__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A.get('SHOWMESSAGE');
3588      host = host ? host : location.host;
3589      if ((showMessage === null || showMessage === void 0 ? void 0 : showMessage.indexOf('Q')) > -1 && host.indexOf('qkfulfill') > -1) {
3590        host = 'qkfulfill-vp.com';
3591      }
3592      if (!path) path = location.hash ? location.hash : location.pathname;
3593    }
3594    if (path.indexOf('/product/') > -1) path = '/product';
3595    if (isHome(path)) path = '/home';
3596    this.getDomainByUrl = getDomainByUrl;
3597    this.cacheConfig = cacheConfig;
3598    this.customConfig = customConfig;
3599    this.path = path;
3600    this.host = host;
3601    this.specifyVisible = specifyVisible;
3602    this.get.bind(this);
3603  }
3604  SiteCheck.prototype.getProjectConfigurations = function () {
3605    var _a, _b;
3606    return __awaiter(this, void 0, Promise, function () {
3607      var host, url, cacheKey, cached, error_1, axios, _c, error, res, result, message, cached, error_2, expireTime, error_3;
3608      return __generator(this, function (_d) {
3609        switch (_d.label) {
3610          case 0:
3611            host = this.host;
3612            url = 'affiliate-center-web/websiteConfig/pageConfiguration';
3613            cacheKey = "project_configuration_".concat(host);
3614            if (!_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) return [3, 4];
3615            _d.label = 1;
3616          case 1:
3617            _d.trys.push([1, 3,, 4]);
3618            return [4, _dexie_cache__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A.getCache({
3619              key: cacheKey,
3620              deleteExpiredCache: false
3621            })];
3622          case 2:
3623            cached = _d.sent();
3624            if (cached) {
3625              console.log("\u4ECE Dexie \u7F13\u5B58\u83B7\u53D6\u7AD9\u70B9\u914D\u7F6E: ".concat(host));
3626              return [2, cached.data];
3627            }
3628            return [3, 4];
3629          case 3:
3630            error_1 = _d.sent();
3631            console.warn('读取 Dexie 缓存失败,继续请求接口:', error_1);
3632            return [3, 4];
3633          case 4:
3634            axios = (0,_common_request__WEBPACK_IMPORTED_MODULE_1__/* .createInstance */ .Q)('', this.getDomainByUrl);
3635            return [4, axios({
3636              url: url,
3637              method: 'POST',
3638              data: {
3639                domain: host
3640              },
3641              headers: {}
3642            })];
3643          case 5:
3644            _c = _d.sent(), error = _c[0], res = _c[1];
3645            if (!(res === null || res === void 0 ? void 0 : res.data)) return [3, 6];
3646            result = __assign({}, (res === null || res === void 0 ? void 0 : res.data) || _const_site_config_cj__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A);
3647            return [3, 12];
3648          case 6:
3649            if (error || !(res === null || res === void 0 ? void 0 : res.success)) {
3650              message = ((_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) || JSON.stringify(res);
3651              _const_site_config_cj__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.common.__config_error__ = {
3652                message: "[".concat(error ? (_b = error === null || error === void 0 ? void 0 : error.response) === null || _b === void 0 ? void 0 : _b.status : 200, "] ").concat(url, " ").concat(message || '')
3653              };
3654            }
3655            if (!_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) return [3, 11];
3656            _d.label = 7;
3657          case 7:
3658            _d.trys.push([7, 9,, 10]);
3659            return [4, _dexie_cache__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A.getCache({
3660              key: cacheKey,
3661              deleteExpiredCache: false,
3662              getExpiredCache: true
3663            })];
3664          case 8:
3665            cached = _d.sent();
3666            if (cached) {
3667              return [2, cached.data];
3668            }
3669            return [3, 10];
3670          case 9:
3671            error_2 = _d.sent();
3672            result = __assign({}, _const_site_config_cj__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A);
3673            return [3, 10];
3674          case 10:
3675            return [3, 12];
3676          case 11:
3677            result = __assign({}, _const_site_config_cj__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A);
3678            _d.label = 12;
3679          case 12:
3680            if (!(_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd && (res === null || res === void 0 ? void 0 : res.data))) return [3, 17];
3681            _d.label = 13;
3682          case 13:
3683            _d.trys.push([13, 16,, 17]);
3684            return [4, _dexie_cache__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A.deleteCache({
3685              key: cacheKey
3686            })];
3687          case 14:
3688            _d.sent();
3689            expireTime = getNextFiveMinuteIntervalUTC();
3690            return [4, _dexie_cache__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A.setCac
3690he({
3691              key: cacheKey,
3692              data: result,
3693              expireTime: expireTime
3694            })];
3695          case 15:
3696            _d.sent();
3697            return [3, 17];
3698          case 16:
3699            error_3 = _d.sent();
3700            console.warn('保存 Dexie 缓存失败:', error_3);
3701            return [3, 17];
3702          case 17:
3703            return [2, result];
3704        }
3705      });
3706    });
3707  };
3708  SiteCheck.prototype.getProjectConfigurationAll = function (_a) {
3709    var _b = _a.pageNum,
3710      pageNum = _b === void 0 ? 1 : _b;
3711    return __awaiter(this, void 0, Promise, function () {
3712      var axios;
3713      return __generator(this, function (_c) {
3714        axios = (0,_common_request__WEBPACK_IMPORTED_MODULE_1__/* .createInstance */ .Q)('', this.getDomainByUrl);
3715        return [2, new Promise(function (resolve) {
3716          axios({
3717            url: 'affiliate-center-web/websiteConfig/allPageConfiguration',
3718            method: 'POST',
3719            data: {
3720              pageNum: pageNum,
3721              pageSize: 100
3722            }
3723          }).then(function (_a) {
3724            var res = _a[1];
3725            if (res) {
3726              resolve(res);
3727              return;
3728            }
3729            resolve({});
3730          });
3731        })];
3732      });
3733    });
3734  };
3735  SiteCheck.prototype.init = function () {
3736    var _a;
3737    return __awaiter(this, void 0, void 0, function () {
3738      var project_configuration;
3739      return __generator(this, function (_b) {
3740        switch (_b.label) {
3741          case 0:
3742            project_configuration = this.cacheConfig || {};
3743            if (!(!this.cacheConfig && !this.totalSiteConfig)) return [3, 2];
3744            return [4, this.getProjectConfigurations()];
3745          case 1:
3746            project_configuration = _b.sent();
3747            _b.label = 2;
3748          case 2:
3749            if (String(this.specifyVisible) === '0' && ((_a = project_configuration === null || project_configuration === void 0 ? void 0 : project_configuration.common) === null || _a === void 0 ? void 0 : _a.name) === 'VP') {
3750              project_configuration = deepmerge__WEBPACK_IMPORTED_MODULE_5___default()(project_configuration, _check_site_vp_menu__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A);
3751            }
3752            return [2, this.processData(project_configuration, this.path)];
3753        }
3754      });
3755    });
3756  };
3757  SiteCheck.prototype.processData = function (config, path) {
3758    var _a;
3759    var customConfig = this.customConfig;
3760    var mergeConfig = deepmerge__WEBPACK_IMPORTED_MODULE_5___default()(config, customConfig);
3761    if (!this.totalSiteConfig) {
3762      this.totalSiteConfig = mergeConfig;
3763    }
3764    var matchConfig = Object.keys(mergeConfig).reduce(function (a, b) {
3765      var reg = new RegExp("^".concat(b));
3766      if (reg.test(path) && mergeConfig[b]) {
3767        return __spreadArray(__spreadArray([], a, true), [mergeConfig[b]], false);
3768      }
3769      return a;
3770    }, []);
3771    var modules = __assign(__assign({}, ((_a = mergeConfig === null || mergeConfig === void 0 ? void 0 : mergeConfig.common) === null || _a === void 0 ? void 0 : _a.module) || {}), matchConfig.reduce(function (a, b) {
3772      return __assign(__assign({}, a), (b === null || b === void 0 ? void 0 : b.module) || {});
3773    }, {}));
3774    var combineMoudule = Object.keys(modules).reduce(function (p, key) {
3775      var value = modules[key];
3776      if (_typeof(value) === 'object') {
3777        Object.keys(value).forEach(function (k) {
3778          var val = value[k];
3779          if (_typeof(val) === 'object') {
3780            Object.keys(val).forEach(function (kk) {
3781              p[key + '-' + k + '-' + kk] = val[kk];
3782            });
3783          } else {
3784            p[key + '-' + k] = value[k];
3785          }
3786        });
3787      } else {
3788        p[key] = value;
3789      }
3790      return p;
3791    }, {});
3792    var data = deepmerge__WEBPACK_IMPORTED_MODULE_5___default()(mergeConfig.common || {}, matchConfig.reduce(function (a, b) {
3793      return __assign(__assign({}, a), b);
3794    }, {}));
3795    delete data.module;
3796    this.datas = __assign({}, data);
3797    this.modules = __assign({}, combineMoudule);
3798    var combine = {
3799      modules: __assign({}, combineMoudule),
3800      datas: __assign({}, data)
3801    };
3802    if (_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) {
3803      window.SITE_CHECK_DATA = combine;
3804    }
3805    return combine;
3806  };
3807  SiteCheck.prototype.getCombine = function () {
3808    var res = this.handleNoData();
3809    return res;
3810  };
3811  SiteCheck.prototype.handleNoData = function () {
3812    var datas = this.datas || {};
3813    var modules = this.modules || {};
3814    if (Object.keys(datas).length <= 0) {
3815      var res = this.processData(_const_site_config_cj__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A, '/home');
3816      return res;
3817    }
3818    return {
3819      datas: datas,
3820      modules: modules
3821    };
3822  };
3823  SiteCheck.prototype.isShow = function (code) {
3824    var modules = this.handleNoData().modules;
3825    var key = code.replace(/ /g, '-').toLocaleLowerCase() || '';
3826    if (typeof (modules === null || modules === void 0 ? void 0 : modules[key]) === 'undefined') {
3827      return true;
3828    }
3829    return modules === null || modules === void 0 ? void 0 : modules[key];
3830  };
3831  SiteCheck.prototype.getData = function (code) {
3832    var datas = this.handleNoData().datas;
3833    var key = code.replace(/ /g, '-').toLocaleLowerCase() || '';
3834    if (code === 'site') {
3835      return null;
3836    }
3837    return datas === null || datas === void 0 ? void 0 : datas[key];
3838  };
3839  SiteCheck.prototype.getSource = function (code) {
3840    var datas = this.handleNoData().datas;
3841    var dname = datas['source-name'] || datas.name;
3842    var name = datas.path || String(dname).toLocaleLowerCase();
3843    var url = _oss_controller__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Ay.join((0,_oss_controller__WEBPACK_IMPORTED_MODULE_4__/* .createConfigResource */ .vY)(name, code));
3844    return url;
3845  };
3846  SiteCheck.prototype.isSite = function () {
3847    var codes = [];
3848    for (var _i = 0; _i < arguments.length; _i++) {
3849      codes[_i] = arguments[_i];
3850    }
3851    try {
3852      var datas_1 = this.handleNoData().datas;
3853      return !!codes.find(function (c) {
3854        return c === (datas_1 === null || datas_1 === void 0 ? void 0 : datas_1.site);
3855      });
3856    } catch (e) {
3857      return false;
3858    }
3859  };
3860  SiteCheck.prototype.get = function () {
3861    return {
3862      data: this.getData.bind(this),
3863      isShow: this.isShow.bind(this),
3864      source: this.getSource.bind(this),
3865      isSite: this.isSite.bind(this),
3866      refreshConfig: this.processData.bind(this)
3867    };
3868  };
3869  return SiteCheck;
3870}();
3871/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SiteCheck);
3872
3873/***/ }),
3874
3875/***/ 27982:
3876/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3877
3878"use strict";
3879/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3880/* harmony export */   A: () => (/* binding */ Mask)
3881/* harmony export */ });
3882/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89575);
3883/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(53373);
3884/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
3885/* harmony import */ var rc_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3251);
3886/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15442);
3887/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
3888
3889
3890
3891
3892function Mask(props) {
3893  var prefixCls = props.prefixCls,
3894    open = props.open,
3895    zIndex = props.zIndex,
3896    mask = props.mask,
3897    motion = props.motion;
3898  if (!mask) {
3899    return null;
3900  }
3901  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement(rc_motion__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, motion, {
3902    motionAppear: true,
3903    visible: open,
3904    removeOnLeave: true
3905  }), function (_ref) {
3906    var className = _ref.className;
3907    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3__.createElement("div", {
3908      style: {
3909        zIndex: zIndex
3910      },
3911      className: classnames__WEBPACK_IMPORTED_MODULE_1___default()("".concat(prefixCls, "-mask"), className)
3912    });
3913  });
3914}
3915
3916/***/ }),
3917
3918/***/ 27985:
3919/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
3920
3921"use strict";
3922/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3923/* harmony export */   A: () => (/* binding */ _unsupportedIterableToArray)
3924/* harmony export */ });
3925/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86284);
3926
3927function _unsupportedIterableToArray(r, a) {
3928  if (r) {
3929    if ("string" == typeof r) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(r, a);
3930    var t = {}.toString.call(r).slice(8, -1);
3931    return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(r, a) : void 0;
3932  }
3933}
3934
3935
3936/***/ }),
3937
3938/***/ 28299:
3939/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3940
3941"use strict";
3942/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3943/* harmony export */   Ay: () => (/* binding */ findDOMNode),
3944/* harmony export */   fk: () => (/* binding */ isDOM)
3945/* harmony export */ });
3946/* unused harmony export getDOM */
3947/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17545);
3948/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
3949/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
3950/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(56003);
3951/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_2__);
3952
3953
3954
3955function isDOM(node) {
3956  // https://developer.mozilla.org/en-US/docs/Web/API/Element
3957  // Since XULElement is also subclass of Element, we only need HTMLElement and SVGElement
3958  return node instanceof HTMLElement || node instanceof SVGElement;
3959}
3960
3961/**
3962 * Retrieves a DOM node via a ref, and does not invoke `findDOMNode`.
3963 */
3964function getDOM(node) {
3965  if (node && (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(node) === 'object' && isDOM(node.nativeElement)) {
3966    return node.nativeElement;
3967  }
3968  if (isDOM(node)) {
3969    return node;
3970  }
3971  return null;
3972}
3973
3974/**
3975 * Return if a node is a DOM node. Else will return by `findDOMNode`
3976 */
3977function findDOMNode(node) {
3978  var domNode = getDOM(node);
3979  if (domNode) {
3980    return domNode;
3981  }
3982  if (node instanceof (react__WEBPACK_IMPORTED_MODULE_1___default().Component)) {
3983    var _ReactDOM$findDOMNode;
3984    return (_ReactDOM$findDOMNode = (react_dom__WEBPACK_IMPORTED_MODULE_2___default().findDOMNode)) === null || _ReactDOM$findDOMNode === void 0 ? void 0 : _ReactDOM$findDOMNode.call((react_dom__WEBPACK_IMPORTED_MODULE_2___default()), node);
3985  }
3986  return null;
3987}
3988
3989/***/ }),
3990
3991/***/ 29005:
3992/***/ ((module) => {
3993
3994/** Used for built-in method references. */
3995var objectProto = Object.prototype;
3996
3997/**
3998 * Used to resolve the
3999 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
4000 * of values.
4001 */
4002var nativeObjectToString = objectProto.toString;
4003
4004/**
4005 * Converts `value` to a string using `Object.prototype.toString`.
4006 *
4007 * @private
4008 * @param {*} value The value to convert.
4009 * @returns {string} Returns the converted string.
4010 */
4011function objectToString(value) {
4012  return nativeObjectToString.call(value);
4013}
4014
4015module.exports = objectToString;
4016
4017
4018/***/ }),
4019
4020/***/ 29296:
4021/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
4022
4023"use strict";
4024/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4025/* harmony export */   A: () => (/* binding */ _inherits)
4026/* harmony export */ });
4027/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1087);
4028
4029function _inherits(t, e) {
4030  if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
4031  t.prototype = Object.create(e && e.prototype, {
4032    constructor: {
4033      value: t,
4034      writable: !0,
4035      configurable: !0
4036    }
4037  }), Object.defineProperty(t, "prototype", {
4038    writable: !1
4039  }), e && (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(t, e);
4040}
4041
4042
4043/***/ }),
4044
4045/***/ 30414:
4046/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
4047
4048"use strict";
4049/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4050/* harmony export */   A: () => (/* binding */ _createClass)
4051/* harmony export */ });
4052/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20205);
4053
4054function _defineProperties(e, r) {
4055  for (var t = 0; t < r.length; t++) {
4056    var o = r[t];
4057    o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(o.key), o);
4058  }
4059}
4060function _createClass(e, r, t) {
4061  return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
4062    writable: !1
4063  }), e;
4064}
4065
4066
4067/***/ }),
4068
4069/***/ 34511:
4070/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4071
4072"use strict";
4073/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4074/* harmony export */   A: () => (/* binding */ useMemo)
4075/* harmony export */ });
4076/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15442);
4077/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
4078
4079function useMemo(getValue, condition, shouldUpdate) {
4080  var cacheRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef({});
4081  if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {
4082    cacheRef.current.value = getValue();
4083    cacheRef.current.condition = condition;
4084  }
4085  return cacheRef.current.value;
4086}
4087
4088/***/ }),
4089
4090/***/ 34692:
4091/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4092
4093"use strict";
4094/* harmony export */ __webpack_require__.d(__webpack_exports__, {
4095/* harmony export */   Ay: () => (__WEBPACK_DEFAULT_EXPORT__),
4096/* harmony export */   DD: () => (/* binding */ menuPath),
4097/* harmony export */   T_: () => (/* binding */ menus),
4098/* harmony export */   Yn: () => (/* binding */ getPath),
4099/* harmony export */   fO: () => (/* binding */ isWarehouseOperationVideoUser),
4100/* harmony export */   mv: () => (/* binding */ isNewUser)
4101/* harmony export */ });
4102/* unused harmony export menuNames */
4103/* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3478);
4104/* harmony import */ var _common_platform_show__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(37597);
4105var __assign = undefined && undefined.__assign || function () {
4106  __assign = Object.assign || function (t) {
4107    for (var s, i = 1, n = arguments.length; i < n; i++) {
4108      s = arguments[i];
4109      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
4110    }
4111    return t;
4112  };
4113  return __assign.apply(this, arguments);
4114};
4115var _a, _b;
4116
4117
4118var isNewUser = ((_a = js_cookie__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get('SHOWMESSAGE')) === null || _a === void 0 ? void 0 : _a.indexOf('N')) > -1 || !js_cookie__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get('token');
4119var isWarehouseOperationVideoUser = function isWarehouseOperationVideoUser() {
4120  var _a;
4121  if (typeof window !== 'undefined') {
4122    var isQK = window.siteCheck.isSite('QK');
4123    var isSafeUser = String(js_cookie__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get('SHOWMESSAGE')).indexOf('Q') > -1;
4124    var isShowVideo = (_a = window.siteCheck) === null || _a === void 0 ? void 0 : _a.isShow('show-warehouse-video');
4125    if (isQK && !isSafeUser) return true;
4126    return !isShowVideo;
4127  } else {
4128    return true;
4129  }
4130};
4131var hideMyQuotationMenu = function hideMyQuotationMenu() {
4132  var _a, _b;
4133  var flag = true;
4134  if (typeof window !== 'undefined') {
4135    var cjNum = (_a = window === null || window === void 0 ? void 0 : window.loginInfoController) === null || _a === void 0 ? void 0 : _a.info('num');
4136    var users = ((_b = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _b === void 0 ? void 0 : _b.data('my-quotation-users')) || [];
4137    if (!users.includes('CJ10001')) {
4138      users.push('CJ10001');
4139    }
4140    flag = !users.includes(cjNum);
4141  }
4142  return flag;
4143};
4144var menus = [{
4145  name: 'Home',
4146  nameTrans: function nameTrans() {
4147    return "".concat(window.i18next.t("common-mycj-menu-home", 'Home'));
4148  },
4149  iconclass: 'home',
4150  active: false,
4151  code: 'mycj_dashboard',
4152  route: '/home',
4153  childs: []
4154}, {
4155  name: 'Source',
4156  nameTrans: function nameTrans() {
4157    return "".concat(window.i18next.t("common-mycj-menu-source", 'Source'));
4158  },
4159  iconclass: 'cedaohang-soupin',
4160  active: false,
4161  childs: [{
4162    name: 'Find Products',
4163    nameTrans: function nameTrans() {
4164      return "".concat(window.i18next.t("common-mycj-menu-products", 'Products'));
4165    },
4166    active: false,
4167    childs: [{
4168      name: 'Intelligence',
4169      nameTrans: function nameTrans() {
4170        return "".concat(window.i18next.t("common-mycj-menu-intelligence", 'Intelligence'));
4171      },
4172      route: '/intelligence/ad-trends',
4173      active: false
4174    }, {
4175      name: 'Catalog',
4176      nameTrans: function nameTrans() {
4177        return "".concat(window.i18next.t("common-mycj-menu-intelligence-catalog", 'Catalog'));
4178      },
4179      route: '/home.html',
4180      active: false
4181    }]
4182  }, {
4183    name: 'Factories',
4184    nameTrans: function nameTrans() {
4185      return "".concat(window.i18next.t("common-mycj-menu-find-factories", 'Factories'));
4186    },
4187    route: '/factories',
4188    trackingClick: '{"elementId":"NCJ001-223","actionType":"suppliers_click","pageCode":"NCJ001"}'
4189  }, {
4190    name: 'Brands',
4191    nameTrans: function nameTrans() {
4192      return "".concat(window.i18next.t("common-mycj-menu-brands", 'Brands'));
4193    },
4194    route: 'https://selected.cjdropshipping.com/',
4195    active: false
4196  }, {
4197    name: 'Sourcing',
4198    nameTrans: function nameTrans() {
4199      return "".concat(window.i18next.t("common-mycj-menu-sourcing"));
4200    },
4201    active: false,
4202    tip: function tip() {
4203      return window.i18next.t("common-mycj-menu-sourcing-tip");
4204    },
4205    childs: [{
4206      name: 'Sourcing List',
4207      nameTrans: function nameTrans() {
4208        return "".concat(window.i18next.t("common-mycj-menu-sourcing-list"));
4209      },
4210      code: 'mycj_sourcing',
4211      route: '/mine/sourcing/list',
4212      active: false
4213    }, {
4214      name: 'By CJ',
4215      nameTrans: function nameTrans() {
4216        return 'By CJ';
4217      },
4218      route: '/mine/quickSourcing',
4219      active: false
4220    }, {
4221      name: 'By 1688',
4222      nameTrans: function nameTrans() {
4223        return 'By 1688';
4224      },
4225      route: 'https://www.1688.com/',
4226      target: '_blank',
4227      requireExtension: true,
4228      active: false
4229    }, {
4230      name: 'By TaoBao',
4231      nameTrans: function nameTrans() {
4232        return 'By TaoBao';
4233      },
4234      route: 'https://www.taobao.com/',
4235      target: '_blank',
4236      requireExtension: true,
4237      active: false
4238    }, {
4239      name: 'By AliExpress',
4240      nameTrans: function nameTrans() {
4241        return 'By AliExpress';
4242      },
4243      route: 'https://alitems.com/g/1e8d11449400282ca80416525dc3e8/',
4244      target: '_blank',
4245      requireExtension: true,
4246      active: false
4247    }, {
4248      name: 'By eBay',
4249      nameTrans: function nameTrans() {
4250        return 'By eBay';
4251      },
4252      route: 'https://www.ebay.com/',
4253      target: '_blank',
4254      requireExtension: true,
4255      active: false
4256    }, {
4257      name: 'By QK source',
4258      nameTrans: function nameTrans() {
4259        return 'By QK source';
4260      },
4261      route: 'https://qksource.com/mine/quickSourcing',
4262      target: '_blank',
4263      active: false
4264    }]
4265  }]
4266}, {
4267  name: 'Community',
4268  nameTrans: function nameTrans() {
4269    return "".concat(window.i18next.t("common-mycj-menu-community", 'Community'));
4270  },
4271  iconclass: 'Community',
4272  active: false,
4273  code: 'mycj_community',
4274  childs: [{
4275    name: 'Agents',
4276    nameTrans: function nameTrans() {
4277      return "".concat(window.i18next.t("common-mycj-menu-agent", 'Agents'));
4278    },
4279    active: false,
4280    route: '/agents'
4281  }, {
4282    name: 'Academy',
4283    nameTrans: function nameTrans() {
4284      return "".concat(window.i18next.t("common-mycj-menu-find-academy", 'Academy'));
4285    },
4286    route: '/mentors',
4287    active: false
4288  }, {
4289    name: 'Elites',
4290    nameTrans: function nameTrans() {
4291      return "".concat(window.i18next.t("common-mycj-menu-elites", 'Elites'));
4292    },
4293    target: '_blank',
4294    route: 'https://elites.cjdropshipping.com/',
4295    active: false
4296  }]
4297}, {
4298  name: 'My Products',
4299  nameTrans: function nameTrans() {
4300    return "".concat(window.i18next.t("common-mycj-menu-my-products", 'My Products'));
4301  },
4302  iconclass: 'bianzu62',
4303  active: false,
4304  code: 'mycj_products',
4305  childs: [{
4306    name: 'Added Products',
4307    nameTrans: function nameTrans() {
4308      return "".concat(window.i18next.t("common-mycj-menu-added-products", 'Added Products'));
4309    },
4310    code: 'mycj_my_products',
4311    route: '/mine/products/myproducts',
4312    active: false
4313  }, {
4314    name: 'Store Products',
4315    nameTrans: function nameTrans() {
4316      return "".concat(window.i18next.t("common-mycj-menu-store-products"));
4317    },
4318    code: 'mycj_store_products',
4319    route: '/mine/products/connection',
4320    active: false,
4321    tip: function tip() {
4322      return window.i18next.t("common-mycj-menu-store-products-tip");
4323    }
4324  }, {
4325    name: 'My Quotation',
4326    nameTrans: function nameTrans() {
4327      return "".concat(window.i18next.t("common-mycj-menu-my-quotation", 'My Quotation'));
4328    },
4329    code: 'mycj_my_quotation',
4330    route: '/mine/myQuotation',
4331    active: false,
4332    isHide: hideMyQuotationMenu,
4333    tip: function tip() {
4334      return window.i18next.t("common-mycj-menu-my-quotation-tip", 'Check the final logistics PCS price applied at checkout.');
4335    }
4336  }, {
4337    name: 'My Inventory',
4338    nameTrans: function nameTrans() {
4339      return "".concat(window.i18next.t("common-mycj-menu-my-inventory"));
4340    },
4341    code: 'mycj_my_inventory',
4342    route: '/mine/myInventoryNew/productInventory',
4343    active: false,
4344    tip: function tip() {
4345      return window.i18next.t("common-mycj-menu-my-inventory-tip");
4346    }
4347  }, {
4348    name: 'Inventory Planner',
4349    nameTrans: function nameTrans() {
4350      return "".concat(window.i18next.t("common-mycj-menu-inventory-planner", 'Inventory Planner'));
4351    },
4352    code: 'mycj_inventory_planner',
4353    route: '/mine/inventoryPlanner',
4354    active: false
4355  }, {
4356    name: 'Custom Packaging',
4357    nameTrans: function nameTrans() {
4358      return "".concat(window.i18next.t("common-mycj-menu-custom-packaging"));
4359    },
4360    code: 'mycj_custom_packaging',
4361    route: '/my.html#/regular-packaging',
4362    active: false,
4363    tip: function tip() {
4364      return window.i18next.t("common-mycj-menu-custom-packaging-tip");
4365    }
4366  }, {
4367    name: 'Customization',
4368    nameTrans: function nameTrans() {
4369      return "".concat(window.i18next.t("common-mycj-menu-customization"));
4370    },
4371    code: 'mycj_customization',
4372    route: '/mine/customization',
4373    active: false,
4374    tip: function tip() {
4375      var _a;
4376      return window.i18next.t("common-mycj-menu-customization-tip", {
4377        siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
4378      });
4379    }
4380  }]
4381}, {
4382  name: 'Cart',
4383  nameTrans: function nameTrans() {
4384    return "".concat(window.i18next.t("common-mycj-menu-cart"));
4385  },
4386  iconclass: 'bianzu51',
4387  active: false,
4388  route: '/mine/purchase/purchaseCart',
4389  childs: [],
4390  code: 'mycj_cart'
4391}, {
4392  name: 'Orders',
4393  nameTrans: function nameTrans() {
4394    return "".concat(window.i18next.t("common-mycj-menu-orders"));
4395  },
4396  iconclass: 'bianzu41',
4397  active: false,
4398  code: 'mycj_orders',
4399  childs: [{
4400    name: 'Store Orders',
4401    nameTrans: function nameTrans() {
4402      return "".concat(window.i18next.t("common-mycj-menu-store-orders"));
4403    },
4404    active: false,
4405    code: 'mycj_store_orders',
4406    route: '/mine/dropshipping/orderList?orderType=3&childType=1'
4407  }, {
4408    name: 'Sample Orders',
4409    nameTrans: function nameTrans() {
4410      return "".concat(window.i18next.t("common-mycj-menu-sample-orders"));
4411    },
4412    active: false,
4413    code: 'mycj_sample_orders',
4414    route: '/mine/purchase/purchaseList?orderType=1'
4415  }, {
4416    name: 'Wholesale Orders',
4417    nameTrans: function nameTrans() {
4418      return "".concat(window.i18next.t("common-mycj-menu-wholesale-orders"));
4419    },
4420    active: false,
4421    code: 'mycj_wholesale_orders',
4422    route: '/mine/purchase/purchaseList?orderType=3'
4423  }, {
4424    name: 'Inventory Orders',
4425    nameTrans: function nameTrans() {
4426      return "".concat(window.i18next.t("common-mycj-menu-inventory-orders"));
4427    },
4428    active: false,
4429    code: 'mycj_inventory_orders',
4430    route: '/mine/purchase/purchaseList?orderType=2'
4431  }, {
4432    name: '---',
4433    isDivider: true
4434  }, {
4435    name: 'Order Fulfillment',
4436    nameTrans: function nameTrans() {
4437      return "".concat(window.i18next.t("common-mycj-menu-order-fulfillment", 'Order Fulfillment'));
4438    },
4439    active: false,
4440    childs: [{
4441      name: 'Fulfillment Status',
4442      nameTrans: function nameTrans() {
4443        return "".concat(window.i18next.t("common-mycj-menu-fulfillment-status"));
4444      },
4445      code: 'mycj_orders_tracking',
4446      route: '/mine/orderTracing/list',
4447      active: false
4448    }, {
4449      name: 'Warehouse Operation Video',
4450      nameTrans: function nameTrans() {
4451        return "".concat(window.i18next.t("common-mycj-menu-order-list-video"));
4452      },
4453      code: 'mycj_order-video',
4454      route: '/mine/orderVideo',
4455      active: false,
4456      isHide: isWarehouseOperationVideoUser
4457    }]
4458  }, {
4459    name: 'Undelivered Orders',
4460    nameTrans: function nameTrans() {
4461      return "".concat(window.i18next.t("common-mycj-menu-undelivered-orders"));
4462    },
4463    code: 'mycj_undelivered_orders',
4464    route: '/mine/undeliveredOrder',
4465    active: false
4466  }, {
4467    name: 'Disputes',
4468    nameTrans: function nameTrans() {
4469      return "".concat(window.i18next.t("common-mycj-menu-disputes"));
4470    },
4471    code: 'mycj_disputes',
4472    route: '/mine/dispute/list',
4473    active: false
4474  }]
4475}, {
4476  name: 'Service',
4477  nameTrans: function nameTrans() {
4478    return "".concat(window.i18next.t("common-mycj-menu-service"));
4479  },
4480  iconclass: 'bianzu71',
4481  active: false,
4482  code: 'mycj_service',
4483  childs: [{
4484    name: 'Print on Demand',
4485    nameTrans: function nameTrans() {
4486      return "".concat(window.i18next.t("common-mycj-menu-print-on-demand"));
4487    },
4488    code: 'mycj_print_on_demand',
4489    active: false,
4490    tip: function tip() {
4491      return window.i18next.t("common-mycj-menu-print-on-demand-tip");
4492    },
4493    childs: [{
4494      name: 'POD Products',
4495      nameTrans: function nameTrans() {
4496        return "".concat(window.i18next.t("common-mycj-menu-pod-products"));
4497      },
4498      route: '/printonDemand/home',
4499      active: false
4500    }, {
4501      name: "Buyer's Design",
4502      nameTrans: function nameTrans() {
4503        return "".concat(window.i18next.t("common-mycj-menu-buyers-design"));
4504      },
4505      iconclass: 'maijiaxinxi',
4506      code: 'mycj_buyers_design',
4507      route: '/my.html#/pod/buyer-design',
4508      active: false,
4509      tipName: 'Connected POD products in your store.'
4510    }, {
4511      name: 'Design Myself',
4512      nameTrans: function nameTrans() {
4513        return "".concat(window.i18next.t("common-mycj-menu-design-myself"));
4514      },
4515      iconclass: 'maijiazhongxin_chanpinkumingjiangku',
4516      code: 'mycj_design_myself',
4517      route: '/my.html#/pod/design-myself',
4518      active: false,
4519      tipName: 'Your designed products on CJ.'
4520    }]
4521  }, {
4522    name: '3PL Fulfillment',
4523    nameTrans: function nameTrans() {
4524      return "".concat(window.i18next.t("common-mycj-menu-3pl"));
4525    },
4526    code: 'mycj_3pl',
4527    active: false,
4528    tip: function tip() {
4529      var _a;
4530      return window.i18next.t("common-mycj-menu-3pl-tip", {
4531        siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
4532      });
4533    },
4534    childs: [{
4535      name: 'Products',
4536      nameTrans: function nameTrans() {
4537        return "".concat(window.i18next.t("common-mycj-menu-products"));
4538      },
4539      code: 'mycj_3pl_products',
4540      route: '/my.html#/products-connection/goods',
4541      active: false
4542    }, {
4543      name: 'Shipment',
4544      nameTrans: function nameTrans() {
4545        return "".concat(window.i18next.t("common-mycj-menu-shipment"));
4546      },
4547      code: 'mycj_3pl_shipment',
4548      route: '/mine/shipment',
4549      active: false
4550    }, {
4551      name: '24h Fulfillment',
4552      nameTrans: function nameTrans() {
4553        return "".concat(window.i18next.t("common-mycj-menu-24h-fulfillment", '24h Fulfillment'));
4554      },
4555      code: 'mycj_24h_fulfillment',
4556      route: '/fulfillmentservice',
4557      active: false
4558    }]
4559  }, {
4560    name: 'Buy/Sell Your Store',
4561    nameTrans: function nameTrans() {
4562      return "".concat(window.i18next.t("common-mycj-menu-buy-sell-yourstore", 'Buy/Sell Your Store'));
4563    },
4564    route: 'https://blog.cjdropshipping.com/detail/Sell-Your-Shopify-Store-for-Cash-Today-',
4565    target: '_blank',
4566    active: false,
4567    childs: []
4568  }, {
4569    name: 'Payment Agency',
4570    nameTrans: function nameTrans() {
4571      return "".concat(window.i18next.t("common-mycj-menu-payment-agency", 'Payment Agency'));
4572    },
4573    route: '/payment-agency',
4574    target: '_blank',
4575    active: false,
4576    childs: []
4577  }, {
4578    name: 'Credit Service',
4579    nameTrans: function nameTrans() {
4580      return "".concat(window.i18next.t("common-mycj-menu-credit-service", 'Credit Service'));
4581    },
4582    route: '/loancredit',
4583    target: '_blank',
4584    active: false,
4585    childs: []
4586  }, {
4587    name: 'Faster Shipping Service',
4588    nameTrans: function nameTrans() {
4589      return "".concat(window.i18next.t("common-mycj-menu-fast-shipping", 'Faster Shipping Service'));
4590    },
4591    route: '/logistics',
4592    target: '_blank',
4593    active: false,
4594    childs: []
4595  }, {
4596    name: 'Advertiser Agency',
4597    nameTrans: function nameTrans() {
4598      return "".concat(window.i18next.t("common-mycj-menu-advertiser-agency", 'Advertiser Agency'));
4599    },
4600    route: '/advertisingservice',
4601    target: '_blank',
4602    active: false,
4603    childs: []
4604  }, {
4605    name: 'Profit Operator',
4606    nameTrans: function nameTrans() {
4607      return "".concat(window.i18next.t("common-mycj-menu-profit-operator", 'Profit Operator'));
4608    },
4609    route: '/free-temu-tiktok-stores',
4610    target: '_blank',
4611    active: false,
4612    childs: []
4613  }, {
4614    name: 'CJ Entity',
4615    nameTrans: function nameTrans() {
4616      return "".concat(window.i18next.t("common-mycj-menu-cj-entity", 'CJ Entity'));
4617    },
4618    route: '/cj-entity',
4619    target: '_blank',
4620    active: false,
4621    childs: []
4622  }, {
4623    name: 'ODM Service',
4624    nameTrans: function nameTrans() {
4625      return "".concat(window.i18next.t("common-mycj-menu-odm", 'ODM Service'));
4626    },
4627    route: '/odm',
4628    target: '_blank',
4629    active: false,
4630    childs: []
4631  }, {
4632    name: 'Brand Packaging',
4633    nameTrans: function nameTrans() {
4634      return "".concat(window.i18next.t("common-mycj-menu-brand-packaging", 'Brand Packaging'));
4635    },
4636    route: '/customPackaging',
4637    target: '_blank',
4638    active: false,
4639    childs: []
4640  }]
4641}, {
4642  name: 'Authorization',
4643  nameTrans: function nameTrans() {
4644    return "".concat(window.i18next.t("common-mycj-menu-authorization-new", 'Apps'));
4645  },
4646  iconclass: 'dianpushouquan',
4647  active: false,
4648  special: true,
4649  code: 'mycj_authorization',
4650  childs: [__assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.shopify), {
4651    nameTrans: function nameTrans() {
4652      return "".concat(window.i18next.t("common-mycj-menu-shopify"));
4653    },
4654    version: 2,
4655    active: false
4656  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.wed2c), {
4657    nameTrans: function nameTrans() {
4658      return "".concat(window.i18next.t("common-mycj-menu-wed2c"));
4659    },
4660    version: 2,
4661    active: false
4662  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.temu), {
4663    nameTrans: function nameTrans() {
4664      return "".concat(window.i18next.t("common-mycj-menu-temu"));
4665    },
4666    version: 2,
4667    type: 'authorize',
4668    active: false
4669  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.temu_us_local), {
4670    nameTrans: function nameTrans() {
4671      return "".concat(window.i18next.t("common-mycj-menu-temu-us-local"));
4672    },
4673    version: 2,
4674    type: 'authorize',
4675    active: false
4676  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.temu_certified_overseas), {
4677    nameTrans: function nameTrans() {
4678      return "".concat(window.i18next.t("common-mycj-menu-temu-certified-overseas"));
4679    },
4680    version: 2,
4681    type: 'authorize',
4682    active: false
4683  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.shein), {
4684    nameTrans: function nameTrans() {
4685      return "".concat(window.i18next.t("common-mycj-menu-shein"));
4686    },
4687    version: 2,
4688    type: 'authorize',
4689    active: false
4690  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.whop), {
4691    nameTrans: function nameTrans() {
4692      return "".concat(window.i18next.t("common-mycj-menu-whop", 'Whop'));
4693    },
4694    version: 2,
4695    type: 'authorize',
4696    active: false
4697  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.tiktok), {
4698    nameTrans: function nameTrans() {
4699      return "".concat(window.i18next.t("common-mycj-menu-tiktok"));
4700    },
4701    version: 2,
4702    type: 'authorize',
4703    active: false
4704  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.tiktok_us), {
4705    nameTrans: function nameTrans() {
4706      return "".concat(window.i18next.t("common-mycj-menu-tiktok-us"));
4707    },
4708    version: 2,
4709    type: 'authorize',
4710    active: false
4711  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.tiktok_us_cross), {
4712    nameTrans: function nameTrans() {
4713      return "".concat(window.i18next.t("common-mycj-menu-tiktok-us-cross"));
4714    },
4715    version: 2,
4716    type: 'authorize',
4717    active: false
4718  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.woocommerce), {
4719    nameTrans: function nameTrans() {
4720      return "".concat(window.i18next.t("common-mycj-menu-woocommerce"));
4721    },
4722    version: 2,
4723    type: 'authorize',
4724    active: false
4725  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.ebay), {
4726    nameTrans: function nameTrans() {
4727      return "".concat(window.i18next.t("common-mycj-menu-ebay"));
4728    },
4729    version: 2,
4730    type: 'authorize',
4731    active: false
4732  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.api), {
4733    nameTrans: function nameTrans() {
4734      return "".concat(window.i18next.t("common-mycj-menu-api"));
4735    },
4736    version: 2,
4737    type: 'authorize',
4738    active: false
4739  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.etsy), {
4740    nameTrans: function nameTrans() {
4741      return "".concat(window.i18next.t("common-mycj-menu-etsy"));
4742    },
4743    version: 2,
4744    type: 'authorize',
4745    active: false
4746  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.aliexpress), {
4747    nameTrans: function nameTrans() {
4748      return "".concat(window.i18next.t("common-mycj-menu-aliexpress"));
4749    },
4750    version: 2,
4751    type: 'authorize',
4752    active: false
4753  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.wix), {
4754    nameTrans: function nameTrans() {
4755      return "".concat(window.i18next.t("common-mycj-menu-wix"));
4756    },
4757    version: 2,
4758    type: 'authorize',
4759    active: false
4760  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.lazada), {
4761    nameTrans: function nameTrans() {
4762      return "".concat(window.i18next.t("common-mycj-menu-lazada"));
4763    },
4764    version: 2,
4765    type: 'authorize',
4766    active: false
4767  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.shopee), {
4768    nameTrans: function nameTrans() {
4769      return "".concat(window.i18next.t("common-mycj-menu-shopee"));
4770    },
4771    version: 2,
4772    type: 'authorize',
4773    active: false
4774  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.squarespace), {
4775    nameTrans: function nameTrans() {
4776      return "".concat(window.i18next.t("common-mycj-menu-squarespace"));
4777    },
4778    version: 2,
4779    type: 'authorize',
4780    active: false
4781  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.shoplazza), {
4782    nameTrans: function nameTrans() {
4783      return "".concat(window.i18next.t("common-mycj-menu-shoplazza"));
4784    },
4785    version: 2,
4786    type: 'authorize',
4787    active: false
4788  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.magento), {
4789    nameTrans: function nameTrans() {
4790      return "".concat(window.i18next.t("common-mycj-menu-magento"));
4791    },
4792    version: 2,
4793    type: 'authorize',
4794    active: false
4795  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.bigcommerce), {
4796    nameTrans: function nameTrans() {
4797      return "".concat(window.i18next.t("common-mycj-menu-bigcommerce"));
4798    },
4799    version: 2,
4800    type: 'authorize',
4801    active: false
4802  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.prestashop), {
4803    nameTrans: function nameTrans() {
4804      return "".concat(window.i18next.t("common-mycj-menu-prestashop"));
4805    },
4806    version: 2,
4807    type: 'authorize',
4808    active: false
4809  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.allvalue), {
4810    nameTrans: function nameTrans() {
4811      return "".concat(window.i18next.t("common-mycj-menu-allvalue"));
4812    },
4813    version: 2,
4814    type: 'authorize',
4815    active: false
4816  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.nuvemshop), {
4817    nameTrans: function nameTrans() {
4818      return "".concat(window.i18next.t("common-mycj-menu-nuvemshop"));
4819    },
4820    version: 2,
4821    type: 'authorize',
4822    active: false
4823  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.mercado), {
4824    nameTrans: function nameTrans() {
4825      return "".concat(window.i18next.t("common-mycj-menu-mercado"));
4826    },
4827    version: 2,
4828    type: 'authorize',
4829    active: false
4830  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.shipstation), {
4831    nameTrans: function nameTrans() {
4832      return "".concat(window.i18next.t("common-mycj-menu-shipstation"));
4833    },
4834    version: 2,
4835    type: 'authorize',
4836    active: false
4837  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.orangeconnex), {
4838    nameTrans: function nameTrans() {
4839      return "".concat(window.i18next.t("common-mycj-menu-orangeconnex"));
4840    },
4841    version: 2,
4842    type: 'authorize',
4843    active: false
4844  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.chatgpt), {
4845    nameTrans: function nameTrans() {
4846      return "".concat(window.i18next.t('common-mycj-menu-chatgpt', 'ChatGPT'));
4847    },
4848    version: 2,
4849    type: 'authorize',
4850    active: false
4851  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.codex), {
4852    nameTrans: function nameTrans() {
4853      return "".concat(window.i18next.t('common-mycj-menu-codex', 'CodeX'));
4854    },
4855    version: 2,
4856    type: 'authorize',
4857    active: false
4858  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.claude), {
4859    nameTrans: function nameTrans() {
4860      return "".concat(window.i18next.t('common-mycj-menu-claude', 'Claude'));
4861    },
4862    version: 2,
4863    type: 'authorize',
4864    active: false
4865  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORMAll */ .Z8.others), {
4866    nameTrans: function nameTrans() {
4867      return "".concat(window.i18next.t("common-mycj-menu-others"));
4868    },
4869    version: 2,
4870    type: 'authorize',
4871    active: false
4872  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.mabang), {
4873    nameTrans: function nameTrans() {
4874      return "".concat(window.i18next.t("common-mycj-menu-mabang"));
4875    },
4876    version: 2,
4877    type: 'authorize',
4878    active: false
4879  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.miaoshou), {
4880    nameTrans: function nameTrans() {
4881      return "".concat(window.i18next.t("common-mycj-menu-miaoshou"));
4882    },
4883    version: 2,
4884    type: 'authorize',
4885    active: false
4886  })]
4887}, {
4888  name: "My ".concat(typeof window !== 'undefined' && ((_b = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _b === void 0 ? void 0 : _b.data('name'))),
4889  nameVal: "My CJ",
4890  nameTrans: function nameTrans() {
4891    var _a;
4892    return window.i18next.t("common-mycj-my-site", {
4893      siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
4894    });
4895  },
4896  iconclass: 'bianzu32',
4897  active: false,
4898  childs: [{
4899    name: 'Settings',
4900    nameTrans: function nameTrans() {
4901      return "".concat(window.i18next.t("common-mycj-menu-settings", 'Settings'));
4902    },
4903    code: 'mycj_profile',
4904    route: '/my.html#/profile/info',
4905    active: false
4906  }, {
4907    name: 'Wallet',
4908    nameTrans: function nameTrans() {
4909      return "".concat(window.i18next.t("common-mycj-menu-wallet"));
4910    },
4911    code: 'mycj_wallet',
4912    route: '/mine/wallet',
4913    active: false
4914  }, {
4915    name: 'Ticket',
4916    nameTrans: function nameTrans() {
4917      return "".concat(window.i18next.t("common-mycj-menu-ticket"));
4918    },
4919    code: 'mycj_ticket',
4920    route: '/mine/ticket',
4921    active: false
4922  }, {
4923    name: 'CJ Prime',
4924    nameTrans: function nameTrans() {
4925      return "".concat(window.i18next.t("common-mycj-menu-cj-prime", 'CJ Prime'));
4926    },
4927    route: '/prime',
4928    target: '_blank',
4929    active: false
4930  }, {
4931    name: 'Shipping Calculation',
4932    nameTrans: function nameTrans() {
4933      return "".concat(window.i18next.t("common-mycj-menu-shipping-calculation", 'Shipping Calculation'));
4934    },
4935    code: 'mycj_shipping_calculation',
4936    route: '/calculation.html',
4937    active: false
4938  }, {
4939    name: 'Recent Activity',
4940    nameTrans: function nameTrans() {
4941      return "".concat(window.i18next.t("common-mycj-menu-recent-activity", 'Recent Activity'));
4942    },
4943    active: false,
4944    childs: [{
4945      name: 'Browsing History',
4946      nameTrans: function nameTrans() {
4947        return "".concat(window.i18next.t("common-mycj-menu-browsing-history"));
4948      },
4949      code: 'mycj_browsing_history',
4950      route: '/viewHistory',
4951      active: false
4952    }, {
4953      name: 'Products Records',
4954      nameTrans: function nameTrans() {
4955        return "".concat(window.i18next.t("common-mycj-menu-products-records"));
4956      },
4957      route: '/my.html#/products-connection/history',
4958      code: 'mycj_products_records',
4959      active: false
4960    }, {
4961      name: 'Video Records',
4962      nameTrans: function nameTrans() {
4963        return "".concat(window.i18next.t("common-mycj-menu-video-records"));
4964      },
4965      code: 'mycj_video_list',
4966      route: '/mine/listVideos',
4967      active: false
4968    }, {
4969      name: 'Saved Factories',
4970      nameTrans: function nameTrans() {
4971        return "".concat(window.i18next.t("common-mycj-menu-saved-suppliers", 'Saved Factories'));
4972      },
4973      route: '/savedFactories',
4974      active: false
4975    }, {
4976      name: 'Export List',
4977      nameTrans: function nameTrans() {
4978        return "".concat(window.i18next.t("common-mycj-menu-export-list"));
4979      },
4980      iconclass: 'liwuicon_',
4981      code: 'mycj_export_list',
4982      route: '/mine/exportList',
4983      active: false
4984    }]
4985  }]
4986}];
4987var menuPath = {};
4988var menuNames = {};
4989function loops(list, parent) {
4990  return (list || []).map(function (_a) {
4991    var route = _a.route,
4992      childs = _a.childs,
4993      name = _a.name,
4994      version = _a.version;
4995    var _route = route;
4996    var node = menuNames[name] = menuPath[_route] = {
4997      parent: parent,
4998      name: name,
4999      version: version,
5000      route: _route
5001    };
5002    node['childs'] = loops(childs, node);
5003    return node;
5004  });
5005}
5006function getPath(name) {
5007  var obj = menuNames[name];
5008  var arr = [];
5009  while (obj && obj.name) {
5010    if (obj.childs && obj.childs[0]) {
5011      arr.push(obj.name);
5012    } else {
5013      arr.push(obj.name);
5014    }
5015    if (!obj.parent) break;
5016    obj = obj.parent;
5017  }
5018  return arr;
5019}
5020loops(menus, null);
5021var createAuthTree = function createAuthTree() {
5022  var authMapByRoute = [];
5023  var _fun = function fun(list) {
5024    return list.map(function (l) {
5025      if (l.route && l.code) authMapByRoute.push({
5026        name: l.name,
5027        code: l.code,
5028        route: l.route
5029      });
5030      return {
5031        name: l.name,
5032        code: l.code,
5033        route: l.route,
5034        children: l.childs && _fun(l.childs)
5035      };
5036    });
5037  };
5038  return [_fun(menus), authMapByRoute];
5039};
5040/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAuthTree);
5041
5042/***/ }),
5043
5044/***/ 36694:
5045/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5046
5047"use strict";
5048/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5049/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
5050/* harmony export */ });
5051/* harmony import */ var rc_util_es_ref__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19284);
5052/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
5053/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
5054
5055
5056var TriggerWrapper = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(function (props, ref) {
5057  var children = props.children,
5058    getTriggerDOMNode = props.getTriggerDOMNode;
5059  var canUseRef = (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_0__/* .supportRef */ .f3)(children);
5060
5061  // When use `getTriggerDOMNode`, we should do additional work to get the real dom
5062  var setRef = react__WEBPACK_IMPORTED_MODULE_1__.useCallback(function (node) {
5063    (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_0__/* .fillRef */ .Xf)(ref, getTriggerDOMNode ? getTriggerDOMNode(node) : node);
5064  }, [getTriggerDOMNode]);
5065  var mergedRef = (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_0__/* .useComposeRef */ .xK)(setRef, (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_0__/* .getNodeRef */ .A9)(children));
5066  return canUseRef ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.cloneElement(children, {
5067    ref: mergedRef
5068  }) : children;
5069});
5070if (false) // removed by dead control flow
5071{}
5072/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TriggerWrapper);
5073
5074/***/ }),
5075
5076/***/ 36762:
5077/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5078
5079"use strict";
5080/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5081/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
5082/* harmony export */ });
5083/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(81002);
5084var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
5085  function adopt(value) {
5086    return value instanceof P ? value : new P(function (resolve) {
5087      resolve(value);
5088    });
5089  }
5090  return new (P || (P = Promise))(function (resolve, reject) {
5091    function fulfilled(value) {
5092      try {
5093        step(generator.next(value));
5094      } catch (e) {
5095        reject(e);
5096      }
5097    }
5098    function rejected(value) {
5099      try {
5100        step(generator["throw"](value));
5101      } catch (e) {
5102        reject(e);
5103      }
5104    }
5105    function step(result) {
5106      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
5107    }
5108    step((generator = generator.apply(thisArg, _arguments || [])).next());
5109  });
5110};
5111var __generator = undefined && undefined.__generator || function (thisArg, body) {
5112  var _ = {
5113      label: 0,
5114      sent: function sent() {
5115        if (t[0] & 1) throw t[1];
5116        return t[1];
5117      },
5118      trys: [],
5119      ops: []
5120    },
5121    f,
5122    y,
5123    t,
5124    g;
5125  return g = {
5126    next: verb(0),
5127    "throw": verb(1),
5128    "return": verb(2)
5129  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
5130    return this;
5131  }), g;
5132  function verb(n) {
5133    return function (v) {
5134      return step([n, v]);
5135    };
5136  }
5137  function step(op) {
5138    if (f) throw new TypeError("Generator is already executing.");
5139    while (g && (g = 0, op[0] && (_ = 0)), _) try {
5140      if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
5141      if (y = 0, t) op = [op[0] & 2, t.value];
5142      switch (op[0]) {
5143        case 0:
5144        case 1:
5145          t = op;
5146          break;
5147        case 4:
5148          _.label++;
5149          return {
5150            value: op[1],
5151            done: false
5152          };
5153        case 5:
5154          _.label++;
5155          y = op[1];
5156          op = [0];
5157          continue;
5158        case 7:
5159          op = _.ops.pop();
5160          _.trys.pop();
5161          continue;
5162        default:
5163          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
5164            _ = 0;
5165            continue;
5166          }
5167          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
5168            _.label = op[1];
5169            break;
5170          }
5171          if (op[0] === 6 && _.label < t[1]) {
5172            _.label = t[1];
5173            t = op;
5174            break;
5175          }
5176          if (t && _.label < t[2]) {
5177            _.label = t[2];
5178            _.ops.push(op);
5179            break;
5180          }
5181          if (t[2]) _.ops.pop();
5182          _.trys.pop();
5183          continue;
5184      }
5185      op = body.call(thisArg, _);
5186    } catch (e) {
5187      op = [6, e];
5188      y = 0;
5189    } finally {
5190      f = t = 0;
5191    }
5192    if (op[0] & 5) throw op[1];
5193    return {
5194      value: op[0] ? op[1] : void 0,
5195      done: true
5196    };
5197  }
5198};
5199
5200var ossHostConfig = __webpack_require__(47280);
5201var dexieLoadPromise = null;
5202function loadDexieScript() {
5203  return __awaiter(this, void 0, Promise, function () {
5204    return __generator(this, function (_a) {
5205      if (typeof Dexie !== 'undefined') {
5206        return [2, Promise.resolve()];
5207      }
5208      if (dexieLoadPromise) {
5209        return [2, dexieLoadPromise];
5210      }
5211      dexieLoadPromise = new Promise(function (resolve, reject) {
5212        var existingScript = document.querySelector('script[src*="[email protected]"]');
5213        if (existingScript) {
5214          if (typeof Dexie !== 'undefined') {
5215            resolve();
5216            return;
5217          }
5218          var checkCount_1 = 0;
5219          var maxChecks_1 = 50;
5220          var checkInterval_1 = setInterval(function () {
5221            checkCount_1++;
5222            if (typeof Dexie !== 'undefined') {
5223              clearInterval(checkInterval_1);
5224              resolve();
5225            } else if (checkCount_1 >= maxChecks_1) {
5226              clearInterval(checkInterval_1);
5227              reject(new Error('Dexie 加载超时:全局变量未定义'));
5228            }
5229          }, 100);
5230          return;
5231        }
5232        var script = document.createElement('script');
5233        script.src = "".concat(ossHostConfig["production"] || 'https://sv-resource.oss-accelerate.aliyuncs.com', "/common-public/[email protected]");
5234        script.async = true;
5235        script.onload = function () {
5236          if (typeof Dexie !== 'undefined') {
5237            resolve();
5238          } else {
5239            reject(new Error('Dexie 加载失败:全局变量未定义'));
5240          }
5241        };
5242        script.onerror = function () {
5243          reject(new Error('Dexie 脚本加载失败'));
5244        };
5245        document.head.appendChild(script);
5246      });
5247      return [2, dexieLoadPromise];
5248    });
5249  });
5250}
5251var CacheDatabase = function () {
5252  function CacheDatabase(DexieClass) {
5253    this.db = new DexieClass('CacheDatabase');
5254    this.db.version(1).stores({
5255      cache: 'key, timestamp, expiresAt'
5256    });
5257    this.cache = this.db.cache;
5258  }
5259  return CacheDatabase;
5260}();
5261var DexieCache = function () {
5262  function DexieCache() {
5263    this.db = null;
5264    this.DEFAULT_EXPIRE_TIME = 10 * 60 * 1000;
5265    this.DB_NAME = 'CacheDatabase';
5266  }
5267  DexieCache.prototype.initDB = function () {
5268    return __awaiter(this, void 0, Promise, function () {
5269      return __generator(this, function (_a) {
5270        switch (_a.label) {
5271          case 0:
5272            if (!_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) {
5273              throw new Error('Dexie cache only works in browser environment');
5274            }
5275            return [4, loadDexieScript()];
5276          case 1:
5277            _a.sent();
5278            if (!this.db) {
5279              this.db = new CacheDatabase(Dexie);
5280            }
5281            return [2, this.db];
5282        }
5283      });
5284    });
5285  };
5286  DexieCache.prototype.generateCacheKey = function (key) {
5287    return key;
5288  };
5289  DexieCache.prototype.isExpired = function (item) {
5290    if (item.expiresAt === null) {
5291      return false;
5292    }
5293    return Date.now() > item.expiresAt;
5294  };
5295  DexieCache.prototype.getCache = function (options) {
5296    return __awaiter(this, void 0, Promise, function () {
5297      var key, _a, deleteExpiredCache, _b, getExpiredCache, db, cacheKey, item, error_1;
5298      return __generator(this, function (_c) {
5299        switch (_c.label) {
5300          case 0:
5301            key = options.key, _a = options.deleteExpiredCache, deleteExpiredCache = _a === void 0 ? true : _a, _b = options.getExpiredCache, getExpiredCache = _b === void 0 ? false : _b;
5302            if (!_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) {
5303              return [2, null];
5304            }
5305            _c.label = 1;
5306          case 1:
5307            _c.trys.push([1, 7,, 8]);
5308            return [4, this.initDB()];
5309          case 2:
5310            db = _c.sent();
5311            cacheKey = this.generateCacheKey(key);
5312            return [4, db.cache.get(cacheKey)];
5313          case 3:
5314            item = _c.sent();
5315            if (!item) {
5316              return [2, null];
5317            }
5318            if (!this.isExpired(item)) return [3, 6];
5319            if (!deleteExpiredCache) return [3, 5];
5320            return [4, db.cache["delete"](cacheKey)];
5321          case 4:
5322            _c.sent();
5323            _c.label = 5;
5324          case 5:
5325            if (getExpiredCache) {
5326              return [2, item];
5327            }
5328            return [2, null];
5329          case 6:
5330            return [2, item];
5331          case 7:
5332            error_1 = _c.sent();
5333            console.warn('获取 Dexie 缓存失败:', error_1);
5334            return [2, null];
5335          case 8:
5336            return [2];
5337        }
5338      });
5339    });
5340  };
5341  DexieCache.prototype.setCache = function (options) {
5342    return __awaiter(this, void 0, Promise, function () {
5343      var key, data, expireTime, db, cacheKey, now, expiresAt, item, error_2;
5344      return __generator(this, function (_a) {
5345        switch (_a.label) {
5346          case 0:
5347            key = options.key, data = options.data, expireTime = options.expireTime;
5348            if (!_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) {
5349              return [2];
5350            }
5351            _a.label = 1;
5352          case 1:
5353            _a.trys.push([1, 4,, 5]);
5354            return [4, this.initDB()];
5355          case 2:
5356            db = _a.sent();
5357            cacheKey = this.generateCacheKey(key);
5358            now = Date.now();
5359            expiresAt = expireTime === undefined || expireTime === null ? null : now + expireTime;
5360            item = {
5361              key: cacheKey,
5362              data: data,
5363              timestamp: now,
5364              expiresAt: expiresAt
5365            };
5366            return [4, db.cache.put(item)];
5367          case 3:
5368            _a.sent();
5369            return [3, 5];
5370          case 4:
5371            error_2 = _a.sent();
5372            console.warn('设置 Dexie 缓存失败:', error_2);
5373            return [3, 5];
5374          case 5:
5375            return [2];
5376        }
5377      });
5378    });
5379  };
5380  DexieCache.prototype.deleteCache = function (options) {
5381    return __awaiter(this, void 0, Promise, function () {
5382      var key, db, cacheKey, error_3;
5383      return __generator(this, function (_a) {
5384        switch (_a.label) {
5385          case 0:
5386            key = options.key;
5387            if (!_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) {
5388              return [2];
5389            }
5390            _a.label = 1;
5391          case 1:
5392            _a.trys.push([1, 4,, 5]);
5393            return [4, this.initDB()];
5394          case 2:
5395            db = _a.sent();
5396            cacheKey = this.generateCacheKey(key);
5397            return [4, db.cache["delete"](cacheKey)];
5398          case 3:
5399            _a.sent();
5400            return [3, 5];
5401          case 4:
5402            error_3 = _a.sent();
5403            console.warn('删除 Dexie 缓存失败:', error_3);
5404            return [3, 5];
5405          case 5:
5406            return [2];
5407        }
5408      });
5409    });
5410  };
5411  DexieCache.prototype.cleanExpiredCache = function () {
5412    return __awaiter(this, void 0, Promise, function () {
5413      var db, now_1, allItems, expiredItems, keys, error_4;
5414      return __generator(this, function (_a) {
5415        switch (_a.label) {
5416          case 0:
5417            if (!_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) {
5418              return [2];
5419            }
5420            _a.label = 1;
5421          case 1:
5422            _a.trys.push([1, 6,, 7]);
5423            return [4, this.initDB()];
5424          case 2:
5425            db = _a.sent();
5426            now_1 = Date.now();
5427            return [4, db.cache.toArray()];
5428          case 3:
5429            allItems = _a.sent();
5430            expiredItems = allItems.filter(function (item) {
5431              return item.expiresAt !== null && item.expiresAt < now_1;
5432            });
5433            if (!(expiredItems.length > 0)) return [3, 5];
5434            keys = expiredItems.map(function (item) {
5435              return item.key;
5436            });
5437            return [4, db.cache.bulkDelete(keys)];
5438          case 4:
5439            _a.sent();
5440            console.log("\u6E05\u7406\u4E86 ".concat(expiredItems.length, " \u4E2A\u8FC7\u671F\u7F13\u5B58\u9879"));
5441            _a.label = 5;
5442          case 5:
5443            return [3, 7];
5444          case 6:
5445            error_4 = _a.sent();
5446            console.warn('清理过期缓存失败:', error_4);
5447            return [3, 7];
5448          case 7:
5449            return [2];
5450        }
5451      });
5452    });
5453  };
5454  DexieCache.prototype.clearAllCache = function () {
5455    return __awaiter(this, void 0, Promise, function () {
5456      var db, error_5;
5457      return __generator(this, function (_a) {
5458        switch (_a.label) {
5459          case 0:
5460            if (!_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) {
5461              return [2];
5462            }
5463            _a.label = 1;
5464          case 1:
5465            _a.trys.push([1, 4,, 5]);
5466            return [4, this.initDB()];
5467          case 2:
5468            db = _a.sent();
5469            return [4, db.cache.clear()];
5470          case 3:
5471            _a.sent();
5472            console.log('清除所有 Dexie 缓存');
5473            return [3, 5];
5474          case 4:
5475            error_5 = _a.sent();
5476            console.warn('清除所有缓存失败:', error_5);
5477            return [3, 5];
5478          case 5:
5479            return [2];
5480        }
5481      });
5482    });
5483  };
5484  DexieCache.prototype.getCachedData = function (key, requestFn, options) {
5485    if (options === void 0) {
5486      options = {};
5487    }
5488    return __awaiter(this, void 0, Promise, function () {
5489      var expireTime, _a, forceRefresh, cached, data, error_6, cached;
5490      return __generator(this, function (_b) {
5491        switch (_b.label) {
5492          case 0:
5493            expireTime = options.expireTime, _a = options.forceRefresh, forceRefresh = _a === void 0 ? false : _a;
5494            return [4, this.cleanExpiredCache()];
5495          case 1:
5496            _b.sent();
5497            if (!!forceRefresh) return [3, 3];
5498            return [4, this.getCache({
5499              key: key
5500            })];
5501          case 2:
5502            cached = _b.sent();
5503            if (cached) {
5504              console.log("\u4ECE Dexie \u7F13\u5B58\u83B7\u53D6\u6570\u636E: ".concat(key));
5505              return [2, cached.data];
5506            }
5507            _b.label = 3;
5508          case 3:
5509            console.log("\u53D1\u8D77\u65B0\u8BF7\u6C42: ".concat(key));
5510            _b.label = 4;
5511          case 4:
5512            _b.trys.push([4, 7,, 9]);
5513            return [4, requestFn()];
5514          case 5:
5515            data = _b.sent();
5516            return [4, this.setCache({
5517              key: key,
5518              data: data,
5519              expireTime: expireTime
5520            })];
5521          case 6:
5522            _b.sent();
5523            return [2, data];
5524          case 7:
5525            error_6 = _b.sent();
5526            return [4, this.getCache({
5527              key: key
5528            })];
5529          case 8:
5530            cached = _b.sent();
5531            if (cached) {
5532              console.warn("\u8BF7\u6C42\u5931\u8D25\uFF0C\u8FD4\u56DE\u8FC7\u671F\u7F13\u5B58\u6570\u636E: ".concat(key), error_6);
5533              return [2, cached.data];
5534            }
5535            throw error_6;
5536          case 9:
5537            return [2];
5538        }
5539      });
5540    });
5541  };
5542  DexieCache.prototype.getCacheStats = function () {
5543    return __awaiter(this, void 0, Promise, function () {
5544      var db, allItems, now_2, expiredItems, error_7;
5545      return __generator(this, function (_a) {
5546        switch (_a.label) {
5547          case 0:
5548            if (!_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) {
5549              return [2, {
5550                totalItems: 0,
5551                expiredItems: 0
5552              }];
5553            }
5554            _a.label = 1;
5555          case 1:
5556            _a.trys.push([1, 4,, 5]);
5557            return [4, this.initDB()];
5558          case 2:
5559            db = _a.sent();
5560            return [4, db.cache.toArray()];
5561          case 3:
5562            allItems = _a.sent();
5563            now_2 = Date.now();
5564            expiredItems = allItems.filter(function (item) {
5565              return item.expiresAt !== null && item.expiresAt < now_2;
5566            }).length;
5567            return [2, {
5568              totalItems: allItems.length,
5569              expiredItems: expiredItems
5570            }];
5571          case 4:
5572            error_7 = _a.sent();
5573            console.warn('获取缓存统计失败:', error_7);
5574            return [2, {
5575              totalItems: 0,
5576              expiredItems: 0
5577            }];
5578          case 5:
5579            return [2];
5580        }
5581      });
5582    });
5583  };
5584  return DexieCache;
5585}();
5586var dexieCache = new DexieCache();
5587/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (dexieCache);
5588
5589/***/ }),
5590
5591/***/ 37183:
5592/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5593
5594"use strict";
5595/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5596/* harmony export */   A: () => (/* binding */ Button)
5597/* harmony export */ });
5598/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53373);
5599/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
5600/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
5601/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
5602/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60133);
5603/* harmony import */ var _components_Menu_hooks_useIsVip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(95092);
5604var __assign = undefined && undefined.__assign || function () {
5605  __assign = Object.assign || function (t) {
5606    for (var s, i = 1, n = arguments.length; i < n; i++) {
5607      s = arguments[i];
5608      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
5609    }
5610    return t;
5611  };
5612  return __assign.apply(this, arguments);
5613};
5614var __rest = undefined && undefined.__rest || function (s, e) {
5615  var t = {};
5616  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
5617  if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
5618    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
5619  }
5620  return t;
5621};
5622
5623
5624
5625
5626function Button(props) {
5627  var _a;
5628  var _b = props.type,
5629    type = _b === void 0 ? 'primary' : _b,
5630    _c = props.size,
5631    size = _c === void 0 ? 'middle' : _c,
5632    full = props.full,
5633    title = props.title,
5634    className = props.className,
5635    disabled = props.disabled,
5636    children = props.children,
5637    _onClick = props.onClick,
5638    showVip = props.showVip,
5639    resetProps = __rest(props, ["type", "size", "full", "title", "className", "disabled", "children", "onClick", "showVip"]);
5640  var isVip = (0,_components_Menu_hooks_useIsVip__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)();
5641  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement("div", __assign({}, resetProps, {
5642    onClick: function onClick(e) {
5643      if (disabled) return;
5644      _onClick === null || _onClick === void 0 ? void 0 : _onClick(e);
5645    },
5646    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()(_index_less__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.btn, (_a = {}, _a["".concat(_index_less__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.ghost)] = type == 'ghost', _a["".concat(_index_less__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.primary)] = type == 'primary', _a[_index_less__WEBPACK_IMPORTED_MODULE_2__/* ["default"]["default"] */ .A["default"]] = type == 'default', _a["".concat(_index_less__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.full)] = !!full, _a["".concat(_index_less__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.disabled)] = !!disabled, _a["".concat(_index_less__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.small)] = size == 'small', _a["".concat(_index_less__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.middle)] = size == 'middle', _a["".concat(_index_less__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.large)] = size == 'large', _a[_index_less__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.vip] = showVip && isVip, _a), className)
5647  }), title, children);
5648}
5649
5650/***/ }),
5651
5652/***/ 37597:
5653/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5654
5655"use strict";
5656/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5657/* harmony export */   Ay: () => (__WEBPACK_DEFAULT_EXPORT__),
5658/* harmony export */   Z8: () => (/* binding */ PLATFORMAll),
5659/* harmony export */   i9: () => (/* binding */ PLATFORM)
5660/* harmony export */ });
5661/* unused harmony exports showPlatformName, PLATFORMLIST */
5662/* harmony import */ var _common_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4703);
5663/* harmony import */ var _common_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(81002);
5664/* harmony import */ var _common_login_info_controller__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12097);
5665var __assign = undefined && undefined.__assign || function () {
5666  __assign = Object.assign || function (t) {
5667    for (var s, i = 1, n = arguments.length; i < n; i++) {
5668      s = arguments[i];
5669      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
5670    }
5671    return t;
5672  };
5673  return __assign.apply(this, arguments);
5674};
5675
5676
5677
5678var PlatformShow = function () {
5679  function PlatformShow() {
5680    this.platformShowKey = 'platformShow';
5681    this.platformShowList = [];
5682    var userId = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.info('userId');
5683    if (userId) {
5684      this.platformShowKey = "platformShow_".concat(userId);
5685    }
5686    if (_common_index__WEBPACK_IMPORTED_MODULE_1__/* .isBrowser */ .Bd) {
5687      this.get();
5688    }
5689  }
5690  PlatformShow.prototype.get = function () {
5691    var _a;
5692    this.platformShowList = (_a = _common_store__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get(this.platformShowKey, {
5693      parse: true
5694 
5694   })) === null || _a === void 0 ? void 0 : _a.value;
5695    return _common_store__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get(this.platformShowKey, {
5696      parse: true
5697    });
5698  };
5699  PlatformShow.prototype.del = function () {
5700    _common_store__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.del(this.platformShowKey);
5701  };
5702  PlatformShow.prototype.save = function (data) {
5703    var allKeys = Object.keys(localStorage);
5704    allKeys.forEach(function (key) {
5705      if (key.startsWith('platformShow_')) {
5706        localStorage.removeItem(key);
5707      }
5708    });
5709    _common_store__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.set(this.platformShowKey, {
5710      value: data,
5711      expire: new Date().getTime() + 1000 * 60 * 10
5712    });
5713  };
5714  return PlatformShow;
5715}();
5716var showPlatformName = function showPlatformName(platformName) {
5717  if (platformName === void 0) {
5718    platformName = '';
5719  }
5720  var platformNameLowerCase = platformName.toLocaleLowerCase();
5721  var platformEnum = {
5722    tiktok_us: 'TikTok Shop US (Local)',
5723    tiktok_us_cross: 'TikTok Shop US (Cross Border)',
5724    tiktok: 'TikTok Shop (Non-US)',
5725    ebay: 'eBay',
5726    wix: 'Wix',
5727    etsy: 'Etsy',
5728    shoplazza: 'Shoplazza',
5729    shopify: 'Shopify',
5730    woocommerce: 'Woocommerce',
5731    shipstation: 'Shipstation',
5732    amazon: 'Amazon',
5733    lazada: 'Lazada',
5734    shopee: 'Shopee',
5735    squarespace: 'Squarespace',
5736    orangeconnex: 'OrangeConnex',
5737    magento: 'Magento',
5738    bigcommerce: 'Bigcommerce',
5739    prestashop: 'Prestashop',
5740    nuvemshop: 'Nuvemshop',
5741    allvalue: 'AllValue',
5742    aliexpress: 'AliExpress',
5743    api: 'API',
5744    mercado: 'Mercado',
5745    temu: 'Temu Semi-Managed',
5746    temu_us_local: 'Temu Local',
5747    mabang: 'MabangERP',
5748    others: 'Others',
5749    miaoshou: 'MiaoshouERP',
5750    temu_certified_overseas: 'Temu Cooperative Warehouse',
5751    shein: 'Shein Semi-Managed',
5752    whop: 'Whop',
5753    wed2c: 'WED2C',
5754    chatgpt: 'ChatGPT',
5755    codex: 'CodeX',
5756    Claude: 'Claude'
5757  };
5758  return platformEnum[platformNameLowerCase] || platformName;
5759};
5760PlatformShow.prototype.showPlatformName = showPlatformName;
5761/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PlatformShow);
5762var PLATFORM = {
5763  shopify: {
5764    key: 'shopify',
5765    name: 'Shopify',
5766    imageName: 'shopify',
5767    iconclass: 'shopify',
5768    appName: showPlatformName('shopify'),
5769    code: 'mycj_auth_shopify',
5770    route: '/my.html#/authorize/Shopify'
5771  },
5772  temu: {
5773    key: 'temu',
5774    name: 'Temu',
5775    imageName: 'temu',
5776    iconclass: 'temu',
5777    appName: showPlatformName('temu'),
5778    code: 'mycj_auth_temu',
5779    route: '/mine/authorize/authorizeList/Temu'
5780  },
5781  temu_us_local: {
5782    key: 'temu_us_local',
5783    name: 'Temu_US_Local',
5784    imageName: 'temu_us_local',
5785    iconclass: 'temu_us_local',
5786    appName: showPlatformName('temu_us_local'),
5787    code: 'mycj_auth_temu',
5788    route: '/mine/authorize/authorizeList/Temu_US_Local'
5789  },
5790  temu_certified_overseas: {
5791    key: 'temu_certified_overseas',
5792    name: 'Temu_certified_overseas',
5793    imageName: 'temu_certified_overseas',
5794    iconclass: 'temu_certified_overseas',
5795    appName: showPlatformName('temu_certified_overseas'),
5796    code: 'mycj_auth_temu',
5797    route: '/mine/authorize/authorizeList/Temu_Certified_Overseas'
5798  },
5799  shein: {
5800    key: 'shein',
5801    name: 'Shein',
5802    imageName: 'shein',
5803    iconclass: 'shein',
5804    appName: showPlatformName('shein'),
5805    code: 'mycj_auth_temu',
5806    route: '/mine/authorize/authorizeList/Shein'
5807  },
5808  whop: {
5809    key: 'whop',
5810    name: 'Whop',
5811    imageName: 'whop',
5812    iconclass: 'whop',
5813    appName: showPlatformName('whop'),
5814    code: 'mycj_auth_whop',
5815    route: '/mine/authorize/authorizeList/whop'
5816  },
5817  tiktok_us: {
5818    key: 'tiktok_us',
5819    name: 'TikTok_US',
5820    imageName: 'tiktok_us',
5821    iconclass: 'tiktok_us',
5822    appName: showPlatformName('tiktok_us'),
5823    code: 'mycj_auth_tiktok_us',
5824    route: '/mine/authorize/authorizeList/TikTok_US'
5825  },
5826  tiktok_us_cross: {
5827    key: 'tiktok_us_cross',
5828    name: 'TikTok_US_Cross',
5829    imageName: 'tiktok_us_cross',
5830    iconclass: 'tiktok_us_cross',
5831    appName: showPlatformName('tiktok_us_cross'),
5832    code: 'mycj_auth_tiktok_us_cross',
5833    route: '/mine/authorize/authorizeList/TikTok_US_Cross'
5834  },
5835  tiktok: {
5836    key: 'tiktok',
5837    name: 'TikTok',
5838    imageName: 'tiktok',
5839    iconclass: 'tiktok',
5840    appName: showPlatformName('tiktok'),
5841    code: 'mycj_auth_tiktok',
5842    route: '/my.html#/authorize/TikTok'
5843  },
5844  woocommerce: {
5845    key: 'woocommerce',
5846    name: 'Woocommerce',
5847    imageName: 'woocommerce',
5848    iconclass: 'wix1',
5849    appName: showPlatformName('woocommerce'),
5850    code: 'mycj_auth_woocommerce',
5851    route: '/my.html#/authorize/Woocommerce'
5852  },
5853  mercado: {
5854    key: 'mercado',
5855    name: 'Mercado',
5856    imageName: 'mercado',
5857    iconclass: 'mercado',
5858    appName: showPlatformName('mercado'),
5859    code: 'mycj_auth_mercado',
5860    route: '/mine/authorize/authorizeList/Mercado'
5861  },
5862  shoplazza: {
5863    key: 'shoplazza',
5864    name: 'ShopLazza',
5865    imageName: 'shoplazza',
5866    iconclass: 'shoplazza',
5867    appName: showPlatformName('shoplazza'),
5868    code: 'mycj_auth_shoplazza',
5869    route: '/my.html#/authorize/Shoplazza'
5870  },
5871  ebay: {
5872    key: 'ebay',
5873    name: 'eBay',
5874    imageName: 'ebay',
5875    iconclass: 'eBay',
5876    appName: showPlatformName('ebay'),
5877    code: 'mycj_auth_ebay',
5878    route: '/my.html#/authorize/Ebay'
5879  },
5880  aliexpress: {
5881    key: 'aliexpress',
5882    name: 'AliExpress',
5883    imageName: 'aliexpress',
5884    iconclass: 'aliexpress',
5885    appName: showPlatformName('aliexpress'),
5886    code: 'mycj_auth_aliExpress',
5887    route: '/my.html#/authorize/AliExpress'
5888  },
5889  lazada: {
5890    key: 'lazada',
5891    name: 'Lazada',
5892    imageName: 'lazada',
5893    iconclass: 'lazada',
5894    appName: showPlatformName('lazada'),
5895    code: 'mycj_auth_lazada',
5896    route: '/my.html#/authorize/Lazada'
5897  },
5898  shopee: {
5899    key: 'shopee',
5900    name: 'Shopee',
5901    imageName: 'shopee',
5902    iconclass: 'shopee',
5903    appName: showPlatformName('shopee'),
5904    code: 'mycj_auth_shopee',
5905    route: '/my.html#/authorize/Shopee'
5906  },
5907  nuvemshop: {
5908    key: 'nuvemshop',
5909    name: 'Nuvemshop',
5910    imageName: 'nuvemshop',
5911    iconclass: 'nuvemshop',
5912    appName: showPlatformName('nuvemshop'),
5913    code: 'mycj_auth_nuvemshop',
5914    route: '/my.html#/authorize/Nuvemshop'
5915  },
5916  etsy: {
5917    key: 'etsy',
5918    name: 'Etsy',
5919    imageName: 'etsy',
5920    iconclass: 'etsy',
5921    appName: showPlatformName('etsy'),
5922    code: 'mycj_auth_etsy',
5923    route: '/mine/authorize/authorizeList/Etsy'
5924  },
5925  allvalue: {
5926    key: 'allvalue',
5927    name: 'AllValue',
5928    imageName: 'allvalue',
5929    iconclass: 'allvalue',
5930    appName: showPlatformName('allvalue'),
5931    code: 'mycj_auth_allvalue',
5932    route: '/my.html#/authorize/AllValue'
5933  },
5934  wed2c: {
5935    key: 'wed2c',
5936    name: 'WED2C',
5937    imageName: 'wed2c',
5938    iconclass: 'wed2c',
5939    appName: showPlatformName('wed2c'),
5940    code: 'mycj_auth_wed2c',
5941    route: '/mine/wed2cAuth'
5942  },
5943  api: {
5944    key: 'api',
5945    name: 'API',
5946    imageName: 'api',
5947    iconclass: 'API',
5948    appName: showPlatformName('api'),
5949    code: 'mycj_auth_api',
5950    route: '/my.html#/authorize/APIStores'
5951  },
5952  wix: {
5953    key: 'wix',
5954    name: 'Wix',
5955    imageName: 'wix',
5956    iconclass: 'wix',
5957    appName: showPlatformName('wix'),
5958    code: 'mycj_auth_wix',
5959    route: '/my.html#/authorize/Wix'
5960  },
5961  squarespace: {
5962    key: 'squarespace',
5963    name: 'Squarespace',
5964    imageName: 'squarespace',
5965    iconclass: 'squarespace',
5966    appName: showPlatformName('squarespace'),
5967    code: 'mycj_auth_squarespace',
5968    route: '/my.html#/authorize/Squarespace'
5969  },
5970  magento: {
5971    key: 'magento',
5972    name: 'Magento',
5973    imageName: 'magento',
5974    iconclass: 'magento',
5975    appName: showPlatformName('magento'),
5976    code: 'mycj_auth_magento',
5977    route: '/my.html#/authorize/Magento'
5978  },
5979  bigcommerce: {
5980    key: 'bigcommerce',
5981    name: 'BigCommerce',
5982    imageName: 'bigcommerce',
5983    iconclass: 'bigcommerce',
5984    appName: showPlatformName('bigcommerce'),
5985    code: 'mycj_auth_bigcommerce',
5986    route: '/my.html#/authorize/Bigcommerce'
5987  },
5988  prestashop: {
5989    key: 'prestashop',
5990    name: 'PrestaShop',
5991    imageName: 'prestashop',
5992    iconclass: 'prestashop',
5993    appName: showPlatformName('prestashop'),
5994    code: 'mycj_auth_prestashop',
5995    route: '/my.html#/authorize/Prestashop'
5996  },
5997  shipstation: {
5998    key: 'shipstation',
5999    name: 'ShipStation',
6000    imageName: 'shipstation',
6001    iconclass: 'shipstation',
6002    appName: showPlatformName('shipstation'),
6003    code: 'mycj_auth_shipstation',
6004    route: '/my.html#/authorize/Shipstation'
6005  },
6006  orangeconnex: {
6007    key: 'orangeconnex',
6008    name: 'OrangeConnex',
6009    imageName: 'orangeconnex',
6010    iconclass: 'orangeconnex',
6011    appName: showPlatformName('orangeconnex'),
6012    code: 'mycj_auth_orangeconnex',
6013    route: '/my.html#/authorize/OrangeConnex'
6014  },
6015  mabang: {
6016    key: 'mabang',
6017    name: 'Mabang',
6018    imageName: 'mabang',
6019    iconclass: 'mabang',
6020    appName: showPlatformName('mabang'),
6021    code: 'mycj_auth_mabang',
6022    route: '/mine/authorize/authorizeList/Mabang'
6023  },
6024  miaoshou: {
6025    key: 'miaoshou',
6026    name: 'Miaoshou',
6027    imageName: 'miaoshou',
6028    iconclass: 'miaoshou',
6029    appName: showPlatformName('miaoshou'),
6030    code: 'mycj_auth_miaoshou',
6031    route: '/mine/authorize/authorizeList/Miaoshou'
6032  },
6033  chatgpt: {
6034    key: 'chatgpt',
6035    name: 'ChatGPT',
6036    imageName: 'chatgpt',
6037    iconclass: 'chatgpt',
6038    appName: showPlatformName('chatgpt'),
6039    code: 'ChatGPT',
6040    route: '/ai/chatgpt'
6041  },
6042  codex: {
6043    key: 'codex',
6044    name: 'CodeX',
6045    imageName: 'codex',
6046    iconclass: 'codex',
6047    appName: showPlatformName('codex'),
6048    code: 'CodeX',
6049    route: '/ai/codex'
6050  },
6051  claude: {
6052    key: 'claude',
6053    name: 'Claude',
6054    imageName: 'claude',
6055    iconclass: 'claude',
6056    appName: showPlatformName('claude'),
6057    code: 'Claude',
6058    route: '/ai/claude'
6059  }
6060};
6061var PLATFORMAll = __assign(__assign({}, PLATFORM), {
6062  others: {
6063    key: 'others',
6064    name: 'Others',
6065    imageName: 'others',
6066    iconclass: 'others',
6067    appName: showPlatformName('others'),
6068    code: 'mycj_auth_others',
6069    route: '/mine/authorize/authorizeList/Others'
6070  }
6071});
6072var PLATFORMLIST = Object.values(PLATFORM);
6073
6074/***/ }),
6075
6076/***/ 38818:
6077/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6078
6079"use strict";
6080/* unused harmony export genCSSMotionList */
6081/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89575);
6082/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39850);
6083/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69740);
6084/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(55152);
6085/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(30414);
6086/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2474);
6087/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(29296);
6088/* harmony import */ var _babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(90857);
6089/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(24586);
6090/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(15442);
6091/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_9__);
6092/* harmony import */ var _CSSMotion__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(89614);
6093/* harmony import */ var _util_diff__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(40657);
6094/* harmony import */ var _util_motion__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(73688);
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104var _excluded = ["component", "children", "onVisibleChanged", "onAllRemoved"],
6105  _excluded2 = ["status"];
6106/* eslint react/prop-types: 0 */
6107
6108
6109
6110
6111var MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearPrepare', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];
6112/**
6113 * Generate a CSSMotionList component with config
6114 * @param transitionSupport No need since CSSMotionList no longer depends on transition support
6115 * @param CSSMotion CSSMotion component
6116 */
6117function genCSSMotionList(transitionSupport) {
6118  var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _CSSMotion__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A;
6119  var CSSMotionList = /*#__PURE__*/function (_React$Component) {
6120    (0,_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A)(CSSMotionList, _React$Component);
6121    var _super = (0,_babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)(CSSMotionList);
6122    function CSSMotionList() {
6123      var _this;
6124      (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)(this, CSSMotionList);
6125      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
6126        args[_key] = arguments[_key];
6127      }
6128      _this = _super.call.apply(_super, [this].concat(args));
6129      (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)(_this), "state", {
6130        keyEntities: []
6131      });
6132      // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info.
6133      (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)(_this), "removeKey", function (removeKey) {
6134        _this.setState(function (prevState) {
6135          var nextKeyEntities = prevState.keyEntities.map(function (entity) {
6136            if (entity.key !== removeKey) return entity;
6137            return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)({}, entity), {}, {
6138              status: _util_diff__WEBPACK_IMPORTED_MODULE_11__/* .STATUS_REMOVED */ .e8
6139            });
6140          });
6141          return {
6142            keyEntities: nextKeyEntities
6143          };
6144        }, function () {
6145          var keyEntities = _this.state.keyEntities;
6146          var restKeysCount = keyEntities.filter(function (_ref) {
6147            var status = _ref.status;
6148            return status !== _util_diff__WEBPACK_IMPORTED_MODULE_11__/* .STATUS_REMOVED */ .e8;
6149          }).length;
6150          if (restKeysCount === 0 && _this.props.onAllRemoved) {
6151            _this.props.onAllRemoved();
6152          }
6153        });
6154      });
6155      return _this;
6156    }
6157    (0,_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)(CSSMotionList, [{
6158      key: "render",
6159      value: function render() {
6160        var _this2 = this;
6161        var keyEntities = this.state.keyEntities;
6162        var _this$props = this.props,
6163          component = _this$props.component,
6164          children = _this$props.children,
6165          _onVisibleChanged = _this$props.onVisibleChanged,
6166          onAllRemoved = _this$props.onAllRemoved,
6167          restProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_this$props, _excluded);
6168        var Component = component || react__WEBPACK_IMPORTED_MODULE_9__.Fragment;
6169        var motionProps = {};
6170        MOTION_PROP_NAMES.forEach(function (prop) {
6171          motionProps[prop] = restProps[prop];
6172          delete restProps[prop];
6173        });
6174        delete restProps.keys;
6175        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__.createElement(Component, restProps, keyEntities.map(function (_ref2, index) {
6176          var status = _ref2.status,
6177            eventProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_ref2, _excluded2);
6178          var visible = status === _util_diff__WEBPACK_IMPORTED_MODULE_11__/* .STATUS_ADD */ .bK || status === _util_diff__WEBPACK_IMPORTED_MODULE_11__/* .STATUS_KEEP */ .xI;
6179          return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__.createElement(CSSMotion, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, motionProps, {
6180            key: eventProps.key,
6181            visible: visible,
6182            eventProps: eventProps,
6183            onVisibleChanged: function onVisibleChanged(changedVisible) {
6184              _onVisibleChanged === null || _onVisibleChanged === void 0 || _onVisibleChanged(changedVisible, {
6185                key: eventProps.key
6186              });
6187              if (!changedVisible) {
6188                _this2.removeKey(eventProps.key);
6189              }
6190            }
6191          }), function (props, ref) {
6192            return children((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)({}, props), {}, {
6193              index: index
6194            }), ref);
6195          });
6196        }));
6197      }
6198    }], [{
6199      key: "getDerivedStateFromProps",
6200      value: function getDerivedStateFromProps(_ref3, _ref4) {
6201        var keys = _ref3.keys;
6202        var keyEntities = _ref4.keyEntities;
6203        var parsedKeyObjects = (0,_util_diff__WEBPACK_IMPORTED_MODULE_11__/* .parseKeys */ .Ss)(keys);
6204        var mixedKeyEntities = (0,_util_diff__WEBPACK_IMPORTED_MODULE_11__/* .diffKeys */ .y$)(keyEntities, parsedKeyObjects);
6205        return {
6206          keyEntities: mixedKeyEntities.filter(function (entity) {
6207            var prevEntity = keyEntities.find(function (_ref5) {
6208              var key = _ref5.key;
6209              return entity.key === key;
6210            });
6211
6212            // Remove if already mark as removed
6213            if (prevEntity && prevEntity.status === _util_diff__WEBPACK_IMPORTED_MODULE_11__/* .STATUS_REMOVED */ .e8 && entity.status === _util_diff__WEBPACK_IMPORTED_MODULE_11__/* .STATUS_REMOVE */ .au) {
6214              return false;
6215            }
6216            return true;
6217          })
6218        };
6219      }
6220    }]);
6221    return CSSMotionList;
6222  }(react__WEBPACK_IMPORTED_MODULE_9__.Component);
6223  (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(CSSMotionList, "defaultProps", {
6224    component: 'div'
6225  });
6226  return CSSMotionList;
6227}
6228/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = (genCSSMotionList(_util_motion__WEBPACK_IMPORTED_MODULE_12__/* .supportTransition */ .J1));
6229
6230/***/ }),
6231
6232/***/ 38903:
6233/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6234
6235"use strict";
6236/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6237/* harmony export */   e: () => (/* binding */ CJHEADER_VARIABLE_NAME)
6238/* harmony export */ });
6239/* harmony import */ var _common_get_initial_handler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20194);
6240/* harmony import */ var _get_top_nav_props__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72777);
6241/* harmony import */ var _services__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(62934);
6242var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
6243  function adopt(value) {
6244    return value instanceof P ? value : new P(function (resolve) {
6245      resolve(value);
6246    });
6247  }
6248  return new (P || (P = Promise))(function (resolve, reject) {
6249    function fulfilled(value) {
6250      try {
6251        step(generator.next(value));
6252      } catch (e) {
6253        reject(e);
6254      }
6255    }
6256    function rejected(value) {
6257      try {
6258        step(generator["throw"](value));
6259      } catch (e) {
6260        reject(e);
6261      }
6262    }
6263    function step(result) {
6264      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
6265    }
6266    step((generator = generator.apply(thisArg, _arguments || [])).next());
6267  });
6268};
6269var __generator = undefined && undefined.__generator || function (thisArg, body) {
6270  var _ = {
6271      label: 0,
6272      sent: function sent() {
6273        if (t[0] & 1) throw t[1];
6274        return t[1];
6275      },
6276      trys: [],
6277      ops: []
6278    },
6279    f,
6280    y,
6281    t,
6282    g;
6283  return g = {
6284    next: verb(0),
6285    "throw": verb(1),
6286    "return": verb(2)
6287  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
6288    return this;
6289  }), g;
6290  function verb(n) {
6291    return function (v) {
6292      return step([n, v]);
6293    };
6294  }
6295  function step(op) {
6296    if (f) throw new TypeError("Generator is already executing.");
6297    while (g && (g = 0, op[0] && (_ = 0)), _) try {
6298      if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
6299      if (y = 0, t) op = [op[0] & 2, t.value];
6300      switch (op[0]) {
6301        case 0:
6302        case 1:
6303          t = op;
6304          break;
6305        case 4:
6306          _.label++;
6307          return {
6308            value: op[1],
6309            done: false
6310          };
6311        case 5:
6312          _.label++;
6313          y = op[1];
6314          op = [0];
6315          continue;
6316        case 7:
6317          op = _.ops.pop();
6318          _.trys.pop();
6319          continue;
6320        default:
6321          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
6322            _ = 0;
6323            continue;
6324          }
6325          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
6326            _.label = op[1];
6327            break;
6328          }
6329          if (op[0] === 6 && _.label < t[1]) {
6330            _.label = t[1];
6331            t = op;
6332            break;
6333          }
6334          if (t && _.label < t[2]) {
6335            _.label = t[2];
6336            _.ops.push(op);
6337            break;
6338          }
6339          if (t[2]) _.ops.pop();
6340          _.trys.pop();
6341          continue;
6342      }
6343      op = body.call(thisArg, _);
6344    } catch (e) {
6345      op = [6, e];
6346      y = 0;
6347    } finally {
6348      f = t = 0;
6349    }
6350    if (op[0] & 5) throw op[1];
6351    return {
6352      value: op[0] ? op[1] : void 0,
6353      done: true
6354    };
6355  }
6356};
6357
6358
6359
6360var CJHEADER_VARIABLE_NAME = 'cjHeaderProps';
6361/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = (function (CjHeader) {
6362  CjHeader.getInitialProps = function (_a) {
6363    var ctx = _a.ctx,
6364      getDomainByUrl = _a.getDomainByUrl,
6365      _b = _a.platform,
6366      platform = _b === void 0 ? 'cj' : _b,
6367      _c = _a.autoMode,
6368      autoMode = _c === void 0 ? false : _c,
6369      _d = _a.maxWidth,
6370      maxWidth = _d === void 0 ? '100%' : _d,
6371      _e = _a.supplierInfo,
6372      supplierInfo = _e === void 0 ? {} : _e;
6373    return __awaiter(void 0, void 0, void 0, function () {
6374      var _f, i18n, loginInfo, otherCookies, host, $axios, cjDomain, lng, siteCheck, path, _MatchReqHost, isM, _g, warehouses, categories, querySearch, showPlatformData, topNavProps, searchNavProps, showPlatformObject, platformKeys, siteCheckInstance, ssr, _props;
6375      var _h;
6376      return __generator(this, function (_j) {
6377        switch (_j.label) {
6378          case 0:
6379            _f = getInitialHandler({
6380              ctx: ctx,
6381              getDomainByUrl: getDomainByUrl,
6382              platform: platform
6383            }), i18n = _f.i18n, loginInfo = _f.loginInfo, otherCookies = _f.otherCookies, host = _f.host, $axios = _f.$axios, cjDomain = _f.cjDomain, lng = _f.lng, siteCheck = _f.siteCheck, path = _f.path, _MatchReqHost = _f._MatchReqHost, isM = _f.isM;
6384            return [4, Promise.all([getWarehouses({
6385              ctx: ctx,
6386              $axios: $axios,
6387              lng: lng
6388            }), getCategories({
6389              ctx: ctx,
6390              $axios: $axios
6391            }), getQueryParams({
6392              ctx: ctx
6393            }), getShowAuthorPlatform({
6394              ctx: ctx,
6395              $axios: $axios,
6396              token: loginInfo.token
6397            })])];
6398          case 1:
6399            _g = _j.sent(), warehouses = _g[0], categories = _g[1], querySearch = _g[2], showPlatformData = _g[3];
6400            topNavProps = {
6401              warehouses: siteCheck.isShow('header-warehouses') ? warehouses : []
6402            };
6403            searchNavProps = {
6404              categories: categories
6405            };
6406            showPlatformObject = showPlatformData === null || showPlatformData === void 0 ? void 0 : showPlatformData.showAuthorizeObject;
6407            platformKeys = showPlatformData === null || showPlatformData === void 0 ? void 0 : showPlatformData.platformKeys;
6408            siteCheckInstance = (_h = siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.get) === null || _h === void 0 ? void 0 : _h.call(siteCheck);
6409            ssr = !!ctx;
6410            _props = {
6411              otherCookies: otherCookies,
6412              querySearch: querySearch,
6413              loginInfo: loginInfo,
6414              topNavProps: topNavProps,
6415              searchNavProps: searchNavProps,
6416              cjDomain: cjDomain,
6417              host: host,
6418              path: path,
6419              i18n: i18n,
6420              showPlatformObject: showPlatformObject,
6421              platformKeys: platformKeys,
6422              platform: platform,
6423              siteCheck: siteCheckInstance,
6424              ssr: ssr,
6425              autoMode: autoMode,
6426              maxWidth: maxWidth,
6427              supplierInfo: supplierInfo,
6428              _MatchReqHost: _MatchReqHost,
6429              isM: isM
6430            };
6431            return [2, _props];
6432        }
6433      });
6434    });
6435  };
6436  CjHeader.variableName = CJHEADER_VARIABLE_NAME;
6437});
6438
6439/***/ }),
6440
6441/***/ 39348:
6442/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6443
6444"use strict";
6445/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6446/* harmony export */   A: () => (/* binding */ useSafeState)
6447/* harmony export */ });
6448/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79082);
6449/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
6450/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
6451
6452
6453/**
6454 * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.
6455 * We do not make this auto is to avoid real memory leak.
6456 * Developer should confirm it's safe to ignore themselves.
6457 */
6458function useSafeState(defaultValue) {
6459  var destroyRef = react__WEBPACK_IMPORTED_MODULE_1__.useRef(false);
6460  var _React$useState = react__WEBPACK_IMPORTED_MODULE_1__.useState(defaultValue),
6461    _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(_React$useState, 2),
6462    value = _React$useState2[0],
6463    setValue = _React$useState2[1];
6464  react__WEBPACK_IMPORTED_MODULE_1__.useEffect(function () {
6465    destroyRef.current = false;
6466    return function () {
6467      destroyRef.current = true;
6468    };
6469  }, []);
6470  function safeSetState(updater, ignoreDestroy) {
6471    if (ignoreDestroy && destroyRef.current) {
6472      return;
6473    }
6474    setValue(updater);
6475  }
6476  return [value, safeSetState];
6477}
6478
6479/***/ }),
6480
6481/***/ 39850:
6482/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6483
6484"use strict";
6485/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6486/* harmony export */   A: () => (/* binding */ _objectWithoutProperties)
6487/* harmony export */ });
6488/* harmony import */ var _objectWithoutPropertiesLoose_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17502);
6489
6490function _objectWithoutProperties(e, t) {
6491  if (null == e) return {};
6492  var o,
6493    r,
6494    i = (0,_objectWithoutPropertiesLoose_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(e, t);
6495  if (Object.getOwnPropertySymbols) {
6496    var n = Object.getOwnPropertySymbols(e);
6497    for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
6498  }
6499  return i;
6500}
6501
6502
6503/***/ }),
6504
6505/***/ 40484:
6506/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6507
6508"use strict";
6509/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6510/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
6511/* harmony export */ });
6512/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55152);
6513/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30414);
6514/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29296);
6515/* harmony import */ var _babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(90857);
6516/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15442);
6517/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
6518
6519
6520
6521
6522
6523var DomWrapper = /*#__PURE__*/function (_React$Component) {
6524  (0,_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(DomWrapper, _React$Component);
6525  var _super = (0,_babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)(DomWrapper);
6526  function DomWrapper() {
6527    (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(this, DomWrapper);
6528    return _super.apply(this, arguments);
6529  }
6530  (0,_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(DomWrapper, [{
6531    key: "render",
6532    value: function render() {
6533      return this.props.children;
6534    }
6535  }]);
6536  return DomWrapper;
6537}(react__WEBPACK_IMPORTED_MODULE_4__.Component);
6538/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DomWrapper);
6539
6540/***/ }),
6541
6542/***/ 40657:
6543/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6544
6545"use strict";
6546/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6547/* harmony export */   Ss: () => (/* binding */ parseKeys),
6548/* harmony export */   au: () => (/* binding */ STATUS_REMOVE),
6549/* harmony export */   bK: () => (/* binding */ STATUS_ADD),
6550/* harmony export */   e8: () => (/* binding */ STATUS_REMOVED),
6551/* harmony export */   xI: () => (/* binding */ STATUS_KEEP),
6552/* harmony export */   y$: () => (/* binding */ diffKeys)
6553/* harmony export */ });
6554/* unused harmony export wrapKeyToObject */
6555/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69740);
6556/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17545);
6557
6558
6559var STATUS_ADD = 'add';
6560var STATUS_KEEP = 'keep';
6561var STATUS_REMOVE = 'remove';
6562var STATUS_REMOVED = 'removed';
6563function wrapKeyToObject(key) {
6564  var keyObj;
6565  if (key && (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(key) === 'object' && 'key' in key) {
6566    keyObj = key;
6567  } else {
6568    keyObj = {
6569      key: key
6570    };
6571  }
6572  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, keyObj), {}, {
6573    key: String(keyObj.key)
6574  });
6575}
6576function parseKeys() {
6577  var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
6578  return keys.map(wrapKeyToObject);
6579}
6580function diffKeys() {
6581  var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
6582  var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
6583  var list = [];
6584  var currentIndex = 0;
6585  var currentLen = currentKeys.length;
6586  var prevKeyObjects = parseKeys(prevKeys);
6587  var currentKeyObjects = parseKeys(currentKeys);
6588
6589  // Check prev keys to insert or keep
6590  prevKeyObjects.forEach(function (keyObj) {
6591    var hit = false;
6592    for (var i = currentIndex; i < currentLen; i += 1) {
6593      var currentKeyObj = currentKeyObjects[i];
6594      if (currentKeyObj.key === keyObj.key) {
6595        // New added keys should add before current key
6596        if (currentIndex < i) {
6597          list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {
6598            return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, obj), {}, {
6599              status: STATUS_ADD
6600            });
6601          }));
6602          currentIndex = i;
6603        }
6604        list.push((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, currentKeyObj), {}, {
6605          status: STATUS_KEEP
6606        }));
6607        currentIndex += 1;
6608        hit = true;
6609        break;
6610      }
6611    }
6612
6613    // If not hit, it means key is removed
6614    if (!hit) {
6615      list.push((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, keyObj), {}, {
6616        status: STATUS_REMOVE
6617      }));
6618    }
6619  });
6620
6621  // Add rest to the list
6622  if (currentIndex < currentLen) {
6623    list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {
6624      return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, obj), {}, {
6625        status: STATUS_ADD
6626      });
6627    }));
6628  }
6629
6630  /**
6631   * Merge same key when it remove and add again:
6632   *    [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]
6633   */
6634  var keys = {};
6635  list.forEach(function (_ref) {
6636    var key = _ref.key;
6637    keys[key] = (keys[key] || 0) + 1;
6638  });
6639  var duplicatedKeys = Object.keys(keys).filter(function (key) {
6640    return keys[key] > 1;
6641  });
6642  duplicatedKeys.forEach(function (matchKey) {
6643    // Remove `STATUS_REMOVE` node.
6644    list = list.filter(function (_ref2) {
6645      var key = _ref2.key,
6646        status = _ref2.status;
6647      return key !== matchKey || status !== STATUS_REMOVE;
6648    });
6649
6650    // Update `STATUS_ADD` to `STATUS_KEEP`
6651    list.forEach(function (node) {
6652      if (node.key === matchKey) {
6653        // eslint-disable-next-line no-param-reassign
6654        node.status = STATUS_KEEP;
6655      }
6656    });
6657  });
6658  return list;
6659}
6660
6661/***/ }),
6662
6663/***/ 41580:
6664/***/ ((module) => {
6665
6666/**
6667 * Checks if `value` is the
6668 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
6669 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
6670 *
6671 * @static
6672 * @memberOf _
6673 * @since 0.1.0
6674 * @category Lang
6675 * @param {*} value The value to check.
6676 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
6677 * @example
6678 *
6679 * _.isObject({});
6680 * // => true
6681 *
6682 * _.isObject([1, 2, 3]);
6683 * // => true
6684 *
6685 * _.isObject(_.noop);
6686 * // => true
6687 *
6688 * _.isObject(null);
6689 * // => false
6690 */
6691function isObject(value) {
6692  var type = typeof value;
6693  return value != null && (type == 'object' || type == 'function');
6694}
6695
6696module.exports = isObject;
6697
6698
6699/***/ }),
6700
6701/***/ 41747:
6702/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6703
6704"use strict";
6705/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6706/* harmony export */   A: () => (/* binding */ toArray)
6707/* harmony export */ });
6708/* harmony import */ var _React_isFragment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20785);
6709/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
6710/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
6711
6712
6713function toArray(children) {
6714  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6715  var ret = [];
6716  react__WEBPACK_IMPORTED_MODULE_1___default().Children.forEach(children, function (child) {
6717    if ((child === undefined || child === null) && !option.keepEmpty) {
6718      return;
6719    }
6720    if (Array.isArray(child)) {
6721      ret = ret.concat(toArray(child));
6722    } else if ((0,_React_isFragment__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(child) && child.props) {
6723      ret = ret.concat(toArray(child.props.children, option));
6724    } else {
6725      ret.push(child);
6726    }
6727  });
6728  return ret;
6729}
6730
6731/***/ }),
6732
6733/***/ 42963:
6734/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6735
6736"use strict";
6737/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6738/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
6739/* harmony export */ });
6740/* harmony import */ var _Portal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70297);
6741
6742
6743
6744/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_Portal__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A);
6745
6746/***/ }),
6747
6748/***/ 44148:
6749/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6750
6751"use strict";
6752/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6753/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__),
6754/* harmony export */   v: () => (/* binding */ useGlobalProps)
6755/* harmony export */ });
6756/* harmony import */ var _components_CjHeader_const_show_authorize_list__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(84266);
6757/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(81002);
6758/* harmony import */ var _common_cj_href__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(84963);
6759/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15442);
6760/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
6761/* harmony import */ var _get_top_nav_props__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(72777);
6762/* harmony import */ var _common_check_site_show__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(27880);
6763/* harmony import */ var _common_login_info_controller__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12097);
6764/* harmony import */ var _get_intial_props__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(38903);
6765var __assign = undefined && undefined.__assign || function () {
6766  __assign = Object.assign || function (t) {
6767    for (var s, i = 1, n = arguments.length; i < n; i++) {
6768      s = arguments[i];
6769      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
6770    }
6771    return t;
6772  };
6773  return __assign.apply(this, arguments);
6774};
6775var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
6776  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
6777    if (ar || !(i in from)) {
6778      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6779      ar[i] = from[i];
6780    }
6781  }
6782  return to.concat(ar || Array.prototype.slice.call(from));
6783};
6784
6785
6786
6787
6788
6789
6790
6791
6792var PropsContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_3__.createContext)({});
6793function isObjectNull(obj) {
6794  return obj === null || obj === undefined || Object.keys(obj).length === 0;
6795}
6796var useGlobalProps = function useGlobalProps() {
6797  var _a;
6798  var value = (0,react__WEBPACK_IMPORTED_MODULE_3__.useContext)(PropsContext);
6799  if (_common__WEBPACK_IMPORTED_MODULE_1__/* .isBrowser */ .Bd) {
6800    var showPlatformObject = value.showPlatformObject || {};
6801    var platformKeys = value.platformKeys || [];
6802    if (isObjectNull(value.otherCookies)) {
6803      value['otherCookies'] = (0,_get_top_nav_props__WEBPACK_IMPORTED_MODULE_4__/* .getOtherCookies */ .cc)({
6804        ctx: undefined
6805      });
6806    }
6807    if (isObjectNull(value.querySearch)) {
6808      value['querySearch'] = (0,_common__WEBPACK_IMPORTED_MODULE_1__/* .getQueryVariable */ .JE)();
6809    }
6810    if (isObjectNull(value.loginInfo)) {
6811      value['loginInfo'] = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A.info();
6812    }
6813    value['host'] = location.host;
6814    value['pathname'] = value['path'] = location.pathname;
6815    value['cjDomain'] = value.platform === 'cj' ? '/' : (0,_common_cj_href__WEBPACK_IMPORTED_MODULE_2__/* .cjHref */ .F)('/', value.host);
6816    value['i18n'] = window.i18next;
6817    value['showPlatformObject'] = __assign(__assign({}, _components_CjHeader_const_show_authorize_list__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A), showPlatformObject);
6818    value['platformKeys'] = __spreadArray([], platformKeys, true);
6819    if (isObjectNull(value.siteCheck)) {
6820      var siteCheck = new _common_check_site_show__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A({
6821        getDomainByUrl: value.getDomainByUrl
6822      });
6823      value['siteCheck'] = window['siteCheck'] = siteCheck.get();
6824    }
6825    value['ssr'] = !!window[_get_intial_props__WEBPACK_IMPORTED_MODULE_7__/* .CJHEADER_VARIABLE_NAME */ .e];
6826    value['_MatchReqHost'] = window['_matchedRoute'];
6827    if (((_a = window['_matchedRoute']) === null || _a === void 0 ? void 0 : _a.indexOf('paymentAgency')) > -1 && value.platform === 'cj') {
6828      value['cjDomain'] = (0,_common_cj_href__WEBPACK_IMPORTED_MODULE_2__/* .cjHref */ .F)('/');
6829    }
6830    if (value.isM === undefined) {
6831      value['isM'] = (0,_common__WEBPACK_IMPORTED_MODULE_1__/* .isMobile */ .Fr)();
6832    }
6833  }
6834  return value;
6835};
6836/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PropsContext);
6837
6838/***/ }),
6839
6840/***/ 44190:
6841/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6842
6843"use strict";
6844/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6845/* harmony export */   $v: () => (/* binding */ createChatInternalReceptionJson),
6846/* harmony export */   Ay: () => (__WEBPACK_DEFAULT_EXPORT__),
6847/* harmony export */   P6: () => (/* binding */ createAiChatEntry),
6848/* harmony export */   Q_: () => (/* binding */ createPlatform),
6849/* harmony export */   R6: () => (/* binding */ createChatEntry),
6850/* harmony export */   vY: () => (/* binding */ createConfigResource)
6851/* harmony export */ });
6852/* unused harmony exports createFlag, createWarehouseJson, createCountryJson, countryInfo */
6853var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
6854  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
6855    if (ar || !(i in from)) {
6856      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6857      ar[i] = from[i];
6858    }
6859  }
6860  return to.concat(ar || Array.prototype.slice.call(from));
6861};
6862var OssController = function () {
6863  function OssController() {}
6864  Object.defineProperty(OssController.prototype, "host", {
6865    get: function get() {
6866      var _a;
6867      if (typeof window !== 'undefined' && window.OSS_HOST && window.OSS_HOST !== '__OSSHOST__') {
6868        return window.OSS_HOST;
6869      }
6870      if (typeof process !== 'undefined' && ((_a = process === null || process === void 0 ? void 0 : process.env) === null || _a === void 0 ? void 0 : _a.OSSHOST)) {
6871        return process.env.OSSHOST;
6872      }
6873      return "https://sv-resource.oss-accelerate.aliyuncs.com";
6874    },
6875    enumerable: false,
6876    configurable: true
6877  });
6878  OssController.prototype.join = function () {
6879    var paths = [];
6880    for (var _i = 0; _i < arguments.length; _i++) {
6881      paths[_i] = arguments[_i];
6882    }
6883    if (!paths.every(function (path) {
6884      return typeof path === 'string';
6885    })) {
6886      throw new TypeError('All arguments to join must be of type string');
6887    }
6888    var _paths = paths.map(function (path) {
6889      return path.replace(/^\/+|\/+$/g, '');
6890    });
6891    var _host = this.host;
6892    if (_host.endsWith('/')) {
6893      _host = _host.slice(0, -1);
6894    }
6895    return __spreadArray([_host], _paths, true).join('/');
6896  };
6897  return OssController;
6898}();
6899/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (new OssController());
6900var createPlatform = function createPlatform(name) {
6901  return "resources/platform/".concat(name, ".png");
6902};
6903var createFlag = function createFlag(name) {
6904  return "resources/flag/".concat(name, ".png");
6905};
6906var createConfigResource = function createConfigResource(name, code) {
6907  return "config-resource/".concat(name, "/").concat(code);
6908};
6909var createWarehouseJson = function createWarehouseJson() {
6910  return "backend/WareHouse.json";
6911};
6912var createCountryJson = function createCountryJson() {
6913  return "backend/Country.json";
6914};
6915var createChatEntry = function createChatEntry() {
6916  return "chat/javascripts/cj-chat.js";
6917};
6918var createAiChatEntry = function createAiChatEntry() {
6919  return "chat/javascripts/ai-cj-chat.js";
6920};
6921var countryInfo = function countryInfo() {
6922  return "backend/countryInfo.json";
6923};
6924var createChatInternalReceptionJson = function createChatInternalReceptionJson() {
6925  return 'backend/ChatInternalReceptionUser.json';
6926};
6927
6928/***/ }),
6929
6930/***/ 45163:
6931/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6932
6933"use strict";
6934/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6935/* harmony export */   V: () => (/* binding */ sixCountryLanguage)
6936/* harmony export */ });
6937/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = (function (i18next, siteCheck) {
6938  var defaultLng = siteCheck.data('default-lng') || 'en';
6939  return [{
6940    opt: "".concat(defaultLng, "|en"),
6941    name: i18next.t('language-english'),
6942    nameEn: 'English',
6943    flag: siteCheck.data('en-language-flag') || 'US'
6944  }, {
6945    opt: "".concat(defaultLng, "|af"),
6946    name: i18next.t('language-afrikaans'),
6947    nameEn: 'Afrikaans',
6948    flag: 'ZA'
6949  }, {
6950    opt: "".concat(defaultLng, "|sq"),
6951    name: i18next.t('language-albanian'),
6952    nameEn: 'Albanian',
6953    flag: 'AL'
6954  }, {
6955    opt: "".concat(defaultLng, "|ar"),
6956    name: i18next.t('language-arabic'),
6957    nameEn: 'Arabic',
6958    flag: 'SA'
6959  }, {
6960    opt: "".concat(defaultLng, "|am"),
6961    name: i18next.t('language-amharic'),
6962    nameEn: 'Amharic',
6963    flag: 'ET'
6964  }, {
6965    opt: "".concat(defaultLng, "|hy"),
6966    name: i18next.t('language-armenian'),
6967    nameEn: 'Armenian',
6968    flag: 'AM'
6969  }, {
6970    opt: "".concat(defaultLng, "|az"),
6971    name: i18next.t('language-azerbaijani'),
6972    nameEn: 'Azerbaijani',
6973    flag: 'AZ'
6974  }, {
6975    opt: "".concat(defaultLng, "|be"),
6976    name: i18next.t('language-belarusian'),
6977    nameEn: 'Belarusian',
6978    flag: 'BY'
6979  }, {
6980    opt: "".concat(defaultLng, "|bg"),
6981    name: i18next.t('language-bulgarian'),
6982    nameEn: 'Bulgarian',
6983    flag: 'BG'
6984  }, {
6985    opt: "".concat(defaultLng, "|zh-CN"),
6986    name: i18next.t('language-chinese-simplified'),
6987    nameEn: 'Chinese (Simplified)',
6988    flag: 'CN'
6989  }, {
6990    opt: "".concat(defaultLng, "|zh-TW"),
6991    name: i18next.t('language-chinese-traditional'),
6992    nameEn: 'Chinese (Traditional)',
6993    flag: 'CN'
6994  }, {
6995    opt: "".concat(defaultLng, "|hr"),
6996    name: i18next.t('language-croatian'),
6997    nameEn: 'Croatian',
6998    flag: 'HR'
6999  }, {
7000    opt: "".concat(defaultLng, "|cs"),
7001    name: i18next.t('language-czech'),
7002    nameEn: 'Czech',
7003    flag: 'CZ'
7004  }, {
7005    opt: "".concat(defaultLng, "|da"),
7006    name: i18next.t('language-danish'),
7007    nameEn: 'Danish',
7008    flag: 'DK'
7009  }, {
7010    opt: "".concat(defaultLng, "|nl"),
7011    name: i18next.t('language-dutch'),
7012    nameEn: 'Dutch',
7013    flag: 'NL'
7014  }, {
7015    opt: "".concat(defaultLng, "|et"),
7016    name: i18next.t('language-estonian'),
7017    nameEn: 'Estonian',
7018    flag: 'EE'
7019  }, {
7020    opt: "".concat(defaultLng, "|tl"),
7021    name: i18next.t('language-filipino'),
7022    nameEn: 'Filipino',
7023    flag: 'PH'
7024  }, {
7025    opt: "".concat(defaultLng, "|fi"),
7026    name: i18next.t('language-finnish'),
7027    nameEn: 'Finnish',
7028    flag: 'FI'
7029  }, {
7030    opt: "".concat(defaultLng, "|fr"),
7031    name: i18next.t('language-french'),
7032    nameEn: 'French',
7033    flag: 'FR'
7034  }, {
7035    opt: "".concat(defaultLng, "|ka"),
7036    name: i18next.t('language-georgian'),
7037    nameEn: 'Georgian',
7038    flag: 'GE'
7039  }, {
7040    opt: "".concat(defaultLng, "|de"),
7041    name: i18next.t('language-german'),
7042    nameEn: 'German',
7043    flag: 'DE'
7044  }, {
7045    opt: "".concat(defaultLng, "|el"),
7046    name: i18next.t('language-greek'),
7047    nameEn: 'Greek',
7048    flag: 'GR'
7049  }, {
7050    opt: "".concat(defaultLng, "|hi"),
7051    name: i18next.t('language-hindi'),
7052    nameEn: 'Hindi',
7053    flag: 'HT'
7054  }, {
7055    opt: "".concat(defaultLng, "|hu"),
7056    name: i18next.t('language-hungarian'),
7057    nameEn: 'Hungarian',
7058    flag: 'HU'
7059  }, {
7060    opt: "".concat(defaultLng, "|is"),
7061    name: i18next.t('language-icelandic'),
7062    nameEn: 'Icelandic',
7063    flag: 'IS'
7064  }, {
7065    opt: "".concat(defaultLng, "|id"),
7066    name: i18next.t('language-indonesian'),
7067    nameEn: 'Indonesian',
7068    flag: 'ID'
7069  }, {
7070    opt: "".concat(defaultLng, "|ga"),
7071    name: i18next.t('language-irish'),
7072    nameEn: 'Irish',
7073    flag: 'IE'
7074  }, {
7075    opt: "".concat(defaultLng, "|it"),
7076    name: i18next.t('language-italian'),
7077    nameEn: 'Italian',
7078    flag: 'IT'
7079  }, {
7080    opt: "".concat(defaultLng, "|ja"),
7081    name: i18next.t('language-japanese'),
7082    nameEn: 'Japanese',
7083    flag: 'JP'
7084  }, {
7085    opt: "".concat(defaultLng, "|ko"),
7086    name: i18next.t('language-korean'),
7087    nameEn: 'Korean',
7088    flag: 'KR'
7089  }, {
7090    opt: "".concat(defaultLng, "|kk"),
7091    name: i18next.t('language-kazakh', 'Kazakh'),
7092    nameEn: 'Kazakh',
7093    flag: 'KZ'
7094  }, {
7095    opt: "".concat(defaultLng, "|ky"),
7096    name: i18next.t('language-kirghiz-kyrgyz', 'Kirghiz, Kyrgyz'),
7097    nameEn: 'Kirghiz, Kyrgyz',
7098    flag: 'KG'
7099  }, {
7100    opt: "".concat(defaultLng, "|lv"),
7101    name: i18next.t('language-latvian'),
7102    nameEn: 'Latvian',
7103    flag: 'LV'
7104  }, {
7105    opt: "".concat(defaultLng, "|lt"),
7106    name: i18next.t('language-lithuanian'),
7107    nameEn: 'Lithuanian',
7108    flag: 'LT'
7109  }, {
7110    opt: "".concat(defaultLng, "|mk"),
7111    name: i18next.t('language-macedonian'),
7112    nameEn: 'Macedonian',
7113    flag: 'MK'
7114  }, {
7115    opt: "".concat(defaultLng, "|ms"),
7116    name: i18next.t('language-malay'),
7117    nameEn: 'Malay',
7118    flag: 'MY'
7119  }, {
7120    opt: "".concat(defaultLng, "|mt"),
7121    name: i18next.t('language-maltese'),
7122    nameEn: 'Maltese',
7123    flag: 'MT'
7124  }, {
7125    opt: "".concat(defaultLng, "|no"),
7126    name: i18next.t('language-norwegian'),
7127    nameEn: 'Norwegian',
7128    flag: 'NO'
7129  }, {
7130    opt: "".concat(defaultLng, "|pl"),
7131    name: i18next.t('language-polish'),
7132    nameEn: 'Polish',
7133    flag: 'PL'
7134  }, {
7135    opt: "".concat(defaultLng, "|pt"),
7136    name: i18next.t('language-portuguese'),
7137    nameEn: 'Portuguese',
7138    flag: 'PT'
7139  }, {
7140    opt: "".concat(defaultLng, "|ro"),
7141    name: i18next.t('language-romanian'),
7142    nameEn: 'Romanian',
7143    flag: 'RO'
7144  }, {
7145    opt: "".concat(defaultLng, "|ru"),
7146    name: i18next.t('language-russian'),
7147    nameEn: 'Russian',
7148    flag: 'RU'
7149  }, {
7150    opt: "".concat(defaultLng, "|sr"),
7151    name: i18next.t('language-serbian'),
7152    nameEn: 'Serbian',
7153    flag: 'RS'
7154  }, {
7155    opt: "".concat(defaultLng, "|sk"),
7156    name: i18next.t('language-slovak'),
7157    nameEn: 'Slovak',
7158    flag: 'SK'
7159  }, {
7160    opt: "".concat(defaultLng, "|sl"),
7161    name: i18next.t('language-slovenian'),
7162    nameEn: 'Slovenian',
7163    flag: 'SI'
7164  }, {
7165    opt: "".concat(defaultLng, "|es"),
7166    name: i18next.t('language-spanish'),
7167    nameEn: 'Spanish',
7168    flag: 'ES'
7169  }, {
7170    opt: "".concat(defaultLng, "|sw"),
7171    name: i18next.t('language-swahili'),
7172    nameEn: 'Swahili',
7173    flag: 'SJ'
7174  }, {
7175    opt: "".concat(defaultLng, "|sv"),
7176    name: i18next.t('language-swedish'),
7177    nameEn: 'Swedish',
7178    flag: 'SE'
7179  }, {
7180    opt: "".concat(defaultLng, "|th"),
7181    name: i18next.t('language-thai'),
7182    nameEn: 'Thai',
7183    flag: 'TH'
7184  }, {
7185    opt: "".concat(defaultLng, "|tr"),
7186    name: i18next.t('language-turkish'),
7187    nameEn: 'Turkish',
7188    flag: 'TR'
7189  }, {
7190    opt: "".concat(defaultLng, "|tg"),
7191    name: i18next.t('language-tajik', 'Tajik'),
7192    nameEn: 'Tajik',
7193    flag: 'TJ'
7194  }, {
7195    opt: "".concat(defaultLng, "|tk"),
7196    name: i18next.t('language-turkmen', 'Turkmen'),
7197    nameEn: 'Turkmen',
7198    flag: 'TM'
7199  }, {
7200    opt: "".concat(defaultLng, "|uk"),
7201    name: i18next.t('language-ukrainian'),
7202    nameEn: 'Ukrainian',
7203    flag: 'UA'
7204  }, {
7205    opt: "".concat(defaultLng, "|ur"),
7206    name: i18next.t('language-urdu'),
7207    nameEn: 'Urdu',
7208    flag: 'PK'
7209  }, {
7210    opt: "".concat(defaultLng, "|uz"),
7211    name: i18next.t('language-uzbek', 'Uzbek'),
7212    nameEn: 'Uzbek',
7213    flag: 'UZ'
7214  }, {
7215    opt: "".concat(defaultLng, "|vi"),
7216    name: i18next.t('language-vietnamese'),
7217    nameEn: 'Vietnamese',
7218    flag: 'VN'
7219  }, {
7220    opt: "".concat(defaultLng, "|cy"),
7221    name: i18next.t('language-welsh'),
7222    nameEn: 'Welsh',
7223    flag: 'WELSH'
7224  }, {
7225    opt: "".concat(defaultLng, "|yi"),
7226    name: i18next.t('language-yiddish'),
7227    nameEn: 'Yiddish',
7228    flag: 'YIDDISH'
7229  }, {
7230    opt: "".concat(defaultLng, "|iw"),
7231    name: i18next.t('language-hebrew'),
7232    nameEn: 'Hebrew',
7233    flag: 'YIDDISH'
7234  }, {
7235    opt: "".concat(defaultLng, "|ps"),
7236    name: i18next.t('language-pashto'),
7237    nameEn: 'Pashto',
7238    flag: 'AF'
7239  }, {
7240    opt: "".concat(defaultLng, "|fa-AF"),
7241    name: i18next.t('language-dari'),
7242    nameEn: 'Dari',
7243    flag: 'AF'
7244  }];
7245});
7246var sixCountryLanguage = ['zh', 'en', 'de', 'fr', 'id', 'th', 'pt'];
7247
7248/***/ }),
7249
7250/***/ 45480:
7251/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7252
7253"use strict";
7254/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7255/* harmony export */   Hs: () => (/* binding */ STEP_ACTIVATED),
7256/* harmony export */   LV: () => (/* binding */ STEP_PREPARED),
7257/* harmony export */   Mv: () => (/* binding */ STEP_START),
7258/* harmony export */   SF: () => (/* binding */ STATUS_NONE),
7259/* harmony export */   Tv: () => (/* binding */ STATUS_APPEAR),
7260/* harmony export */   Wd: () => (/* binding */ STATUS_ENTER),
7261/* harmony export */   cE: () => (/* binding */ STEP_NONE),
7262/* harmony export */   dp: () => (/* binding */ STATUS_LEAVE),
7263/* harmony export */   m7: () => (/* binding */ STEP_ACTIVE),
7264/* harmony export */   px: () => (/* binding */ STEP_PREPARE)
7265/* harmony export */ });
7266var STATUS_NONE = 'none';
7267var STATUS_APPEAR = 'appear';
7268var STATUS_ENTER = 'enter';
7269var STATUS_LEAVE = 'leave';
7270var STEP_NONE = 'none';
7271var STEP_PREPARE = 'prepare';
7272var STEP_START = 'start';
7273var STEP_ACTIVE = 'active';
7274var STEP_ACTIVATED = 'end';
7275/**
7276 * Used for disabled motion case.
7277 * Prepare stage will still work but start & active will be skipped.
7278 */
7279var STEP_PREPARED = 'prepared';
7280
7281/***/ }),
7282
7283/***/ 46538:
7284/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7285
7286"use strict";
7287/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7288/* harmony export */   D: () => (/* binding */ placements)
7289/* harmony export */ });
7290var autoAdjustOverflowTopBottom = {
7291  shiftX: 64,
7292  adjustY: 1
7293};
7294var autoAdjustOverflowLeftRight = {
7295  adjustX: 1,
7296  shiftY: true
7297};
7298var targetOffset = [0, 0];
7299var placements = {
7300  left: {
7301    points: ['cr', 'cl'],
7302    overflow: autoAdjustOverflowLeftRight,
7303    offset: [-4, 0],
7304    targetOffset: targetOffset
7305  },
7306  right: {
7307    points: ['cl', 'cr'],
7308    overflow: autoAdjustOverflowLeftRight,
7309    offset: [4, 0],
7310    targetOffset: targetOffset
7311  },
7312  top: {
7313    points: ['bc', 'tc'],
7314    overflow: autoAdjustOverflowTopBottom,
7315    offset: [0, -4],
7316    targetOffset: targetOffset
7317  },
7318  bottom: {
7319    points: ['tc', 'bc'],
7320    overflow: autoAdjustOverflowTopBottom,
7321    offset: [0, 4],
7322    targetOffset: targetOffset
7323  },
7324  topLeft: {
7325    points: ['bl', 'tl'],
7326    overflow: autoAdjustOverflowTopBottom,
7327    offset: [0, -4],
7328    targetOffset: targetOffset
7329  },
7330  leftTop: {
7331    points: ['tr', 'tl'],
7332    overflow: autoAdjustOverflowLeftRight,
7333    offset: [-4, 0],
7334    targetOffset: targetOffset
7335  },
7336  topRight: {
7337    points: ['br', 'tr'],
7338    overflow: autoAdjustOverflowTopBottom,
7339    offset: [0, -4],
7340    targetOffset: targetOffset
7341  },
7342  rightTop: {
7343    points: ['tl', 'tr'],
7344    overflow: autoAdjustOverflowLeftRight,
7345    offset: [4, 0],
7346    targetOffset: targetOffset
7347  },
7348  bottomRight: {
7349    points: ['tr', 'br'],
7350    overflow: autoAdjustOverflowTopBottom,
7351    offset: [0, 4],
7352    targetOffset: targetOffset
7353  },
7354  rightBottom: {
7355    points: ['bl', 'br'],
7356    overflow: autoAdjustOverflowLeftRight,
7357    offset: [4, 0],
7358    targetOffset: targetOffset
7359  },
7360  bottomLeft: {
7361    points: ['tl', 'bl'],
7362    overflow: autoAdjustOverflowTopBottom,
7363    offset: [0, 4],
7364    targetOffset: targetOffset
7365  },
7366  leftBottom: {
7367    points: ['br', 'bl'],
7368    overflow: autoAdjustOverflowLeftRight,
7369    offset: [-4, 0],
7370    targetOffset: targetOffset
7371  }
7372};
7373/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ((/* unused pure expression or super */ null && (placements)));
7374
7375/***/ }),
7376
7377/***/ 46783:
7378/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7379
7380"use strict";
7381/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7382/* harmony export */   A: () => (/* binding */ useWinClick)
7383/* harmony export */ });
7384/* harmony import */ var rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49116);
7385/* harmony import */ var rc_util_es_warning__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84445);
7386/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15442);
7387/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
7388/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(61225);
7389
7390
7391
7392
7393function useWinClick(open, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen) {
7394  var openRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(open);
7395  openRef.current = open;
7396  var popupPointerDownRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(false);
7397
7398  // Click to hide is special action since click popup element should not hide
7399  react__WEBPACK_IMPORTED_MODULE_2__.useEffect(function () {
7400    if (clickToHide && popupEle && (!mask || maskClosable)) {
7401      var onPointerDown = function onPointerDown() {
7402        popupPointerDownRef.current = false;
7403      };
7404      var onTriggerClose = function onTriggerClose(e) {
7405        var _e$composedPath;
7406        if (openRef.current && !inPopupOrChild(((_e$composedPath = e.composedPath) === null || _e$composedPath === void 0 || (_e$composedPath = _e$composedPath.call(e)) === null || _e$composedPath === void 0 ? void 0 : _e$composedPath[0]) || e.target) && !popupPointerDownRef.current) {
7407          triggerOpen(false);
7408        }
7409      };
7410      var win = (0,_util__WEBPACK_IMPORTED_MODULE_3__/* .getWin */ .D)(popupEle);
7411      win.addEventListener('pointerdown', onPointerDown, true);
7412      win.addEventListener('mousedown', onTriggerClose, true);
7413      win.addEventListener('contextmenu', onTriggerClose, true);
7414
7415      // shadow root
7416      var targetShadowRoot = (0,rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_0__/* .getShadowRoot */ .j)(targetEle);
7417      if (targetShadowRoot) {
7418        targetShadowRoot.addEventListener('mousedown', onTriggerClose, true);
7419        targetShadowRoot.addEventListener('contextmenu', onTriggerClose, true);
7420      }
7421
7422      // Warning if target and popup not in same root
7423      if (false) // removed by dead control flow
7424{ var popupRoot, targetRoot, _targetEle$getRootNod, _popupEle$getRootNode; }
7425      return function () {
7426        win.removeEventListener('pointerdown', onPointerDown, true);
7427        win.removeEventListener('mousedown', onTriggerClose, true);
7428        win.removeEventListener('contextmenu', onTriggerClose, true);
7429        if (targetShadowRoot) {
7430          targetShadowRoot.removeEventListener('mousedown', onTriggerClose, true);
7431          targetShadowRoot.removeEventListener('contextmenu', onTriggerClose, true);
7432        }
7433      };
7434    }
7435  }, [clickToHide, targetEle, popupEle, mask, maskClosable]);
7436  function onPopupPointerDown() {
7437    popupPointerDownRef.current = true;
7438  }
7439  return onPopupPointerDown;
7440}
7441
7442/***/ }),
7443
7444/***/ 47169:
7445/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7446
7447"use strict";
7448/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7449/* harmony export */   A: () => (/* binding */ canUseDom)
7450/* harmony export */ });
7451function canUseDom() {
7452  return !!(typeof window !== 'undefined' && window.document && window.document.createElement);
7453}
7454
7455/***/ }),
7456
7457/***/ 47280:
7458/***/ ((module) => {
7459
7460// ignore eslint
7461/* eslint-disable */
7462
7463// 使用oss的通用域名,主要是为了防止打包过程中直接打进去的资源地址不直接显示和cj相关
7464module.exports = {
7465    test: 'https://test-cj-frontend.oss-cn-hangzhou.aliyuncs.com',
7466    "production-cn": 'https://cj-front-end.oss-cn-hangzhou.aliyuncs.com',
7467    production: 'https://sv-resource.oss-accelerate.aliyuncs.com'
7468}
7469
7470/***/ }),
7471
7472/***/ 47689:
7473/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7474
7475"use strict";
7476/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7477/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
7478/* harmony export */ });
7479/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69740);
7480/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17545);
7481/* harmony import */ var rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(28299);
7482/* harmony import */ var rc_util_es_ref__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(19284);
7483/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15442);
7484/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
7485/* harmony import */ var _Collection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23660);
7486/* harmony import */ var _utils_observerUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(22616);
7487/* harmony import */ var _DomWrapper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(51778);
7488
7489
7490
7491
7492
7493
7494
7495
7496function SingleObserver(props, ref) {
7497  var children = props.children,
7498    disabled = props.disabled;
7499  var elementRef = react__WEBPACK_IMPORTED_MODULE_4__.useRef(null);
7500  var wrapperRef = react__WEBPACK_IMPORTED_MODULE_4__.useRef(null);
7501  var onCollectionResize = react__WEBPACK_IMPORTED_MODULE_4__.useContext(_Collection__WEBPACK_IMPORTED_MODULE_5__/* .CollectionContext */ .C);
7502
7503  // =========================== Children ===========================
7504  var isRenderProps = typeof children === 'function';
7505  var mergedChildren = isRenderProps ? children(elementRef) : children;
7506
7507  // ============================= Size =============================
7508  var sizeRef = react__WEBPACK_IMPORTED_MODULE_4__.useRef({
7509    width: -1,
7510    height: -1,
7511    offsetWidth: -1,
7512    offsetHeight: -1
7513  });
7514
7515  // ============================= Ref ==============================
7516  var canRef = !isRenderProps && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.isValidElement(mergedChildren) && (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_3__/* .supportRef */ .f3)(mergedChildren);
7517  var originRef = canRef ? (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_3__/* .getNodeRef */ .A9)(mergedChildren) : null;
7518  var mergedRef = (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_3__/* .useComposeRef */ .xK)(originRef, elementRef);
7519  var getDom = function getDom() {
7520    var _elementRef$current;
7521    return (0,rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay)(elementRef.current) || (
7522    // Support `nativeElement` format
7523    elementRef.current && (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(elementRef.current) === 'object' ? (0,rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay)((_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.nativeElement) : null) || (0,rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay)(wrapperRef.current);
7524  };
7525  react__WEBPACK_IMPORTED_MODULE_4__.useImperativeHandle(ref, function () {
7526    return getDom();
7527  });
7528
7529  // =========================== Observe ============================
7530  var propsRef = react__WEBPACK_IMPORTED_MODULE_4__.useRef(props);
7531  propsRef.current = props;
7532
7533  // Handler
7534  var onInternalResize = react__WEBPACK_IMPORTED_MODULE_4__.useCallback(function (target) {
7535    var _propsRef$current = propsRef.current,
7536      onResize = _propsRef$current.onResize,
7537      data = _propsRef$current.data;
7538    var _target$getBoundingCl = target.getBoundingClientRect(),
7539      width = _target$getBoundingCl.width,
7540      height = _target$getBoundingCl.height;
7541    var offsetWidth = target.offsetWidth,
7542      offsetHeight = target.offsetHeight;
7543
7544    /**
7545     * Resize observer trigger when content size changed.
7546     * In most case we just care about element size,
7547     * let's use `boundary` instead of `contentRect` here to avoid shaking.
7548     */
7549    var fixedWidth = Math.floor(width);
7550    var fixedHeight = Math.floor(height);
7551    if (sizeRef.current.width !== fixedWidth || sizeRef.current.height !== fixedHeight || sizeRef.current.offsetWidth !== offsetWidth || sizeRef.current.offsetHeight !== offsetHeight) {
7552      var size = {
7553        width: fixedWidth,
7554        height: fixedHeight,
7555        offsetWidth: offsetWidth,
7556        offsetHeight: offsetHeight
7557      };
7558      sizeRef.current = size;
7559
7560      // IE is strange, right?
7561      var mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;
7562      var mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;
7563      var sizeInfo = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, size), {}, {
7564        offsetWidth: mergedOffsetWidth,
7565        offsetHeight: mergedOffsetHeight
7566      });
7567
7568      // Let collection know what happened
7569      onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(sizeInfo, target, data);
7570      if (onResize) {
7571        // defer the callback but not defer to next frame
7572        Promise.resolve().then(function () {
7573          onResize(sizeInfo, target);
7574        });
7575      }
7576    }
7577  }, []);
7578
7579  // Dynamic observe
7580  react__WEBPACK_IMPORTED_MODULE_4__.useEffect(function () {
7581    var currentElement = getDom();
7582    if (currentElement && !disabled) {
7583      (0,_utils_observerUtil__WEBPACK_IMPORTED_MODULE_6__/* .observe */ .lB)(currentElement, onInternalResize);
7584    }
7585    return function () {
7586      return (0,_utils_observerUtil__WEBPACK_IMPORTED_MODULE_6__/* .unobserve */ .OV)(currentElement, onInternalResize);
7587    };
7588  }, [elementRef.current, disabled]);
7589
7590  // ============================ Render ============================
7591  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.createElement(_DomWrapper__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A, {
7592    ref: wrapperRef
7593  }, canRef ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.cloneElement(mergedChildren, {
7594    ref: mergedRef
7595  }) : mergedChildren);
7596}
7597var RefSingleObserver = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.forwardRef(SingleObserver);
7598if (false) // removed by dead control flow
7599{}
7600/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RefSingleObserver);
7601
7602/***/ }),
7603
7604/***/ 48043:
7605/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7606
7607"use strict";
7608/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7609/* harmony export */   A: () => (/* binding */ useAction)
7610/* harmony export */ });
7611/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15442);
7612/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
7613
7614function toArray(val) {
7615  return val ? Array.isArray(val) ? val : [val] : [];
7616}
7617function useAction(mobile, action, showAction, hideAction) {
7618  return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(function () {
7619    var mergedShowAction = toArray(showAction !== null && showAction !== void 0 ? showAction : action);
7620    var mergedHideAction = toArray(hideAction !== null && hideAction !== void 0 ? hideAction : action);
7621    var showActionSet = new Set(mergedShowAction);
7622    var hideActionSet = new Set(mergedHideAction);
7623    if (mobile) {
7624      if (showActionSet.has('hover')) {
7625        showActionSet.delete('hover');
7626        showActionSet.add('click');
7627      }
7628      if (hideActionSet.has('hover')) {
7629        hideActionSet.delete('hover');
7630        hideActionSet.add('click');
7631      }
7632    }
7633    return [showActionSet, hideActionSet];
7634  }, [mobile, action, showAction, hideAction]);
7635}
7636
7637/***/ }),
7638
7639/***/ 49105:
7640/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
7641
7642"use strict";
7643/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7644/* harmony export */   A: () => (/* binding */ _isNativeReflectConstruct)
7645/* harmony export */ });
7646function _isNativeReflectConstruct() {
7647  try {
7648    var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
7649  } catch (t) {}
7650  return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {
7651    return !!t;
7652  })();
7653}
7654
7655
7656/***/ }),
7657
7658/***/ 49116:
7659/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7660
7661"use strict";
7662/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7663/* harmony export */   j: () => (/* binding */ getShadowRoot)
7664/* harmony export */ });
7665/* unused harmony export inShadow */
7666function getRoot(ele) {
7667  var _ele$getRootNode;
7668  return ele === null || ele === void 0 || (_ele$getRootNode = ele.getRootNode) === null || _ele$getRootNode === void 0 ? void 0 : _ele$getRootNode.call(ele);
7669}
7670
7671/**
7672 * Check if is in shadowRoot
7673 */
7674function inShadow(ele) {
7675  return getRoot(ele) instanceof ShadowRoot;
7676}
7677
7678/**
7679 * Return shadowRoot if possible
7680 */
7681function getShadowRoot(ele) {
7682  return inShadow(ele) ? getRoot(ele) : null;
7683}
7684
7685/***/ }),
7686
7687/***/ 50137:
7688/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7689
7690"use strict";
7691/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7692/* harmony export */   A: () => (/* binding */ usePlatformHref)
7693/* harmony export */ });
7694/* harmony import */ var _common_cj_href__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(84963);
7695/* harmony import */ var _components_CjHeader_hooks_use_parent_platform__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6925);
7696
7697
7698function usePlatformHref() {
7699  var isCj = (0,_components_CjHeader_hooks_use_parent_platform__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)().isCj;
7700  return function (href) {
7701    if (href.indexOf('javascript') > -1) return href;
7702    return isCj ? href : (0,_common_cj_href__WEBPACK_IMPORTED_MODULE_0__/* .cjHref */ .F)(href);
7703  };
7704}
7705
7706/***/ }),
7707
7708/***/ 50184:
7709/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7710
7711"use strict";
7712/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7713/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
7714/* harmony export */ });
7715/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15442);
7716/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
7717
7718var OrderContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createContext(null);
7719/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OrderContext);
7720
7721/***/ }),
7722
7723/***/ 50937:
7724/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7725
7726"use strict";
7727/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7728/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__),
7729/* harmony export */   q: () => (/* binding */ toast_success)
7730/* harmony export */ });
7731var toast = function toast(msg, time) {
7732  if (time === void 0) {
7733    time = 3000;
7734  }
7735  if (typeof layer !== 'undefined') {
7736    layer.msg(msg, {
7737      time: time
7738    });
7739  } else if (typeof window.antd_message !== 'undefined') {
7740    window.antd_message.info(msg, time / 1000);
7741  }
7742};
7743var toast_success = function toast_success(msg, time) {
7744  if (time === void 0) {
7745    time = 3000;
7746  }
7747  if (typeof layer !== 'undefined') {
7748    layer.msg(msg, {
7749      time: time
7750    });
7751  } else if (typeof window.antd_message !== 'undefined') {
7752    window.antd_message.success(msg, time / 1000);
7753  }
7754};
7755/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (toast);
7756
7757/***/ }),
7758
7759/***/ 51187:
7760/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
7761
7762var baseGetTag = __webpack_require__(87379),
7763    isObjectLike = __webpack_require__(80547);
7764
7765/** `Object#toString` result references. */
7766var symbolTag = '[object Symbol]';
7767
7768/**
7769 * Checks if `value` is classified as a `Symbol` primitive or object.
7770 *
7771 * @static
7772 * @memberOf _
7773 * @since 4.0.0
7774 * @category Lang
7775 * @param {*} value The value to check.
7776 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
7777 * @example
7778 *
7779 * _.isSymbol(Symbol.iterator);
7780 * // => true
7781 *
7782 * _.isSymbol('abc');
7783 * // => false
7784 */
7785function isSymbol(value) {
7786  return typeof value == 'symbol' ||
7787    (isObjectLike(value) && baseGetTag(value) == symbolTag);
7788}
7789
7790module.exports = isSymbol;
7791
7792
7793/***/ }),
7794
7795/***/ 51778:
7796/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7797
7798"use strict";
7799/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7800/* harmony export */   A: () => (/* binding */ DomWrapper)
7801/* harmony export */ });
7802/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55152);
7803/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30414);
7804/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29296);
7805/* harmony import */ var _babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(90857);
7806/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15442);
7807/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
7808
7809
7810
7811
7812
7813/**
7814 * Fallback to findDOMNode if origin ref do not provide any dom element
7815 */
7816var DomWrapper = /*#__PURE__*/function (_React$Component) {
7817  (0,_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(DomWrapper, _React$Component);
7818  var _super = (0,_babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)(DomWrapper);
7819  function DomWrapper() {
7820    (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(this, DomWrapper);
7821    return _super.apply(this, arguments);
7822  }
7823  (0,_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(DomWrapper, [{
7824    key: "render",
7825    value: function render() {
7826      return this.props.children;
7827    }
7828  }]);
7829  return DomWrapper;
7830}(react__WEBPACK_IMPORTED_MODULE_4__.Component);
7831
7832
7833/***/ }),
7834
7835/***/ 52743:
7836/***/ ((module) => {
7837
7838"use strict";
7839
7840
7841var isMergeableObject = function isMergeableObject(value) {
7842	return isNonNullObject(value)
7843		&& !isSpecial(value)
7844};
7845
7846function isNonNullObject(value) {
7847	return !!value && typeof value === 'object'
7848}
7849
7850function isSpecial(value) {
7851	var stringValue = Object.prototype.toString.call(value);
7852
7853	return stringValue === '[object RegExp]'
7854		|| stringValue === '[object Date]'
7855		|| isReactElement(value)
7856}
7857
7858// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25
7859var canUseSymbol = typeof Symbol === 'function' && Symbol.for;
7860var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;
7861
7862function isReactElement(value) {
7863	return value.$$typeof === REACT_ELEMENT_TYPE
7864}
7865
7866function emptyTarget(val) {
7867	return Array.isArray(val) ? [] : {}
7868}
7869
7870function cloneUnlessOtherwiseSpecified(value, options) {
7871	return (options.clone !== false && options.isMergeableObject(value))
7872		? deepmerge(emptyTarget(value), value, options)
7873		: value
7874}
7875
7876function defaultArrayMerge(target, source, options) {
7877	return target.concat(source).map(function(element) {
7878		return cloneUnlessOtherwiseSpecified(element, options)
7879	})
7880}
7881
7882function getMergeFunction(key, options) {
7883	if (!options.customMerge) {
7884		return deepmerge
7885	}
7886	var customMerge = options.customMerge(key);
7887	return typeof customMerge === 'function' ? customMerge : deepmerge
7888}
7889
7890function getEnumerableOwnPropertySymbols(target) {
7891	return Object.getOwnPropertySymbols
7892		? Object.getOwnPropertySymbols(target).filter(function(symbol) {
7893			return Object.propertyIsEnumerable.call(target, symbol)
7894		})
7895		: []
7896}
7897
7898function getKeys(target) {
7899	return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))
7900}
7901
7902function propertyIsOnObject(object, property) {
7903	try {
7904		return property in object
7905	} catch(_) {
7906		return false
7907	}
7908}
7909
7910// Protects from prototype poisoning and unexpected merging up the prototype chain.
vendor: 2,558 bytes, lines 7911-7996
7911function propertyIsUnsafe(target, key) {
7912	return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,
7913		&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,
7914			&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.
7915}
7916
7917function mergeObject(target, source, options) {
7918	var destination = {};
7919	if (options.isMergeableObject(target)) {
7920		getKeys(target).forEach(function(key) {
7921			destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);
7922		});
7923	}
7924	getKeys(source).forEach(function(key) {
7925		if (propertyIsUnsafe(target, key)) {
7926			return
7927		}
7928
7929		if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {
7930			destination[key] = getMergeFunction(key, options)(target[key], source[key], options);
7931		} else {
7932			destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);
7933		}
7934	});
7935	return destination
7936}
7937
7938function deepmerge(target, source, options) {
7939	options = options || {};
7940	options.arrayMerge = options.arrayMerge || defaultArrayMerge;
7941	options.isMergeableObject = options.isMergeableObject || isMergeableObject;
7942	// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()
7943	// implementations can use it. The caller may not replace it.
7944	options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;
7945
7946	var sourceIsArray = Array.isArray(source);
7947	var targetIsArray = Array.isArray(target);
7948	var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;
7949
7950	if (!sourceAndTargetTypesMatch) {
7951		return cloneUnlessOtherwiseSpecified(source, options)
7952	} else if (sourceIsArray) {
7953		return options.arrayMerge(target, source, options)
7954	} else {
7955		return mergeObject(target, source, options)
7956	}
7957}
7958
7959deepmerge.all = function deepmergeAll(array, options) {
7960	if (!Array.isArray(array)) {
7961		throw new Error('first argument should be an array')
7962	}
7963
7964	return array.reduce(function(prev, next) {
7965		return deepmerge(prev, next, options)
7966	}, {})
7967};
7968
7969var deepmerge_1 = deepmerge;
7970
7971module.exports = deepmerge_1;
7972
7973
7974/***/ }),
7975
7976/***/ 53373:
7977/***/ ((module, exports) => {
7978
7979var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
7980	Copyright (c) 2018 Jed Watson.
7981	Licensed under the MIT License (MIT), see
7982	http://jedwatson.github.io/classnames
7983*/
7984/* global define */
7985
7986(function () {
7987	'use strict';
7988
7989	var hasOwn = {}.hasOwnProperty;
7990
7991	function classNames () {
7992		var classes = '';
7993
7994		for (var i = 0; i < arguments.length; i++) {
7995			var arg = arguments[i];
7996			if (arg) {
7997				classes = appendClass(classes, parseValue(arg));
7998			}
7999		}
8000
8001		return classes;
8002	}
8003
8004	function parseValue (arg) {
8005		if (typeof arg === 'string' || typeof arg === 'number') {
8006			return arg;
8007		}
8008
8009		if (typeof arg !== 'object') {
8010			return '';
8011		}
8012
8013		if (Array.isArray(arg)) {
8014			return classNames.apply(null, arg);
8015		}
8016
8017		if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
8018			return arg.toString();
8019		}
8020
8021		var classes = '';
8022
8023		for (var key in arg) {
8024			if (hasOwn.call(arg, key) && arg[key]) {
8025				classes = appendClass(classes, key);
8026			}
8027		}
8028
8029		return classes;
8030	}
8031
8032	function appendClass (value, newClass) {
8033		if (!newClass) {
8034			return value;
8035		}
8036	
8037		if (value) {
8038			return value + ' ' + newClass;
8039		}
8040	
8041		return value + newClass;
8042	}
8043
8044	if ( true && module.exports) {
8045		classNames.default = classNames;
8046		module.exports = classNames;
8047	} else if (true) {
8048		// register as 'classnames', consistent with npm package name
8049		!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
8050			return classNames;
8051		}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
8052		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
8053	} else // removed by dead control flow
8054{}
8055}());
8056
8057
8058/***/ }),
8059
8060/***/ 53790:
8061/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8062
8063"use strict";
8064
8065
8066if (true) {
8067  module.exports = __webpack_require__(24898);
8068} else // removed by dead control flow
8069{}
8070
8071
8072/***/ }),
8073
8074/***/ 53795:
8075/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8076
8077"use strict";
8078/* unused harmony exports default, merge */
8079
8080
8081
8082
8083
8084function internalSet(entity, paths, value, removeIfUndefined) {
8085  if (!paths.length) {
8086    return value;
8087  }
8088  var _paths = _toArray(paths),
8089    path = _paths[0],
8090    restPath = _paths.slice(1);
8091  var clone;
8092  if (!entity && typeof path === 'number') {
8093    clone = [];
8094  } else if (Array.isArray(entity)) {
8095    clone = _toConsumableArray(entity);
8096  } else {
8097    clone = _objectSpread({}, entity);
8098  }
8099
8100  // Delete prop if `removeIfUndefined` and value is undefined
8101  if (removeIfUndefined && value === undefined && restPath.length === 1) {
8102    delete clone[path][restPath[0]];
8103  } else {
8104    clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);
8105  }
8106  return clone;
8107}
8108function set(entity, paths, value) {
8109  var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
8110  // Do nothing if `removeIfUndefined` and parent object not exist
8111  if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {
8112    return entity;
8113  }
8114  return internalSet(entity, paths, value, removeIfUndefined);
8115}
8116function isObject(obj) {
8117  return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;
8118}
8119function createEmpty(source) {
8120  return Array.isArray(source) ? [] : {};
8121}
8122var keys = typeof Reflect === 'undefined' ? Object.keys : Reflect.ownKeys;
8123
8124/**
8125 * Merge objects which will create
8126 */
8127function merge() {
8128  for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {
8129    sources[_key] = arguments[_key];
8130  }
8131  var clone = createEmpty(sources[0]);
8132  sources.forEach(function (src) {
8133    function internalMerge(path, parentLoopSet) {
8134      var loopSet = new Set(parentLoopSet);
8135      var value = get(src, path);
8136      var isArr = Array.isArray(value);
8137      if (isArr || isObject(value)) {
8138        // Only add not loop obj
8139        if (!loopSet.has(value)) {
8140          loopSet.add(value);
8141          var originValue = get(clone, path);
8142          if (isArr) {
8143            // Array will always be override
8144            clone = set(clone, path, []);
8145          } else if (!originValue || _typeof(originValue) !== 'object') {
8146            // Init container if not exist
8147            clone = set(clone, path, createEmpty(value));
8148          }
8149          keys(value).forEach(function (key) {
8150            internalMerge([].concat(_toConsumableArray(path), [key]), loopSet);
8151          });
8152        }
8153      } else {
8154        clone = set(clone, path, value);
8155      }
8156    }
8157    internalMerge([]);
8158  });
8159  return clone;
8160}
8161
8162/***/ }),
8163
8164/***/ 53905:
8165/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8166
8167"use strict";
8168/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8169/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
8170/* harmony export */ });
8171/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(81002);
8172/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
8173/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
8174/* harmony import */ var _common_login_info_controller__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12097);
8175
8176
8177
8178/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function (loginInfo, loginCallback) {
8179  if (loginInfo === void 0) {
8180    loginInfo = {};
8181  }
8182  if (loginCallback === void 0) {
8183    loginCallback = function loginCallback() {};
8184  }
8185  var token = loginInfo.token;
8186  var _a = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(!!token),
8187    isLogin = _a[0],
8188    setIsLogin = _a[1];
8189  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
8190    var token = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.info('token');
8191    if (!token) {
8192      setIsLogin(false);
8193      (0,_common__WEBPACK_IMPORTED_MODULE_0__/* .removeLogin */ ._$)();
8194      return;
8195    }
8196    setIsLogin(true);
8197    loginCallback === null || loginCallback === void 0 ? void 0 : loginCallback({});
8198  }, []);
8199  return {
8200    isLogin: isLogin,
8201    loginInfo: loginInfo
8202  };
8203});
8204
8205/***/ }),
8206
8207/***/ 55152:
8208/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
8209
8210"use strict";
8211/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8212/* harmony export */   A: () => (/* binding */ _classCallCheck)
8213/* harmony export */ });
8214function _classCallCheck(a, n) {
8215  if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
8216}
8217
8218
8219/***/ }),
8220
8221/***/ 56003:
8222/***/ ((module) => {
8223
8224"use strict";
8225module.exports = __WEBPACK_EXTERNAL_MODULE__56003__;
8226
8227/***/ }),
8228
8229/***/ 58965:
8230/***/ (() => {
8231
8232"use strict";
8233// extracted by mini-css-extract-plugin
8234/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ({});
8235
8236/***/ }),
8237
8238/***/ 59788:
8239/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8240
8241"use strict";
8242/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8243/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
8244/* harmony export */ });
8245/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89575);
8246/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(69740);
8247/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(79082);
8248/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(53373);
8249/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__);
8250/* harmony import */ var rc_motion__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3251);
8251/* harmony import */ var rc_resize_observer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(77326);
8252/* harmony import */ var rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(84238);
8253/* harmony import */ var rc_util_es_ref__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(19284);
8254/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(15442);
8255/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_8__);
8256/* harmony import */ var _Arrow__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(23581);
8257/* harmony import */ var _Mask__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(27982);
8258/* harmony import */ var _PopupContent__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(80745);
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271var Popup = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.forwardRef(function (props, ref) {
8272  var popup = props.popup,
8273    className = props.className,
8274    prefixCls = props.prefixCls,
8275    style = props.style,
8276    target = props.target,
8277    _onVisibleChanged = props.onVisibleChanged,
8278    open = props.open,
8279    keepDom = props.keepDom,
8280    fresh = props.fresh,
8281    onClick = props.onClick,
8282    mask = props.mask,
8283    arrow = props.arrow,
8284    arrowPos = props.arrowPos,
8285    align = props.align,
8286    motion = props.motion,
8287    maskMotion = props.maskMotion,
8288    forceRender = props.forceRender,
8289    getPopupContainer = props.getPopupContainer,
8290    autoDestroy = props.autoDestroy,
8291    Portal = props.portal,
8292    zIndex = props.zIndex,
8293    onMouseEnter = props.onMouseEnter,
8294    onMouseLeave = props.onMouseLeave,
8295    onPointerEnter = props.onPointerEnter,
8296    onPointerDownCapture = props.onPointerDownCapture,
8297    ready = props.ready,
8298    offsetX = props.offsetX,
8299    offsetY = props.offsetY,
8300    offsetR = props.offsetR,
8301    offsetB = props.offsetB,
8302    onAlign = props.onAlign,
8303    onPrepare = props.onPrepare,
8304    stretch = props.stretch,
8305    targetWidth = props.targetWidth,
8306    targetHeight = props.targetHeight;
8307  var childNode = typeof popup === 'function' ? popup() : popup;
8308
8309  // We can not remove holder only when motion finished.
8310  var isNodeVisible = open || keepDom;
8311
8312  // ======================= Container ========================
8313  var getPopupContainerNeedParams = (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer.length) > 0;
8314  var _React$useState = react__WEBPACK_IMPORTED_MODULE_8__.useState(!getPopupContainer || !getPopupContainerNeedParams),
8315    _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(_React$useState, 2),
8316    show = _React$useState2[0],
8317    setShow = _React$useState2[1];
8318
8319  // Delay to show since `getPopupContainer` need target element
8320  (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A)(function () {
8321    if (!show && getPopupContainerNeedParams && target) {
8322      setShow(true);
8323    }
8324  }, [show, getPopupContainerNeedParams, target]);
8325
8326  // ========================= Render =========================
8327  if (!show) {
8328    return null;
8329  }
8330
8331  // >>>>> Offset
8332  var AUTO = 'auto';
8333  var offsetStyle = {
8334    left: '-1000vw',
8335    top: '-1000vh',
8336    right: AUTO,
8337    bottom: AUTO
8338  };
8339
8340  // Set align style
8341  if (ready || !open) {
8342    var _experimental;
8343    var points = align.points;
8344    var dynamicInset = align.dynamicInset || ((_experimental = align._experimental) === null || _experimental === void 0 ? void 0 : _experimental.dynamicInset);
8345    var alignRight = dynamicInset && points[0][1] === 'r';
8346    var alignBottom = dynamicInset && points[0][0] === 'b';
8347    if (alignRight) {
8348      offsetStyle.right = offsetR;
8349      offsetStyle.left = AUTO;
8350    } else {
8351      offsetStyle.left = offsetX;
8352      offsetStyle.right = AUTO;
8353    }
8354    if (alignBottom) {
8355      offsetStyle.bottom = offsetB;
8356      offsetStyle.top = AUTO;
8357    } else {
8358      offsetStyle.top = offsetY;
8359      offsetStyle.bottom = AUTO;
8360    }
8361  }
8362
8363  // >>>>> Misc
8364  var miscStyle = {};
8365  if (stretch) {
8366    if (stretch.includes('height') && targetHeight) {
8367      miscStyle.height = targetHeight;
8368    } else if (stretch.includes('minHeight') && targetHeight) {
8369      miscStyle.minHeight = targetHeight;
8370    }
8371    if (stretch.includes('width') && targetWidth) {
8372      miscStyle.width = targetWidth;
8373    } else if (stretch.includes('minWidth') && targetWidth) {
8374      miscStyle.minWidth = targetWidth;
8375    }
8376  }
8377  if (!open) {
8378    miscStyle.pointerEvents = 'none';
8379  }
8380  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(Portal, {
8381    open: forceRender || isNodeVisible,
8382    getContainer: getPopupContainer && function () {
8383      return getPopupContainer(target);
8384    },
8385    autoDestroy: autoDestroy
8386  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(_Mask__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A, {
8387    prefixCls: prefixCls,
8388    open: open,
8389    zIndex: zIndex,
8390    mask: mask,
8391    motion: maskMotion
8392  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(rc_resize_observer__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A, {
8393    onResize: onAlign,
8394    disabled: !open
8395  }, function (resizeObserverRef) {
8396    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(rc_motion__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Ay, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({
8397      motionAppear: true,
8398      motionEnter: true,
8399      motionLeave: true,
8400      removeOnLeave: false,
8401      forceRender: forceRender,
8402      leavedClassName: "".concat(prefixCls, "-hidden")
8403    }, motion, {
8404      onAppearPrepare: onPrepare,
8405      onEnterPrepare: onPrepare,
8406      visible: open,
8407      onVisibleChanged: function onVisibleChanged(nextVisible) {
8408        var _motion$onVisibleChan;
8409        motion === null || motion === void 0 || (_motion$onVisibleChan = motion.onVisibleChanged) === null || _motion$onVisibleChan === void 0 || _motion$onVisibleChan.call(motion, nextVisible);
8410        _onVisibleChanged(nextVisible);
8411      }
8412    }), function (_ref, motionRef) {
8413      var motionClassName = _ref.className,
8414        motionStyle = _ref.style;
8415      var cls = classnames__WEBPACK_IMPORTED_MODULE_3___default()(prefixCls, motionClassName, className);
8416      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement("div", {
8417        ref: (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_7__/* .composeRef */ .K4)(resizeObserverRef, ref, motionRef),
8418        className: cls,
8419        style: (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)({
8420          '--arrow-x': "".concat(arrowPos.x || 0, "px"),
8421          '--arrow-y': "".concat(arrowPos.y || 0, "px")
8422        }, offsetStyle), miscStyle), motionStyle), {}, {
8423          boxSizing: 'border-box',
8424          zIndex: zIndex
8425        }, style),
8426        onMouseEnter: onMouseEnter,
8427        onMouseLeave: onMouseLeave,
8428        onPointerEnter: onPointerEnter,
8429        onClick: onClick,
8430        onPointerDownCapture: onPointerDownCapture
8431      }, arrow && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(_Arrow__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A, {
8432        prefixCls: prefixCls,
8433        arrow: arrow,
8434        arrowPos: arrowPos,
8435        align: align
8436      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(_PopupContent__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .A, {
8437        cache: !open && !fresh
8438      }, childNode));
8439    });
8440  }));
8441});
8442if (false) // removed by dead control flow
8443{}
8444/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Popup);
8445
8446/***/ }),
8447
8448/***/ 59912:
8449/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8450
8451"use strict";
8452/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8453/* harmony export */   A: () => (/* binding */ Tooltip)
8454/* harmony export */ });
8455/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15442);
8456/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
8457/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56003);
8458/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);
8459/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22128);
8460/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(53373);
8461/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__);
8462/* harmony import */ var _components_CjHeader_const_languages__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(45163);
8463/* harmony import */ var _components_CjHeader_contexts_PropsContext__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(44148);
8464/* harmony import */ var _RcToolTip__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(14919);
8465/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(81002);
8466var __assign = undefined && undefined.__assign || function () {
8467  __assign = Object.assign || function (t) {
8468    for (var s, i = 1, n = arguments.length; i < n; i++) {
8469      s = arguments[i];
8470      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
8471    }
8472    return t;
8473  };
8474  return __assign.apply(this, arguments);
8475};
8476var __rest = undefined && undefined.__rest || function (s, e) {
8477  var t = {};
8478  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
8479  if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8480    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
8481  }
8482  return t;
8483};
8484
8485
8486
8487
8488
8489
8490
8491
8492function Tooltip(props) {
8493  var _a = props.useRc,
8494    useRc = _a === void 0 ? false : _a,
8495    _b = props.rcProps,
8496    rcProps = _b === void 0 ? {} : _b,
8497    _c = props.content,
8498    content = _c === void 0 ? '' : _c,
8499    children = props.children,
8500    _d = props.placement,
8501    placement = _d === void 0 ? 'top' : _d,
8502    _e = props.white,
8503    white = _e === void 0 ? false : _e,
8504    _f = props.className,
8505    className = _f === void 0 ? '' : _f,
8506    bodyStyle = props.bodyStyle,
8507    immediateHide = props.immediateHide,
8508    noImmediateShow = props.noImmediateShow,
8509    _g = props.noImmediateShowDelay,
8510    noImmediateShowDelay = _g === void 0 ? 1000 : _g,
8511    _h = props.autoTranslate,
8512    autoTranslate = _h === void 0 ? true : _h,
8513    autoShow = props.autoShow,
8514    _j = props.autoShowDelay,
8515    autoShowDelay = _j === void 0 ? 1000 : _j,
8516    _k = props.hideArrow,
8517    hideArrow = _k === void 0 ? false : _k,
8518    _l = props.zIndex,
8519    zIndex = _l === void 0 ? 99999 : _l,
8520    resetProps = __rest(props, ["useRc", "rcProps", "content", "children", "placement", "white", "className", "bodyStyle", "immediateHide", "noImmediateShow", "noImmediateShowDelay", "autoTranslate", "autoShow", "autoShowDelay", "hideArrow", "zIndex"]);
8521  var lng = (0,_components_CjHeader_contexts_PropsContext__WEBPACK_IMPORTED_MODULE_5__/* .useGlobalProps */ .v)().otherCookies.lng;
8522  var notranslate = autoTranslate ? false : _components_CjHeader_const_languages__WEBPACK_IMPORTED_MODULE_4__/* .sixCountryLanguage */ .V.includes(lng);
8523  var cloneRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
8524  var ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
8525  var timerRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
8526  var timerEnterRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
8527  var Tip = function Tip(_a) {
8528    var _b, _c;
8529    var _d = _a.arrowStyle,
8530      arrowStyle = _d === void 0 ? {}
8530 : _d,
8531      style = _a.style;
8532    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
8533      className: classnames__WEBPACK_IMPORTED_MODULE_3___default()(_index_less__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.tooltip, className, (_b = {}, _b[_index_less__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.white] = white, _b.notranslate = notranslate, _b)),
8534      style: __assign(__assign({}, style), {
8535        zIndex: zIndex
8536      })
8537    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
8538      className: _index_less__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.box
8539    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
8540      className: classnames__WEBPACK_IMPORTED_MODULE_3___default()((_c = {}, _c[_index_less__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.arrow] = !hideArrow, _c[_index_less__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.rightArrow] = placement === 'right' && !hideArrow, _c)),
8541      style: arrowStyle
8542    }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
8543      className: _index_less__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.content
8544    }, content)));
8545  };
8546  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
8547    return function () {
8548      ref.current && ref.current.remove();
8549    };
8550  }, []);
8551  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
8552    if (autoShow) {
8553      setTimeout(function () {
8554        if ((0,_common__WEBPACK_IMPORTED_MODULE_7__/* .isMobileFun */ .kJ)()) {
8555          return;
8556        }
8557        handleOnMouseEnter(cloneRef.current);
8558        setTimeout(function () {
8559          handleOnLeave(ref.current);
8560        }, autoShowDelay);
8561      }, 1000);
8562    }
8563  }, []);
8564  var clearTimerVariable = function clearTimerVariable() {
8565    timerRef.current && clearTimeout(timerRef.current);
8566  };
8567  var handleOnLeave = function handleOnLeave(dom) {
8568    function removeDom() {
8569      dom && dom.remove();
8570      ref.current = null;
8571    }
8572    clearTimerVariable();
8573    if (immediateHide) return removeDom();
8574    timerRef.current = setTimeout(function () {
8575      removeDom();
8576    }, 50);
8577  };
8578  var handleOnMouseEnter = function handleOnMouseEnter(target) {
8579    clearTimerVariable();
8580    if (ref.current) return;
8581    var _a = target.getBoundingClientRect(),
8582      top = _a.top,
8583      width = _a.width,
8584      left = _a.left,
8585      height = _a.height;
8586    var windowWidth = window.innerWidth;
8587    var arrowWidth = 10;
8588    var style = {};
8589    var arrowStyle = {};
8590    switch (placement) {
8591      case 'leftTop':
8592        style = {
8593          left: left,
8594          top: top - 10,
8595          transform: 'translateY(-100%)'
8596        };
8597        arrowStyle = {
8598          bottom: -5,
8599          left: width / 2 - arrowWidth / 2
8600        };
8601        break;
8602      case 'rightTop':
8603        style = {
8604          right: windowWidth - (left + width),
8605          top: top - 10,
8606          transform: 'translateY(-100%)'
8607        };
8608        arrowStyle = {
8609          bottom: -5,
8610          right: width / 2 - arrowWidth / 2
8611        };
8612        break;
8613      case 'right':
8614        style = {
8615          left: left + width + arrowWidth,
8616          top: top - height / 2 + 6
8617        };
8618        arrowStyle = {
8619          bottom: height / 2,
8620          left: -arrowWidth
8621        };
8622        break;
8623      case 'top':
8624        style = {
8625          left: left + width / 2,
8626          top: top - 10,
8627          transform: 'translate(-50%, -100%)'
8628        };
8629        arrowStyle = {
8630          bottom: -5,
8631          left: "calc(50% - ".concat(arrowWidth / 2, "px)")
8632        };
8633        break;
8634      case 'bottom':
8635        style = {
8636          left: left + width / 2,
8637          top: top + height + 10,
8638          transform: 'translateX(-50%)'
8639        };
8640        arrowStyle = {
8641          top: -5,
8642          left: "calc(50% - ".concat(arrowWidth / 2, "px)"),
8643          transform: 'rotate(180deg)'
8644        };
8645        break;
8646      case 'bottomRight':
8647        style = {
8648          right: windowWidth - (left + width),
8649          top: top + height + 10
8650        };
8651        arrowStyle = {
8652          top: -5,
8653          right: width / 2 - arrowWidth / 2,
8654          transform: 'rotate(180deg)'
8655        };
8656        break;
8657      case 'bottomLeft':
8658        style = {
8659          left: left,
8660          top: top + height + 10
8661        };
8662        arrowStyle = {
8663          top: -5,
8664          left: width / 2 - arrowWidth / 2,
8665          transform: 'rotate(180deg)'
8666        };
8667        break;
8668      case 'leftBottom':
8669        style = {
8670          left: left,
8671          top: top + height + 10
8672        };
8673        arrowStyle = {
8674          top: -5,
8675          left: arrowWidth + 5,
8676          transform: 'rotate(180deg)'
8677        };
8678        break;
8679      default:
8680    }
8681    var CloneTip = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Tip, {
8682      style: __assign(__assign({}, style), bodyStyle),
8683      arrowStyle: arrowStyle
8684    }), {});
8685    var div = document.createElement('div');
8686    div.addEventListener('mouseenter', function (e) {
8687      clearTimerVariable();
8688    });
8689    div.addEventListener('mouseleave', function () {
8690      handleOnLeave(ref.current);
8691    });
8692    function show() {
8693      document.body.append(div);
8694      ref.current = div;
8695      (react_dom__WEBPACK_IMPORTED_MODULE_1___default()) === null || (react_dom__WEBPACK_IMPORTED_MODULE_1___default()) === void 0 ? void 0 : react_dom__WEBPACK_IMPORTED_MODULE_1___default().render(CloneTip, div);
8696    }
8697    if (noImmediateShow) {
8698      timerEnterRef && clearTimeout(timerEnterRef.current);
8699      timerEnterRef.current = setTimeout(function () {
8700        show();
8701      }, noImmediateShowDelay);
8702      return;
8703    }
8704    show();
8705  };
8706  if (!content) return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(children, {
8707    ref: cloneRef
8708  });
8709  if (useRc) {
8710    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_RcToolTip__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A, __assign({
8711      theme: "black",
8712      placement: placement,
8713      overlay: function overlay() {
8714        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, content);
8715      },
8716      getTooltipContainer: function getTooltipContainer(triggerNode) {
8717        if (triggerNode.parentElement) return triggerNode.parentElement;
8718        return document.body;
8719      }
8720    }
8720, rcProps), typeof children === 'string' ? (/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, children)) : children);
8721  }
8722  return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(typeof children === 'string' ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, children) : children, {
8723    ref: cloneRef,
8724    onMouseEnter: function onMouseEnter(e) {
8725      handleOnMouseEnter(e.currentTarget);
8726    },
8727    onMouseLeave: function onMouseLeave() {
8728      if (noImmediateShow) {
8729        timerEnterRef && clearTimeout(timerEnterRef.current);
8730      }
8731      handleOnLeave(ref.current);
8732    }
8733  });
8734}
8735
8736/***/ }),
8737
8738/***/ 60133:
8739/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8740
8741"use strict";
8742/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8743/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
8744/* harmony export */ });
8745// extracted by mini-css-extract-plugin
8746/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({"btn":"btn--hHfLn","ghost":"ghost--pR796","full":"full--rT5su","primary":"primary--jBthu","vip":"vip--zOK0_","default":"default--O2uEL","disabled":"disabled--ZWNPd","small":"small--U9Yu8","large":"large--qAE7P"});
8747
8748/***/ }),
8749
8750/***/ 60488:
8751/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8752
8753"use strict";
8754/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8755/* harmony export */   A: () => (/* binding */ useIsZS)
8756/* harmony export */ });
8757function useIsZS(server_siteCheck) {
8758  var _a, _b, _c;
8759  if (typeof window === 'undefined') return server_siteCheck ? ((_a = server_siteCheck === null || server_siteCheck === void 0 ? void 0 : server_siteCheck.isSite) === null || _a === void 0 ? void 0 : _a.call(server_siteCheck, 'ZS')) === true : false;
8760  return ((_c = (_b = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _b === void 0 ? void 0 : _b.isSite) === null || _c === void 0 ? void 0 : _c.call(_b, 'ZS')) === true;
8761}
8762
8763/***/ }),
8764
8765/***/ 61225:
8766/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8767
8768"use strict";
8769/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8770/* harmony export */   D: () => (/* binding */ getWin),
8771/* harmony export */   H1: () => (/* binding */ getAlignPopupClassName),
8772/* harmony export */   Iq: () => (/* binding */ getVisibleArea),
8773/* harmony export */   TK: () => (/* binding */ collectScroller),
8774/* harmony export */   Vu: () => (/* binding */ getMotion),
8775/* harmony export */   ac: () => (/* binding */ toNum)
8776/* harmony export */ });
8777/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69740);
8778
8779function isPointsEq() {
8780  var a1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
8781  var a2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
8782  var isAlignPoint = arguments.length > 2 ? arguments[2] : undefined;
8783  if (isAlignPoint) {
8784    return a1[0] === a2[0];
8785  }
8786  return a1[0] === a2[0] && a1[1] === a2[1];
8787}
8788function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {
8789  var points = align.points;
8790  var placements = Object.keys(builtinPlacements);
8791  for (var i = 0; i < placements.length; i += 1) {
8792    var _builtinPlacements$pl;
8793    var placement = placements[i];
8794    if (isPointsEq((_builtinPlacements$pl = builtinPlacements[placement]) === null || _builtinPlacements$pl === void 0 ? void 0 : _builtinPlacements$pl.points, points, isAlignPoint)) {
8795      return "".concat(prefixCls, "-placement-").concat(placement);
8796    }
8797  }
8798  return '';
8799}
8800
8801/** @deprecated We should not use this if we can refactor all deps */
8802function getMotion(prefixCls, motion, animation, transitionName) {
8803  if (motion) {
8804    return motion;
8805  }
8806  if (animation) {
8807    return {
8808      motionName: "".concat(prefixCls, "-").concat(animation)
8809    };
8810  }
8811  if (transitionName) {
8812    return {
8813      motionName: transitionName
8814    };
8815  }
8816  return null;
8817}
8818function getWin(ele) {
8819  return ele.ownerDocument.defaultView;
8820}
8821
8822/**
8823 * Get all the scrollable parent elements of the element
8824 * @param ele       The element to be detected
8825 * @param areaOnly  Only return the parent which will cut visible area
8826 */
8827function collectScroller(ele) {
8828  var scrollerList = [];
8829  var current = ele === null || ele === void 0 ? void 0 : ele.parentElement;
8830  var scrollStyle = ['hidden', 'scroll', 'clip', 'auto'];
8831  while (current) {
8832    var _getWin$getComputedSt = getWin(current).getComputedStyle(current),
8833      overflowX = _getWin$getComputedSt.overflowX,
8834      overflowY = _getWin$getComputedSt.overflowY,
8835      overflow = _getWin$getComputedSt.overflow;
8836    if ([overflowX, overflowY, overflow].some(function (o) {
8837      return scrollStyle.includes(o);
8838    })) {
8839      scrollerList.push(current);
8840    }
8841    current = current.parentElement;
8842  }
8843  return scrollerList;
8844}
8845function toNum(num) {
8846  var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
8847  return Number.isNaN(num) ? defaultValue : num;
8848}
8849function getPxValue(val) {
8850  return toNum(parseFloat(val), 0);
8851}
8852/**
8853 *
8854 *
8855 *  **************************************
8856 *  *              Border                *
8857 *  *     **************************     *
8858 *  *     *                  *     *     *
8859 *  *  B  *                  *  S  *  B  *
8860 *  *  o  *                  *  c  *  o  *
8861 *  *  r  *      Content     *  r  *  r  *
8862 *  *  d  *                  *  o  *  d  *
8863 *  *  e  *                  *  l  *  e  *
8864 *  *  r  ********************  l  *  r  *
8865 *  *     *        Scroll          *     *
8866 *  *     **************************     *
8867 *  *              Border                *
8868 *  **************************************
8869 *
8870 */
8871/**
8872 * Get visible area of element
8873 */
8874function getVisibleArea(initArea, scrollerList) {
8875  var visibleArea = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, initArea);
8876  (scrollerList || []).forEach(function (ele) {
8877    if (ele instanceof HTMLBodyElement || ele instanceof HTMLHtmlElement) {
8878      return;
8879    }
8880
8881    // Skip if static position which will not affect visible area
8882    var _getWin$getComputedSt2 = getWin(ele).getComputedStyle(ele),
8883      overflow = _getWin$getComputedSt2.overflow,
8884      overflowClipMargin = _getWin$getComputedSt2.overflowClipMargin,
8885      borderTopWidth = _getWin$getComputedSt2.borderTopWidth,
8886      borderBottomWidth = _getWin$getComputedSt2.borderBottomWidth,
8887      borderLeftWidth = _getWin$getComputedSt2.borderLeftWidth,
8888      borderRightWidth = _getWin$getComputedSt2.borderRightWidth;
8889    var eleRect = ele.getBoundingClientRect();
8890    var eleOutHeight = ele.offsetHeight,
8891      eleInnerHeight = ele.clientHeight,
8892      eleOutWidth = ele.offsetWidth,
8893      eleInnerWidth = ele.clientWidth;
8894    var borderTopNum = getPxValue(borderTopWidth);
8895    var borderBottomNum = getPxValue(borderBottomWidth);
8896    var borderLeftNum = getPxValue(borderLeftWidth);
8897    var borderRightNum = getPxValue(borderRightWidth);
8898    var scaleX = toNum(Math.round(eleRect.width / eleOutWidth * 1000) / 1000);
8899    var scaleY = toNum(Math.round(eleRect.height / eleOutHeight * 1000) / 1000);
8900
8901    // Original visible area
8902    var eleScrollWidth = (eleOutWidth - eleInnerWidth - borderLeftNum - borderRightNum) * scaleX;
8903    var eleScrollHeight = (eleOutHeight - eleInnerHeight - borderTopNum - borderBottomNum) * scaleY;
8904
8905    // Cut border size
8906    var scaledBorderTopWidth = borderTopNum * scaleY;
8907    var scaledBorderBottomWidth = borderBottomNum * scaleY;
8908    var scaledBorderLeftWidth = borderLeftNum * scaleX;
8909    var scaledBorderRightWidth = borderRightNum * scaleX;
8910
8911    // Clip margin
8912    var clipMarginWidth = 0;
8913    var clipMarginHeight = 0;
8914    if (overflow === 'clip') {
8915      var clipNum = getPxValue(overflowClipMargin);
8916      clipMarginWidth = clipNum * scaleX;
8917      clipMarginHeight = clipNum * scaleY;
8918    }
8919
8920    // Region
8921    var eleLeft = eleRect.x + scaledBorderLeftWidth - clipMarginWidth;
8922    var eleTop = eleRect.y + scaledBorderTopWidth - clipMarginHeight;
8923    var eleRight = eleLeft + eleRect.width + 2 * clipMarginWidth - scaledBorderLeftWidth - scaledBorderRightWidth - eleScrollWidth;
8924    var eleBottom = eleTop + eleRect.height + 2 * clipMarginHeight - scaledBorderTopWidth - scaledBorderBottomWidth - eleScrollHeight;
8925    visibleArea.left = Math.max(visibleArea.left, eleLeft);
8926    visibleArea.top = Math.max(visibleArea.top, eleTop);
8927    visibleArea.right = Math.min(visibleArea.right, eleRight);
8928    visibleArea.bottom = Math.min(visibleArea.bottom, eleBottom);
8929  });
8930  return visibleArea;
8931}
8932
8933/***/ }),
8934
8935/***/ 62194:
8936/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8937
8938"use strict";
8939/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8940/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
8941/* harmony export */ });
8942/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
8943  "/mine/invoiceNew/providerInvoice": {
8944    "module": {
8945      "show-side-menu": false
8946    }
8947  },
8948  "/customPackaging": {
8949    "module": {
8950      "show-side-menu": false
8951    }
8952  },
8953  "/mine/logisticForMyProducts": {
8954    "module": {
8955      "show-side-menu": false
8956    }
8957  },
8958  "/mine/podInfoTemp": {
8959    "module": {
8960      "show-side-menu": false,
8961      "chat-body": false
8962    }
8963  },
8964  "/factories": {
8965    "module": {
8966      "header-search-camera": false
8967    }
8968  },
8969  "/mine/purchase/purchaseList": {
8970    "module": {
8971      "th-incomplete-product": false,
8972      "th-search-form": false,
8973      "th-show-pay-logistic": false,
8974      "th-self-pick-code": false
8975    }
8976  },
8977  "/mine/invoiceNew/walletInvoice": {
8978    "module": {
8979      "show-side-menu": false
8980    }
8981  },
8982  "/home": {
8983    "banner-width": "600",
8984    "module": {
8985      "global-selected-products": false
8986    },
8987    "banner-height": "413"
8988  },
8989  "/mine/invoiceNew/providerWalletInvoice": {
8990    "module": {
8991      "show-side-menu": false
8992    }
8993  },
8994  "/bulkPurchase": {
8995    "module": {
8996      "show-side-menu": false
8997    }
8998  },
8999  "/top-selling": {
9000    "module": {
9001      "show-side-menu": false
9002    }
9003  },
9004  "/mine/aiAssistant": {
9005    "module": {
9006      "product-card-listnum": false,
9007      "ai-assistant": false,
9008      "chat-body": false
9009    }
9010  },
9011  "/mabang": {
9012    "module": {
9013      "show-side-menu": false
9014    }
9015  },
9016  "/loancredit": {
9017    "module": {
9018      "footer-link": false
9019    }
9020  },
9021  "/partnership/Strat%C3%A9gieEscape": {
9022    "module": {
9023      "chat-body": false
9024    }
9025  },
9026  "/mine/invoiceNew/orderInvoice": {
9027    "module": {
9028      "show-side-menu": false
9029    }
9030  },
9031  "/mine/calculation": {
9032    "module": {
9033      "chat-body": false
9034    }
9035  },
9036  "common": {
9037    "can-subscribe-nums": ["CJ10001", "CJ429035", "CJ393749", "CJ4413202", "CJ4853327", "CJ4222547", "CJ709889"],
9038    "warehouse-operation-video-users": ["CJ10001", "CJ4445350", "CJ4468131", "CJ4461784", "CJ4031737", "CJ2520452", "CJ2591528", "CJ2607137", "CJ1845582"],
9039    "list-allow-add-local-nums": ["CJ4599325", "CJ4832006", "CJ4825286", "CJ591747", "CJ2538590", "CJ4815083"],
9040    "login-data": "zJRR4N29LfElWFRWD2JVBg==",
9041    "intelligence-menu-threshold": 1,
9042    "allow-y2-warehouse-user-ids": ["CJ1452721", "CJ3228909", "CJ4575601", "CJ1416226", "CJ3293232", "CJ4740088", "CJ4740087", "CJ4271494", "CJ529652", "CJ4041322", "CJ3459275", "CJ3422915", "CJ2547649", "CJ4754698", "CJ4757361", "CJ3332447", "CJ4046260", "CJ4413327", "CJ5134478", "CJ4387309", "CJ3223840", "CJ4309565", "CJ5134478", "CJ4341409", "CJ2120214", "CJ5551678", "CJ5572366", "CJ4208773", "CJ4387310", "CJ4594195", "CJ5052390", "CJ5686727", "CJ4064947"],
9043    "kokomo-pod-warehouse-users": ["CJ1452721", "CJ52688", "CJ3332447", "CJ3804316", "CJ3692101", "CJ3601631", "CJ4634746", "CJ2922426", "CJ2284102", "CJ3603937", "CJ3293232", "CJ4208773", "CJ77700", "CJ4597771", "CJ4646939", "CJ4669283", "CJ4856592", "CJ4387309", "CJ4309565", "CJ4064947", "CJ4387310", "CJ4272884", "CJ4594195", "CJ4920978", "CJ3228909", "CJ4740087", "CJ4041322", "CJ5028839", "CJ5035526"],
9044    "share-image": "https://frontend.cjdropshipping.com/config-resource/cj/share1200x900.jpg",
9045    "allowed-api-user-ids": ["CJ4468131", "CJ620569", "CJ10001", "CJ429035", "CJ4224762", "CJ1452721", "CJ4985938", "CJ158602", "CJ56440", "CJ5551755"],
9046    "full-name": "CJdropshipping",
9047    "platform": 2,
9048    "source-spu-user-list": "CJ1167982,CJ2522152,CJ227789",
9049    "has-german-permission-user": "CJ10001,CJ2286027,CJ1452721",
9050    "ai-chat-hash-threshold": 100,
9051    "gbp-users": ["CJ2467479", "CJ10001"],
9052    "shopify-delivery-profiles-user-ids": ["CJ1452721"],
9053    "top-notice-list": [{
9054      "link": "https://cjec.cjdropshipping.com/belgrade-2026/",
9055      "key": "common-costs-us-tips",
9056      "isShow": true
9057    }, {
9058      "link": "https://cjec.cjdropshipping.com/belgrade-2026/",
9059      "key": "common-header-notice",
9060      "isShow": false
9061    }],
9062    "host": "cjdropshipping.com",
9063    "logo": "https://frontend.cjdropshipping.com/config-resource/cj/new_logo.svg",
9064    "logo-white": "https://frontend.cjdropshipping.com/config-resource/cj/new_logo_white.svg",
9065    "remove-photo-request-users": ["CJ10001", "CJ4222547", "CJ5241151", "CJ5029117", "CJ4856590"],
9066    "ecomvault-nums": ["CJ591747", "CJ10001", "CJ1452721"],
9067    "login-debugger": "1",
9068    "company-name": "Yiwu Cujia Trade Co., Ltd.",
9069    "address": "F2.BUILDING 8,NO.89,SIYUAN ROAD ,YIDONG INDUSTRIAL ZONE,NIANSANLISTREET,YIWU.ZHEJIANG",
9070    "m-host": "https://m.cjdropshipping.com",
9071    "inventory-planner-menu-user": ["CJ4224762", "CJ429035", "CJ10001", "CJ2115343", "CJ4047783", "CJ2962894"],
9072    "warehouse-operation-only-picture-users": ["CJ4869824", "CJ4468131", "CJ4461784"],
9073    "favicon": "https://frontend.cjdropshipping.com/config-resource/cj/favicon.ico",
9074    "logo-height": "40",
9075    "ai-chat-users": ["CJ4215280", "CJ4215333", "CJ5067909", "CJ4569773", "CJ10001", "CJ4208389", "CJ5332187", "CJ955168"],
9076    "module": {
9077      "cj-authorie-login": false,
9078      "old-user-update-notice": false,
9079      "mycj-header-chinese-new-year-notice": false,
9080      "no-quickly-login": false,
9081      "everyone-show-photo-request": false,
9082      "use-old-chat": false
9083    },
9084    "loading": "loading.json",
9085    "logistics-number-jump-origin-url-users": ["CJ227789", "CJ2520452", "CJ4031737", "CJ4461784", "CJ4468131", "CJ4621927", "CJ2268247", "CJ2520452"],
9086    "footer-host": "CJdropshipping.com",
9087    "third-login": {
9088      "shopify": "https://apps.shopify.com/cucheng?ot=47d4101a-9f66-4b69-8162-7a1001eef2e3&surface_detail=CJ&surface_inter_position=1&surface_intra_position=1&surface_type=search_ad",
9089      "facebook": "2678412275531221",
9090      "google": "708607489636-7ihggmvci7r9b6npeo3j9v4mnb2g23fp.apps.googleusercontent.com"
9091    },
9092    "support-multiple-warehouses-user-ids": ["CJ4546034", "CJ2284102", "CJ4597771", "CJ4714917"],
9093    "chat-domain": "https://chat.cjdropshipping.com",
9094    "footer-copyright": "浙ICP备2020040134号-1",
9095    "site": "CJ",
9096    "academy-home": "https://cjacademy.cjdropshipping.com/",
9097    "my-quotation-users": ["CJ2268247", "CJ227789", "CJ2520452", "CJ4031737", "CJ4461784", "CJ4468131", "CJ4621927", "CJ2520452", "CJ2520452", "CJ4461784", "CJ4031737", "CJ4869824", "CJ4621927", "CJ4067173", "CJ4855400", "CJ4879281"],
9098    "logo-width": "200",
9099    "name": "CJ",
9100    "track-on-cjpacket": "Track on CJPacket",
9101    "intelligence-menu-user": ["CJ4215280", "CJ4215333", "CJ4569773", "CJ5332187", "CJ10001", "CJ4411686", "CJ4950757", "CJ5212190", "CJ4215333", "CJ4215333", "CJ4569773", "CJ5332187", "CJ5172899"],
9102    "qksource-domain": "https://qksource.com"
9103  },
9104  "/contactus": {
9105    "module": {
9106      "contactus-visitus": false,
9107      "contactus-comoney": false
9108    },
9109    "company-info": ""
9110  },
9111  "/medium-production-services": {
9112    "module": {
9113      "show-side-menu": false
9114    }
9115  },
9116  "/mine/customization": {
9117    "module": {
9118      "odm-guide": false
9119    },
9120    "odm-guide-users": ["CJ4215280", "CJ10001", "CJ1452721", "CJ5147146"]
9121  },
9122  "/mine/payment": {
9123    "module": {
9124      "use-new-card-pay": false
9125    }
9126  },
9127  "/mine/pod3detail": {
9128    "module": {
9129      "show-side-menu": false,
9130      "chat-body": false
9131    }
9132  },
9133  "/aboutus": {
9134    "company-name": "",
9135    "module": {
9136      "aboutus-more": false,
9137      "aboutus-story": false,
9138      "aboutus-email": false
9139    },
9140    "company-info": "",
9141    "aboutus-email": "[email protected]"
9142  }
9143});
9144
9145/***/ }),
9146
9147/***/ 62742:
9148/***/ ((module) => {
9149
9150"use strict";
9151module.exports = __WEBPACK_EXTERNAL_MODULE__62742__;
9152
9153/***/ }),
9154
9155/***/ 62934:
9156/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9157
9158"use strict";
9159/* harmony export */ __webpack_require__.d(__webpack_exports__, {
9160/* harmony export */   Jv: () => (/* binding */ getAppStoreList),
9161/* harmony export */   vG: () => (/* binding */ getAuthorizeShowList)
9162/* harmony export */ });
9163/* unused harmony exports getTransWarehouse, getWarehouseTranslate2Session, getWarehouseList, getCountryData, getThCountryData, getQueueCount, addStatisFun, getCategories, getShippingCartNum, getSearchKeys, debounceGetSearchKeys, getRate, getLogisticsEnquiryWeight */
9164/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(81002);
9165/* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3478);
9166/* harmony import */ var _common_platform_show__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(37597);
9167/* harmony import */ var _common_oss_controller__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(44190);
9168/* harmony import */ var _common_add_store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21421);
9169var __assign = undefined && undefined.__assign || function () {
9170  __assign = Object.assign || function (t) {
9171    for (var s, i = 1, n = arguments.length; i < n; i++) {
9172      s = arguments[i];
9173      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
9174    }
9175    return t;
9176  };
9177  return __assign.apply(this, arguments);
9178};
9179var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
9180  function adopt(value) {
9181    return value instanceof P ? value : new P(function (resolve) {
9182      resolve(value);
9183    });
9184  }
9185  return new (P || (P = Promise))(function (resolve, reject) {
9186    function fulfilled(value) {
9187      try {
9188        step(generator.next(value));
9189      } catch (e) {
9190        reject(e);
9191      }
9192    }
9193    function rejected(value) {
9194      try {
9195        step(generator["throw"](value));
9196      } catch (e) {
9197        reject(e);
9198      }
9199    }
9200    function step(result) {
9201      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
9202    }
9203    step((generator = generator.apply(thisArg, _arguments || [])).next());
9204  });
9205};
9206var __generator = undefined && undefined.__generator || function (thisArg, body) {
9207  var _ = {
9208      label: 0,
9209      sent: function sent() {
9210        if (t[0] & 1) throw t[1];
9211        return t[1];
9212      },
9213      trys: [],
9214      ops: []
9215    },
9216    f,
9217    y,
9218    t,
9219    g;
9220  return g = {
9221    next: verb(0),
9222    "throw": verb(1),
9223    "return": verb(2)
9224  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
9225    return this;
9226  }), g;
9227  function verb(n) {
9228    return function (v) {
9229      return step([n, v]);
9230    };
9231  }
9232  function step(op) {
9233    if (f) throw new TypeError("Generator is already executing.");
9234    while (g && (g = 0, op[0] && (_ = 0)), _) try {
9235      if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
9236      if (y = 0, t) op = [op[0] & 2, t.value];
9237      switch (op[0]) {
9238        case 0:
9239        case 1:
9240          t = op;
9241          break;
9242        case 4:
9243          _.label++;
9244          return {
9245            value: op[1],
9246            done: false
9247          };
9248        case 5:
9249          _.label++;
9250          y = op[1];
9251          op = [0];
9252          continue;
9253        case 7:
9254          op = _.ops.pop();
9255          _.trys.pop();
9256          continue;
9257        default:
9258          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
9259            _ = 0;
9260            continue;
9261          }
9262          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
9263            _.label = op[1];
9264            break;
9265          }
9266          if (op[0] === 6 && _.label < t[1]) {
9267            _.label = t[1];
9268            t = op;
9269            break;
9270          }
9271          if (t && _.label < t[2]) {
9272            _.label = t[2];
9273            _.ops.push(op);
9274            break;
9275          }
9276          if (t[2]) _.ops.pop();
9277          _.trys.pop();
9278          continue;
9279      }
9280      op = body.call(thisArg, _);
9281    } catch (e) {
9282      op = [6, e];
9283      y = 0;
9284    } finally {
9285      f = t = 0;
9286    }
9287    if (op[0] & 5) throw op[1];
9288    return {
9289      value: op[0] ? op[1] : void 0,
9290      done: true
9291    };
9292  }
9293};
9294
9295
9296
9297
9298
9299var getTransWarehouse = function getTransWarehouse($axios, lng) {
9300  return __awaiter(void 0, void 0, void 0, function () {
9301    var warehouses, result;
9302    var _a;
9303    return __generator(this, function (_b) {
9304      switch (_b.label) {
9305        case 0:
9306          if (isBrowser) {
9307            warehouses = sessionStorage.getItem("warehouse_lng_".concat(lng));
9308            if (warehouses) {
9309              return [2, [null, {
9310                result: JSON.parse(warehouses)
9311              }]];
9312            }
9313          }
9314          return [4, $axios({
9315            method: 'post',
9316            url: 'product-api/dbWorldInfo/getWareHouseWorldsByLanguage',
9317            headers: {
9318              language: lng
9319            },
9320            data: {}
9321          })];
9322        case 1:
9323          result = _b.sent();
9324          if (isBrowser && ((_a = result[1]) === null || _a === void 0 ? void 0 : _a.result)) {
9325            sessionStorage.setItem("warehouse_lng_".concat(lng), JSON.stringify(result[1].data));
9326          }
9327          return [2, result];
9328      }
9329    });
9330  });
9331};
9332var getWarehouseTranslate2Session = function getWarehouseTranslate2Session($axios) {
9333  return __awaiter(void 0, void 0, void 0, function () {
9334    var languages, _loop_1, i;
9335    return __generator(this, function (_a) {
9336      languages = ['zh', 'en', 'de', 'fr', 'id', 'th'];
9337      _loop_1 = function _loop_1(i) {
9338        var lng = languages[i];
9339        getTransWarehouse($axios, lng).then(function (_a) {
9340          var err = _a[0],
9341            res = _a[1];
9342          if (!err) {
9343            if (!isBrowser) {
9344              var result = (res || {}).result || [];
9345              sessionStorage.setItem("warehouse_lng_".concat(lng), JSON.stringify(result));
9346            }
9347          }
9348        });
9349      };
9350      for (i = 0; i < languages.length; i++) {
9351        _loop_1(i);
9352      }
9353      return [2];
9354    });
9355  });
9356};
9357var getWarehouseList = function getWarehouseList(_a) {
9358  var ctx = _a.ctx,
9359    $axios = _a.$axios,
9360    lng = _a.lng;
9361  return __awaiter(void 0, void 0, void 0, function () {
9362    function addOtherData(list, ctx) {
9363      if (list === void 0) {
9364        list = [];
9365      }
9366      var arr = [];
9367      list.forEach(function (item) {
9368        var _a, _b;
9369        var env = "production" || 0;
9370        var url;
9371        if (env === 'test') {
9372          url = "http://".concat((_a = item === null || item === void 0 ? void 0 : item.countryCode) === null || _a === void 0 ? void 0 : _a.toLowerCase(), ".cjdropshipping.offline.pre.com");
9373        } else {
9374          url = "https://".concat((_b = item === null || item === void 0 ? void 0 : item.countryCode) === null || _b === void 0 ? void 0 : _b.toLowerCase(), ".cjdropshipping.com");
9375        }
9376        arr.push({
9377          name: item[lng] || item['en'],
9378          href: url,
9379          image: ossController.join(createFlag(item.countryCode)),
9380          areaId: item === null || item === void 0 ? void 0 : item.areaId,
9381          areaEn: item['en'],
9382          countryCode: item === null || item === void 0 ? void 0 : item.countryCode,
9383          disabled: item.disabled
9384        });
9385      });
9386      return arr;
9387    }
9388    var _b, err, data, _data;
9389    var _c, _d;
9390    return __generator(this, function (_e) {
9391      switch (_e.label) {
9392        case 0:
9393          if ((_c = ctx === null || ctx === void 0 ? void 0 : ctx.commonTopSSRProps) === null || _c === void 0 ? void 0 : _c.warehouseList) {
9394            return [2, [null, (_d = ctx === null || ctx === void 0 ? void 0 : ctx.commonTopSSRProps) === null || _d === void 0 ? void 0 : _d.warehouseList]];
9395          }
9396          return [4, $axios({
9397            method: 'get',
9398            url: ossController.join(createWarehouseJson())
9399          })];
9400        case 1:
9401          _b = _e.sent(), err = _b[0], data = _b[1];
9402          _data = data;
9403          return [2, err ? [err] : [null, addOtherData(_data, ctx)]];
9404      }
9405    });
9406  });
9407};
9408var getCountryData = function getCountryData($axios) {
9409  return __awaiter(void 0, void 0, void 0, function () {
9410    var _a, res;
9411    return __generator(this, function (_b) {
9412      switch (_b.label) {
9413        case 0:
9414          return [4, $axios({
9415            method: 'get',
9416            url: ossController.join(countryInfo())
9417          })];
9418        case 1:
9419          _a = _b.sent(), res = _a[1];
9420          if (!res) return [2, []];
9421          res.symbol = res.symbol.sort(function (a, b) {
9422            return a.currency.charCodeAt(0) - b.currency.charCodeAt(0);
9423          });
9424          return [2, res !== null && res !== void 0 ? res : {}];
9425      }
9426    });
9427  });
9428};
9429var getThCountryData = function getThCountryData($axios, code) {
9430  if (code === void 0) {
9431    code = 'th';
9432  }
9433  return __awaiter(void 0, void 0, void 0, function () {
9434    var _a, res;
9435    return __generator(this, function (_b) {
9436      switch (_b.label) {
9437        case 0:
9438          return [4, $axios({
9439            method: 'get',
9440            url: ossController.join(createConfigResource(code, 'countryinfo.json'))
9441          })];
9442        case 1:
9443          _a = _b.sent(), res = _a[1];
9444          res.countryList = res.countryList.sort(function (a, b) {
9445            return a.NAME_EN.charCodeAt(0) - b.NAME_EN.charCodeAt(0);
9446          });
9447          return [2, res !== null && res !== void 0 ? res : {}];
9448      }
9449    });
9450  });
9451};
9452var getQueueCount = function getQueueCount($axios, params) {
9453  if (params === void 0) {
9454    params = {};
9455  }
9456  return __awaiter(void 0, void 0, void 0, function () {
9457    var _params, _a, err, res, _b, e, d;
9458    return __generator(this, function (_c) {
9459      switch (_c.label) {
9460        case 0:
9461          _params = __assign({
9462            pageNum: 1,
9463            pageSize: 1000,
9464            shopId: '',
9465            inputStr: '',
9466            status: '0'
9467          }, params);
9468          return [4, $axios({
9469            method: 'post',
9470            url: 'cj-platform-web/product/listedProduct/queryListProductCount',
9471            data: _params
9472          })];
9473        case 1:
9474          _a = _c.sent(), err = _a[0], res = _a[1];
9475          if (err) return [2, 0];
9476          _b = statusCode200(res), e = _b[0], d = _b[1];
9477          if (e) return [2, 0];
9478          return [2, d.totle];
9479      }
9480    });
9481  });
9482};
9483var addStatisFun = function addStatisFun($axios, type) {
9484  return __awaiter(void 0, void 0, void 0, function () {
9485    var _params;
9486    return __generator(this, function (_a) {
9487      switch (_a.label) {
9488        case 0:
9489          _params = {
9490            entryPage: type
9491          };
9492          return [4, $axios({
9493            method: 'post',
9494            url: 'pojo/home/addStatisByType',
9495            data: _params
9496          })];
9497        case 1:
9498          _a.sent();
9499          return [2];
9500      }
9501    });
9502  });
9503};
9504var getCategories = function getCategories(_a) {
9505  var ctx = _a.ctx,
9506    $axios = _a.$axios;
9507  return __awaiter(void 0, void 0, void 0, function () {
9508    function renameCategoriesFields(catearr) {
9509      function func(arr) {
9510        if (!arr || arr.length <= 0 || !(arr instanceof Array)) return [];
9511        return arr.map(function (_) {
9512          var id = _.dspId,
9513            nameEn = _.nameEn,
9514            nameVal = _.nameVal,
9515            _a = _.nextLevel,
9516            children = _a === void 0 ? [] : _a;
9517          var item = {
9518            id: id,
9519            nameEn: nameEn,
9520            nameVal: nameVal,
9521            children: children
9522          };
9523          if (children && children.length > 0) {
9524            return __assign(__assign({}, item), {
9525              children: func(children)
9526            });
9527          }
9528          return __assign(__assign({}, item), {
9529            children: []
9530          });
9531        }).filter(function (_) {
9532          return _.nameVal;
9533        });
9534      }
9535      return func(catearr).filter(function (_) {
9536        return _.children.length > 0;
9537      });
9538    }
9539    var _b, err, res, _c, e, d, da;
9540    var _d, _e;
9541    return __generator(this, function (_f) {
9542      switch (_f.label) {
9543        case 0:
9544          if ((_d = ctx === null || ctx === void 0 ? void 0 : ctx.commonTopSSRProps) === null || _d === void 0 ? void 0 : _d.categories) return [2, (_e = ctx === null || ctx === void 0 ? void 0 : ctx.commonTopSSRProps) === null || _e === void 0 ? void 0 : _e.categories];
9545          return [4, $axios({
9546            method: 'post',
9547            url: 'product-api/baseCategory/getCategoryTree',
9548            headers: {
9549              language: Cookies.get('lng') || 'en'
9550            }
9551          })];
9552        case 1:
9553          _b = _f.sent(), err = _b[0], res = _b[1];
9554          if (err || !res) return [2, []];
9555          _c = statusCode200(res), e = _c[0], d = _c[1];
9556          if (e) return [2, []];
9557          da = renameCategoriesFields(d);
9558          return [2, da];
9559      }
9560    });
9561  });
9562};
9563var getShippingCartNum = function getShippingCartNum($axios) {
9564  return __awaiter(void 0, void 0, void 0, function () {
9565    var _a, err, res, _b, e, d;
9566    return __generator(this, function (_c) {
9567      switch (_c.label) {
9568        case 0:
9569          return [4, $axios({
9570            method: 'post',
9571            url: 'cjorder-web/directOrder/getCartProductCount',
9572            data: {}
9573          })];
9574        case 1:
9575          _a = _c.sent(), err = _a[0], res = _a[1];
9576          if (err) return [2, 0];
9577          _b = statusCode200(res), e = _b[0], d = _b[1];
9578          if (e) return [2, 0];
9579          return [2, d.cartProductCount];
9580      }
9581    });
9582  });
9583};
9584var getAuthorizeShowList = function getAuthorizeShowList($axios) {
9585  return __awaiter(void 0, void 0, void 0, function () {
9586    var requestPlatformShow, PlatformShowStatus, userPlatformShow, checkPlatformExpire, platformShowStatus, result, _a;
9587    return __generator(this, function (_b) {
9588      switch (_b.label) {
9589        case 0:
9590          requestPlatformShow = function requestPlatformShow() {
9591            return __awaiter(void 0, void 0, void 0, function () {
9592              var _a, err, res, _b, e, d;
9593              return __generator(this, function (_c) {
9594                switch (_c.label) {
9595                  case 0:
9596                    return [4, $axios({
9597                      method: 'post',
9598                      url: 'cj-platform-web/shop/queryPlatformAuthor',
9599                      data: {
9600                        deviceType: 'PC'
9601                      }
9602                    })];
9603                  case 1:
9604                    _a = _c.sent(), err = _a[0], res = _a[1];
9605                    if (err) return [2, []];
9606                    _b = (0,_common__WEBPACK_IMPORTED_MODULE_0__/* .statusCode200 */ .GA)(res), e = _b[0], d = _b[1];
9607                    if (e) return [2, []];
9608                    return [2, d];
9609                }
9610              });
9611            });
9612          };
9613          if (!!_common__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) return [3, 2];
9614          return [4, requestPlatformShow()];
9615        case 1:
9616          return [2, _b.sent()];
9617        case 2:
9618          (function (PlatformShowStatus) {
9619            PlatformShowStatus[PlatformShowStatus["Expire"] = -1] = "Expire";
9620            PlatformShowStatus[PlatformShowStatus["None"] = 0] = "None";
9621            PlatformShowStatus[PlatformShowStatus["Valid"] = 1] = "Valid";
9622          })(PlatformShowStatus || (PlatformShowStatus = {}));
9623          userPlatformShow = new _common_platform_show__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay();
9624          checkPlatformExpire = function checkPlatformExpire() {
9625            var platformShow = userPlatformShow.get();
9626            if (platformShow) {
9627              var nowDate = new Date().getTime();
9628              if (nowDate > platformShow.expire) {
9629                userPlatformShow.del();
9630                return PlatformShowStatus.Expire;
9631              }
9632              return PlatformShowStatus.Valid;
9633            }
9634            return PlatformShowStatus.None;
9635          };
9636          platformShowStatus = checkPlatformExpire();
9637          result = [];
9638          _a = platformShowStatus;
9639          switch (_a) {
9640            case PlatformShowStatus.Valid:
9641              return [3, 3];
9642          }
9643          return [3, 4];
9644        case 3:
9645          result = userPlatformShow.get().value;
9646          return [3, 6];
9647        case 4:
9648          return [4, requestPlatformShow()];
9649        case 5:
9650          result = _b.sent();
9651          userPlatformShow.save(result);
9652          return [3, 6];
9653        case 6:
9654          return [2, result];
9655      }
9656    });
9657  });
9658};
9659var getSearchKeys = function getSearchKeys($axios, params, callback) {
9660  $axios({
9661    method: 'get',
9662    url: 'elastic-api/product/v1/searchSuggester',
9663    params: __assign({}, params)
9664  }).then(function (_a) {
9665    var err = _a[0],
9666      res = _a[1];
9667    if (err) return callback === null || callback === void 0 ? void 0 : callback([]);
9668    var _b = (0,_common__WEBPACK_IMPORTED_MODULE_0__/* .statusCode200 */ .GA)(res),
9669      e = _b[0],
9670      d = _b[1];
9671    if (e) return callback === null || callback === void 0 ? void 0 : callback([]);
9672    return callback === null || callback === void 0 ? void 0 : callback((d === null || d === void 0 ? void 0 : d.suggesterList) || []);
9673  });
9674};
9675var debounceGetSearchKeys = (0,_common__WEBPACK_IMPORTED_MODULE_0__/* .debounce */ .sg)(getSearchKeys, 1000);
9676var getRate = function getRate($axios, currencyCode) {
9677  return __awaiter(void 0, void 0, void 0, function () {
9678    var _params, _a, err, res, _b, e, d;
9679    return __generator(this, function (_c) {
9680      switch (_c.label) {
9681        case 0:
9682          if (!currencyCode) return [2, false];
9683          _params = {
9684            toCurrency: currencyCode
9685          };
9686          return [4, $axios({
9687            method: 'post',
9688            url: 'payment-center-web/paySupport/usdRateExchange',
9689            data: _params
9690          })];
9691        case 1:
9692          _a = _c.sent(), err = _a[0], res = _a[1];
9693          if (err) return [2, 0];
9694          _b = statusCode200(res), e = _b[0], d = _b[1];
9695          if (e) return [2, 0];
9696          return [2, d];
9697      }
9698    });
9699  });
9700};
9701var getLogisticsEnquiryWeight = function getLogisticsEnquiryWeight($axios) {
9702  return __awaiter(void 0, void 0, void 0, function () {
9703    var _a, err, res, _b, e, d;
9704    return __generator(this, function (_c) {
9705      switch (_c.label) {
9706        case 0:
9707          return [4, $axios({
9708            method: 'get',
9709            url: 'cjorder-web/directOrder/getWholesaleOrderLogisticsEnquiryWeight'
9710          })];
9711        case 1:
9712          _a = _c.sent(), err = _a[0], res = _a[1];
9713          if (err) return [2, 0];
9714          _b = statusCode200(res), e = _b[0], d = _b[1];
9715          if (e) return [2, 0];
9716          return [2, d];
9717      }
9718    });
9719  });
9720};
9721var getAppStoreList = function getAppStoreList($axios) {
9722  return __awaiter(void 0, void 0, void 0, function () {
9723    var requestAppStoreList, AppStoreStatus, userAddStore, checkPlatformExpire, platformShowStatus, result, _a, newResult;
9724    var _b;
9725    return __generator(this, function (_c) {
9726      switch (_c.label) {
9727        case 0:
9728          requestAppStoreList = function requestAppStoreList() {
9729            return __awaiter(void 0, void 0, void 0, function () {
9730              var _a, err, res, _b, e, d;
9731              return __generator(this, function (_c) {
9732                switch (_c.label) {
9733                  case 0:
9734                    return [4, $axios({
9735                      method: 'post',
9736                      url: 'userCenterForeignWeb/userApp/list',
9737                      data: {
9738                        deviceType: 'PC',
9739                        affiliateId: js_cookie__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A.get('invite-token')
9740                      }
9741                    })];
9742                  case 1:
9743                    _a = _c.sent(), err = _a[0], res = _a[1];
9744                    if (err) return [2, []];
9745                    _b = (0,_common__WEBPACK_IMPORTED_MODULE_0__/* .statusCode200 */ .GA)(res), e = _b[0], d = _b[1];
9746                    if (e) return [2, []];
9747                    return [2, d];
9748                }
9749              });
9750            });
9751          };
9752          if (!!_common__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) return [3, 2];
9753          return [4, requestAppStoreList()];
9754        case 1:
9755          return [2, _c.sent()];
9756        case 2:
9757          (function (AppStoreStatus) {
9758            AppStoreStatus[AppStoreStatus["Expire"] = -1] = "Expire";
9759            AppStoreStatus[AppStoreStatus["None"] = 0] = "None";
9760            AppStoreStatus[AppStoreStatus["Valid"] = 1] = "Valid";
9761          })(AppStoreStatus || (AppStoreStatus = {}));
9762          userAddStore = new _common_add_store__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A();
9763          checkPlatformExpire = function checkPlatformExpire() {
9764            var addStoreList = userAddStore.get();
9765            if (addStoreList) {
9766              var nowDate = new Date().getTime();
9767              if (nowDate > addStoreList.expire) {
9768                userAddStore.del();
9769                return AppStoreStatus.Expire;
9770              }
9771              return AppStoreStatus.Valid;
9772            }
9773            return AppStoreStatus.None;
9774          };
9775          platformShowStatus = checkPlatformExpire();
9776          result = [];
9777          _a = platformShowStatus;
9778          switch (_a) {
9779            case AppStoreStatus.Valid:
9780              return [3, 3];
9781          }
9782          return [3, 4];
9783        case 3:
9784          result = (_b = userAddStore.get().value) === null || _b === void 0 ? void 0 : _b.platforms;
9785          return [3, 6];
9786        case 4:
9787          return [4, requestAppStoreList()];
9788        case 5:
9789          newResult = _c.sent();
9790          result = (newResult === null || newResult === void 0 ? void 0 : newResult.platforms) || [];
9791          userAddStore.save(newResult);
9792          return [3, 6];
9793        case 6:
9794          return [2, result];
9795      }
9796    });
9797  });
9798};
9799
9800/***/ }),
9801
9802/***/ 62945:
9803/***/ ((module) => {
9804
9805/** Used to match a single whitespace character. */
9806var reWhitespace = /\s/;
9807
9808/**
9809 * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace
9810 * character of `string`.
9811 *
9812 * @private
9813 * @param {string} string The string to inspect.
9814 * @returns {number} Returns the index of the last non-whitespace character.
9815 */
9816function trimmedEndIndex(string) {
9817  var index = string.length;
9818
9819  while (index-- && reWhitespace.test(string.charAt(index))) {}
9820  return index;
9821}
9822
9823module.exports = trimmedEndIndex;
9824
9825
9826/***/ }),
9827
9828/***/ 63301:
9829/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9830
9831"use strict";
9832/* harmony export */ __webpack_require__.d(__webpack_exports__, {
9833/* harmony export */   A: () => (/* binding */ useIsVP)
9834/* harmony export */ });
9835function useIsVP(server_siteCheck) {
9836  var _a, _b;
9837  if (typeof window === 'undefined') return server_siteCheck ? ((_a = server_siteCheck === null || server_siteCheck === void 0 ? void 0 : server_siteCheck.isShow) === null || _a === void 0 ? void 0 : _a.call(server_siteCheck, 'global-vp')) === false : false;
9838  return ((_b = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _b === void 0 ? void 0 : _b.isShow('global-vp')) === false;
9839}
9840
9841/***/ }),
9842
9843/***/ 64948:
9844/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9845
9846"use strict";
9847/* unused harmony export default */
9848/* harmony import */ var _useEvent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9449);
9849/* harmony import */ var _useLayoutEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(84238);
9850/* harmony import */ var _useState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(39348);
9851
9852
9853
9854
9855/** We only think `undefined` is empty */
9856function hasValue(value) {
9857  return value !== undefined;
9858}
9859
9860/**
9861 * Similar to `useState` but will use props value if provided.
9862 * Note that internal use rc-util `useState` hook.
9863 */
9864function useMergedState(defaultStateValue, option) {
9865  var _ref = option || {},
9866    defaultValue = _ref.defaultValue,
9867    value = _ref.value,
9868    onChange = _ref.onChange,
9869    postState = _ref.postState;
9870
9871  // ======================= Init =======================
9872  var _useState = useState(function () {
9873      if (hasValue(value)) {
9874        return value;
9875      } else if (hasValue(defaultValue)) {
9876        return typeof defaultValue === 'function' ? defaultValue() : defaultValue;
9877      } else {
9878        return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;
9879      }
9880    }),
9881    _useState2 = _slicedToArray(_useState, 2),
9882    innerValue = _useState2[0],
9883    setInnerValue = _useState2[1];
9884  var mergedValue = value !== undefined ? value : innerValue;
9885  var postMergedValue = postState ? postState(mergedValue) : mergedValue;
9886
9887  // ====================== Change ======================
9888  var onChangeFn = useEvent(onChange);
9889  var _useState3 = useState([mergedValue]),
9890    _useState4 = _slicedToArray(_useState3, 2),
9891    prevValue = _useState4[0],
9892    setPrevValue = _useState4[1];
9893  useLayoutUpdateEffect(function () {
9894    var prev = prevValue[0];
9895    if (innerValue !== prev) {
9896      onChangeFn(innerValue, prev);
9897    }
9898  }, [prevValue]);
9899
9900  // Sync value back to `undefined` when it from control to un-control
9901  useLayoutUpdateEffect(function () {
9902    if (!hasValue(value)) {
9903      setInnerValue(value);
9904    }
9905  }, [value]);
9906
9907  // ====================== Update ======================
9908  var triggerChange = useEvent(function (updater, ignoreDestroy) {
9909    setInnerValue(updater, ignoreDestroy);
9910    setPrevValue([mergedValue], ignoreDestroy);
9911  });
9912  return [postMergedValue, triggerChange];
9913}
9914
9915/***/ }),
9916
9917/***/ 65555:
9918/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9919
9920"use strict";
9921/* harmony export */ __webpack_require__.d(__webpack_exports__, {
9922/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
9923/* harmony export */ });
9924// extracted by mini-css-extract-plugin
9925/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({"mycj-menu":"mycj-menu--I_hAQ","collapsed":"collapsed--xY7W9","logo":"logo--inlMI","shadow-logo":"shadow-logo--OfeUT","zs":"zs--RYM0i","collapsed-icon":"collapsed-icon--feyUd","conversation":"conversation--IgRva","messageBox":"messageBox--nBzR2","label":"label--LOgyP","newMessage":"newMessage--kBalp","oldNoticeBox":"oldNoticeBox--XBpH7","oldNoticeBtn":"oldNoticeBtn--D4eGU","oldNoticeIcon":"oldNoticeIcon--YWTck","oldNoticeClose":"oldNoticeClose--NwYlO","oldNoticeCloseIcon":"oldNoticeCloseIcon--JGe0U","collapsedMessageBox":"collapsedMessageBox--DY7Ve","collapsedMessageBoxByNoMenu":"collapsedMessageBoxByNoMenu--errU8","collapsedMessageBoxNoAvatarByNoMenu":"collapsedMessageBoxNoAvatarByNoMenu--YZI6T","collapsedMessageAvatar":"collapsedMessageAvatar--nlpAX","collapsedMessageBottom":"collapsedMessageBottom--Y_MSL","
vendor: 9,198 bytes, lines 9925-10161
9925noAvatar":"noAvatar--cYn0T","collapsedMessageAvatarBgImg":"collapsedMessageAvatarBgImg--cIom5","collapsedMessageAvatarBox":"collapsedMessageAvatarBox--gBZ6L","collapsedMessageContact":"collapsedMessageContact--g2M27","collapsedMessageNotice":"collapsedMessageNotice--zrTNp","collapsedMessageNoticeContent":"collapsedMessageNoticeContent--kFjjB","collapsedMessageNoticeTop":"collapsedMessageNoticeTop--AyNtW","collapsedMessageNoticeTopText":"collapsedMessageNoticeTopText--sm2vA","collapsedMessageNoticeTopIcon":"collapsedMessageNoticeTopIcon--rXo2K","collapsedMessageNoticeBottom":"collapsedMessageNoticeBottom--IG1St","menuNormal":"menuNormal--l4aG5"});
9926
9927/***/ }),
9928
9929/***/ 65650:
9930/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
9931
9932var root = __webpack_require__(78942);
9933
9934/** Built-in value references. */
9935var Symbol = root.Symbol;
9936
9937module.exports = Symbol;
9938
9939
9940/***/ }),
9941
9942/***/ 65856:
9943/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9944
9945"use strict";
9946/* harmony export */ __webpack_require__.d(__webpack_exports__, {
9947/* harmony export */   BD: () => (/* binding */ updateCSS),
9948/* harmony export */   m6: () => (/* binding */ removeCSS)
9949/* harmony export */ });
9950/* unused harmony exports injectCSS, clearContainerCache */
9951/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69740);
9952/* harmony import */ var _canUseDom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(47169);
9953/* harmony import */ var _contains__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(80129);
9954
9955
9956
9957var APPEND_ORDER = 'data-rc-order';
9958var APPEND_PRIORITY = 'data-rc-priority';
9959var MARK_KEY = "rc-util-key";
9960var containerCache = new Map();
9961function getMark() {
9962  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
9963    mark = _ref.mark;
9964  if (mark) {
9965    return mark.startsWith('data-') ? mark : "data-".concat(mark);
9966  }
9967  return MARK_KEY;
9968}
9969function getContainer(option) {
9970  if (option.attachTo) {
9971    return option.attachTo;
9972  }
9973  var head = document.querySelector('head');
9974  return head || document.body;
9975}
9976function getOrder(prepend) {
9977  if (prepend === 'queue') {
9978    return 'prependQueue';
9979  }
9980  return prepend ? 'prepend' : 'append';
9981}
9982
9983/**
9984 * Find style which inject by rc-util
9985 */
9986function findStyles(container) {
9987  return Array.from((containerCache.get(container) || container).children).filter(function (node) {
9988    return node.tagName === 'STYLE';
9989  });
9990}
9991function injectCSS(css) {
9992  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
9993  if (!(0,_canUseDom__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)()) {
9994    return null;
9995  }
9996  var csp = option.csp,
9997    prepend = option.prepend,
9998    _option$priority = option.priority,
9999    priority = _option$priority === void 0 ? 0 : _option$priority;
10000  var mergedOrder = getOrder(prepend);
10001  var isPrependQueue = mergedOrder === 'prependQueue';
10002  var styleNode = document.createElement('style');
10003  styleNode.setAttribute(APPEND_ORDER, mergedOrder);
10004  if (isPrependQueue && priority) {
10005    styleNode.setAttribute(APPEND_PRIORITY, "".concat(priority));
10006  }
10007  if (csp !== null && csp !== void 0 && csp.nonce) {
10008    styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;
10009  }
10010  styleNode.innerHTML = css;
10011  var container = getContainer(option);
10012  var firstChild = container.firstChild;
10013  if (prepend) {
10014    // If is queue `prepend`, it will prepend first style and then append rest style
10015    if (isPrependQueue) {
10016      var existStyle = (option.styles || findStyles(container)).filter(function (node) {
10017        // Ignore style which not injected by rc-util with prepend
10018        if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {
10019          return false;
10020        }
10021
10022        // Ignore style which priority less then new style
10023        var nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);
10024        return priority >= nodePriority;
10025      });
10026      if (existStyle.length) {
10027        container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);
10028        return styleNode;
10029      }
10030    }
10031
10032    // Use `insertBefore` as `prepend`
10033    container.insertBefore(styleNode, firstChild);
10034  } else {
10035    container.appendChild(styleNode);
10036  }
10037  return styleNode;
10038}
10039function findExistNode(key) {
10040  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
10041  var container = getContainer(option);
10042  return (option.styles || findStyles(container)).find(function (node) {
10043    return node.getAttribute(getMark(option)) === key;
10044  });
10045}
10046function removeCSS(key) {
10047  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
10048  var existNode = findExistNode(key, option);
10049  if (existNode) {
10050    var container = getContainer(option);
10051    container.removeChild(existNode);
10052  }
10053}
10054
10055/**
10056 * qiankun will inject `appendChild` to insert into other
10057 */
10058function syncRealContainer(container, option) {
10059  var cachedRealContainer = containerCache.get(container);
10060
10061  // Find real container when not cached or cached container removed
10062  if (!cachedRealContainer || !(0,_contains__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(document, cachedRealContainer)) {
10063    var placeholderStyle = injectCSS('', option);
10064    var parentNode = placeholderStyle.parentNode;
10065    containerCache.set(container, parentNode);
10066    container.removeChild(placeholderStyle);
10067  }
10068}
10069
10070/**
10071 * manually clear container cache to avoid global cache in unit testes
10072 */
10073function clearContainerCache() {
10074  containerCache.clear();
10075}
10076function updateCSS(css, key) {
10077  var originOption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
10078  var container = getContainer(originOption);
10079  var styles = findStyles(container);
10080  var option = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, originOption), {}, {
10081    styles: styles
10082  });
10083
10084  // Sync real parent
10085  syncRealContainer(container, option);
10086  var existNode = findExistNode(key, option);
10087  if (existNode) {
10088    var _option$csp, _option$csp2;
10089    if ((_option$csp = option.csp) !== null && _option$csp !== void 0 && _option$csp.nonce && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {
10090      var _option$csp3;
10091      existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;
10092    }
10093    if (existNode.innerHTML !== css) {
10094      existNode.innerHTML = css;
10095    }
10096    return existNode;
10097  }
10098  var newNode = injectCSS(css, option);
10099  newNode.setAttribute(getMark(option), key);
10100  return newNode;
10101}
10102
10103/***/ }),
10104
10105/***/ 66318:
10106/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10107
10108"use strict";
10109/* harmony export */ __webpack_require__.d(__webpack_exports__, {
10110/* harmony export */   A: () => (/* binding */ useWatch)
10111/* harmony export */ });
10112/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75153);
10113/* harmony import */ var rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84238);
10114/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(61225);
10115
10116
10117
10118function useWatch(open, target, popup, onAlign, onScroll) {
10119  (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(function () {
10120    if (open && target && popup) {
10121      var targetElement = target;
10122      var popupElement = popup;
10123      var targetScrollList = (0,_util__WEBPACK_IMPORTED_MODULE_2__/* .collectScroller */ .TK)(targetElement);
10124      var popupScrollList = (0,_util__WEBPACK_IMPORTED_MODULE_2__/* .collectScroller */ .TK)(popupElement);
10125      var win = (0,_util__WEBPACK_IMPORTED_MODULE_2__/* .getWin */ .D)(popupElement);
10126      var mergedList = new Set([win].concat((0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(targetScrollList), (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(popupScrollList)));
10127      function notifyScroll() {
10128        onAlign();
10129        onScroll();
10130      }
10131      mergedList.forEach(function (scroller) {
10132        scroller.addEventListener('scroll', notifyScroll, {
10133          passive: true
10134        });
10135      });
10136      win.addEventListener('resize', notifyScroll, {
10137        passive: true
10138      });
10139
10140      // First time always do align
10141      onAlign();
10142      return function () {
10143        mergedList.forEach(function (scroller) {
10144          scroller.removeEventListener('scroll', notifyScroll);
10145          win.removeEventListener('resize', notifyScroll);
10146        });
10147      };
10148    }
10149  }, [open, target, popup]);
10150}
10151
10152/***/ }),
10153
10154/***/ 67399:
10155/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
10156
10157"use strict";
10158/* harmony export */ __webpack_require__.d(__webpack_exports__, {
10159/* harmony export */   Ay: () => (/* binding */ na)
10160/* harmony export */ });
10161/* unused harmony exports errorCodes, get, isValid, parse */
vendor: 188,960 bytes, lines 10162-20162
10162function U(e) {
10163  return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
10164}
10165var C, F;
10166function $() {
10167  if (F) return C;
10168  F = 1;
10169  const e = 2147483647, s = 36, c = 1, o = 26, t = 38, d = 700, z = 72, y = 128, g = "-", H = /^xn--/, N = /[^\0-\x7F]/, R = /[\x2E\u3002\uFF0E\uFF61]/g, P = {
10170    overflow: "Overflow: input needs wider integers to process",
10171    "not-basic": "Illegal input >= 0x80 (not a basic code point)",
10172    "invalid-input": "Invalid input"
10173  }, _ = s - c, h = Math.floor, I = String.fromCharCode;
10174  function v(a) {
10175    throw new RangeError(P[a]);
10176  }
10177  function V(a, i) {
10178    const m = [];
10179    let n = a.length;
10180    for (; n--; )
10181      m[n] = i(a[n]);
10182    return m;
10183  }
10184  function L(a, i) {
10185    const m = a.split("@");
10186    let n = "";
10187    m.length > 1 && (n = m[0] + "@", a = m[1]), a = a.replace(R, ".");
10188    const r = a.split("."), p = V(r, i).join(".");
10189    return n + p;
10190  }
10191  function S(a) {
10192    const i = [];
10193    let m = 0;
10194    const n = a.length;
10195    for (; m < n; ) {
10196      const r = a.charCodeAt(m++);
10197      if (r >= 55296 && r <= 56319 && m < n) {
10198        const p = a.charCodeAt(m++);
10199        (p & 64512) == 56320 ? i.push(((r & 1023) << 10) + (p & 1023) + 65536) : (i.push(r), m--);
10200      } else
10201        i.push(r);
10202    }
10203    return i;
10204  }
10205  const G = (a) => String.fromCodePoint(...a), W = function(a) {
10206    return a >= 48 && a < 58 ? 26 + (a - 48) : a >= 65 && a < 91 ? a - 65 : a >= 97 && a < 123 ? a - 97 : s;
10207  }, D = function(a, i) {
10208    return a + 22 + 75 * (a < 26) - ((i != 0) << 5);
10209  }, T = function(a, i, m) {
10210    let n = 0;
10211    for (a = m ? h(a / d) : a >> 1, a += h(a / i); a > _ * o >> 1; n += s)
10212      a = h(a / _);
10213    return h(n + (_ + 1) * a / (a + t));
10214  }, E = function(a) {
10215    const i = [], m = a.length;
10216    let n = 0, r = y, p = z, j = a.lastIndexOf(g);
10217    j < 0 && (j = 0);
10218    for (let u = 0; u < j; ++u)
10219      a.charCodeAt(u) >= 128 && v("not-basic"), i.push(a.charCodeAt(u));
10220    for (let u = j > 0 ? j + 1 : 0; u < m; ) {
10221      const k = n;
10222      for (let l = 1, b = s; ; b += s) {
10223        u >= m && v("invalid-input");
10224        const w = W(a.charCodeAt(u++));
10225        w >= s && v("invalid-input"), w > h((e - n) / l) && v("overflow"), n += w * l;
10226        const x = b <= p ? c : b >= p + o ? o : b - p;
10227        if (w < x)
10228          break;
10229        const q = s - x;
10230        l > h(e / q) && v("overflow"), l *= q;
10231      }
10232      const f = i.length + 1;
10233      p = T(n - k, f, k == 0), h(n / f) > e - r && v("overflow"), r += h(n / f), n %= f, i.splice(n++, 0, r);
10234    }
10235    return String.fromCodePoint(...i);
10236  }, B = function(a) {
10237    const i = [];
10238    a = S(a);
10239    const m = a.length;
10240    let n = y, r = 0, p = z;
10241    for (const k of a)
10242      k < 128 && i.push(I(k));
10243    const j = i.length;
10244    let u = j;
10245    for (j && i.push(g); u < m; ) {
10246      let k = e;
10247      for (const l of a)
10248        l >= n && l < k && (k = l);
10249      const f = u + 1;
10250      k - n > h((e - r) / f) && v("overflow"), r += (k - n) * f, n = k;
10251      for (const l of a)
10252        if (l < n && ++r > e && v("overflow"), l === n) {
10253          let b = r;
10254          for (let w = s; ; w += s) {
10255            const x = w <= p ? c : w >= p + o ? o : w - p;
10256            if (b < x)
10257              break;
10258            const q = b - x, M = s - x;
10259            i.push(
10260              I(D(x + q % M, 0))
10261            ), b = h(q / M);
10262          }
10263          i.push(I(D(b, 0))), p = T(r, f, u === j), r = 0, ++u;
10264        }
10265      ++r, ++n;
10266    }
10267    return i.join("");
10268  };
10269  return C = {
10270    /**
10271     * A string representing the current Punycode.js version number.
10272     * @memberOf punycode
10273     * @type String
10274     */
10275    version: "2.3.1",
10276    /**
10277     * An object of methods to convert from JavaScript's internal character
10278     * representation (UCS-2) to Unicode code points, and back.
10279     * @see <https://mathiasbynens.be/notes/javascript-encoding>
10280     * @memberOf punycode
10281     * @type Object
10282     */
10283    ucs2: {
10284      decode: S,
10285      encode: G
10286    },
10287    decode: E,
10288    encode: B,
10289    toASCII: function(a) {
10290      return L(a, function(i) {
10291        return N.test(i) ? "xn--" + B(i) : i;
10292      });
10293    },
10294    toUnicode: function(a) {
10295      return L(a, function(i) {
10296        return H.test(i) ? E(i.slice(4).toLowerCase()) : i;
10297      });
10298    }
10299  }, C;
10300}
10301var J = $();
10302const A = /* @__PURE__ */ U(J), K = [
10303  "ac",
10304  "com.ac",
10305  "edu.ac",
10306  "gov.ac",
10307  "mil.ac",
10308  "net.ac",
10309  "org.ac",
10310  "ad",
10311  "ae",
10312  "ac.ae",
10313  "co.ae",
10314  "gov.ae",
10315  "mil.ae",
10316  "net.ae",
10317  "org.ae",
10318  "sch.ae",
10319  "aero",
10320  "airline.aero",
10321  "airport.aero",
10322  "accident-investigation.aero",
10323  "accident-prevention.aero",
10324  "aerobatic.aero",
10325  "aeroclub.aero",
10326  "aerodrome.aero",
10327  "agents.aero",
10328  "air-surveillance.aero",
10329  "air-traffic-control.aero",
10330  "aircraft.aero",
10331  "airtraffic.aero",
10332  "ambulance.aero",
10333  "association.aero",
10334  "author.aero",
10335  "ballooning.aero",
10336  "broker.aero",
10337  "caa.aero",
10338  "cargo.aero",
10339  "catering.aero",
10340  "certification.aero",
10341  "championship.aero",
10342  "charter.aero",
10343  "civilaviation.aero",
10344  "club.aero",
10345  "conference.aero",
10346  "consultant.aero",
10347  "consulting.aero",
10348  "control.aero",
10349  "council.aero",
10350  "crew.aero",
10351  "design.aero",
10352  "dgca.aero",
10353  "educator.aero",
10354  "emergency.aero",
10355  "engine.aero",
10356  "engineer.aero",
10357  "entertainment.aero",
10358  "equipment.aero",
10359  "exchange.aero",
10360  "express.aero",
10361  "federation.aero",
10362  "flight.aero",
10363  "freight.aero",
10364  "fuel.aero",
10365  "gliding.aero",
10366  "government.aero",
10367  "groundhandling.aero",
10368  "group.aero",
10369  "hanggliding.aero",
10370  "homebuilt.aero",
10371  "insurance.aero",
10372  "journal.aero",
10373  "journalist.aero",
10374  "leasing.aero",
10375  "logistics.aero",
10376  "magazine.aero",
10377  "maintenance.aero",
10378  "marketplace.aero",
10379  "media.aero",
10380  "microlight.aero",
10381  "modelling.aero",
10382  "navigation.aero",
10383  "parachuting.aero",
10384  "paragliding.aero",
10385  "passenger-association.aero",
10386  "pilot.aero",
10387  "press.aero",
10388  "production.aero",
10389  "recreation.aero",
10390  "repbody.aero",
10391  "res.aero",
10392  "research.aero",
10393  "rotorcraft.aero",
10394  "safety.aero",
10395  "scientist.aero",
10396  "services.aero",
10397  "show.aero",
10398  "skydiving.aero",
10399  "software.aero",
10400  "student.aero",
10401  "taxi.aero",
10402  "trader.aero",
10403  "trading.aero",
10404  "trainer.aero",
10405  "union.aero",
10406  "workinggroup.aero",
10407  "works.aero",
10408  "af",
10409  "com.af",
10410  "edu.af",
10411  "gov.af",
10412  "net.af",
10413  "org.af",
10414  "ag",
10415  "co.ag",
10416  "com.ag",
10417  "net.ag",
10418  "nom.ag",
10419  "org.ag",
10420  "ai",
10421  "com.ai",
10422  "net.ai",
10423  "off.ai",
10424  "org.ai",
10425  "al",
10426  "com.al",
10427  "edu.al",
10428  "gov.al",
10429  "mil.al",
10430  "net.al",
10431  "org.al",
10432  "am",
10433  "co.am",
10434  "com.am",
10435  "commune.am",
10436  "net.am",
10437  "org.am",
10438  "ao",
10439  "co.ao",
10440  "ed.ao",
10441  "edu.ao",
10442  "gov.ao",
10443  "gv.ao",
10444  "it.ao",
10445  "og.ao",
10446  "org.ao",
10447  "pb.ao",
10448  "aq",
10449  "ar",
10450  "bet.ar",
10451  "com.ar",
10452  "coop.ar",
10453  "edu.ar",
10454  "gob.ar",
10455  "gov.ar",
10456  "int.ar",
10457  "mil.ar",
10458  "musica.ar",
10459  "mutual.ar",
10460  "net.ar",
10461  "org.ar",
10462  "senasa.ar",
10463  "tur.ar",
10464  "arpa",
10465  "e164.arpa",
10466  "home.arpa",
10467  "in-addr.arpa",
10468  "ip6.arpa",
10469  "iris.arpa",
10470  "uri.arpa",
10471  "urn.arpa",
10472  "as",
10473  "gov.as",
10474  "asia",
10475  "at",
10476  "ac.at",
10477  "sth.ac.at",
10478  "co.at",
10479  "gv.at",
10480  "or.at",
10481  "au",
10482  "asn.au",
10483  "com.au",
10484  "edu.au",
10485  "gov.au",
10486  "id.au",
10487  "net.au",
10488  "org.au",
10489  "conf.au",
10490  "oz.au",
10491  "act.au",
10492  "nsw.au",
10493  "nt.au",
10494  "qld.au",
10495  "sa.au",
10496  "tas.au",
10497  "vic.au",
10498  "wa.au",
10499  "act.edu.au",
10500  "catholic.edu.au",
10501  "nsw.edu.au",
10502  "nt.edu.au",
10503  "qld.edu.au",
10504  "sa.edu.au",
10505  "tas.edu.au",
10506  "vic.edu.au",
10507  "wa.edu.au",
10508  "qld.gov.au",
10509  "sa.gov.au",
10510  "tas.gov.au",
10511  "vic.gov.au",
10512  "wa.gov.au",
10513  "schools.nsw.edu.au",
10514  "aw",
10515  "com.aw",
10516  "ax",
10517  "az",
10518  "biz.az",
10519  "com.az",
10520  "edu.az",
10521  "gov.az",
10522  "info.az",
10523  "int.az",
10524  "mil.az",
10525  "name.az",
10526  "net.az",
10527  "org.az",
10528  "pp.az",
10529  "pro.az",
10530  "ba",
10531  "com.ba",
10532  "edu.ba",
10533  "gov.ba",
10534  "mil.ba",
10535  "net.ba",
10536  "org.ba",
10537  "bb",
10538  "biz.bb",
10539  "co.bb",
10540  "com.bb",
10541  "edu.bb",
10542  "gov.bb",
10543  "info.bb",
10544  "net.bb",
10545  "org.bb",
10546  "store.bb",
10547  "tv.bb",
10548  "*.bd",
10549  "be",
10550  "ac.be",
10551  "bf",
10552  "gov.bf",
10553  "bg",
10554  "0.bg",
10555  "1.bg",
10556  "2.bg",
10557  "3.bg",
10558  "4.bg",
10559  "5.bg",
10560  "6.bg",
10561  "7.bg",
10562  "8.bg",
10563  "9.bg",
10564  "a.bg",
10565  "b.bg",
10566  "c.bg",
10567  "d.bg",
10568  "e.bg",
10569  "f.bg",
10570  "g.bg",
10571  "h.bg",
10572  "i.bg",
10573  "j.bg",
10574  "k.bg",
10575  "l.bg",
10576  "m.bg",
10577  "n.bg",
10578  "o.bg",
10579  "p.bg",
10580  "q.bg",
10581  "r.bg",
10582  "s.bg",
10583  "t.bg",
10584  "u.bg",
10585  "v.bg",
10586  "w.bg",
10587  "x.bg",
10588  "y.bg",
10589  "z.bg",
10590  "bh",
10591  "com.bh",
10592  "edu.bh",
10593  "gov.bh",
10594  "net.bh",
10595  "org.bh",
10596  "bi",
10597  "co.bi",
10598  "com.bi",
10599  "edu.bi",
10600  "or.bi",
10601  "org.bi",
10602  "biz",
10603  "bj",
10604  "africa.bj",
10605  "agro.bj",
10606  "architectes.bj",
10607  "assur.bj",
10608  "avocats.bj",
10609  "co.bj",
10610  "com.bj",
10611  "eco.bj",
10612  "econo.bj",
10613  "edu.bj",
10614  "info.bj",
10615  "loisirs.bj",
10616  "money.bj",
10617  "net.bj",
10618  "org.bj",
10619  "ote.bj",
10620  "restaurant.bj",
10621  "resto.bj",
10622  "tourism.bj",
10623  "univ.bj",
10624  "bm",
10625  "com.bm",
10626  "edu.bm",
10627  "gov.bm",
10628  "net.bm",
10629  "org.bm",
10630  "bn",
10631  "com.bn",
10632  "edu.bn",
10633  "gov.bn",
10634  "net.bn",
10635  "org.bn",
10636  "bo",
10637  "com.bo",
10638  "edu.bo",
10639  "gob.bo",
10640  "int.bo",
10641  "mil.bo",
10642  "net.bo",
10643  "org.bo",
10644  "tv.bo",
10645  "web.bo",
10646  "academia.bo",
10647  "agro.bo",
10648  "arte.bo",
10649  "blog.bo",
10650  "bolivia.bo",
10651  "ciencia.bo",
10652  "cooperativa.bo",
10653  "democracia.bo",
10654  "deporte.bo",
10655  "ecologia.bo",
10656  "economia.bo",
10657  "empresa.bo",
10658  "indigena.bo",
10659  "industria.bo",
10660  "info.bo",
10661  "medicina.bo",
10662  "movimiento.bo",
10663  "musica.bo",
10664  "natural.bo",
10665  "nombre.bo",
10666  "noticias.bo",
10667  "patria.bo",
10668  "plurinacional.bo",
10669  "politica.bo",
10670  "profesional.bo",
10671  "pueblo.bo",
10672  "revista.bo",
10673  "salud.bo",
10674  "tecnologia.bo",
10675  "tksat.bo",
10676  "transporte.bo",
10677  "wiki.bo",
10678  "br",
10679  "9guacu.br",
10680  "abc.br",
10681  "adm.br",
10682  "adv.br",
10683  "agr.br",
10684  "aju.br",
10685  "am.br",
10686  "anani.br",
10687  "aparecida.br",
10688  "app.br",
10689  "arq.br",
10690  "art.br",
10691  "ato.br",
10692  "b.br",
10693  "barueri.br",
10694  "belem.br",
10695  "bet.br",
10696  "bhz.br",
10697  "bib.br",
10698  "bio.br",
10699  "blog.br",
10700  "bmd.br",
10701  "boavista.br",
10702  "bsb.br",
10703  "campinagrande.br",
10704  "campinas.br",
10705  "caxias.br",
10706  "cim.br",
10707  "cng.br",
10708  "cnt.br",
10709  "com.br",
10710  "contagem.br",
10711  "coop.br",
10712  "coz.br",
10713  "cri.br",
10714  "cuiaba.br",
10715  "curitiba.br",
10716  "def.br",
10717  "des.br",
10718  "det.br",
10719  "dev.br",
10720  "ecn.br",
10721  "eco.br",
10722  "edu.br",
10723  "emp.br",
10724  "enf.br",
10725  "eng.br",
10726  "esp.br",
10727  "etc.br",
10728  "eti.br",
10729  "far.br",
10730  "feira.br",
10731  "flog.br",
10732  "floripa.br",
10733  "fm.br",
10734  "fnd.br",
10735  "fortal.br",
10736  "fot.br",
10737  "foz.br",
10738  "fst.br",
10739  "g12.br",
10740  "geo.br",
10741  "ggf.br",
10742  "goiania.br",
10743  "gov.br",
10744  "ac.gov.br",
10745  "al.gov.br",
10746  "am.gov.br",
10747  "ap.gov.br",
10748  "ba.gov.br",
10749  "ce.gov.br",
10750  "df.gov.br",
10751  "es.gov.br",
10752  "go.gov.br",
10753  "ma.gov.br",
10754  "mg.gov.br",
10755  "ms.gov.br",
10756  "mt.gov.br",
10757  "pa.gov.br",
10758  "pb.gov.br",
10759  "pe.gov.br",
10760  "pi.gov.br",
10761  "pr.gov.br",
10762  "rj.gov.br",
10763  "rn.gov.br",
10764  "ro.gov.br",
10765  "rr.gov.br",
10766  "rs.gov.br",
10767  "sc.gov.br",
10768  "se.gov.br",
10769  "sp.gov.br",
10770  "to.gov.br",
10771  "gru.br",
10772  "imb.br",
10773  "ind.br",
10774  "inf.br",
10775  "jab.br",
10776  "jampa.br",
10777  "jdf.br",
10778  "joinville.br",
10779  "jor.br",
10780  "jus.br",
10781  "leg.br",
10782  "leilao.br",
10783  "lel.br",
10784  "log.br",
10785  "londrina.br",
10786  "macapa.br",
10787  "maceio.br",
10788  "manaus.br",
10789  "maringa.br",
10790  "mat.br",
10791  "med.br",
10792  "mil.br",
10793  "morena.br",
10794  "mp.br",
10795  "mus.br",
10796  "natal.br",
10797  "net.br",
10798  "niteroi.br",
10799  "*.nom.br",
10800  "not.br",
10801  "ntr.br",
10802  "odo.br",
10803  "ong.br",
10804  "org.br",
10805  "osasco.br",
10806  "palmas.br",
10807  "poa.br",
10808  "ppg.br",
10809  "pro.br",
10810  "psc.br",
10811  "psi.br",
10812  "pvh.br",
10813  "qsl.br",
10814  "radio.br",
10815  "rec.br",
10816  "recife.br",
10817  "rep.br",
10818  "ribeirao.br",
10819  "rio.br",
10820  "riobranco.br",
10821  "riopreto.br",
10822  "salvador.br",
10823  "sampa.br",
10824  "santamaria.br",
10825  "santoandre.br",
10826  "saobernardo.br",
10827  "saogonca.br",
10828  "seg.br",
10829  "sjc.br",
10830  "slg.br",
10831  "slz.br",
10832  "sorocaba.br",
10833  "srv.br",
10834  "taxi.br",
10835  "tc.br",
10836  "tec.br",
10837  "teo.br",
10838  "the.br",
10839  "tmp.br",
10840  "trd.br",
10841  "tur.br",
10842  "tv.br",
10843  "udi.br",
10844  "vet.br",
10845  "vix.br",
10846  "vlog.br",
10847  "wiki.br",
10848  "zlg.br",
10849  "bs",
10850  "com.bs",
10851  "edu.bs",
10852  "gov.bs",
10853  "net.bs",
10854  "org.bs",
10855  "bt",
10856  "com.bt",
10857  "edu.bt",
10858  "gov.bt",
10859  "net.bt",
10860  "org.bt",
10861  "bv",
10862  "bw",
10863  "co.bw",
10864  "org.bw",
10865  "by",
10866  "gov.by",
10867  "mil.by",
10868  "com.by",
10869  "of.by",
10870  "bz",
10871  "co.bz",
10872  "com.bz",
10873  "edu.bz",
10874  "gov.bz",
10875  "net.bz",
10876  "org.bz",
10877  "ca",
10878  "ab.ca",
10879  "bc.ca",
10880  "mb.ca",
10881  "nb.ca",
10882  "nf.ca",
10883  "nl.ca",
10884  "ns.ca",
10885  "nt.ca",
10886  "nu.ca",
10887  "on.ca",
10888  "pe.ca",
10889  "qc.ca",
10890  "sk.ca",
10891  "yk.ca",
10892  "gc.ca",
10893  "cat",
10894  "cc",
10895  "cd",
10896  "gov.cd",
10897  "cf",
10898  "cg",
10899  "ch",
10900  "ci",
10901  "ac.ci",
10902  "aéroport.ci",
10903  "asso.ci",
10904  "co.ci",
10905  "com.ci",
10906  "ed.ci",
10907  "edu.ci",
10908  "go.ci",
10909  "gouv.ci",
10910  "int.ci",
10911  "net.ci",
10912  "or.ci",
10913  "org.ci",
10914  "*.ck",
10915  "!www.ck",
10916  "cl",
10917  "co.cl",
10918  "gob.cl",
10919  "gov.cl",
10920  "mil.cl",
10921  "cm",
10922  "co.cm",
10923  "com.cm",
10924  "gov.cm",
10925  "net.cm",
10926  "cn",
10927  "ac.cn",
10928  "com.cn",
10929  "edu.cn",
10930  "gov.cn",
10931  "mil.cn",
10932  "net.cn",
10933  "org.cn",
10934  "公司.cn",
10935  "網絡.cn",
10936  "网络.cn",
10937  "ah.cn",
10938  "bj.cn",
10939  "cq.cn",
10940  "fj.cn",
10941  "gd.cn",
10942  "gs.cn",
10943  "gx.cn",
10944  "gz.cn",
10945  "ha.cn",
10946  "hb.cn",
10947  "he.cn",
10948  "hi.cn",
10949  "hk.cn",
10950  "hl.cn",
10951  "hn.cn",
10952  "jl.cn",
10953  "js.cn",
10954  "jx.cn",
10955  "ln.cn",
10956  "mo.cn",
10957  "nm.cn",
10958  "nx.cn",
10959  "qh.cn",
10960  "sc.cn",
10961  "sd.cn",
10962  "sh.cn",
10963  "sn.cn",
10964  "sx.cn",
10965  "tj.cn",
10966  "tw.cn",
10967  "xj.cn",
10968  "xz.cn",
10969  "yn.cn",
10970  "zj.cn",
10971  "co",
10972  "com.co",
10973  "edu.co",
10974  "gov.co",
10975  "mil.co",
10976  "net.co",
10977  "nom.co",
10978  "org.co",
10979  "com",
10980  "coop",
10981  "cr",
10982  "ac.cr",
10983  "co.cr",
10984  "ed.cr",
10985  "fi.cr",
10986  "go.cr",
10987  "or.cr",
10988  "sa.cr",
10989  "cu",
10990  "com.cu",
10991  "edu.cu",
10992  "gob.cu",
10993  "inf.cu",
10994  "nat.cu",
10995  "net.cu",
10996  "org.cu",
10997  "cv",
10998  "com.cv",
10999  "edu.cv",
11000  "id.cv",
11001  "int.cv",
11002  "net.cv",
11003  "nome.cv",
11004  "org.cv",
11005  "publ.cv",
11006  "cw",
11007  "com.cw",
11008  "edu.cw",
11009  "net.cw",
11010  "org.cw",
11011  "cx",
11012  "gov.cx",
11013  "cy",
11014  "ac.cy",
11015  "biz.cy",
11016  "com.cy",
11017  "ekloges.cy",
11018  "gov.cy",
11019  "ltd.cy",
11020  "mil.cy",
11021  "net.cy",
11022  "org.cy",
11023  "press.cy",
11024  "pro.cy",
11025  "tm.cy",
11026  "cz",
11027  "de",
11028  "dj",
11029  "dk",
11030  "dm",
11031  "co.dm",
11032  "com.dm",
11033  "edu.dm",
11034  "gov.dm",
11035  "net.dm",
11036  "org.dm",
11037  "do",
11038  "art.do",
11039  "com.do",
11040  "edu.do",
11041  "gob.do",
11042  "gov.do",
11043  "mil.do",
11044  "net.do",
11045  "org.do",
11046  "sld.do",
11047  "web.do",
11048  "dz",
11049  "art.dz",
11050  "asso.dz",
11051  "com.dz",
11052  "edu.dz",
11053  "gov.dz",
11054  "net.dz",
11055  "org.dz",
11056  "pol.dz",
11057  "soc.dz",
11058  "tm.dz",
11059  "ec",
11060  "com.ec",
11061  "edu.ec",
11062  "fin.ec",
11063  "gob.ec",
11064  "gov.ec",
11065  "info.ec",
11066  "k12.ec",
11067  "med.ec",
11068  "mil.ec",
11069  "net.ec",
11070  "org.ec",
11071  "pro.ec",
11072  "edu",
11073  "ee",
11074  "aip.ee",
11075  "com.ee",
11076  "edu.ee",
11077  "fie.ee",
11078  "gov.ee",
11079  "lib.ee",
11080  "med.ee",
11081  "org.ee",
11082  "pri.ee",
11083  "riik.ee",
11084  "eg",
11085  "ac.eg",
11086  "com.eg",
11087  "edu.eg",
11088  "eun.eg",
11089  "gov.eg",
11090  "info.eg",
11091  "me.eg",
11092  "mil.eg",
11093  "name.eg",
11094  "net.eg",
11095  "org.eg",
11096  "sci.eg",
11097  "sport.eg",
11098  "tv.eg",
11099  "*.er",
11100  "es",
11101  "com.es",
11102  "edu.es",
11103  "gob.es",
11104  "nom.es",
11105  "org.es",
11106  "et",
11107  "biz.et",
11108  "com.et",
11109  "edu.et",
11110  "gov.et",
11111  "info.et",
11112  "name.et",
11113  "net.et",
11114  "org.et",
11115  "eu",
11116  "fi",
11117  "aland.fi",
11118  "fj",
11119  "ac.fj",
11120  "biz.fj",
11121  "com.fj",
11122  "gov.fj",
11123  "info.fj",
11124  "mil.fj",
11125  "name.fj",
11126  "net.fj",
11127  "org.fj",
11128  "pro.fj",
11129  "*.fk",
11130  "fm",
11131  "com.fm",
11132  "edu.fm",
11133  "net.fm",
11134  "org.fm",
11135  "fo",
11136  "fr",
11137  "asso.fr",
11138  "com.fr",
11139  "gouv.fr",
11140  "nom.fr",
11141  "prd.fr",
11142  "tm.fr",
11143  "avoues.fr",
11144  "cci.fr",
11145  "greta.fr",
11146  "huissier-justice.fr",
11147  "ga",
11148  "gb",
11149  "gd",
11150  "edu.gd",
11151  "gov.gd",
11152  "ge",
11153  "com.ge",
11154  "edu.ge",
11155  "gov.ge",
11156  "net.ge",
11157  "org.ge",
11158  "pvt.ge",
11159  "school.ge",
11160  "gf",
11161  "gg",
11162  "co.gg",
11163  "net.gg",
11164  "org.gg",
11165  "gh",
11166  "com.gh",
11167  "edu.gh",
11168  "gov.gh",
11169  "mil.gh",
11170  "org.gh",
11171  "gi",
11172  "com.gi",
11173  "edu.gi",
11174  "gov.gi",
11175  "ltd.gi",
11176  "mod.gi",
11177  "org.gi",
11178  "gl",
11179  "co.gl",
11180  "com.gl",
11181  "edu.gl",
11182  "net.gl",
11183  "org.gl",
11184  "gm",
11185  "gn",
11186  "ac.gn",
11187  "com.gn",
11188  "edu.gn",
11189  "gov.gn",
11190  "net.gn",
11191  "org.gn",
11192  "gov",
11193  "gp",
11194  "asso.gp",
11195  "com.gp",
11196  "edu.gp",
11197  "mobi.gp",
11198  "net.gp",
11199  "org.gp",
11200  "gq",
11201  "gr",
11202  "com.gr",
11203  "edu.gr",
11204  "gov.gr",
11205  "net.gr",
11206  "org.gr",
11207  "gs",
11208  "gt",
11209  "com.gt",
11210  "edu.gt",
11211  "gob.gt",
11212  "ind.gt",
11213  "mil.gt",
11214  "net.gt",
11215  "org.gt",
11216  "gu",
11217  "com.gu",
11218  "edu.gu",
11219  "gov.gu",
11220  "guam.gu",
11221  "info.gu",
11222  "net.gu",
11223  "org.gu",
11224  "web.gu",
11225  "gw",
11226  "gy",
11227  "co.gy",
11228  "com.gy",
11229  "edu.gy",
11230  "gov.gy",
11231  "net.gy",
11232  "org.gy",
11233  "hk",
11234  "com.hk",
11235  "edu.hk",
11236  "gov.hk",
11237  "idv.hk",
11238  "net.hk",
11239  "org.hk",
11240  "个人.hk",
11241  "個人.hk",
11242  "公司.hk",
11243  "政府.hk",
11244  "敎育.hk",
11245  "教育.hk",
11246  "箇人.hk",
11247  "組織.hk",
11248  "組织.hk",
11249  "網絡.hk",
11250  "網络.hk",
11251  "组織.hk",
11252  "组织.hk",
11253  "网絡.hk",
11254  "网络.hk",
11255  "hm",
11256  "hn",
11257  "com.hn",
11258  "edu.hn",
11259  "gob.hn",
11260  "mil.hn",
11261  "net.hn",
11262  "org.hn",
11263  "hr",
11264  "com.hr",
11265  "from.hr",
11266  "iz.hr",
11267  "name.hr",
11268  "ht",
11269  "adult.ht",
11270  "art.ht",
11271  "asso.ht",
11272  "com.ht",
11273  "coop.ht",
11274  "edu.ht",
11275  "firm.ht",
11276  "gouv.ht",
11277  "info.ht",
11278  "med.ht",
11279  "net.ht",
11280  "org.ht",
11281  "perso.ht",
11282  "pol.ht",
11283  "pro.ht",
11284  "rel.ht",
11285  "shop.ht",
11286  "hu",
11287  "2000.hu",
11288  "agrar.hu",
11289  "bolt.hu",
11290  "casino.hu",
11291  "city.hu",
11292  "co.hu",
11293  "erotica.hu",
11294  "erotika.hu",
11295  "film.hu",
11296  "forum.hu",
11297  "games.hu",
11298  "hotel.hu",
11299  "info.hu",
11300  "ingatlan.hu",
11301  "jogasz.hu",
11302  "konyvelo.hu",
11303  "lakas.hu",
11304  "media.hu",
11305  "news.hu",
11306  "org.hu",
11307  "priv.hu",
11308  "reklam.hu",
11309  "sex.hu",
11310  "shop.hu",
11311  "sport.hu",
11312  "suli.hu",
11313  "szex.hu",
11314  "tm.hu",
11315  "tozsde.hu",
11316  "utazas.hu",
11317  "video.hu",
11318  "id",
11319  "ac.id",
11320  "biz.id",
11321  "co.id",
11322  "desa.id",
11323  "go.id",
11324  "mil.id",
11325  "my.id",
11326  "net.id",
11327  "or.id",
11328  "ponpes.id",
11329  "sch.id",
11330  "web.id",
11331  "ie",
11332  "gov.ie",
11333  "il",
11334  "ac.il",
11335  "co.il",
11336  "gov.il",
11337  "idf.il",
11338  "k12.il",
11339  "muni.il",
11340  "net.il",
11341  "org.il",
11342  "ישראל",
11343  "אקדמיה.ישראל",
11344  "ישוב.ישראל",
11345  "צהל.ישראל",
11346  "ממשל.ישראל",
11347  "im",
11348  "ac.im",
11349  "co.im",
11350  "ltd.co.im",
11351  "plc.co.im",
11352  "com.im",
11353  "net.im",
11354  "org.im",
11355  "tt.im",
11356  "tv.im",
11357  "in",
11358  "5g.in",
11359  "6g.in",
11360  "ac.in",
11361  "ai.in",
11362  "am.in",
11363  "bihar.in",
11364  "biz.in",
11365  "business.in",
11366  "ca.in",
11367  "cn.in",
11368  "co.in",
11369  "com.in",
11370  "coop.in",
11371  "cs.in",
11372  "delhi.in",
11373  "dr.in",
11374  "edu.in",
11375  "er.in",
11376  "firm.in",
11377  "gen.in",
11378  "gov.in",
11379  "gujarat.in",
11380  "ind.in",
11381  "info.in",
11382  "int.in",
11383  "internet.in",
11384  "io.in",
11385  "me.in",
11386  "mil.in",
11387  "net.in",
11388  "nic.in",
11389  "org.in",
11390  "pg.in",
11391  "post.in",
11392  "pro.in",
11393  "res.in",
11394  "travel.in",
11395  "tv.in",
11396  "uk.in",
11397  "up.in",
11398  "us.in",
11399  "info",
11400  "int",
11401  "eu.int",
11402  "io",
11403  "co.io",
11404  "com.io",
11405  "edu.io",
11406  "gov.io",
11407  "mil.io",
11408  "net.io",
11409  "nom.io",
11410  "org.io",
11411  "iq",
11412  "com.iq",
11413  "edu.iq",
11414  "gov.iq",
11415  "mil.iq",
11416  "net.iq",
11417  "org.iq",
11418  "ir",
11419  "ac.ir",
11420  "co.ir",
11421  "gov.ir",
11422  "id.ir",
11423  "net.ir",
11424  "org.ir",
11425  "sch.ir",
11426  "ایران.ir",
11427  "ايران.ir",
11428  "is",
11429  "it",
11430  "edu.it",
11431  "gov.it",
11432  "abr.it",
11433  "abruzzo.it",
11434  "aosta-valley.it",
11435  "aostavalley.it",
11436  "bas.it",
11437  "basilicata.it",
11438  "cal.it",
11439  "calabria.it",
11440  "cam.it",
11441  "campania.it",
11442  "emilia-romagna.it",
11443  "emiliaromagna.it",
11444  "emr.it",
11445  "friuli-v-giulia.it",
11446  "friuli-ve-giulia.it",
11447  "friuli-vegiulia.it",
11448  "friuli-venezia-giulia.it",
11449  "friuli-veneziagiulia.it",
11450  "friuli-vgiulia.it",
11451  "friuliv-giulia.it",
11452  "friulive-giulia.it",
11453  "friulivegiulia.it",
11454  "friulivenezia-giulia.it",
11455  "friuliveneziagiulia.it",
11456  "friulivgiulia.it",
11457  "fvg.it",
11458  "laz.it",
11459  "lazio.it",
11460  "lig.it",
11461  "liguria.it",
11462  "lom.it",
11463  "lombardia.it",
11464  "lombardy.it",
11465  "lucania.it",
11466  "mar.it",
11467  "marche.it",
11468  "mol.it",
11469  "molise.it",
11470  "piedmont.it",
11471  "piemonte.it",
11472  "pmn.it",
11473  "pug.it",
11474  "puglia.it",
11475  "sar.it",
11476  "sardegna.it",
11477  "sardinia.it",
11478  "sic.it",
11479  "sicilia.it",
11480  "sicily.it",
11481  "taa.it",
11482  "tos.it",
11483  "toscana.it",
11484  "trentin-sud-tirol.it",
11485  "trentin-süd-tirol.it",
11486  "trentin-sudtirol.it",
11487  "trentin-südtirol.it",
11488  "trentin-sued-tirol.it",
11489  "trentin-suedtirol.it",
11490  "trentino.it",
11491  "trentino-a-adige.it",
11492  "trentino-aadige.it",
11493  "trentino-alto-adige.it",
11494  "trentino-altoadige.it",
11495  "trentino-s-tirol.it",
11496  "trentino-stirol.it",
11497  "trentino-sud-tirol.it",
11498  "trentino-süd-tirol.it",
11499  "trentino-sudtirol.it",
11500  "trentino-südtirol.it",
11501  "trentino-sued-tirol.it",
11502  "trentino-suedtirol.it",
11503  "trentinoa-adige.it",
11504  "trentinoaadige.it",
11505  "trentinoalto-adige.it",
11506  "trentinoaltoadige.it",
11507  "trentinos-tirol.it",
11508  "trentinostirol.it",
11509  "trentinosud-tirol.it",
11510  "trentinosüd-tirol.it",
11511  "trentinosudtirol.it",
11512  "trentinosüdtirol.it",
11513  "trentinosued-tirol.it",
11514  "trentinosuedtirol.it",
11515  "trentinsud-tirol.it",
11516  "trentinsüd-tirol.it",
11517  "trentinsudtirol.it",
11518  "trentinsüdtirol.it",
11519  "trentinsued-tirol.it",
11520  "trentinsuedtirol.it",
11521  "tuscany.it",
11522  "umb.it",
11523  "umbria.it",
11524  "val-d-aosta.it",
11525  "val-daosta.it",
11526  "vald-aosta.it",
11527  "valdaosta.it",
11528  "valle-aosta.it",
11529  "valle-d-aosta.it",
11530  "valle-daosta.it",
11531  "valleaosta.it",
11532  "valled-aosta.it",
11533  "valledaosta.it",
11534  "vallee-aoste.it",
11535  "vallée-aoste.it",
11536  "vallee-d-aoste.it",
11537  "vallée-d-aoste.it",
11538  "valleeaoste.it",
11539  "valléeaoste.it",
11540  "valleedaoste.it",
11541  "valléedaoste.it",
11542  "vao.it",
11543  "vda.it",
11544  "ven.it",
11545  "veneto.it",
11546  "ag.it",
11547  "agrigento.it",
11548  "al.it",
11549  "alessandria.it",
11550  "alto-adige.it",
11551  "altoadige.it",
11552  "an.it",
11553  "ancona.it",
11554  "andria-barletta-trani.it",
11555  "andria-trani-barletta.it",
11556  "andriabarlettatrani.it",
11557  "andriatranibarletta.it",
11558  "ao.it",
11559  "aosta.it",
11560  "aoste.it",
11561  "ap.it",
11562  "aq.it",
11563  "aquila.it",
11564  "ar.it",
11565  "arezzo.it",
11566  "ascoli-piceno.it",
11567  "ascolipiceno.it",
11568  "asti.it",
11569  "at.it",
11570  "av.it",
11571  "avellino.it",
11572  "ba.it",
11573  "balsan.it",
11574  "balsan-sudtirol.it",
11575  "balsan-südtirol.it",
11576  "balsan-suedtirol.it",
11577  "bari.it",
11578  "barletta-trani-andria.it",
11579  "barlettatraniandria.it",
11580  "belluno.it",
11581  "benevento.it",
11582  "bergamo.it",
11583  "bg.it",
11584  "bi.it",
11585  "biella.it",
11586  "bl.it",
11587  "bn.it",
11588  "bo.it",
11589  "bologna.it",
11590  "bolzano.it",
11591  "bolzano-altoadige.it",
11592  "bozen.it",
11593  "bozen-sudtirol.it",
11594  "bozen-südtirol.it",
11595  "bozen-suedtirol.it",
11596  "br.it",
11597  "brescia.it",
11598  "brindisi.it",
11599  "bs.it",
11600  "bt.it",
11601  "bulsan.it",
11602  "bulsan-sudtirol.it",
11603  "bulsan-südtirol.it",
11604  "bulsan-suedtirol.it",
11605  "bz.it",
11606  "ca.it",
11607  "cagliari.it",
11608  "caltanissetta.it",
11609  "campidano-medio.it",
11610  "campidanomedio.it",
11611  "campobasso.it",
11612  "carbonia-iglesias.it",
11613  "carboniaiglesias.it",
11614  "carrara-massa.it",
11615  "carraramassa.it",
11616  "caserta.it",
11617  "catania.it",
11618  "catanzaro.it",
11619  "cb.it",
11620  "ce.it",
11621  "cesena-forli.it",
11622  "cesena-forlì.it",
11623  "cesenaforli.it",
11624  "cesenaforlì.it",
11625  "ch.it",
11626  "chieti.it",
11627  "ci.it",
11628  "cl.it",
11629  "cn.it",
11630  "co.it",
11631  "como.it",
11632  "cosenza.it",
11633  "cr.it",
11634  "cremona.it",
11635  "crotone.it",
11636  "cs.it",
11637  "ct.it",
11638  "cuneo.it",
11639  "cz.it",
11640  "dell-ogliastra.it",
11641  "dellogliastra.it",
11642  "en.it",
11643  "enna.it",
11644  "fc.it",
11645  "fe.it",
11646  "fermo.it",
11647  "ferrara.it",
11648  "fg.it",
11649  "fi.it",
11650  "firenze.it",
11651  "florence.it",
11652  "fm.it",
11653  "foggia.it",
11654  "forli-cesena.it",
11655  "forlì-cesena.it",
11656  "forlicesena.it",
11657  "forlìcesena.it",
11658  "fr.it",
11659  "frosinone.it",
11660  "ge.it",
11661  "genoa.it",
11662  "genova.it",
11663  "go.it",
11664  "gorizia.it",
11665  "gr.it",
11666  "grosseto.it",
11667  "iglesias-carbonia.it",
11668  "iglesiascarbonia.it",
11669  "im.it",
11670  "imperia.it",
11671  "is.it",
11672  "isernia.it",
11673  "kr.it",
11674  "la-spezia.it",
11675  "laquila.it",
11676  "laspezia.it",
11677  "latina.it",
11678  "lc.it",
11679  "le.it",
11680  "lecce.it",
11681  "lecco.it",
11682  "li.it",
11683  "livorno.it",
11684  "lo.it",
11685  "lodi.it",
11686  "lt.it",
11687  "lu.it",
11688  "lucca.it",
11689  "macerata.it",
11690  "mantova.it",
11691  "massa-carrara.it",
11692  "massacarrara.it",
11693  "matera.it",
11694  "mb.it",
11695  "mc.it",
11696  "me.it",
11697  "medio-campidano.it",
11698  "mediocampidano.it",
11699  "messina.it",
11700  "mi.it",
11701  "milan.it",
11702  "milano.it",
11703  "mn.it",
11704  "mo.it",
11705  "modena.it",
11706  "monza.it",
11707  "monza-brianza.it",
11708  "monza-e-della-brianza.it",
11709  "monzabrianza.it",
11710  "monzaebrianza.it",
11711  "monzaedellabrianza.it",
11712  "ms.it",
11713  "mt.it",
11714  "na.it",
11715  "naples.it",
11716  "napoli.it",
11717  "no.it",
11718  "novara.it",
11719  "nu.it",
11720  "nuoro.it",
11721  "og.it",
11722  "ogliastra.it",
11723  "olbia-tempio.it",
11724  "olbiatempio.it",
11725  "or.it",
11726  "oristano.it",
11727  "ot.it",
11728  "pa.it",
11729  "padova.it",
11730  "padua.it",
11731  "palermo.it",
11732  "parma.it",
11733  "pavia.it",
11734  "pc.it",
11735  "pd.it",
11736  "pe.it",
11737  "perugia.it",
11738  "pesaro-urbino.it",
11739  "pesarourbino.it",
11740  "pescara.it",
11741  "pg.it",
11742  "pi.it",
11743  "piacenza.it",
11744  "pisa.it",
11745  "pistoia.it",
11746  "pn.it",
11747  "po.it",
11748  "pordenone.it",
11749  "potenza.it",
11750  "pr.it",
11751  "prato.it",
11752  "pt.it",
11753  "pu.it",
11754  "pv.it",
11755  "pz.it",
11756  "ra.it",
11757  "ragusa.it",
11758  "ravenna.it",
11759  "rc.it",
11760  "re.it",
11761  "reggio-calabria.it",
11762  "reggio-emilia.it",
11763  "reggiocalabria.it",
11764  "reggioemilia.it",
11765  "rg.it",
11766  "ri.it",
11767  "rieti.it",
11768  "rimini.it",
11769  "rm.it",
11770  "rn.it",
11771  "ro.it",
11772  "roma.it",
11773  "rome.it",
11774  "rovigo.it",
11775  "sa.it",
11776  "salerno.it",
11777  "sassari.it",
11778  "savona.it",
11779  "si.it",
11780  "siena.it",
11781  "siracusa.it",
11782  "so.it",
11783  "sondrio.it",
11784  "sp.it",
11785  "sr.it",
11786  "ss.it",
11787  "südtirol.it",
11788  "suedtirol.it",
11789  "sv.it",
11790  "ta.it",
11791  "taranto.it",
11792  "te.it",
11793  "tempio-olbia.it",
11794  "tempioolbia.it",
11795  "teramo.it",
11796  "terni.it",
11797  "tn.it",
11798  "to.it",
11799  "torino.it",
11800  "tp.it",
11801  "tr.it",
11802  "trani-andria-barletta.it",
11803  "trani-barletta-andria.it",
11804  "traniandriabarletta.it",
11805  "tranibarlettaandria.it",
11806  "trapani.it",
11807  "trento.it",
11808  "treviso.it",
11809  "trieste.it",
11810  "ts.it",
11811  "turin.it",
11812  "tv.it",
11813  "ud.it",
11814  "udine.it",
11815  "urbino-pesaro.it",
11816  "urbinopesaro.it",
11817  "va.it",
11818  "varese.it",
11819  "vb.it",
11820  "vc.it",
11821  "ve.it",
11822  "venezia.it",
11823  "venice.it",
11824  "verbania.it",
11825  "vercelli.it",
11826  "verona.it",
11827  "vi.it",
11828  "vibo-valentia.it",
11829  "vibovalentia.it",
11830  "vicenza.it",
11831  "viterbo.it",
11832  "vr.it",
11833  "vs.it",
11834  "vt.it",
11835  "vv.it",
11836  "je",
11837  "co.je",
11838  "net.je",
11839  "org.je",
11840  "*.jm",
11841  "jo",
11842  "agri.jo",
11843  "ai.jo",
11844  "com.jo",
11845  "edu.jo",
11846  "eng.jo",
11847  "fm.jo",
11848  "gov.jo",
11849  "mil.jo",
11850  "net.jo",
11851  "org.jo",
11852  "per.jo",
11853  "phd.jo",
11854  "sch.jo",
11855  "tv.jo",
11856  "jobs",
11857  "jp",
11858  "ac.jp",
11859  "ad.jp",
11860  "co.jp",
11861  "ed.jp",
11862  "go.jp",
11863  "gr.jp",
11864  "lg.jp",
11865  "ne.jp",
11866  "or.jp",
11867  "aichi.jp",
11868  "akita.jp",
11869  "aomori.jp",
11870  "chiba.jp",
11871  "ehime.jp",
11872  "fukui.jp",
11873  "fukuoka.jp",
11874  "fukushima.jp",
11875  "gifu.jp",
11876  "gunma.jp",
11877  "hiroshima.jp",
11878  "hokkaido.jp",
11879  "hyogo.jp",
11880  "ibaraki.jp",
11881  "ishikawa.jp",
11882  "iwate.jp",
11883  "kagawa.jp",
11884  "kagoshima.jp",
11885  "kanagawa.jp",
11886  "kochi.jp",
11887  "kumamoto.jp",
11888  "kyoto.jp",
11889  "mie.jp",
11890  "miyagi.jp",
11891  "miyazaki.jp",
11892  "nagano.jp",
11893  "nagasaki.jp",
11894  "nara.jp",
11895  "niigata.jp",
11896  "oita.jp",
11897  "okayama.jp",
11898  "okinawa.jp",
11899  "osaka.jp",
11900  "saga.jp",
11901  "saitama.jp",
11902  "shiga.jp",
11903  "shimane.jp",
11904  "shizuoka.jp",
11905  "tochigi.jp",
11906  "tokushima.jp",
11907  "tokyo.jp",
11908  "tottori.jp",
11909  "toyama.jp",
11910  "wakayama.jp",
11911  "yamagata.jp",
11912  "yamaguchi.jp",
11913  "yamanashi.jp",
11914  "三重.jp",
11915  "京都.jp",
11916  "佐賀.jp",
11917  "兵庫.jp",
11918  "北海道.jp",
11919  "千葉.jp",
11920  "和歌山.jp",
11921  "埼玉.jp",
11922  "大分.jp",
11923  "大阪.jp",
11924  "奈良.jp",
11925  "宮城.jp",
11926  "宮崎.jp",
11927  "富山.jp",
11928  "山口.jp",
11929  "山形.jp",
11930  "山梨.jp",
11931  "岐阜.jp",
11932  "岡山.jp",
11933  "岩手.jp",
11934  "å³¶æ ¹.jp",
11935  "広島.jp",
11936  "徳島.jp",
11937  "愛媛.jp",
11938  "愛知.jp",
11939  "新潟.jp",
11940  "東京.jp",
11941  "栃木.jp",
11942  "沖縄.jp",
11943  "滋賀.jp",
11944  "熊本.jp",
11945  "石川.jp",
11946  "神奈川.jp",
11947  "福井.jp",
11948  "福岡.jp",
11949  "福島.jp",
11950  "秋田.jp",
11951  "群馬.jp",
11952  "茨城.jp",
11953  "長崎.jp",
11954  "長野.jp",
11955  "青森.jp",
11956  "静岡.jp",
11957  "香川.jp",
11958  "高知.jp",
11959  "鳥取.jp",
11960  "鹿児島.jp",
11961  "*.kawasaki.jp",
11962  "!city.kawasaki.jp",
11963  "*.kitakyushu.jp",
11964  "!city.kitakyushu.jp",
11965  "*.kobe.jp",
11966  "!city.kobe.jp",
11967  "*.nagoya.jp",
11968  "!city.nagoya.jp",
11969  "*.sapporo.jp",
11970  "!city.sapporo.jp",
11971  "*.sendai.jp",
11972  "!city.sendai.jp",
11973  "*.yokohama.jp",
11974  "!city.yokohama.jp",
11975  "aisai.aichi.jp",
11976  "ama.aichi.jp",
11977  "anjo.aichi.jp",
11978  "asuke.aichi.jp",
11979  "chiryu.aichi.jp",
11980  "chita.aichi.jp",
11981  "fuso.aichi.jp",
11982  "gamagori.aichi.jp",
11983  "handa.aichi.jp",
11984  "hazu.aichi.jp",
11985  "hekinan.aichi.jp",
11986  "higashiura.aichi.jp",
11987  "ichinomiya.aichi.jp",
11988  "inazawa.aichi.jp",
11989  "inuyama.aichi.jp",
11990  "isshiki.aichi.jp",
11991  "iwakura.aichi.jp",
11992  "kanie.aichi.jp",
11993  "kariya.aichi.jp",
11994  "kasugai.aichi.jp",
11995  "kira.aichi.jp",
11996  "kiyosu.aichi.jp",
11997  "komaki.aichi.jp",
11998  "konan.aichi.jp",
11999  "kota.aichi.jp",
12000  "mihama.aichi.jp",
12001  "miyoshi.aichi.jp",
12002  "nishio.aichi.jp",
12003  "nisshin.aichi.jp",
12004  "obu.aichi.jp",
12005  "oguchi.aichi.jp",
12006  "oharu.aichi.jp",
12007  "okazaki.aichi.jp",
12008  "owariasahi.aichi.jp",
12009  "seto.aichi.jp",
12010  "shikatsu.aichi.jp",
12011  "shinshiro.aichi.jp",
12012  "shitara.aichi.jp",
12013  "tahara.aichi.jp",
12014  "takahama.aichi.jp",
12015  "tobishima.aichi.jp",
12016  "toei.aichi.jp",
12017  "togo.aichi.jp",
12018  "tokai.aichi.jp",
12019  "tokoname.aichi.jp",
12020  "toyoake.aichi.jp",
12021  "toyohashi.aichi.jp",
12022  "toyokawa.aichi.jp",
12023  "toyone.aichi.jp",
12024  "toyota.aichi.jp",
12025  "tsushima.aichi.jp",
12026  "yatomi.aichi.jp",
12027  "akita.akita.jp",
12028  "daisen.akita.jp",
12029  "fujisato.akita.jp",
12030  "gojome.akita.jp",
12031  "hachirogata.akita.jp",
12032  "happou.akita.jp",
12033  "higashinaruse.akita.jp",
12034  "honjo.akita.jp",
12035  "honjyo.akita.jp",
12036  "ikawa.akita.jp",
12037  "kamikoani.akita.jp",
12038  "kamioka.akita.jp",
12039  "katagami.akita.jp",
12040  "kazuno.akita.jp",
12041  "kitaakita.akita.jp",
12042  "kosaka.akita.jp",
12043  "kyowa.akita.jp",
12044  "misato.akita.jp",
12045  "mitane.akita.jp",
12046  "moriyoshi.akita.jp",
12047  "nikaho.akita.jp",
12048  "noshiro.akita.jp",
12049  "odate.akita.jp",
12050  "oga.akita.jp",
12051  "ogata.akita.jp",
12052  "semboku.akita.jp",
12053  "yokote.akita.jp",
12054  "yurihonjo.akita.jp",
12055  "aomori.aomori.jp",
12056  "gonohe.aomori.jp",
12057  "hachinohe.aomori.jp",
12058  "hashikami.aomori.jp",
12059  "hiranai.aomori.jp",
12060  "hirosaki.aomori.jp",
12061  "itayanagi.aomori.jp",
12062  "kuroishi.aomori.jp",
12063  "misawa.aomori.jp",
12064  "mutsu.aomori.jp",
12065  "nakadomari.aomori.jp",
12066  "noheji.aomori.jp",
12067  "oirase.aomori.jp",
12068  "owani.aomori.jp",
12069  "rokunohe.aomori.jp",
12070  "sannohe.aomori.jp",
12071  "shichinohe.aomori.jp",
12072  "shingo.aomori.jp",
12073  "takko.aomori.jp",
12074  "towada.aomori.jp",
12075  "tsugaru.aomori.jp",
12076  "tsuruta.aomori.jp",
12077  "abiko.chiba.jp",
12078  "asahi.chiba.jp",
12079  "chonan.chiba.jp",
12080  "chosei.chiba.jp",
12081  "choshi.chiba.jp",
12082  "chuo.chiba.jp",
12083  "funabashi.chiba.jp",
12084  "futtsu.chiba.jp",
12085  "hanamigawa.chiba.jp",
12086  "ichihara.chiba.jp",
12087  "ichikawa.chiba.jp",
12088  "ichinomiya.chiba.jp",
12089  "inzai.chiba.jp",
12090  "isumi.chiba.jp",
12091  "kamagaya.chiba.jp",
12092  "kamogawa.chiba.jp",
12093  "kashiwa.chiba.jp",
12094  "katori.chiba.jp",
12095  "katsuura.chiba.jp",
12096  "kimitsu.chiba.jp",
12097  "kisarazu.chiba.jp",
12098  "kozaki.chiba.jp",
12099  "kujukuri.chiba.jp",
12100  "kyonan.chiba.jp",
12101  "matsudo.chiba.jp",
12102  "midori.chiba.jp",
12103  "mihama.chiba.jp",
12104  "minamiboso.chiba.jp",
12105  "mobara.chiba.jp",
12106  "mutsuzawa.chiba.jp",
12107  "nagara.chiba.jp",
12108  "nagareyama.chiba.jp",
12109  "narashino.chiba.jp",
12110  "narita.chiba.jp",
12111  "noda.chiba.jp",
12112  "oamishirasato.chiba.jp",
12113  "omigawa.chiba.jp",
12114  "onjuku.chiba.jp",
12115  "otaki.chiba.jp",
12116  "sakae.chiba.jp",
12117  "sakura.chiba.jp",
12118  "shimofusa.chiba.jp",
12119  "shirako.chiba.jp",
12120  "shiroi.chiba.jp",
12121  "shisui.chiba.jp",
12122  "sodegaura.chiba.jp",
12123  "sosa.chiba.jp",
12124  "tako.chiba.jp",
12125  "tateyama.chiba.jp",
12126  "togane.chiba.jp",
12127  "tohnosho.chiba.jp",
12128  "tomisato.chiba.jp",
12129  "urayasu.chiba.jp",
12130  "yachimata.chiba.jp",
12131  "yachiyo.chiba.jp",
12132  "yokaichiba.chiba.jp",
12133  "yokoshibahikari.chiba.jp",
12134  "yotsukaido.chiba.jp",
12135  "ainan.ehime.jp",
12136  "honai.ehime.jp",
12137  "ikata.ehime.jp",
12138  "imabari.ehime.jp",
12139  "iyo.ehime.jp",
12140  "kamijima.ehime.jp",
12141  "kihoku.ehime.jp",
12142  "kumakogen.ehime.jp",
12143  "masaki.ehime.jp",
12144  "matsuno.ehime.jp",
12145  "matsuyama.ehime.jp",
12146  "namikata.ehime.jp",
12147  "niihama.ehime.jp",
12148  "ozu.ehime.jp",
12149  "saijo.ehime.jp",
12150  "seiyo.ehime.jp",
12151  "shikokuchuo.ehime.jp",
12152  "tobe.ehime.jp",
12153  "toon.ehime.jp",
12154  "uchiko.ehime.jp",
12155  "uwajima.ehime.jp",
12156  "yawatahama.ehime.jp",
12157  "echizen.fukui.jp",
12158  "eiheiji.fukui.jp",
12159  "fukui.fukui.jp",
12160  "ikeda.fukui.jp",
12161  "katsuyama.fukui.jp",
12162  "mihama.fukui.jp",
12163  "minamiechizen.fukui.jp",
12164  "obama.fukui.jp",
12165  "ohi.fukui.jp",
12166  "ono.fukui.jp",
12167  "sabae.fukui.jp",
12168  "sakai.fukui.jp",
12169  "takahama.fukui.jp",
12170  "tsuruga.fukui.jp",
12171  "wakasa.fukui.jp",
12172  "ashiya.fukuoka.jp",
12173  "buzen.fukuoka.jp",
12174  "chikugo.fukuoka.jp",
12175  "chikuho.fukuoka.jp",
12176  "chikujo.fukuoka.jp",
12177  "chikushino.fukuoka.jp",
12178  "chikuzen.fukuoka.jp",
12179  "chuo.fukuoka.jp",
12180  "dazaifu.fukuoka.jp",
12181  "fukuchi.fukuoka.jp",
12182  "hakata.fukuoka.jp",
12183  "higashi.fukuoka.jp",
12184  "hirokawa.fukuoka.jp",
12185  "hisayama.fukuoka.jp",
12186  "iizuka.fukuoka.jp",
12187  "inatsuki.fukuoka.jp",
12188  "kaho.fukuoka.jp",
12189  "kasuga.fukuoka.jp",
12190  "kasuya.fukuoka.jp",
12191  "kawara.fukuoka.jp",
12192  "keisen.fukuoka.jp",
12193  "koga.fukuoka.jp",
12194  "kurate.fukuoka.jp",
12195  "kurogi.fukuoka.jp",
12196  "kurume.fukuoka.jp",
12197  "minami.fukuoka.jp",
12198  "miyako.fukuoka.jp",
12199  "miyama.fukuoka.jp",
12200  "miyawaka.fukuoka.jp",
12201  "mizumaki.fukuoka.jp",
12202  "munakata.fukuoka.jp",
12203  "nakagawa.fukuoka.jp",
12204  "nakama.fukuoka.jp",
12205  "nishi.fukuoka.jp",
12206  "nogata.fukuoka.jp",
12207  "ogori.fukuoka.jp",
12208  "okagaki.fukuoka.jp",
12209  "okawa.fukuoka.jp",
12210  "oki.fukuoka.jp",
12211  "omuta.fukuoka.jp",
12212  "onga.fukuoka.jp",
12213  "onojo.fukuoka.jp",
12214  "oto.fukuoka.jp",
12215  "saigawa.fukuoka.jp",
12216  "sasaguri.fukuoka.jp",
12217  "shingu.fukuoka.jp",
12218  "shinyoshitomi.fukuoka.jp",
12219  "shonai.fukuoka.jp",
12220  "soeda.fukuoka.jp",
12221  "sue.fukuoka.jp",
12222  "tachiarai.fukuoka.jp",
12223  "tagawa.fukuoka.jp",
12224  "takata.fukuoka.jp",
12225  "toho.fukuoka.jp",
12226  "toyotsu.fukuoka.jp",
12227  "tsuiki.fukuoka.jp",
12228  "ukiha.fukuoka.jp",
12229  "umi.fukuoka.jp",
12230  "usui.fukuoka.jp",
12231  "yamada.fukuoka.jp",
12232  "yame.fukuoka.jp",
12233  "yanagawa.fukuoka.jp",
12234  "yukuhashi.fukuoka.jp",
12235  "aizubange.fukushima.jp",
12236  "aizumisato.fukushima.jp",
12237  "aizuwakamatsu.fukushima.jp",
12238  "asakawa.fukushima.jp",
12239  "bandai.fukushima.jp",
12240  "date.fukushima.jp",
12241  "fukushima.fukushima.jp",
12242  "furudono.fukushima.jp",
12243  "futaba.fukushima.jp",
12244  "hanawa.fukushima.jp",
12245  "higashi.fukushima.jp",
12246  "hirata.fukushima.jp",
12247  "hirono.fukushima.jp",
12248  "iitate.fukushima.jp",
12249  "inawashiro.fukushima.jp",
12250  "ishikawa.fukushima.jp",
12251  "iwaki.fukushima.jp",
12252  "izumizaki.fukushima.jp",
12253  "kagamiishi.fukushima.jp",
12254  "kaneyama.fukushima.jp",
12255  "kawamata.fukushima.jp",
12256  "kitakata.fukushima.jp",
12257  "kitashiobara.fukushima.jp",
12258  "koori.fukushima.jp",
12259  "koriyama.fukushima.jp",
12260  "kunimi.fukushima.jp",
12261  "miharu.fukushima.jp",
12262  "mishima.fukushima.jp",
12263  "namie.fukushima.jp",
12264  "nango.fukushima.jp",
12265  "nishiaizu.fukushima.jp",
12266  "nishigo.fukushima.jp",
12267  "okuma.fukushima.jp",
12268  "omotego.fukushima.jp",
12269  "ono.fukushima.jp",
12270  "otama.fukushima.jp",
12271  "samegawa.fukushima.jp",
12272  "shimogo.fukushima.jp",
12273  "shirakawa.fukushima.jp",
12274  "showa.fukushima.jp",
12275  "soma.fukushima.jp",
12276  "sukagawa.fukushima.jp",
12277  "taishin.fukushima.jp",
12278  "tamakawa.fukushima.jp",
12279  "tanagura.fukushima.jp",
12280  "tenei.fukushima.jp",
12281  "yabuki.fukushima.jp",
12282  "yamato.fukushima.jp",
12283  "yamatsuri.fukushima.jp",
12284  "yanaizu.fukushima.jp",
12285  "yugawa.fukushima.jp",
12286  "anpachi.gifu.jp",
12287  "ena.gifu.jp",
12288  "gifu.gifu.jp",
12289  "ginan.gifu.jp",
12290  "godo.gifu.jp",
12291  "gujo.gifu.jp",
12292  "hashima.gifu.jp",
12293  "hichiso.gifu.jp",
12294  "hida.gifu.jp",
12295  "higashishirakawa.gifu.jp",
12296  "ibigawa.gifu.jp",
12297  "ikeda.gifu.jp",
12298  "kakamigahara.gifu.jp",
12299  "kani.gifu.jp",
12300  "kasahara.gifu.jp",
12301  "kasamatsu.gifu.jp",
12302  "kawaue.gifu.jp",
12303  "kitagata.gifu.jp",
12304  "mino.gifu.jp",
12305  "minokamo.gifu.jp",
12306  "mitake.gifu.jp",
12307  "mizunami.gifu.jp",
12308  "motosu.gifu.jp",
12309  "nakatsugawa.gifu.jp",
12310  "ogaki.gifu.jp",
12311  "sakahogi.gifu.jp",
12312  "seki.gifu.jp",
12313  "sekigahara.gifu.jp",
12314  "shirakawa.gifu.jp",
12315  "tajimi.gifu.jp",
12316  "takayama.gifu.jp",
12317  "tarui.gifu.jp",
12318  "toki.gifu.jp",
12319  "tomika.gifu.jp",
12320  "wanouchi.gifu.jp",
12321  "yamagata.gifu.jp",
12322  "yaotsu.gifu.jp",
12323  "yoro.gifu.jp",
12324  "annaka.gunma.jp",
12325  "chiyoda.gunma.jp",
12326  "fujioka.gunma.jp",
12327  "higashiagatsuma.gunma.jp",
12328  "isesaki.gunma.jp",
12329  "itakura.gunma.jp",
12330  "kanna.gunma.jp",
12331  "kanra.gunma.jp",
12332  "katashina.gunma.jp",
12333  "kawaba.gunma.jp",
12334  "kiryu.gunma.jp",
12335  "kusatsu.gunma.jp",
12336  "maebashi.gunma.jp",
12337  "meiwa.gunma.jp",
12338  "midori.gunma.jp",
12339  "minakami.gunma.jp",
12340  "naganohara.gunma.jp",
12341  "nakanojo.gunma.jp",
12342  "nanmoku.gunma.jp",
12343  "numata.gunma.jp",
12344  "oizumi.gunma.jp",
12345  "ora.gunma.jp",
12346  "ota.gunma.jp",
12347  "shibukawa.gunma.jp",
12348  "shimonita.gunma.jp",
12349  "shinto.gunma.jp",
12350  "showa.gunma.jp",
12351  "takasaki.gunma.jp",
12352  "takayama.gunma.jp",
12353  "tamamura.gunma.jp",
12354  "tatebayashi.gunma.jp",
12355  "tomioka.gunma.jp",
12356  "tsukiyono.gunma.jp",
12357  "tsumagoi.gunma.jp",
12358  "ueno.gunma.jp",
12359  "yoshioka.gunma.jp",
12360  "asaminami.hiroshima.jp",
12361  "daiwa.hiroshima.jp",
12362  "etajima.hiroshima.jp",
12363  "fuchu.hiroshima.jp",
12364  "fukuyama.hiroshima.jp",
12365  "hatsukaichi.hiroshima.jp",
12366  "higashihiroshima.hiroshima.jp",
12367  "hongo.hiroshima.jp",
12368  "jinsekikogen.hiroshima.jp",
12369  "kaita.hiroshima.jp",
12370  "kui.hiroshima.jp",
12371  "kumano.hiroshima.jp",
12372  "kure.hiroshima.jp",
12373  "mihara.hiroshima.jp",
12374  "miyoshi.hiroshima.jp",
12375  "naka.hiroshima.jp",
12376  "onomichi.hiroshima.jp",
12377  "osakikamijima.hiroshima.jp",
12378  "otake.hiroshima.jp",
12379  "saka.hiroshima.jp",
12380  "sera.hiroshima.jp",
12381  "seranishi.hiroshima.jp",
12382  "shinichi.hiroshima.jp",
12383  "shobara.hiroshima.jp",
12384  "takehara.hiroshima.jp",
12385  "abashiri.hokkaido.jp",
12386  "abira.hokkaido.jp",
12387  "aibetsu.hokkaido.jp",
12388  "akabira.hokkaido.jp",
12389  "akkeshi.hokkaido.jp",
12390  "asahikawa.hokkaido.jp",
12391  "ashibetsu.hokkaido.jp",
12392  "ashoro.hokkaido.jp",
12393  "assabu.hokkaido.jp",
12394  "atsuma.hokkaido.jp",
12395  "bibai.hokkaido.jp",
12396  "biei.hokkaido.jp",
12397  "bifuka.hokkaido.jp",
12398  "bihoro.hokkaido.jp",
12399  "biratori.hokkaido.jp",
12400  "chippubetsu.hokkaido.jp",
12401  "chitose.hokkaido.jp",
12402  "date.hokkaido.jp",
12403  "ebetsu.hokkaido.jp",
12404  "embetsu.hokkaido.jp",
12405  "eniwa.hokkaido.jp",
12406  "erimo.hokkaido.jp",
12407  "esan.hokkaido.jp",
12408  "esashi.hokkaido.jp",
12409  "fukagawa.hokkaido.jp",
12410  "fukushima.hokkaido.jp",
12411  "furano.hokkaido.jp",
12412  "furubira.hokkaido.jp",
12413  "haboro.hokkaido.jp",
12414  "hakodate.hokkaido.jp",
12415  "hamatonbetsu.hokkaido.jp",
12416  "hidaka.hokkaido.jp",
12417  "higashikagura.hokkaido.jp",
12418  "higashikawa.hokkaido.jp",
12419  "hiroo.hokkaido.jp",
12420  "hokuryu.hokkaido.jp",
12421  "hokuto.hokkaido.jp",
12422  "honbetsu.hokkaido.jp",
12423  "horokanai.hokkaido.jp",
12424  "horonobe.hokkaido.jp",
12425  "ikeda.hokkaido.jp",
12426  "imakane.hokkaido.jp",
12427  "ishikari.hokkaido.jp",
12428  "iwamizawa.hokkaido.jp",
12429  "iwanai.hokkaido.jp",
12430  "kamifurano.hokkaido.jp",
12431  "kamikawa.hokkaido.jp",
12432  "kamishihoro.hokkaido.jp",
12433  "kamisunagawa.hokkaido.jp",
12434  "kamoenai.hokkaido.jp",
12435  "kayabe.hokkaido.jp",
12436  "kembuchi.hokkaido.jp",
12437  "kikonai.hokkaido.jp",
12438  "kimobetsu.hokkaido.jp",
12439  "kitahiroshima.hokkaido.jp",
12440  "kitami.hokkaido.jp",
12441  "kiyosato.hokkaido.jp",
12442  "koshimizu.hokkaido.jp",
12443  "kunneppu.hokkaido.jp",
12444  "kuriyama.hokkaido.jp",
12445  "kuromatsunai.hokkaido.jp",
12446  "kushiro.hokkaido.jp",
12447  "kutchan.hokkaido.jp",
12448  "kyowa.hokkaido.jp",
12449  "mashike.hokkaido.jp",
12450  "matsumae.hokkaido.jp",
12451  "mikasa.hokkaido.jp",
12452  "minamifurano.hokkaido.jp",
12453  "mombetsu.hokkaido.jp",
12454  "moseushi.hokkaido.jp",
12455  "mukawa.hokkaido.jp",
12456  "muroran.hokkaido.jp",
12457  "naie.hokkaido.jp",
12458  "nakagawa.hokkaido.jp",
12459  "nakasatsunai.hokkaido.jp",
12460  "nakatombetsu.hokkaido.jp",
12461  "nanae.hokkaido.jp",
12462  "nanporo.hokkaido.jp",
12463  "nayoro.hokkaido.jp",
12464  "nemuro.hokkaido.jp",
12465  "niikappu.hokkaido.jp",
12466  "niki.hokkaido.jp",
12467  "nishiokoppe.hokkaido.jp",
12468  "noboribetsu.hokkaido.jp",
12469  "numata.hokkaido.jp",
12470  "obihiro.hokkaido.jp",
12471  "obira.hokkaido.jp",
12472  "oketo.hokkaido.jp",
12473  "okoppe.hokkaido.jp",
12474  "otaru.hokkaido.jp",
12475  "otobe.hokkaido.jp",
12476  "otofuke.hokkaido.jp",
12477  "otoineppu.hokkaido.jp",
12478  "oumu.hokkaido.jp",
12479  "ozora.hokkaido.jp",
12480  "pippu.hokkaido.jp",
12481  "rankoshi.hokkaido.jp",
12482  "rebun.hokkaido.jp",
12483  "rikubetsu.hokkaido.jp",
12484  "rishiri.hokkaido.jp",
12485  "rishirifuji.hokkaido.jp",
12486  "saroma.hokkaido.jp",
12487  "sarufutsu.hokkaido.jp",
12488  "shakotan.hokkaido.jp",
12489  "shari.hokkaido.jp",
12490  "shibecha.hokkaido.jp",
12491  "shibetsu.hokkaido.jp",
12492  "shikabe.hokkaido.jp",
12493  "shikaoi.hokkaido.jp",
12494  "shimamaki.hokkaido.jp",
12495  "shimizu.hokkaido.jp",
12496  "shimokawa.hokkaido.jp",
12497  "shinshinotsu.hokkaido.jp",
12498  "shintoku.hokkaido.jp",
12499  "shiranuka.hokkaido.jp",
12500  "shiraoi.hokkaido.jp",
12501  "shiriuchi.hokkaido.jp",
12502  "sobetsu.hokkaido.jp",
12503  "sunagawa.hokkaido.jp",
12504  "taiki.hokkaido.jp",
12505  "takasu.hokkaido.jp",
12506  "takikawa.hokkaido.jp",
12507  "takinoue.hokkaido.jp",
12508  "teshikaga.hokkaido.jp",
12509  "tobetsu.hokkaido.jp",
12510  "tohma.hokkaido.jp",
12511  "tomakomai.hokkaido.jp",
12512  "tomari.hokkaido.jp",
12513  "toya.hokkaido.jp",
12514  "toyako.hokkaido.jp",
12515  "toyotomi.hokkaido.jp",
12516  "toyoura.hokkaido.jp",
12517  "tsubetsu.hokkaido.jp",
12518  "tsukigata.hokkaido.jp",
12519  "urakawa.hokkaido.jp",
12520  "urausu.hokkaido.jp",
12521  "uryu.hokkaido.jp",
12522  "utashinai.hokkaido.jp",
12523  "wakkanai.hokkaido.jp",
12524  "wassamu.hokkaido.jp",
12525  "yakumo.hokkaido.jp",
12526  "yoichi.hokkaido.jp",
12527  "aioi.hyogo.jp",
12528  "akashi.hyogo.jp",
12529  "ako.hyogo.jp",
12530  "amagasaki.hyogo.jp",
12531  "aogaki.hyogo.jp",
12532  "asago.hyogo.jp",
12533  "ashiya.hyogo.jp",
12534  "awaji.hyogo.jp",
12535  "fukusaki.hyogo.jp",
12536  "goshiki.hyogo.jp",
12537  "harima.hyogo.jp",
12538  "himeji.hyogo.jp",
12539  "ichikawa.hyogo.jp",
12540  "inagawa.hyogo.jp",
12541  "itami.hyogo.jp",
12542  "kakogawa.hyogo.jp",
12543  "kamigori.hyogo.jp",
12544  "kamikawa.hyogo.jp",
12545  "kasai.hyogo.jp",
12546  "kasuga.hyogo.jp",
12547  "kawanishi.hyogo.jp",
12548  "miki.hyogo.jp",
12549  "minamiawaji.hyogo.jp",
12550  "nishinomiya.hyogo.jp",
12551  "nishiwaki.hyogo.jp",
12552  "ono.hyogo.jp",
12553  "sanda.hyogo.jp",
12554  "sannan.hyogo.jp",
12555  "sasayama.hyogo.jp",
12556  "sayo.hyogo.jp",
12557  "shingu.hyogo.jp",
12558  "shinonsen.hyogo.jp",
12559  "shiso.hyogo.jp",
12560  "sumoto.hyogo.jp",
12561  "taishi.hyogo.jp",
12562  "taka.hyogo.jp",
12563  "takarazuka.hyogo.jp",
12564  "takasago.hyogo.jp",
12565  "takino.hyogo.jp",
12566  "tamba.hyogo.jp",
12567  "tatsuno.hyogo.jp",
12568  "toyooka.hyogo.jp",
12569  "yabu.hyogo.jp",
12570  "yashiro.hyogo.jp",
12571  "yoka.hyogo.jp",
12572  "yokawa.hyogo.jp",
12573  "ami.ibaraki.jp",
12574  "asahi.ibaraki.jp",
12575  "bando.ibaraki.jp",
12576  "chikusei.ibaraki.jp",
12577  "daigo.ibaraki.jp",
12578  "fujishiro.ibaraki.jp",
12579  "hitachi.ibaraki.jp",
12580  "hitachinaka.ibaraki.jp",
12581  "hitachiomiya.ibaraki.jp",
12582  "hitachiota.ibaraki.jp",
12583  "ibaraki.ibaraki.jp",
12584  "ina.ibaraki.jp",
12585  "inashiki.ibaraki.jp",
12586  "itako.ibaraki.jp",
12587  "iwama.ibaraki.jp",
12588  "joso.ibaraki.jp",
12589  "kamisu.ibaraki.jp",
12590  "kasama.ibaraki.jp",
12591  "kashima.ibaraki.jp",
12592  "kasumigaura.ibaraki.jp",
12593  "koga.ibaraki.jp",
12594  "miho.ibaraki.jp",
12595  "mito.ibaraki.jp",
12596  "moriya.ibaraki.jp",
12597  "naka.ibaraki.jp",
12598  "namegata.ibaraki.jp",
12599  "oarai.ibaraki.jp",
12600  "ogawa.ibaraki.jp",
12601  "omitama.ibaraki.jp",
12602  "ryugasaki.ibaraki.jp",
12603  "sakai.ibaraki.jp",
12604  "sakuragawa.ibaraki.jp",
12605  "shimodate.ibaraki.jp",
12606  "shimotsuma.ibaraki.jp",
12607  "shirosato.ibaraki.jp",
12608  "sowa.ibaraki.jp",
12609  "suifu.ibaraki.jp",
12610  "takahagi.ibaraki.jp",
12611  "tamatsukuri.ibaraki.jp",
12612  "tokai.ibaraki.jp",
12613  "tomobe.ibaraki.jp",
12614  "tone.ibaraki.jp",
12615  "toride.ibaraki.jp",
12616  "tsuchiura.ibaraki.jp",
12617  "tsukuba.ibaraki.jp",
12618  "uchihara.ibaraki.jp",
12619  "ushiku.ibaraki.jp",
12620  "yachiyo.ibaraki.jp",
12621  "yamagata.ibaraki.jp",
12622  "yawara.ibaraki.jp",
12623  "yuki.ibaraki.jp",
12624  "anamizu.ishikawa.jp",
12625  "hakui.ishikawa.jp",
12626  "hakusan.ishikawa.jp",
12627  "kaga.ishikawa.jp",
12628  "kahoku.ishikawa.jp",
12629  "kanazawa.ishikawa.jp",
12630  "kawakita.ishikawa.jp",
12631  "komatsu.ishikawa.jp",
12632  "nakanoto.ishikawa.jp",
12633  "nanao.ishikawa.jp",
12634  "nomi.ishikawa.jp",
12635  "nonoichi.ishikawa.jp",
12636  "noto.ishikawa.jp",
12637  "shika.ishikawa.jp",
12638  "suzu.ishikawa.jp",
12639  "tsubata.ishikawa.jp",
12640  "tsurugi.ishikawa.jp",
12641  "uchinada.ishikawa.jp",
12642  "wajima.ishikawa.jp",
12643  "fudai.iwate.jp",
12644  "fujisawa.iwate.jp",
12645  "hanamaki.iwate.jp",
12646  "hiraizumi.iwate.jp",
12647  "hirono.iwate.jp",
12648  "ichinohe.iwate.jp",
12649  "ichinoseki.iwate.jp",
12650  "iwaizumi.iwate.jp",
12651  "iwate.iwate.jp",
12652  "joboji.iwate.jp",
12653  "kamaishi.iwate.jp",
12654  "kanegasaki.iwate.jp",
12655  "karumai.iwate.jp",
12656  "kawai.iwate.jp",
12657  "kitakami.iwate.jp",
12658  "kuji.iwate.jp",
12659  "kunohe.iwate.jp",
12660  "kuzumaki.iwate.jp",
12661  "miyako.iwate.jp",
12662  "mizusawa.iwate.jp",
12663  "morioka.iwate.jp",
12664  "ninohe.iwate.jp",
12665  "noda.iwate.jp",
12666  "ofunato.iwate.jp",
12667  "oshu.iwate.jp",
12668  "otsuchi.iwate.jp",
12669  "rikuzentakata.iwate.jp",
12670  "shiwa.iwate.jp",
12671  "shizukuishi.iwate.jp",
12672  "sumita.iwate.jp",
12673  "tanohata.iwate.jp",
12674  "tono.iwate.jp",
12675  "yahaba.iwate.jp",
12676  "yamada.iwate.jp",
12677  "ayagawa.kagawa.jp",
12678  "higashikagawa.kagawa.jp",
12679  "kanonji.kagawa.jp",
12680  "kotohira.kagawa.jp",
12681  "manno.kagawa.jp",
12682  "marugame.kagawa.jp",
12683  "mitoyo.kagawa.jp",
12684  "naoshima.kagawa.jp",
12685  "sanuki.kagawa.jp",
12686  "tadotsu.kagawa.jp",
12687  "takamatsu.kagawa.jp",
12688  "tonosho.kagawa.jp",
12689  "uchinomi.kagawa.jp",
12690  "utazu.kagawa.jp",
12691  "zentsuji.kagawa.jp",
12692  "akune.kagoshima.jp",
12693  "amami.kagoshima.jp",
12694  "hioki.kagoshima.jp",
12695  "isa.kagoshima.jp",
12696  "isen.kagoshima.jp",
12697  "izumi.kagoshima.jp",
12698  "kagoshima.kagoshima.jp",
12699  "kanoya.kagoshima.jp",
12700  "kawanabe.kagoshima.jp",
12701  "kinko.kagoshima.jp",
12702  "kouyama.kagoshima.jp",
12703  "makurazaki.kagoshima.jp",
12704  "matsumoto.kagoshima.jp",
12705  "minamitane.kagoshima.jp",
12706  "nakatane.kagoshima.jp",
12707  "nishinoomote.kagoshima.jp",
12708  "satsumasendai.kagoshima.jp",
12709  "soo.kagoshima.jp",
12710  "tarumizu.kagoshima.jp",
12711  "yusui.kagoshima.jp",
12712  "aikawa.kanagawa.jp",
12713  "atsugi.kanagawa.jp",
12714  "ayase.kanagawa.jp",
12715  "chigasaki.kanagawa.jp",
12716  "ebina.kanagawa.jp",
12717  "fujisawa.kanagawa.jp",
12718  "hadano.kanagawa.jp",
12719  "hakone.kanagawa.jp",
12720  "hiratsuka.kanagawa.jp",
12721  "isehara.kanagawa.jp",
12722  "kaisei.kanagawa.jp",
12723  "kamakura.kanagawa.jp",
12724  "kiyokawa.kanagawa.jp",
12725  "matsuda.kanagawa.jp",
12726  "minamiashigara.kanagawa.jp",
12727  "miura.kanagawa.jp",
12728  "nakai.kanagawa.jp",
12729  "ninomiya.kanagawa.jp",
12730  "odawara.kanagawa.jp",
12731  "oi.kanagawa.jp",
12732  "oiso.kanagawa.jp",
12733  "sagamihara.kanagawa.jp",
12734  "samukawa.kanagawa.jp",
12735  "tsukui.kanagawa.jp",
12736  "yamakita.kanagawa.jp",
12737  "yamato.kanagawa.jp",
12738  "yokosuka.kanagawa.jp",
12739  "yugawara.kanagawa.jp",
12740  "zama.kanagawa.jp",
12741  "zushi.kanagawa.jp",
12742  "aki.kochi.jp",
12743  "geisei.kochi.jp",
12744  "hidaka.kochi.jp",
12745  "higashitsuno.kochi.jp",
12746  "ino.kochi.jp",
12747  "kagami.kochi.jp",
12748  "kami.kochi.jp",
12749  "kitagawa.kochi.jp",
12750  "kochi.kochi.jp",
12751  "mihara.kochi.jp",
12752  "motoyama.kochi.jp",
12753  "muroto.kochi.jp",
12754  "nahari.kochi.jp",
12755  "nakamura.kochi.jp",
12756  "nankoku.kochi.jp",
12757  "nishitosa.kochi.jp",
12758  "niyodogawa.kochi.jp",
12759  "ochi.kochi.jp",
12760  "okawa.kochi.jp",
12761  "otoyo.kochi.jp",
12762  "otsuki.kochi.jp",
12763  "sakawa.kochi.jp",
12764  "sukumo.kochi.jp",
12765  "susaki.kochi.jp",
12766  "tosa.kochi.jp",
12767  "tosashimizu.kochi.jp",
12768  "toyo.kochi.jp",
12769  "tsuno.kochi.jp",
12770  "umaji.kochi.jp",
12771  "yasuda.kochi.jp",
12772  "yusuhara.kochi.jp",
12773  "amakusa.kumamoto.jp",
12774  "arao.kumamoto.jp",
12775  "aso.kumamoto.jp",
12776  "choyo.kumamoto.jp",
12777  "gyokuto.kumamoto.jp",
12778  "kamiamakusa.kumamoto.jp",
12779  "kikuchi.kumamoto.jp",
12780  "kumamoto.kumamoto.jp",
12781  "mashiki.kumamoto.jp",
12782  "mifune.kumamoto.jp",
12783  "minamata.kumamoto.jp",
12784  "minamioguni.kumamoto.jp",
12785  "nagasu.kumamoto.jp",
12786  "nishihara.kumamoto.jp",
12787  "oguni.kumamoto.jp",
12788  "ozu.kumamoto.jp",
12789  "sumoto.kumamoto.jp",
12790  "takamori.kumamoto.jp",
12791  "uki.kumamoto.jp",
12792  "uto.kumamoto.jp",
12793  "yamaga.kumamoto.jp",
12794  "yamato.kumamoto.jp",
12795  "yatsushiro.kumamoto.jp",
12796  "ayabe.kyoto.jp",
12797  "fukuchiyama.kyoto.jp",
12798  "higashiyama.kyoto.jp",
12799  "ide.kyoto.jp",
12800  "ine.kyoto.jp",
12801  "joyo.kyoto.jp",
12802  "kameoka.kyoto.jp",
12803  "kamo.kyoto.jp",
12804  "kita.kyoto.jp",
12805  "kizu.kyoto.jp",
12806  "kumiyama.kyoto.jp",
12807  "kyotamba.kyoto.jp",
12808  "kyotanabe.kyoto.jp",
12809  "kyotango.kyoto.jp",
12810  "maizuru.kyoto.jp",
12811  "minami.kyoto.jp",
12812  "minamiyamashiro.kyoto.jp",
12813  "miyazu.kyoto.jp",
12814  "muko.kyoto.jp",
12815  "nagaokakyo.kyoto.jp",
12816  "nakagyo.kyoto.jp",
12817  "nantan.kyoto.jp",
12818  "oyamazaki.kyoto.jp",
12819  "sakyo.kyoto.jp",
12820  "seika.kyoto.jp",
12821  "tanabe.kyoto.jp",
12822  "uji.kyoto.jp",
12823  "ujitawara.kyoto.jp",
12824  "wazuka.kyoto.jp",
12825  "yamashina.kyoto.jp",
12826  "yawata.kyoto.jp",
12827  "asahi.mie.jp",
12828  "inabe.mie.jp",
12829  "ise.mie.jp",
12830  "kameyama.mie.jp",
12831  "kawagoe.mie.jp",
12832  "kiho.mie.jp",
12833  "kisosaki.mie.jp",
12834  "kiwa.mie.jp",
12835  "komono.mie.jp",
12836  "kumano.mie.jp",
12837  "kuwana.mie.jp",
12838  "matsusaka.mie.jp",
12839  "meiwa.mie.jp",
12840  "mihama.mie.jp",
12841  "minamiise.mie.jp",
12842  "misugi.mie.jp",
12843  "miyama.mie.jp",
12844  "nabari.mie.jp",
12845  "shima.mie.jp",
12846  "suzuka.mie.jp",
12847  "tado.mie.jp",
12848  "taiki.mie.jp",
12849  "taki.mie.jp",
12850  "tamaki.mie.jp",
12851  "toba.mie.jp",
12852  "tsu.mie.jp",
12853  "udono.mie.jp",
12854  "ureshino.mie.jp",
12855  "watarai.mie.jp",
12856  "yokkaichi.mie.jp",
12857  "furukawa.miyagi.jp",
12858  "higashimatsushima.miyagi.jp",
12859  "ishinomaki.miyagi.jp",
12860  "iwanuma.miyagi.jp",
12861  "kakuda.miyagi.jp",
12862  "kami.miyagi.jp",
12863  "kawasaki.miyagi.jp",
12864  "marumori.miyagi.jp",
12865  "matsushima.miyagi.jp",
12866  "minamisanriku.miyagi.jp",
12867  "misato.miyagi.jp",
12868  "murata.miyagi.jp",
12869  "natori.miyagi.jp",
12870  "ogawara.miyagi.jp",
12871  "ohira.miyagi.jp",
12872  "onagawa.miyagi.jp",
12873  "osaki.miyagi.jp",
12874  "rifu.miyagi.jp",
12875  "semine.miyagi.jp",
12876  "shibata.miyagi.jp",
12877  "shichikashuku.miyagi.jp",
12878  "shikama.miyagi.jp",
12879  "shiogama.miyagi.jp",
12880  "shiroishi.miyagi.jp",
12881  "tagajo.miyagi.jp",
12882  "taiwa.miyagi.jp",
12883  "tome.miyagi.jp",
12884  "tomiya.miyagi.jp",
12885  "wakuya.miyagi.jp",
12886  "watari.miyagi.jp",
12887  "yamamoto.miyagi.jp",
12888  "zao.miyagi.jp",
12889  "aya.miyazaki.jp",
12890  "ebino.miyazaki.jp",
12891  "gokase.miyazaki.jp",
12892  "hyuga.miyazaki.jp",
12893  "kadogawa.miyazaki.jp",
12894  "kawaminami.miyazaki.jp",
12895  "kijo.miyazaki.jp",
12896  "kitagawa.miyazaki.jp",
12897  "kitakata.miyazaki.jp",
12898  "kitaura.miyazaki.jp",
12899  "kobayashi.miyazaki.jp",
12900  "kunitomi.miyazaki.jp",
12901  "kushima.miyazaki.jp",
12902  "mimata.miyazaki.jp",
12903  "miyakonojo.miyazaki.jp",
12904  "miyazaki.miyazaki.jp",
12905  "morotsuka.miyazaki.jp",
12906  "nichinan.miyazaki.jp",
12907  "nishimera.miyazaki.jp",
12908  "nobeoka.miyazaki.jp",
12909  "saito.miyazaki.jp",
12910  "shiiba.miyazaki.jp",
12911  "shintomi.miyazaki.jp",
12912  "takaharu.miyazaki.jp",
12913  "takanabe.miyazaki.jp",
12914  "takazaki.miyazaki.jp",
12915  "tsuno.miyazaki.jp",
12916  "achi.nagano.jp",
12917  "agematsu.nagano.jp",
12918  "anan.nagano.jp",
12919  "aoki.nagano.jp",
12920  "asahi.nagano.jp",
12921  "azumino.nagano.jp",
12922  "chikuhoku.nagano.jp",
12923  "chikuma.nagano.jp",
12924  "chino.nagano.jp",
12925  "fujimi.nagano.jp",
12926  "hakuba.nagano.jp",
12927  "hara.nagano.jp",
12928  "hiraya.nagano.jp",
12929  "iida.nagano.jp",
12930  "iijima.nagano.jp",
12931  "iiyama.nagano.jp",
12932  "iizuna.nagano.jp",
12933  "ikeda.nagano.jp",
12934  "ikusaka.nagano.jp",
12935  "ina.nagano.jp",
12936  "karuizawa.nagano.jp",
12937  "kawakami.nagano.jp",
12938  "kiso.nagano.jp",
12939  "kisofukushima.nagano.jp",
12940  "kitaaiki.nagano.jp",
12941  "komagane.nagano.jp",
12942  "komoro.nagano.jp",
12943  "matsukawa.nagano.jp",
12944  "matsumoto.nagano.jp",
12945  "miasa.nagano.jp",
12946  "minamiaiki.nagano.jp",
12947  "minamimaki.nagano.jp",
12948  "minamiminowa.nagano.jp",
12949  "minowa.nagano.jp",
12950  "miyada.nagano.jp",
12951  "miyota.nagano.jp",
12952  "mochizuki.nagano.jp",
12953  "nagano.nagano.jp",
12954  "nagawa.nagano.jp",
12955  "nagiso.nagano.jp",
12956  "nakagawa.nagano.jp",
12957  "nakano.nagano.jp",
12958  "nozawaonsen.nagano.jp",
12959  "obuse.nagano.jp",
12960  "ogawa.nagano.jp",
12961  "okaya.nagano.jp",
12962  "omachi.nagano.jp",
12963  "omi.nagano.jp",
12964  "ookuwa.nagano.jp",
12965  "ooshika.nagano.jp",
12966  "otaki.nagano.jp",
12967  "otari.nagano.jp",
12968  "sakae.nagano.jp",
12969  "sakaki.nagano.jp",
12970  "saku.nagano.jp",
12971  "sakuho.nagano.jp",
12972  "shimosuwa.nagano.jp",
12973  "shinanomachi.nagano.jp",
12974  "shiojiri.nagano.jp",
12975  "suwa.nagano.jp",
12976  "suzaka.nagano.jp",
12977  "takagi.nagano.jp",
12978  "takamori.nagano.jp",
12979  "takayama.nagano.jp",
12980  "tateshina.nagano.jp",
12981  "tatsuno.nagano.jp",
12982  "togakushi.nagano.jp",
12983  "togura.nagano.jp",
12984  "tomi.nagano.jp",
12985  "ueda.nagano.jp",
12986  "wada.nagano.jp",
12987  "yamagata.nagano.jp",
12988  "yamanouchi.nagano.jp",
12989  "yasaka.nagano.jp",
12990  "yasuoka.nagano.jp",
12991  "chijiwa.nagasaki.jp",
12992  "futsu.nagasaki.jp",
12993  "goto.nagasaki.jp",
12994  "hasami.nagasaki.jp",
12995  "hirado.nagasaki.jp",
12996  "iki.nagasaki.jp",
12997  "isahaya.nagasaki.jp",
12998  "kawatana.nagasaki.jp",
12999  "kuchinotsu.nagasaki.jp",
13000  "matsuura.nagasaki.jp",
13001  "nagasaki.nagasaki.jp",
13002  "obama.nagasaki.jp",
13003  "omura.nagasaki.jp",
13004  "oseto.nagasaki.jp",
13005  "saikai.nagasaki.jp",
13006  "sasebo.nagasaki.jp",
13007  "seihi.nagasaki.jp",
13008  "shimabara.nagasaki.jp",
13009  "shinkamigoto.nagasaki.jp",
13010  "togitsu.nagasaki.jp",
13011  "tsushima.nagasaki.jp",
13012  "unzen.nagasaki.jp",
13013  "ando.nara.jp",
13014  "gose.nara.jp",
13015  "heguri.nara.jp",
13016  "higashiyoshino.nara.jp",
13017  "ikaruga.nara.jp",
13018  "ikoma.nara.jp",
13019  "kamikitayama.nara.jp",
13020  "kanmaki.nara.jp",
13021  "kashiba.nara.jp",
13022  "kashihara.nara.jp",
13023  "katsuragi.nara.jp",
13024  "kawai.nara.jp",
13025  "kawakami.nara.jp",
13026  "kawanishi.nara.jp",
13027  "koryo.nara.jp",
13028  "kurotaki.nara.jp",
13029  "mitsue.nara.jp",
13030  "miyake.nara.jp",
13031  "nara.nara.jp",
13032  "nosegawa.nara.jp",
13033  "oji.nara.jp",
13034  "ouda.nara.jp",
13035  "oyodo.nara.jp",
13036  "sakurai.nara.jp",
13037  "sango.nara.jp",
13038  "shimoichi.nara.jp",
13039  "shimokitayama.nara.jp",
13040  "shinjo.nara.jp",
13041  "soni.nara.jp",
13042  "takatori.nara.jp",
13043  "tawaramoto.nara.jp",
13044  "tenkawa.nara.jp",
13045  "tenri.nara.jp",
13046  "uda.nara.jp",
13047  "yamatokoriyama.nara.jp",
13048  "yamatotakada.nara.jp",
13049  "yamazoe.nara.jp",
13050  "yoshino.nara.jp",
13051  "aga.niigata.jp",
13052  "agano.niigata.jp",
13053  "gosen.niigata.jp",
13054  "itoigawa.niigata.jp",
13055  "izumozaki.niigata.jp",
13056  "joetsu.niigata.jp",
13057  "kamo.niigata.jp",
13058  "kariwa.niigata.jp",
13059  "kashiwazaki.niigata.jp",
13060  "minamiuonuma.niigata.jp",
13061  "mitsuke.niigata.jp",
13062  "muika.niigata.jp",
13063  "murakami.niigata.jp",
13064  "myoko.niigata.jp",
13065  "nagaoka.niigata.jp",
13066  "niigata.niigata.jp",
13067  "ojiya.niigata.jp",
13068  "omi.niigata.jp",
13069  "sado.niigata.jp",
13070  "sanjo.niigata.jp",
13071  "seiro.niigata.jp",
13072  "seirou.niigata.jp",
13073  "sekikawa.niigata.jp",
13074  "shibata.niigata.jp",
13075  "tagami.niigata.jp",
13076  "tainai.niigata.jp",
13077  "tochio.niigata.jp",
13078  "tokamachi.niigata.jp",
13079  "tsubame.niigata.jp",
13080  "tsunan.niigata.jp",
13081  "uonuma.niigata.jp",
13082  "yahiko.niigata.jp",
13083  "yoita.niigata.jp",
13084  "yuzawa.niigata.jp",
13085  "beppu.oita.jp",
13086  "bungoono.oita.jp",
13087  "bungotakada.oita.jp",
13088  "hasama.oita.jp",
13089  "hiji.oita.jp",
13090  "himeshima.oita.jp",
13091  "hita.oita.jp",
13092  "kamitsue.oita.jp",
13093  "kokonoe.oita.jp",
13094  "kuju.oita.jp",
13095  "kunisaki.oita.jp",
13096  "kusu.oita.jp",
13097  "oita.oita.jp",
13098  "saiki.oita.jp",
13099  "taketa.oita.jp",
13100  "tsukumi.oita.jp",
13101  "usa.oita.jp",
13102  "usuki.oita.jp",
13103  "yufu.oita.jp",
13104  "akaiwa.okayama.jp",
13105  "asakuchi.okayama.jp",
13106  "bizen.okayama.jp",
13107  "hayashima.okayama.jp",
13108  "ibara.okayama.jp",
13109  "kagamino.okayama.jp",
13110  "kasaoka.okayama.jp",
13111  "kibichuo.okayama.jp",
13112  "kumenan.okayama.jp",
13113  "kurashiki.okayama.jp",
13114  "maniwa.okayama.jp",
13115  "misaki.okayama.jp",
13116  "nagi.okayama.jp",
13117  "niimi.okayama.jp",
13118  "nishiawakura.okayama.jp",
13119  "okayama.okayama.jp",
13120  "satosho.okayama.jp",
13121  "setouchi.okayama.jp",
13122  "shinjo.okayama.jp",
13123  "shoo.okayama.jp",
13124  "soja.okayama.jp",
13125  "takahashi.okayama.jp",
13126  "tamano.okayama.jp",
13127  "tsuyama.okayama.jp",
13128  "wake.okayama.jp",
13129  "yakage.okayama.jp",
13130  "aguni.okinawa.jp",
13131  "ginowan.okinawa.jp",
13132  "ginoza.okinawa.jp",
13133  "gushikami.okinawa.jp",
13134  "haebaru.okinawa.jp",
13135  "higashi.okinawa.jp",
13136  "hirara.okinawa.jp",
13137  "iheya.okinawa.jp",
13138  "ishigaki.okinawa.jp",
13139  "ishikawa.okinawa.jp",
13140  "itoman.okinawa.jp",
13141  "izena.okinawa.jp",
13142  "kadena.okinawa.jp",
13143  "kin.okinawa.jp",
13144  "kitadaito.okinawa.jp",
13145  "kitanakagusuku.okinawa.jp",
13146  "kumejima.okinawa.jp",
13147  "kunigami.okinawa.jp",
13148  "minamidaito.okinawa.jp",
13149  "motobu.okinawa.jp",
13150  "nago.okinawa.jp",
13151  "naha.okinawa.jp",
13152  "nakagusuku.okinawa.jp",
13153  "nakijin.okinawa.jp",
13154  "nanjo.okinawa.jp",
13155  "nishihara.okinawa.jp",
13156  "ogimi.okinawa.jp",
13157  "okinawa.okinawa.jp",
13158  "onna.okinawa.jp",
13159  "shimoji.okinawa.jp",
13160  "taketomi.okinawa.jp",
13161  "tarama.okinawa.jp",
13162  "tokashiki.okinawa.jp",
13163  "tomigusuku.okinawa.jp",
13164  "tonaki.okinawa.jp",
13165  "urasoe.okinawa.jp",
13166  "uruma.okinawa.jp",
13167  "yaese.okinawa.jp",
13168  "yomitan.okinawa.jp",
13169  "yonabaru.okinawa.jp",
13170  "yonaguni.okinawa.jp",
13171  "zamami.okinawa.jp",
13172  "abeno.osaka.jp",
13173  "chihayaakasaka.osaka.jp",
13174  "chuo.osaka.jp",
13175  "daito.osaka.jp",
13176  "fujiidera.osaka.jp",
13177  "habikino.osaka.jp",
13178  "hannan.osaka.jp",
13179  "higashiosaka.osaka.jp",
13180  "higashisumiyoshi.osaka.jp",
13181  "higashiyodogawa.osaka.jp",
13182  "hirakata.osaka.jp",
13183  "ibaraki.osaka.jp",
13184  "ikeda.osaka.jp",
13185  "izumi.osaka.jp",
13186  "izumiotsu.osaka.jp",
13187  "izumisano.osaka.jp",
13188  "kadoma.osaka.jp",
13189  "kaizuka.osaka.jp",
13190  "kanan.osaka.jp",
13191  "kashiwara.osaka.jp",
13192  "katano.osaka.jp",
13193  "kawachinagano.osaka.jp",
13194  "kishiwada.osaka.jp",
13195  "kita.osaka.jp",
13196  "kumatori.osaka.jp",
13197  "matsubara.osaka.jp",
13198  "minato.osaka.jp",
13199  "minoh.osaka.jp",
13200  "misaki.osaka.jp",
13201  "moriguchi.osaka.jp",
13202  "neyagawa.osaka.jp",
13203  "nishi.osaka.jp",
13204  "nose.osaka.jp",
13205  "osakasayama.osaka.jp",
13206  "sakai.osaka.jp",
13207  "sayama.osaka.jp",
13208  "sennan.osaka.jp",
13209  "settsu.osaka.jp",
13210  "shijonawate.osaka.jp",
13211  "shimamoto.osaka.jp",
13212  "suita.osaka.jp",
13213  "tadaoka.osaka.jp",
13214  "taishi.osaka.jp",
13215  "tajiri.osaka.jp",
13216  "takaishi.osaka.jp",
13217  "takatsuki.osaka.jp",
13218  "tondabayashi.osaka.jp",
13219  "toyonaka.osaka.jp",
13220  "toyono.osaka.jp",
13221  "yao.osaka.jp",
13222  "ariake.saga.jp",
13223  "arita.saga.jp",
13224  "fukudomi.saga.jp",
13225  "genkai.saga.jp",
13226  "hamatama.saga.jp",
13227  "hizen.saga.jp",
13228  "imari.saga.jp",
13229  "kamimine.saga.jp",
13230  "kanzaki.saga.jp",
13231  "karatsu.saga.jp",
13232  "kashima.saga.jp",
13233  "kitagata.saga.jp",
13234  "kitahata.saga.jp",
13235  "kiyama.saga.jp",
13236  "kouhoku.saga.jp",
13237  "kyuragi.saga.jp",
13238  "nishiarita.saga.jp",
13239  "ogi.saga.jp",
13240  "omachi.saga.jp",
13241  "ouchi.saga.jp",
13242  "saga.saga.jp",
13243  "shiroishi.saga.jp",
13244  "taku.saga.jp",
13245  "tara.saga.jp",
13246  "tosu.saga.jp",
13247  "yoshinogari.saga.jp",
13248  "arakawa.saitama.jp",
13249  "asaka.saitama.jp",
13250  "chichibu.saitama.jp",
13251  "fujimi.saitama.jp",
13252  "fujimino.saitama.jp",
13253  "fukaya.saitama.jp",
13254  "hanno.saitama.jp",
13255  "hanyu.saitama.jp",
13256  "hasuda.saitama.jp",
13257  "hatogaya.saitama.jp",
13258  "hatoyama.saitama.jp",
13259  "hidaka.saitama.jp",
13260  "higashichichibu.saitama.jp",
13261  "higashimatsuyama.saitama.jp",
13262  "honjo.saitama.jp",
13263  "ina.saitama.jp",
13264  "iruma.saitama.jp",
13265  "iwatsuki.saitama.jp",
13266  "kamiizumi.saitama.jp",
13267  "kamikawa.saitama.jp",
13268  "kamisato.saitama.jp",
13269  "kasukabe.saitama.jp",
13270  "kawagoe.saitama.jp",
13271  "kawaguchi.saitama.jp",
13272  "kawajima.saitama.jp",
13273  "kazo.saitama.jp",
13274  "kitamoto.saitama.jp",
13275  "koshigaya.saitama.jp",
13276  "kounosu.saitama.jp",
13277  "kuki.saitama.jp",
13278  "kumagaya.saitama.jp",
13279  "matsubushi.saitama.jp",
13280  "minano.saitama.jp",
13281  "misato.saitama.jp",
13282  "miyashiro.saitama.jp",
13283  "miyoshi.saitama.jp",
13284  "moroyama.saitama.jp",
13285  "nagatoro.saitama.jp",
13286  "namegawa.saitama.jp",
13287  "niiza.saitama.jp",
13288  "ogano.saitama.jp",
13289  "ogawa.saitama.jp",
13290  "ogose.saitama.jp",
13291  "okegawa.saitama.jp",
13292  "omiya.saitama.jp",
13293  "otaki.saitama.jp",
13294  "ranzan.saitama.jp",
13295  "ryokami.saitama.jp",
13296  "saitama.saitama.jp",
13297  "sakado.saitama.jp",
13298  "satte.saitama.jp",
13299  "sayama.saitama.jp",
13300  "shiki.saitama.jp",
13301  "shiraoka.saitama.jp",
13302  "soka.saitama.jp",
13303  "sugito.saitama.jp",
13304  "toda.saitama.jp",
13305  "tokigawa.saitama.jp",
13306  "tokorozawa.saitama.jp",
13307  "tsurugashima.saitama.jp",
13308  "urawa.saitama.jp",
13309  "warabi.saitama.jp",
13310  "yashio.saitama.jp",
13311  "yokoze.saitama.jp",
13312  "yono.saitama.jp",
13313  "yorii.saitama.jp",
13314  "yoshida.saitama.jp",
13315  "yoshikawa.saitama.jp",
13316  "yoshimi.saitama.jp",
13317  "aisho.shiga.jp",
13318  "gamo.shiga.jp",
13319  "higashiomi.shiga.jp",
13320  "hikone.shiga.jp",
13321  "koka.shiga.jp",
13322  "konan.shiga.jp",
13323  "kosei.shiga.jp",
13324  "koto.shiga.jp",
13325  "kusatsu.shiga.jp",
13326  "maibara.shiga.jp",
13327  "moriyama.shiga.jp",
13328  "nagahama.shiga.jp",
13329  "nishiazai.shiga.jp",
13330  "notogawa.shiga.jp",
13331  "omihachiman.shiga.jp",
13332  "otsu.shiga.jp",
13333  "ritto.shiga.jp",
13334  "ryuoh.shiga.jp",
13335  "takashima.shiga.jp",
13336  "takatsuki.shiga.jp",
13337  "torahime.shiga.jp",
13338  "toyosato.shiga.jp",
13339  "yasu.shiga.jp",
13340  "akagi.shimane.jp",
13341  "ama.shimane.jp",
13342  "gotsu.shimane.jp",
13343  "hamada.shimane.jp",
13344  "higashiizumo.shimane.jp",
13345  "hikawa.shimane.jp",
13346  "hikimi.shimane.jp",
13347  "izumo.shimane.jp",
13348  "kakinoki.shimane.jp",
13349  "masuda.shimane.jp",
13350  "matsue.shimane.jp",
13351  "misato.shimane.jp",
13352  "nishinoshima.shimane.jp",
13353  "ohda.shimane.jp",
13354  "okinoshima.shimane.jp",
13355  "okuizumo.shimane.jp",
13356  "shimane.shimane.jp",
13357  "tamayu.shimane.jp",
13358  "tsuwano.shimane.jp",
13359  "unnan.shimane.jp",
13360  "yakumo.shimane.jp",
13361  "yasugi.shimane.jp",
13362  "yatsuka.shimane.jp",
13363  "arai.shizuoka.jp",
13364  "atami.shizuoka.jp",
13365  "fuji.shizuoka.jp",
13366  "fujieda.shizuoka.jp",
13367  "fujikawa.shizuoka.jp",
13368  "fujinomiya.shizuoka.jp",
13369  "fukuroi.shizuoka.jp",
13370  "gotemba.shizuoka.jp",
13371  "haibara.shizuoka.jp",
13372  "hamamatsu.shizuoka.jp",
13373  "higashiizu.shizuoka.jp",
13374  "ito.shizuoka.jp",
13375  "iwata.shizuoka.jp",
13376  "izu.shizuoka.jp",
13377  "izunokuni.shizuoka.jp",
13378  "kakegawa.shizuoka.jp",
13379  "kannami.shizuoka.jp",
13380  "kawanehon.shizuoka.jp",
13381  "kawazu.shizuoka.jp",
13382  "kikugawa.shizuoka.jp",
13383  "kosai.shizuoka.jp",
13384  "makinohara.shizuoka.jp",
13385  "matsuzaki.shizuoka.jp",
13386  "minamiizu.shizuoka.jp",
13387  "mishima.shizuoka.jp",
13388  "morimachi.shizuoka.jp",
13389  "nishiizu.shizuoka.jp",
13390  "numazu.shizuoka.jp",
13391  "omaezaki.shizuoka.jp",
13392  "shimada.shizuoka.jp",
13393  "shimizu.shizuoka.jp",
13394  "shimoda.shizuoka.jp",
13395  "shizuoka.shizuoka.jp",
13396  "susono.shizuoka.jp",
13397  "yaizu.shizuoka.jp",
13398  "yoshida.shizuoka.jp",
13399  "ashikaga.tochigi.jp",
13400  "bato.tochigi.jp",
13401  "haga.tochigi.jp",
13402  "ichikai.tochigi.jp",
13403  "iwafune.tochigi.jp",
13404  "kaminokawa.tochigi.jp",
13405  "kanuma.tochigi.jp",
13406  "karasuyama.tochigi.jp",
13407  "kuroiso.tochigi.jp",
13408  "mashiko.tochigi.jp",
13409  "mibu.tochigi.jp",
13410  "moka.tochigi.jp",
13411  "motegi.tochigi.jp",
13412  "nasu.tochigi.jp",
13413  "nasushiobara.tochigi.jp",
13414  "nikko.tochigi.jp",
13415  "nishikata.tochigi.jp",
13416  "nogi.tochigi.jp",
13417  "ohira.tochigi.jp",
13418  "ohtawara.tochigi.jp",
13419  "oyama.tochigi.jp",
13420  "sakura.tochigi.jp",
13421  "sano.tochigi.jp",
13422  "shimotsuke.tochigi.jp",
13423  "shioya.tochigi.jp",
13424  "takanezawa.tochigi.jp",
13425  "tochigi.tochigi.jp",
13426  "tsuga.tochigi.jp",
13427  "ujiie.tochigi.jp",
13428  "utsunomiya.tochigi.jp",
13429  "yaita.tochigi.jp",
13430  "aizumi.tokushima.jp",
13431  "anan.tokushima.jp",
13432  "ichiba.tokushima.jp",
13433  "itano.tokushima.jp",
13434  "kainan.tokushima.jp",
13435  "komatsushima.tokushima.jp",
13436  "matsushige.tokushima.jp",
13437  "mima.tokushima.jp",
13438  "minami.tokushima.jp",
13439  "miyoshi.tokushima.jp",
13440  "mugi.tokushima.jp",
13441  "nakagawa.tokushima.jp",
13442  "naruto.tokushima.jp",
13443  "sanagochi.tokushima.jp",
13444  "shishikui.tokushima.jp",
13445  "tokushima.tokushima.jp",
13446  "wajiki.tokushima.jp",
13447  "adachi.tokyo.jp",
13448  "akiruno.tokyo.jp",
13449  "akishima.tokyo.jp",
13450  "aogashima.tokyo.jp",
13451  "arakawa.tokyo.jp",
13452  "bunkyo.tokyo.jp",
13453  "chiyoda.tokyo.jp",
13454  "chofu.tokyo.jp",
13455  "chuo.tokyo.jp",
13456  "edogawa.tokyo.jp",
13457  "fuchu.tokyo.jp",
13458  "fussa.tokyo.jp",
13459  "hachijo.tokyo.jp",
13460  "hachioji.tokyo.jp",
13461  "hamura.tokyo.jp",
13462  "higashikurume.tokyo.jp",
13463  "higashimurayama.tokyo.jp",
13464  "higashiyamato.tokyo.jp",
13465  "hino.tokyo.jp",
13466  "hinode.tokyo.jp",
13467  "hinohara.tokyo.jp",
13468  "inagi.tokyo.jp",
13469  "itabashi.tokyo.jp",
13470  "katsushika.tokyo.jp",
13471  "kita.tokyo.jp",
13472  "kiyose.tokyo.jp",
13473  "kodaira.tokyo.jp",
13474  "koganei.tokyo.jp",
13475  "kokubunji.tokyo.jp",
13476  "komae.tokyo.jp",
13477  "koto.tokyo.jp",
13478  "kouzushima.tokyo.jp",
13479  "kunitachi.tokyo.jp",
13480  "machida.tokyo.jp",
13481  "meguro.tokyo.jp",
13482  "minato.tokyo.jp",
13483  "mitaka.tokyo.jp",
13484  "mizuho.tokyo.jp",
13485  "musashimurayama.tokyo.jp",
13486  "musashino.tokyo.jp",
13487  "nakano.tokyo.jp",
13488  "nerima.tokyo.jp",
13489  "ogasawara.tokyo.jp",
13490  "okutama.tokyo.jp",
13491  "ome.tokyo.jp",
13492  "oshima.tokyo.jp",
13493  "ota.tokyo.jp",
13494  "setagaya.tokyo.jp",
13495  "shibuya.tokyo.jp",
13496  "shinagawa.tokyo.jp",
13497  "shinjuku.tokyo.jp",
13498  "suginami.tokyo.jp",
13499  "sumida.tokyo.jp",
13500  "tachikawa.tokyo.jp",
13501  "taito.tokyo.jp",
13502  "tama.tokyo.jp",
13503  "toshima.tokyo.jp",
13504  "chizu.tottori.jp",
13505  "hino.tottori.jp",
13506  "kawahara.tottori.jp",
13507  "koge.tottori.jp",
13508  "kotoura.tottori.jp",
13509  "misasa.tottori.jp",
13510  "nanbu.tottori.jp",
13511  "nichinan.tottori.jp",
13512  "sakaiminato.tottori.jp",
13513  "tottori.tottori.jp",
13514  "wakasa.tottori.jp",
13515  "yazu.tottori.jp",
13516  "yonago.tottori.jp",
13517  "asahi.toyama.jp",
13518  "fuchu.toyama.jp",
13519  "fukumitsu.toyama.jp",
13520  "funahashi.toyama.jp",
13521  "himi.toyama.jp",
13522  "imizu.toyama.jp",
13523  "inami.toyama.jp",
13524  "johana.toyama.jp",
13525  "kamiichi.toyama.jp",
13526  "kurobe.toyama.jp",
13527  "nakaniikawa.toyama.jp",
13528  "namerikawa.toyama.jp",
13529  "nanto.toyama.jp",
13530  "nyuzen.toyama.jp",
13531  "oyabe.toyama.jp",
13532  "taira.toyama.jp",
13533  "takaoka.toyama.jp",
13534  "tateyama.toyama.jp",
13535  "toga.toyama.jp",
13536  "tonami.toyama.jp",
13537  "toyama.toyama.jp",
13538  "unazuki.toyama.jp",
13539  "uozu.toyama.jp",
13540  "yamada.toyama.jp",
13541  "arida.wakayama.jp",
13542  "aridagawa.wakayama.jp",
13543  "gobo.wakayama.jp",
13544  "hashimoto.wakayama.jp",
13545  "hidaka.wakayama.jp",
13546  "hirogawa.wakayama.jp",
13547  "inami.wakayama.jp",
13548  "iwade.wakayama.jp",
13549  "kainan.wakayama.jp",
13550  "kamitonda.wakayama.jp",
13551  "katsuragi.wakayama.jp",
13552  "kimino.wakayama.jp",
13553  "kinokawa.wakayama.jp",
13554  "kitayama.wakayama.jp",
13555  "koya.wakayama.jp",
13556  "koza.wakayama.jp",
13557  "kozagawa.wakayama.jp",
13558  "kudoyama.wakayama.jp",
13559  "kushimoto.wakayama.jp",
13560  "mihama.wakayama.jp",
13561  "misato.wakayama.jp",
13562  "nachikatsuura.wakayama.jp",
13563  "shingu.wakayama.jp",
13564  "shirahama.wakayama.jp",
13565  "taiji.wakayama.jp",
13566  "tanabe.wakayama.jp",
13567  "wakayama.wakayama.jp",
13568  "yuasa.wakayama.jp",
13569  "yura.wakayama.jp",
13570  "asahi.yamagata.jp",
13571  "funagata.yamagata.jp",
13572  "higashine.yamagata.jp",
13573  "iide.yamagata.jp",
13574  "kahoku.yamagata.jp",
13575  "kaminoyama.yamagata.jp",
13576  "kaneyama.yamagata.jp",
13577  "kawanishi.yamagata.jp",
13578  "mamurogawa.yamagata.jp",
13579  "mikawa.yamagata.jp",
13580  "murayama.yamagata.jp",
13581  "nagai.yamagata.jp",
13582  "nakayama.yamagata.jp",
13583  "nanyo.yamagata.jp",
13584  "nishikawa.yamagata.jp",
13585  "obanazawa.yamagata.jp",
13586  "oe.yamagata.jp",
13587  "oguni.yamagata.jp",
13588  "ohkura.yamagata.jp",
13589  "oishida.yamagata.jp",
13590  "sagae.yamagata.jp",
13591  "sakata.yamagata.jp",
13592  "sakegawa.yamagata.jp",
13593  "shinjo.yamagata.jp",
13594  "shirataka.yamagata.jp",
13595  "shonai.yamagata.jp",
13596  "takahata.yamagata.jp",
13597  "tendo.yamagata.jp",
13598  "tozawa.yamagata.jp",
13599  "tsuruoka.yamagata.jp",
13600  "yamagata.yamagata.jp",
13601  "yamanobe.yamagata.jp",
13602  "yonezawa.yamagata.jp",
13603  "yuza.yamagata.jp",
13604  "abu.yamaguchi.jp",
13605  "hagi.yamaguchi.jp",
13606  "hikari.yamaguchi.jp",
13607  "hofu.yamaguchi.jp",
13608  "iwakuni.yamaguchi.jp",
13609  "kudamatsu.yamaguchi.jp",
13610  "mitou.yamaguchi.jp",
13611  "nagato.yamaguchi.jp",
13612  "oshima.yamaguchi.jp",
13613  "shimonoseki.yamaguchi.jp",
13614  "shunan.yamaguchi.jp",
13615  "tabuse.yamaguchi.jp",
13616  "tokuyama.yamaguchi.jp",
13617  "toyota.yamaguchi.jp",
13618  "ube.yamaguchi.jp",
13619  "yuu.yamaguchi.jp",
13620  "chuo.yamanashi.jp",
13621  "doshi.yamanashi.jp",
13622  "fuefuki.yamanashi.jp",
13623  "fujikawa.yamanashi.jp",
13624  "fujikawaguchiko.yamanashi.jp",
13625  "fujiyoshida.yamanashi.jp",
13626  "hayakawa.yamanashi.jp",
13627  "hokuto.yamanashi.jp",
13628  "ichikawamisato.yamanashi.jp",
13629  "kai.yamanashi.jp",
13630  "kofu.yamanashi.jp",
13631  "koshu.yamanashi.jp",
13632  "kosuge.yamanashi.jp",
13633  "minami-alps.yamanashi.jp",
13634  "minobu.yamanashi.jp",
13635  "nakamichi.yamanashi.jp",
13636  "nanbu.yamanashi.jp",
13637  "narusawa.yamanashi.jp",
13638  "nirasaki.yamanashi.jp",
13639  "nishikatsura.yamanashi.jp",
13640  "oshino.yamanashi.jp",
13641  "otsuki.yamanashi.jp",
13642  "showa.yamanashi.jp",
13643  "tabayama.yamanashi.jp",
13644  "tsuru.yamanashi.jp",
13645  "uenohara.yamanashi.jp",
13646  "yamanakako.yamanashi.jp",
13647  "yamanashi.yamanashi.jp",
13648  "ke",
13649  "ac.ke",
13650  "co.ke",
13651  "go.ke",
13652  "info.ke",
13653  "me.ke",
13654  "mobi.ke",
13655  "ne.ke",
13656  "or.ke",
13657  "sc.ke",
13658  "kg",
13659  "com.kg",
13660  "edu.kg",
13661  "gov.kg",
13662  "mil.kg",
13663  "net.kg",
13664  "org.kg",
13665  "*.kh",
13666  "ki",
13667  "biz.ki",
13668  "com.ki",
13669  "edu.ki",
13670  "gov.ki",
13671  "info.ki",
13672  "net.ki",
13673  "org.ki",
13674  "km",
13675  "ass.km",
13676  "com.km",
13677  "edu.km",
13678  "gov.km",
13679  "mil.km",
13680  "nom.km",
13681  "org.km",
13682  "prd.km",
13683  "tm.km",
13684  "asso.km",
13685  "coop.km",
13686  "gouv.km",
13687  "medecin.km",
13688  "notaires.km",
13689  "pharmaciens.km",
13690  "presse.km",
13691  "veterinaire.km",
13692  "kn",
13693  "edu.kn",
13694  "gov.kn",
13695  "net.kn",
13696  "org.kn",
13697  "kp",
13698  "com.kp",
13699  "edu.kp",
13700  "gov.kp",
13701  "org.kp",
13702  "rep.kp",
13703  "tra.kp",
13704  "kr",
13705  "ac.kr",
13706  "co.kr",
13707  "es.kr",
13708  "go.kr",
13709  "hs.kr",
13710  "kg.kr",
13711  "mil.kr",
13712  "ms.kr",
13713  "ne.kr",
13714  "or.kr",
13715  "pe.kr",
13716  "re.kr",
13717  "sc.kr",
13718  "busan.kr",
13719  "chungbuk.kr",
13720  "chungnam.kr",
13721  "daegu.kr",
13722  "daejeon.kr",
13723  "gangwon.kr",
13724  "gwangju.kr",
13725  "gyeongbuk.kr",
13726  "gyeonggi.kr",
13727  "gyeongnam.kr",
13728  "incheon.kr",
13729  "jeju.kr",
13730  "jeonbuk.kr",
13731  "jeonnam.kr",
13732  "seoul.kr",
13733  "ulsan.kr",
13734  "kw",
13735  "com.kw",
13736  "edu.kw",
13737  "emb.kw",
13738  "gov.kw",
13739  "ind.kw",
13740  "net.kw",
13741  "org.kw",
13742  "ky",
13743  "com.ky",
13744  "edu.ky",
13745  "net.ky",
13746  "org.ky",
13747  "kz",
13748  "com.kz",
13749  "edu.kz",
13750  "gov.kz",
13751  "mil.kz",
13752  "net.kz",
13753  "org.kz",
13754  "la",
13755  "com.la",
13756  "edu.la",
13757  "gov.la",
13758  "info.la",
13759  "int.la",
13760  "net.la",
13761  "org.la",
13762  "per.la",
13763  "lb",
13764  "com.lb",
13765  "edu.lb",
13766  "gov.lb",
13767  "net.lb",
13768  "org.lb",
13769  "lc",
13770  "co.lc",
13771  "com.lc",
13772  "edu.lc",
13773  "gov.lc",
13774  "net.lc",
13775  "org.lc",
13776  "li",
13777  "lk",
13778  "ac.lk",
13779  "assn.lk",
13780  "com.lk",
13781  "edu.lk",
13782  "gov.lk",
13783  "grp.lk",
13784  "hotel.lk",
13785  "int.lk",
13786  "ltd.lk",
13787  "net.lk",
13788  "ngo.lk",
13789  "org.lk",
13790  "sch.lk",
13791  "soc.lk",
13792  "web.lk",
13793  "lr",
13794  "com.lr",
13795  "edu.lr",
13796  "gov.lr",
13797  "net.lr",
13798  "org.lr",
13799  "ls",
13800  "ac.ls",
13801  "biz.ls",
13802  "co.ls",
13803  "edu.ls",
13804  "gov.ls",
13805  "info.ls",
13806  "net.ls",
13807  "org.ls",
13808  "sc.ls",
13809  "lt",
13810  "gov.lt",
13811  "lu",
13812  "lv",
13813  "asn.lv",
13814  "com.lv",
13815  "conf.lv",
13816  "edu.lv",
13817  "gov.lv",
13818  "id.lv",
13819  "mil.lv",
13820  "net.lv",
13821  "org.lv",
13822  "ly",
13823  "com.ly",
13824  "edu.ly",
13825  "gov.ly",
13826  "id.ly",
13827  "med.ly",
13828  "net.ly",
13829  "org.ly",
13830  "plc.ly",
13831  "sch.ly",
13832  "ma",
13833  "ac.ma",
13834  "co.ma",
13835  "gov.ma",
13836  "net.ma",
13837  "org.ma",
13838  "press.ma",
13839  "mc",
13840  "asso.mc",
13841  "tm.mc",
13842  "md",
13843  "me",
13844  "ac.me",
13845  "co.me",
13846  "edu.me",
13847  "gov.me",
13848  "its.me",
13849  "net.me",
13850  "org.me",
13851  "priv.me",
13852  "mg",
13853  "co.mg",
13854  "com.mg",
13855  "edu.mg",
13856  "gov.mg",
13857  "mil.mg",
13858  "nom.mg",
13859  "org.mg",
13860  "prd.mg",
13861  "mh",
13862  "mil",
13863  "mk",
13864  "com.mk",
13865  "edu.mk",
13866  "gov.mk",
13867  "inf.mk",
13868  "name.mk",
13869  "net.mk",
13870  "org.mk",
13871  "ml",
13872  "com.ml",
13873  "edu.ml",
13874  "gouv.ml",
13875  "gov.ml",
13876  "net.ml",
13877  "org.ml",
13878  "presse.ml",
13879  "*.mm",
13880  "mn",
13881  "edu.mn",
13882  "gov.mn",
13883  "org.mn",
13884  "mo",
13885  "com.mo",
13886  "edu.mo",
13887  "gov.mo",
13888  "net.mo",
13889  "org.mo",
13890  "mobi",
13891  "mp",
13892  "mq",
13893  "mr",
13894  "gov.mr",
13895  "ms",
13896  "com.ms",
13897  "edu.ms",
13898  "gov.ms",
13899  "net.ms",
13900  "org.ms",
13901  "mt",
13902  "com.mt",
13903  "edu.mt",
13904  "net.mt",
13905  "org.mt",
13906  "mu",
13907  "ac.mu",
13908  "co.mu",
13909  "com.mu",
13910  "gov.mu",
13911  "net.mu",
13912  "or.mu",
13913  "org.mu",
13914  "museum",
13915  "mv",
13916  "aero.mv",
13917  "biz.mv",
13918  "com.mv",
13919  "coop.mv",
13920  "edu.mv",
13921  "gov.mv",
13922  "info.mv",
13923  "int.mv",
13924  "mil.mv",
13925  "museum.mv",
13926  "name.mv",
13927  "net.mv",
13928  "org.mv",
13929  "pro.mv",
13930  "mw",
13931  "ac.mw",
13932  "biz.mw",
13933  "co.mw",
13934  "com.mw",
13935  "coop.mw",
13936  "edu.mw",
13937  "gov.mw",
13938  "int.mw",
13939  "net.mw",
13940  "org.mw",
13941  "mx",
13942  "com.mx",
13943  "edu.mx",
13944  "gob.mx",
13945  "net.mx",
13946  "org.mx",
13947  "my",
13948  "biz.my",
13949  "com.my",
13950  "edu.my",
13951  "gov.my",
13952  "mil.my",
13953  "name.my",
13954  "net.my",
13955  "org.my",
13956  "mz",
13957  "ac.mz",
13958  "adv.mz",
13959  "co.mz",
13960  "edu.mz",
13961  "gov.mz",
13962  "mil.mz",
13963  "net.mz",
13964  "org.mz",
13965  "na",
13966  "alt.na",
13967  "co.na",
13968  "com.na",
13969  "gov.na",
13970  "net.na",
13971  "org.na",
13972  "name",
13973  "nc",
13974  "asso.nc",
13975  "nom.nc",
13976  "ne",
13977  "net",
13978  "nf",
13979  "arts.nf",
13980  "com.nf",
13981  "firm.nf",
13982  "info.nf",
13983  "net.nf",
13984  "other.nf",
13985  "per.nf",
13986  "rec.nf",
13987  "store.nf",
13988  "web.nf",
13989  "ng",
13990  "com.ng",
13991  "edu.ng",
13992  "gov.ng",
13993  "i.ng",
13994  "mil.ng",
13995  "mobi.ng",
13996  "name.ng",
13997  "net.ng",
13998  "org.ng",
13999  "sch.ng",
14000  "ni",
14001  "ac.ni",
14002  "biz.ni",
14003  "co.ni",
14004  "com.ni",
14005  "edu.ni",
14006  "gob.ni",
14007  "in.ni",
14008  "info.ni",
14009  "int.ni",
14010  "mil.ni",
14011  "net.ni",
14012  "nom.ni",
14013  "org.ni",
14014  "web.ni",
14015  "nl",
14016  "no",
14017  "fhs.no",
14018  "folkebibl.no",
14019  "fylkesbibl.no",
14020  "idrett.no",
14021  "museum.no",
14022  "priv.no",
14023  "vgs.no",
14024  "dep.no",
14025  "herad.no",
14026  "kommune.no",
14027  "mil.no",
14028  "stat.no",
14029  "aa.no",
14030  "ah.no",
14031  "bu.no",
14032  "fm.no",
14033  "hl.no",
14034  "hm.no",
14035  "jan-mayen.no",
14036  "mr.no",
14037  "nl.no",
14038  "nt.no",
14039  "of.no",
14040  "ol.no",
14041  "oslo.no",
14042  "rl.no",
14043  "sf.no",
14044  "st.no",
14045  "svalbard.no",
14046  "tm.no",
14047  "tr.no",
14048  "va.no",
14049  "vf.no",
14050  "gs.aa.no",
14051  "gs.ah.no",
14052  "gs.bu.no",
14053  "gs.fm.no",
14054  "gs.hl.no",
14055  "gs.hm.no",
14056  "gs.jan-mayen.no",
14057  "gs.mr.no",
14058  "gs.nl.no",
14059  "gs.nt.no",
14060  "gs.of.no",
14061  "gs.ol.no",
14062  "gs.oslo.no",
14063  "gs.rl.no",
14064  "gs.sf.no",
14065  "gs.st.no",
14066  "gs.svalbard.no",
14067  "gs.tm.no",
14068  "gs.tr.no",
14069  "gs.va.no",
14070  "gs.vf.no",
14071  "akrehamn.no",
14072  "Ã¥krehamn.no",
14073  "algard.no",
14074  "ålgård.no",
14075  "arna.no",
14076  "bronnoysund.no",
14077  "brønnøysund.no",
14078  "brumunddal.no",
14079  "bryne.no",
14080  "drobak.no",
14081  "drøbak.no",
14082  "egersund.no",
14083  "fetsund.no",
14084  "floro.no",
14085  "florø.no",
14086  "fredrikstad.no",
14087  "hokksund.no",
14088  "honefoss.no",
14089  "hønefoss.no",
14090  "jessheim.no",
14091  "jorpeland.no",
14092  "jørpeland.no",
14093  "kirkenes.no",
14094  "kopervik.no",
14095  "krokstadelva.no",
14096  "langevag.no",
14097  "langevåg.no",
14098  "leirvik.no",
14099  "mjondalen.no",
14100  "mjøndalen.no",
14101  "mo-i-rana.no",
14102  "mosjoen.no",
14103  "mosjøen.no",
14104  "nesoddtangen.no",
14105  "orkanger.no",
14106  "osoyro.no",
14107  "osøyro.no",
14108  "raholt.no",
14109  "råholt.no",
14110  "sandnessjoen.no",
14111  "sandnessjøen.no",
14112  "skedsmokorset.no",
14113  "slattum.no",
14114  "spjelkavik.no",
14115  "stathelle.no",
14116  "stavern.no",
14117  "stjordalshalsen.no",
14118  "stjørdalshalsen.no",
14119  "tananger.no",
14120  "tranby.no",
14121  "vossevangen.no",
14122  "aarborte.no",
14123  "aejrie.no",
14124  "afjord.no",
14125  "Ã¥fjord.no",
14126  "agdenes.no",
14127  "nes.akershus.no",
14128  "aknoluokta.no",
14129  "ákŋoluokta.no",
14130  "al.no",
14131  "Ã¥l.no",
14132  "alaheadju.no",
14133  "álaheadju.no",
14134  "alesund.no",
14135  "Ã¥lesund.no",
14136  "alstahaug.no",
14137  "alta.no",
14138  "áltá.no",
14139  "alvdal.no",
14140  "amli.no",
14141  "Ã¥mli.no",
14142  "amot.no",
14143  "Ã¥mot.no",
14144  "andasuolo.no",
14145  "andebu.no",
14146  "andoy.no",
14147  "andøy.no",
14148  "ardal.no",
14149  "Ã¥rdal.no",
14150  "aremark.no",
14151  "arendal.no",
14152  "Ã¥s.no",
14153  "aseral.no",
14154  "Ã¥seral.no",
14155  "asker.no",
14156  "askim.no",
14157  "askoy.no",
14158  "askøy.no",
14159  "askvoll.no",
14160  "asnes.no",
14161  "Ã¥snes.no",
14162  "audnedaln.no",
14163  "aukra.no",
14164  "aure.no",
14165  "aurland.no",
14166  "aurskog-holand.no",
14167  "aurskog-høland.no",
14168  "austevoll.no",
14169  "austrheim.no",
14170  "averoy.no",
14171  "averøy.no",
14172  "badaddja.no",
14173  "bådåddjå.no",
14174  "bærum.no",
14175  "bahcavuotna.no",
14176  "báhcavuotna.no",
14177  "bahccavuotna.no",
14178  "báhccavuotna.no",
14179  "baidar.no",
14180  "báidár.no",
14181  "bajddar.no",
14182  "bájddar.no",
14183  "balat.no",
14184  "bálát.no",
14185  "balestrand.no",
14186  "ballangen.no",
14187  "balsfjord.no",
14188  "bamble.no",
14189  "bardu.no",
14190  "barum.no",
14191  "batsfjord.no",
14192  "båtsfjord.no",
14193  "bearalvahki.no",
14194  "bearalváhki.no",
14195  "beardu.no",
14196  "beiarn.no",
14197  "berg.no",
14198  "bergen.no",
14199  "berlevag.no",
14200  "berlevåg.no",
14201  "bievat.no",
14202  "bievát.no",
14203  "bindal.no",
14204  "birkenes.no",
14205  "bjarkoy.no",
14206  "bjarkøy.no",
14207  "bjerkreim.no",
14208  "bjugn.no",
14209  "bodo.no",
14210  "bodø.no",
14211  "bokn.no",
14212  "bomlo.no",
14213  "bømlo.no",
14214  "bremanger.no",
14215  "bronnoy.no",
14216  "brønnøy.no",
14217  "budejju.no",
14218  "nes.buskerud.no",
14219  "bygland.no",
14220  "bykle.no",
14221  "cahcesuolo.no",
14222  "čáhcesuolo.no",
14223  "davvenjarga.no",
14224  "davvenjárga.no",
14225  "davvesiida.no",
14226  "deatnu.no",
14227  "dielddanuorri.no",
14228  "divtasvuodna.no",
14229  "divttasvuotna.no",
14230  "donna.no",
14231  "dønna.no",
14232  "dovre.no",
14233  "drammen.no",
14234  "drangedal.no",
14235  "dyroy.no",
14236  "dyrøy.no",
14237  "eid.no",
14238  "eidfjord.no",
14239  "eidsberg.no",
14240  "eidskog.no",
14241  "eidsvoll.no",
14242  "eigersund.no",
14243  "elverum.no",
14244  "enebakk.no",
14245  "engerdal.no",
14246  "etne.no",
14247  "etnedal.no",
14248  "evenassi.no",
14249  "evenášši.no",
14250  "evenes.no",
14251  "evje-og-hornnes.no",
14252  "farsund.no",
14253  "fauske.no",
14254  "fedje.no",
14255  "fet.no",
14256  "finnoy.no",
14257  "finnøy.no",
14258  "fitjar.no",
14259  "fjaler.no",
14260  "fjell.no",
14261  "fla.no",
14262  "flå.no",
14263  "flakstad.no",
14264  "flatanger.no",
14265  "flekkefjord.no",
14266  "flesberg.no",
14267  "flora.no",
14268  "folldal.no",
14269  "forde.no",
14270  "førde.no",
14271  "forsand.no",
14272  "fosnes.no",
14273  "fræna.no",
14274  "frana.no",
14275  "frei.no",
14276  "frogn.no",
14277  "froland.no",
14278  "frosta.no",
14279  "froya.no",
14280  "frøya.no",
14281  "fuoisku.no",
14282  "fuossko.no",
14283  "fusa.no",
14284  "fyresdal.no",
14285  "gaivuotna.no",
14286  "gáivuotna.no",
14287  "galsa.no",
14288  "gálsá.no",
14289  "gamvik.no",
14290  "gangaviika.no",
14291  "gáŋgaviika.no",
14292  "gaular.no",
14293  "gausdal.no",
14294  "giehtavuoatna.no",
14295  "gildeskal.no",
14296  "gildeskål.no",
14297  "giske.no",
14298  "gjemnes.no",
14299  "gjerdrum.no",
14300  "gjerstad.no",
14301  "gjesdal.no",
14302  "gjovik.no",
14303  "gjøvik.no",
14304  "gloppen.no",
14305  "gol.no",
14306  "gran.no",
14307  "grane.no",
14308  "granvin.no",
14309  "gratangen.no",
14310  "grimstad.no",
14311  "grong.no",
14312  "grue.no",
14313  "gulen.no",
14314  "guovdageaidnu.no",
14315  "ha.no",
14316  "hå.no",
14317  "habmer.no",
14318  "hábmer.no",
14319  "hadsel.no",
14320  "hægebostad.no",
14321  "hagebostad.no",
14322  "halden.no",
14323  "halsa.no",
14324  "hamar.no",
14325  "hamaroy.no",
14326  "hammarfeasta.no",
14327  "hámmárfeasta.no",
14328  "hammerfest.no",
14329  "hapmir.no",
14330  "hápmir.no",
14331  "haram.no",
14332  "hareid.no",
14333  "harstad.no",
14334  "hasvik.no",
14335  "hattfjelldal.no",
14336  "haugesund.no",
14337  "os.hedmark.no",
14338  "valer.hedmark.no",
14339  "våler.hedmark.no",
14340  "hemne.no",
14341  "hemnes.no",
14342  "hemsedal.no",
14343  "hitra.no",
14344  "hjartdal.no",
14345  "hjelmeland.no",
14346  "hobol.no",
14347  "hobøl.no",
14348  "hof.no",
14349  "hol.no",
14350  "hole.no",
14351  "holmestrand.no",
14352  "holtalen.no",
14353  "holtålen.no",
14354  "os.hordaland.no",
14355  "hornindal.no",
14356  "horten.no",
14357  "hoyanger.no",
14358  "høyanger.no",
14359  "hoylandet.no",
14360  "høylandet.no",
14361  "hurdal.no",
14362  "hurum.no",
14363  "hvaler.no",
14364  "hyllestad.no",
14365  "ibestad.no",
14366  "inderoy.no",
14367  "inderøy.no",
14368  "iveland.no",
14369  "ivgu.no",
14370  "jevnaker.no",
14371  "jolster.no",
14372  "jølster.no",
14373  "jondal.no",
14374  "kafjord.no",
14375  "kåfjord.no",
14376  "karasjohka.no",
14377  "kárášjohka.no",
14378  "karasjok.no",
14379  "karlsoy.no",
14380  "karmoy.no",
14381  "karmøy.no",
14382  "kautokeino.no",
14383  "klabu.no",
14384  "klæbu.no",
14385  "klepp.no",
14386  "kongsberg.no",
14387  "kongsvinger.no",
14388  "kraanghke.no",
14389  "kråanghke.no",
14390  "kragero.no",
14391  "kragerø.no",
14392  "kristiansand.no",
14393  "kristiansund.no",
14394  "krodsherad.no",
14395  "krødsherad.no",
14396  "kvæfjord.no",
14397  "kvænangen.no",
14398  "kvafjord.no",
14399  "kvalsund.no",
14400  "kvam.no",
14401  "kvanangen.no",
14402  "kvinesdal.no",
14403  "kvinnherad.no",
14404  "kviteseid.no",
14405  "kvitsoy.no",
14406  "kvitsøy.no",
14407  "laakesvuemie.no",
14408  "lærdal.no",
14409  "lahppi.no",
14410  "láhppi.no",
14411  "lardal.no",
14412  "larvik.no",
14413  "lavagis.no",
14414  "lavangen.no",
14415  "leangaviika.no",
14416  "leaŋgaviika.no",
14417  "lebesby.no",
14418  "leikanger.no",
14419  "leirfjord.no",
14420  "leka.no",
14421  "leksvik.no",
14422  "lenvik.no",
14423  "lerdal.no",
14424  "lesja.no",
14425  "levanger.no",
14426  "lier.no",
14427  "lierne.no",
14428  "lillehammer.no",
14429  "lillesand.no",
14430  "lindas.no",
14431  "lindås.no",
14432  "lindesnes.no",
14433  "loabat.no",
14434  "loabát.no",
14435  "lodingen.no",
14436  "lødingen.no",
14437  "lom.no",
14438  "loppa.no",
14439  "lorenskog.no",
14440  "lørenskog.no",
14441  "loten.no",
14442  "løten.no",
14443  "lund.no",
14444  "lunner.no",
14445  "luroy.no",
14446  "lurøy.no",
14447  "luster.no",
14448  "lyngdal.no",
14449  "lyngen.no",
14450  "malatvuopmi.no",
14451  "málatvuopmi.no",
14452  "malselv.no",
14453  "målselv.no",
14454  "malvik.no",
14455  "mandal.no",
14456  "marker.no",
14457  "marnardal.no",
14458  "masfjorden.no",
14459  "masoy.no",
14460  "måsøy.no",
14461  "matta-varjjat.no",
14462  "mátta-várjjat.no",
14463  "meland.no",
14464  "meldal.no",
14465  "melhus.no",
14466  "meloy.no",
14467  "meløy.no",
14468  "meraker.no",
14469  "meråker.no",
14470  "midsund.no",
14471  "midtre-gauldal.no",
14472  "moareke.no",
14473  "moåreke.no",
14474  "modalen.no",
14475  "modum.no",
14476  "molde.no",
14477  "heroy.more-og-romsdal.no",
14478  "sande.more-og-romsdal.no",
14479  "herøy.møre-og-romsdal.no",
14480  "sande.møre-og-romsdal.no",
14481  "moskenes.no",
14482  "moss.no",
14483  "mosvik.no",
14484  "muosat.no",
14485  "muosát.no",
14486  "naamesjevuemie.no",
14487  "nååmesjevuemie.no",
14488  "nærøy.no",
14489  "namdalseid.no",
14490  "namsos.no",
14491  "namsskogan.no",
14492  "nannestad.no",
14493  "naroy.no",
14494  "narviika.no",
14495  "narvik.no",
14496  "naustdal.no",
14497  "navuotna.no",
14498  "návuotna.no",
14499  "nedre-eiker.no",
14500  "nesna.no",
14501  "nesodden.no",
14502  "nesseby.no",
14503  "nesset.no",
14504  "nissedal.no",
14505  "nittedal.no",
14506  "nord-aurdal.no",
14507  "nord-fron.no",
14508  "nord-odal.no",
14509  "norddal.no",
14510  "nordkapp.no",
14511  "bo.nordland.no",
14512  "bø.nordland.no",
14513  "heroy.nordland.no",
14514  "herøy.nordland.no",
14515  "nordre-land.no",
14516  "nordreisa.no",
14517  "nore-og-uvdal.no",
14518  "notodden.no",
14519  "notteroy.no",
14520  "nøtterøy.no",
14521  "odda.no",
14522  "oksnes.no",
14523  "øksnes.no",
14524  "omasvuotna.no",
14525  "oppdal.no",
14526  "oppegard.no",
14527  "oppegård.no",
14528  "orkdal.no",
14529  "orland.no",
14530  "ørland.no",
14531  "orskog.no",
14532  "ørskog.no",
14533  "orsta.no",
14534  "ørsta.no",
14535  "osen.no",
14536  "osteroy.no",
14537  "osterøy.no",
14538  "valer.ostfold.no",
14539  "våler.østfold.no",
14540  "ostre-toten.no",
14541  "østre-toten.no",
14542  "overhalla.no",
14543  "ovre-eiker.no",
14544  "øvre-eiker.no",
14545  "oyer.no",
14546  "øyer.no",
14547  "oygarden.no",
14548  "øygarden.no",
14549  "oystre-slidre.no",
14550  "øystre-slidre.no",
14551  "porsanger.no",
14552  "porsangu.no",
14553  "porsáŋgu.no",
14554  "porsgrunn.no",
14555  "rade.no",
14556  "råde.no",
14557  "radoy.no",
14558  "radøy.no",
14559  "rælingen.no",
14560  "rahkkeravju.no",
14561  "ráhkkerávju.no",
14562  "raisa.no",
14563  "ráisa.no",
14564  "rakkestad.no",
14565  "ralingen.no",
14566  "rana.no",
14567  "randaberg.no",
14568  "rauma.no",
14569  "rendalen.no",
14570  "rennebu.no",
14571  "rennesoy.no",
14572  "rennesøy.no",
14573  "rindal.no",
14574  "ringebu.no",
14575  "ringerike.no",
14576  "ringsaker.no",
14577  "risor.no",
14578  "risør.no",
14579  "rissa.no",
14580  "roan.no",
14581  "rodoy.no",
14582  "rødøy.no",
14583  "rollag.no",
14584  "romsa.no",
14585  "romskog.no",
14586  "rømskog.no",
14587  "roros.no",
14588  "røros.no",
14589  "rost.no",
14590  "røst.no",
14591  "royken.no",
14592  "røyken.no",
14593  "royrvik.no",
14594  "røyrvik.no",
14595  "ruovat.no",
14596  "rygge.no",
14597  "salangen.no",
14598  "salat.no",
14599  "sálat.no",
14600  "sálát.no",
14601  "saltdal.no",
14602  "samnanger.no",
14603  "sandefjord.no",
14604  "sandnes.no",
14605  "sandoy.no",
14606  "sandøy.no",
14607  "sarpsborg.no",
14608  "sauda.no",
14609  "sauherad.no",
14610  "sel.no",
14611  "selbu.no",
14612  "selje.no",
14613  "seljord.no",
14614  "siellak.no",
14615  "sigdal.no",
14616  "siljan.no",
14617  "sirdal.no",
14618  "skanit.no",
14619  "skánit.no",
14620  "skanland.no",
14621  "skånland.no",
14622  "skaun.no",
14623  "skedsmo.no",
14624  "ski.no",
14625  "skien.no",
14626  "skierva.no",
14627  "skiervá.no",
14628  "skiptvet.no",
14629  "skjak.no",
14630  "skjåk.no",
14631  "skjervoy.no",
14632  "skjervøy.no",
14633  "skodje.no",
14634  "smola.no",
14635  "smøla.no",
14636  "snaase.no",
14637  "snåase.no",
14638  "snasa.no",
14639  "snåsa.no",
14640  "snillfjord.no",
14641  "snoasa.no",
14642  "sogndal.no",
14643  "sogne.no",
14644  "søgne.no",
14645  "sokndal.no",
14646  "sola.no",
14647  "solund.no",
14648  "somna.no",
14649  "sømna.no",
14650  "sondre-land.no",
14651  "søndre-land.no",
14652  "songdalen.no",
14653  "sor-aurdal.no",
14654  "sør-aurdal.no",
14655  "sor-fron.no",
14656  "sør-fron.no",
14657  "sor-odal.no",
14658  "sør-odal.no",
14659  "sor-varanger.no",
14660  "sør-varanger.no",
14661  "sorfold.no",
14662  "sørfold.no",
14663  "sorreisa.no",
14664  "sørreisa.no",
14665  "sortland.no",
14666  "sorum.no",
14667  "sørum.no",
14668  "spydeberg.no",
14669  "stange.no",
14670  "stavanger.no",
14671  "steigen.no",
14672  "steinkjer.no",
14673  "stjordal.no",
14674  "stjørdal.no",
14675  "stokke.no",
14676  "stor-elvdal.no",
14677  "stord.no",
14678  "stordal.no",
14679  "storfjord.no",
14680  "strand.no",
14681  "stranda.no",
14682  "stryn.no",
14683  "sula.no",
14684  "suldal.no",
14685  "sund.no",
14686  "sunndal.no",
14687  "surnadal.no",
14688  "sveio.no",
14689  "svelvik.no",
14690  "sykkylven.no",
14691  "tana.no",
14692  "bo.telemark.no",
14693  "bø.telemark.no",
14694  "time.no",
14695  "tingvoll.no",
14696  "tinn.no",
14697  "tjeldsund.no",
14698  "tjome.no",
14699  "tjøme.no",
14700  "tokke.no",
14701  "tolga.no",
14702  "tonsberg.no",
14703  "tønsberg.no",
14704  "torsken.no",
14705  "træna.no",
14706  "trana.no",
14707  "tranoy.no",
14708  "tranøy.no",
14709  "troandin.no",
14710  "trogstad.no",
14711  "trøgstad.no",
14712  "tromsa.no",
14713  "tromso.no",
14714  "tromsø.no",
14715  "trondheim.no",
14716  "trysil.no",
14717  "tvedestrand.no",
14718  "tydal.no",
14719  "tynset.no",
14720  "tysfjord.no",
14721  "tysnes.no",
14722  "tysvær.no",
14723  "tysvar.no",
14724  "ullensaker.no",
14725  "ullensvang.no",
14726  "ulvik.no",
14727  "unjarga.no",
14728  "unjárga.no",
14729  "utsira.no",
14730  "vaapste.no",
14731  "vadso.no",
14732  "vadsø.no",
14733  "værøy.no",
14734  "vaga.no",
14735  "vågå.no",
14736  "vagan.no",
14737  "vågan.no",
14738  "vagsoy.no",
14739  "vågsøy.no",
14740  "vaksdal.no",
14741  "valle.no",
14742  "vang.no",
14743  "vanylven.no",
14744  "vardo.no",
14745  "vardø.no",
14746  "varggat.no",
14747  "várggát.no",
14748  "varoy.no",
14749  "vefsn.no",
14750  "vega.no",
14751  "vegarshei.no",
14752  "vegårshei.no",
14753  "vennesla.no",
14754  "verdal.no",
14755  "verran.no",
14756  "vestby.no",
14757  "sande.vestfold.no",
14758  "vestnes.no",
14759  "vestre-slidre.no",
14760  "vestre-toten.no",
14761  "vestvagoy.no",
14762  "vestvågøy.no",
14763  "vevelstad.no",
14764  "vik.no",
14765  "vikna.no",
14766  "vindafjord.no",
14767  "voagat.no",
14768  "volda.no",
14769  "voss.no",
14770  "*.np",
14771  "nr",
14772  "biz.nr",
14773  "com.nr",
14774  "edu.nr",
14775  "gov.nr",
14776  "info.nr",
14777  "net.nr",
14778  "org.nr",
14779  "nu",
14780  "nz",
14781  "ac.nz",
14782  "co.nz",
14783  "cri.nz",
14784  "geek.nz",
14785  "gen.nz",
14786  "govt.nz",
14787  "health.nz",
14788  "iwi.nz",
14789  "kiwi.nz",
14790  "maori.nz",
14791  "māori.nz",
14792  "mil.nz",
14793  "net.nz",
14794  "org.nz",
14795  "parliament.nz",
14796  "school.nz",
14797  "om",
14798  "co.om",
14799  "com.om",
14800  "edu.om",
14801  "gov.om",
14802  "med.om",
14803  "museum.om",
14804  "net.om",
14805  "org.om",
14806  "pro.om",
14807  "onion",
14808  "org",
14809  "pa",
14810  "abo.pa",
14811  "ac.pa",
14812  "com.pa",
14813  "edu.pa",
14814  "gob.pa",
14815  "ing.pa",
14816  "med.pa",
14817  "net.pa",
14818  "nom.pa",
14819  "org.pa",
14820  "sld.pa",
14821  "pe",
14822  "com.pe",
14823  "edu.pe",
14824  "gob.pe",
14825  "mil.pe",
14826  "net.pe",
14827  "nom.pe",
14828  "org.pe",
14829  "pf",
14830  "com.pf",
14831  "edu.pf",
14832  "org.pf",
14833  "*.pg",
14834  "ph",
14835  "com.ph",
14836  "edu.ph",
14837  "gov.ph",
14838  "i.ph",
14839  "mil.ph",
14840  "net.ph",
14841  "ngo.ph",
14842  "org.ph",
14843  "pk",
14844  "ac.pk",
14845  "biz.pk",
14846  "com.pk",
14847  "edu.pk",
14848  "fam.pk",
14849  "gkp.pk",
14850  "gob.pk",
14851  "gog.pk",
14852  "gok.pk",
14853  "gon.pk",
14854  "gop.pk",
14855  "gos.pk",
14856  "gov.pk",
14857  "net.pk",
14858  "org.pk",
14859  "web.pk",
14860  "pl",
14861  "com.pl",
14862  "net.pl",
14863  "org.pl",
14864  "agro.pl",
14865  "aid.pl",
14866  "atm.pl",
14867  "auto.pl",
14868  "biz.pl",
14869  "edu.pl",
14870  "gmina.pl",
14871  "gsm.pl",
14872  "info.pl",
14873  "mail.pl",
14874  "media.pl",
14875  "miasta.pl",
14876  "mil.pl",
14877  "nieruchomosci.pl",
14878  "nom.pl",
14879  "pc.pl",
14880  "powiat.pl",
14881  "priv.pl",
14882  "realestate.pl",
14883  "rel.pl",
14884  "sex.pl",
14885  "shop.pl",
14886  "sklep.pl",
14887  "sos.pl",
14888  "szkola.pl",
14889  "targi.pl",
14890  "tm.pl",
14891  "tourism.pl",
14892  "travel.pl",
14893  "turystyka.pl",
14894  "gov.pl",
14895  "ap.gov.pl",
14896  "griw.gov.pl",
14897  "ic.gov.pl",
14898  "is.gov.pl",
14899  "kmpsp.gov.pl",
14900  "konsulat.gov.pl",
14901  "kppsp.gov.pl",
14902  "kwp.gov.pl",
14903  "kwpsp.gov.pl",
14904  "mup.gov.pl",
14905  "mw.gov.pl",
14906  "oia.gov.pl",
14907  "oirm.gov.pl",
14908  "oke.gov.pl",
14909  "oow.gov.pl",
14910  "oschr.gov.pl",
14911  "oum.gov.pl",
14912  "pa.gov.pl",
14913  "pinb.gov.pl",
14914  "piw.gov.pl",
14915  "po.gov.pl",
14916  "pr.gov.pl",
14917  "psp.gov.pl",
14918  "psse.gov.pl",
14919  "pup.gov.pl",
14920  "rzgw.gov.pl",
14921  "sa.gov.pl",
14922  "sdn.gov.pl",
14923  "sko.gov.pl",
14924  "so.gov.pl",
14925  "sr.gov.pl",
14926  "starostwo.gov.pl",
14927  "ug.gov.pl",
14928  "ugim.gov.pl",
14929  "um.gov.pl",
14930  "umig.gov.pl",
14931  "upow.gov.pl",
14932  "uppo.gov.pl",
14933  "us.gov.pl",
14934  "uw.gov.pl",
14935  "uzs.gov.pl",
14936  "wif.gov.pl",
14937  "wiih.gov.pl",
14938  "winb.gov.pl",
14939  "wios.gov.pl",
14940  "witd.gov.pl",
14941  "wiw.gov.pl",
14942  "wkz.gov.pl",
14943  "wsa.gov.pl",
14944  "wskr.gov.pl",
14945  "wsse.gov.pl",
14946  "wuoz.gov.pl",
14947  "wzmiuw.gov.pl",
14948  "zp.gov.pl",
14949  "zpisdn.gov.pl",
14950  "augustow.pl",
14951  "babia-gora.pl",
14952  "bedzin.pl",
14953  "beskidy.pl",
14954  "bialowieza.pl",
14955  "bialystok.pl",
14956  "bielawa.pl",
14957  "bieszczady.pl",
14958  "boleslawiec.pl",
14959  "bydgoszcz.pl",
14960  "bytom.pl",
14961  "cieszyn.pl",
14962  "czeladz.pl",
14963  "czest.pl",
14964  "dlugoleka.pl",
14965  "elblag.pl",
14966  "elk.pl",
14967  "glogow.pl",
14968  "gniezno.pl",
14969  "gorlice.pl",
14970  "grajewo.pl",
14971  "ilawa.pl",
14972  "jaworzno.pl",
14973  "jelenia-gora.pl",
14974  "jgora.pl",
14975  "kalisz.pl",
14976  "karpacz.pl",
14977  "kartuzy.pl",
14978  "kaszuby.pl",
14979  "katowice.pl",
14980  "kazimierz-dolny.pl",
14981  "kepno.pl",
14982  "ketrzyn.pl",
14983  "klodzko.pl",
14984  "kobierzyce.pl",
14985  "kolobrzeg.pl",
14986  "konin.pl",
14987  "konskowola.pl",
14988  "kutno.pl",
14989  "lapy.pl",
14990  "lebork.pl",
14991  "legnica.pl",
14992  "lezajsk.pl",
14993  "limanowa.pl",
14994  "lomza.pl",
14995  "lowicz.pl",
14996  "lubin.pl",
14997  "lukow.pl",
14998  "malbork.pl",
14999  "malopolska.pl",
15000  "mazowsze.pl",
15001  "mazury.pl",
15002  "mielec.pl",
15003  "mielno.pl",
15004  "mragowo.pl",
15005  "naklo.pl",
15006  "nowaruda.pl",
15007  "nysa.pl",
15008  "olawa.pl",
15009  "olecko.pl",
15010  "olkusz.pl",
15011  "olsztyn.pl",
15012  "opoczno.pl",
15013  "opole.pl",
15014  "ostroda.pl",
15015  "ostroleka.pl",
15016  "ostrowiec.pl",
15017  "ostrowwlkp.pl",
15018  "pila.pl",
15019  "pisz.pl",
15020  "podhale.pl",
15021  "podlasie.pl",
15022  "polkowice.pl",
15023  "pomorskie.pl",
15024  "pomorze.pl",
15025  "prochowice.pl",
15026  "pruszkow.pl",
15027  "przeworsk.pl",
15028  "pulawy.pl",
15029  "radom.pl",
15030  "rawa-maz.pl",
15031  "rybnik.pl",
15032  "rzeszow.pl",
15033  "sanok.pl",
15034  "sejny.pl",
15035  "skoczow.pl",
15036  "slask.pl",
15037  "slupsk.pl",
15038  "sosnowiec.pl",
15039  "stalowa-wola.pl",
15040  "starachowice.pl",
15041  "stargard.pl",
15042  "suwalki.pl",
15043  "swidnica.pl",
15044  "swiebodzin.pl",
15045  "swinoujscie.pl",
15046  "szczecin.pl",
15047  "szczytno.pl",
15048  "tarnobrzeg.pl",
15049  "tgory.pl",
15050  "turek.pl",
15051  "tychy.pl",
15052  "ustka.pl",
15053  "walbrzych.pl",
15054  "warmia.pl",
15055  "warszawa.pl",
15056  "waw.pl",
15057  "wegrow.pl",
15058  "wielun.pl",
15059  "wlocl.pl",
15060  "wloclawek.pl",
15061  "wodzislaw.pl",
15062  "wolomin.pl",
15063  "wroclaw.pl",
15064  "zachpomor.pl",
15065  "zagan.pl",
15066  "zarow.pl",
15067  "zgora.pl",
15068  "zgorzelec.pl",
15069  "pm",
15070  "pn",
15071  "co.pn",
15072  "edu.pn",
15073  "gov.pn",
15074  "net.pn",
15075  "org.pn",
15076  "post",
15077  "pr",
15078  "biz.pr",
15079  "com.pr",
15080  "edu.pr",
15081  "gov.pr",
15082  "info.pr",
15083  "isla.pr",
15084  "name.pr",
15085  "net.pr",
15086  "org.pr",
15087  "pro.pr",
15088  "ac.pr",
15089  "est.pr",
15090  "prof.pr",
15091  "pro",
15092  "aaa.pro",
15093  "aca.pro",
15094  "acct.pro",
15095  "avocat.pro",
15096  "bar.pro",
15097  "cpa.pro",
15098  "eng.pro",
15099  "jur.pro",
15100  "law.pro",
15101  "med.pro",
15102  "recht.pro",
15103  "ps",
15104  "com.ps",
15105  "edu.ps",
15106  "gov.ps",
15107  "net.ps",
15108  "org.ps",
15109  "plo.ps",
15110  "sec.ps",
15111  "pt",
15112  "com.pt",
15113  "edu.pt",
15114  "gov.pt",
15115  "int.pt",
15116  "net.pt",
15117  "nome.pt",
15118  "org.pt",
15119  "publ.pt",
15120  "pw",
15121  "belau.pw",
15122  "co.pw",
15123  "ed.pw",
15124  "go.pw",
15125  "or.pw",
15126  "py",
15127  "com.py",
15128  "coop.py",
15129  "edu.py",
15130  "gov.py",
15131  "mil.py",
15132  "net.py",
15133  "org.py",
15134  "qa",
15135  "com.qa",
15136  "edu.qa",
15137  "gov.qa",
15138  "mil.qa",
15139  "name.qa",
15140  "net.qa",
15141  "org.qa",
15142  "sch.qa",
15143  "re",
15144  "asso.re",
15145  "com.re",
15146  "ro",
15147  "arts.ro",
15148  "com.ro",
15149  "firm.ro",
15150  "info.ro",
15151  "nom.ro",
15152  "nt.ro",
15153  "org.ro",
15154  "rec.ro",
15155  "store.ro",
15156  "tm.ro",
15157  "www.ro",
15158  "rs",
15159  "ac.rs",
15160  "co.rs",
15161  "edu.rs",
15162  "gov.rs",
15163  "in.rs",
15164  "org.rs",
15165  "ru",
15166  "rw",
15167  "ac.rw",
15168  "co.rw",
15169  "coop.rw",
15170  "gov.rw",
15171  "mil.rw",
15172  "net.rw",
15173  "org.rw",
15174  "sa",
15175  "com.sa",
15176  "edu.sa",
15177  "gov.sa",
15178  "med.sa",
15179  "net.sa",
15180  "org.sa",
15181  "pub.sa",
15182  "sch.sa",
15183  "sb",
15184  "com.sb",
15185  "edu.sb",
15186  "gov.sb",
15187  "net.sb",
15188  "org.sb",
15189  "sc",
15190  "com.sc",
15191  "edu.sc",
15192  "gov.sc",
15193  "net.sc",
15194  "org.sc",
15195  "sd",
15196  "com.sd",
15197  "edu.sd",
15198  "gov.sd",
15199  "info.sd",
15200  "med.sd",
15201  "net.sd",
15202  "org.sd",
15203  "tv.sd",
15204  "se",
15205  "a.se",
15206  "ac.se",
15207  "b.se",
15208  "bd.se",
15209  "brand.se",
15210  "c.se",
15211  "d.se",
15212  "e.se",
15213  "f.se",
15214  "fh.se",
15215  "fhsk.se",
15216  "fhv.se",
15217  "g.se",
15218  "h.se",
15219  "i.se",
15220  "k.se",
15221  "komforb.se",
15222  "kommunalforbund.se",
15223  "komvux.se",
15224  "l.se",
15225  "lanbib.se",
15226  "m.se",
15227  "n.se",
15228  "naturbruksgymn.se",
15229  "o.se",
15230  "org.se",
15231  "p.se",
15232  "parti.se",
15233  "pp.se",
15234  "press.se",
15235  "r.se",
15236  "s.se",
15237  "t.se",
15238  "tm.se",
15239  "u.se",
15240  "w.se",
15241  "x.se",
15242  "y.se",
15243  "z.se",
15244  "sg",
15245  "com.sg",
15246  "edu.sg",
15247  "gov.sg",
15248  "net.sg",
15249  "org.sg",
15250  "sh",
15251  "com.sh",
15252  "gov.sh",
15253  "mil.sh",
15254  "net.sh",
15255  "org.sh",
15256  "si",
15257  "sj",
15258  "sk",
15259  "sl",
15260  "com.sl",
15261  "edu.sl",
15262  "gov.sl",
15263  "net.sl",
15264  "org.sl",
15265  "sm",
15266  "sn",
15267  "art.sn",
15268  "com.sn",
15269  "edu.sn",
15270  "gouv.sn",
15271  "org.sn",
15272  "perso.sn",
15273  "univ.sn",
15274  "so",
15275  "com.so",
15276  "edu.so",
15277  "gov.so",
15278  "me.so",
15279  "net.so",
15280  "org.so",
15281  "sr",
15282  "ss",
15283  "biz.ss",
15284  "co.ss",
15285  "com.ss",
15286  "edu.ss",
15287  "gov.ss",
15288  "me.ss",
15289  "net.ss",
15290  "org.ss",
15291  "sch.ss",
15292  "st",
15293  "co.st",
15294  "com.st",
15295  "consulado.st",
15296  "edu.st",
15297  "embaixada.st",
15298  "mil.st",
15299  "net.st",
15300  "org.st",
15301  "principe.st",
15302  "saotome.st",
15303  "store.st",
15304  "su",
15305  "sv",
15306  "com.sv",
15307  "edu.sv",
15308  "gob.sv",
15309  "org.sv",
15310  "red.sv",
15311  "sx",
15312  "gov.sx",
15313  "sy",
15314  "com.sy",
15315  "edu.sy",
15316  "gov.sy",
15317  "mil.sy",
15318  "net.sy",
15319  "org.sy",
15320  "sz",
15321  "ac.sz",
15322  "co.sz",
15323  "org.sz",
15324  "tc",
15325  "td",
15326  "tel",
15327  "tf",
15328  "tg",
15329  "th",
15330  "ac.th",
15331  "co.th",
15332  "go.th",
15333  "in.th",
15334  "mi.th",
15335  "net.th",
15336  "or.th",
15337  "tj",
15338  "ac.tj",
15339  "biz.tj",
15340  "co.tj",
15341  "com.tj",
15342  "edu.tj",
15343  "go.tj",
15344  "gov.tj",
15345  "int.tj",
15346  "mil.tj",
15347  "name.tj",
15348  "net.tj",
15349  "nic.tj",
15350  "org.tj",
15351  "test.tj",
15352  "web.tj",
15353  "tk",
15354  "tl",
15355  "gov.tl",
15356  "tm",
15357  "co.tm",
15358  "com.tm",
15359  "edu.tm",
15360  "gov.tm",
15361  "mil.tm",
15362  "net.tm",
15363  "nom.tm",
15364  "org.tm",
15365  "tn",
15366  "com.tn",
15367  "ens.tn",
15368  "fin.tn",
15369  "gov.tn",
15370  "ind.tn",
15371  "info.tn",
15372  "intl.tn",
15373  "mincom.tn",
15374  "nat.tn",
15375  "net.tn",
15376  "org.tn",
15377  "perso.tn",
15378  "tourism.tn",
15379  "to",
15380  "com.to",
15381  "edu.to",
15382  "gov.to",
15383  "mil.to",
15384  "net.to",
15385  "org.to",
15386  "tr",
15387  "av.tr",
15388  "bbs.tr",
15389  "bel.tr",
15390  "biz.tr",
15391  "com.tr",
15392  "dr.tr",
15393  "edu.tr",
15394  "gen.tr",
15395  "gov.tr",
15396  "info.tr",
15397  "k12.tr",
15398  "kep.tr",
15399  "mil.tr",
15400  "name.tr",
15401  "net.tr",
15402  "org.tr",
15403  "pol.tr",
15404  "tel.tr",
15405  "tsk.tr",
15406  "tv.tr",
15407  "web.tr",
15408  "nc.tr",
15409  "gov.nc.tr",
15410  "tt",
15411  "biz.tt",
15412  "co.tt",
15413  "com.tt",
15414  "edu.tt",
15415  "gov.tt",
15416  "info.tt",
15417  "mil.tt",
15418  "name.tt",
15419  "net.tt",
15420  "org.tt",
15421  "pro.tt",
15422  "tv",
15423  "tw",
15424  "club.tw",
15425  "com.tw",
15426  "ebiz.tw",
15427  "edu.tw",
15428  "game.tw",
15429  "gov.tw",
15430  "idv.tw",
15431  "mil.tw",
15432  "net.tw",
15433  "org.tw",
15434  "tz",
15435  "ac.tz",
15436  "co.tz",
15437  "go.tz",
15438  "hotel.tz",
15439  "info.tz",
15440  "me.tz",
15441  "mil.tz",
15442  "mobi.tz",
15443  "ne.tz",
15444  "or.tz",
15445  "sc.tz",
15446  "tv.tz",
15447  "ua",
15448  "com.ua",
15449  "edu.ua",
15450  "gov.ua",
15451  "in.ua",
15452  "net.ua",
15453  "org.ua",
15454  "cherkassy.ua",
15455  "cherkasy.ua",
15456  "chernigov.ua",
15457  "chernihiv.ua",
15458  "chernivtsi.ua",
15459  "chernovtsy.ua",
15460  "ck.ua",
15461  "cn.ua",
15462  "cr.ua",
15463  "crimea.ua",
15464  "cv.ua",
15465  "dn.ua",
15466  "dnepropetrovsk.ua",
15467  "dnipropetrovsk.ua",
15468  "donetsk.ua",
15469  "dp.ua",
15470  "if.ua",
15471  "ivano-frankivsk.ua",
15472  "kh.ua",
15473  "kharkiv.ua",
15474  "kharkov.ua",
15475  "kherson.ua",
15476  "khmelnitskiy.ua",
15477  "khmelnytskyi.ua",
15478  "kiev.ua",
15479  "kirovograd.ua",
15480  "km.ua",
15481  "kr.ua",
15482  "kropyvnytskyi.ua",
15483  "krym.ua",
15484  "ks.ua",
15485  "kv.ua",
15486  "kyiv.ua",
15487  "lg.ua",
15488  "lt.ua",
15489  "lugansk.ua",
15490  "luhansk.ua",
15491  "lutsk.ua",
15492  "lv.ua",
15493  "lviv.ua",
15494  "mk.ua",
15495  "mykolaiv.ua",
15496  "nikolaev.ua",
15497  "od.ua",
15498  "odesa.ua",
15499  "odessa.ua",
15500  "pl.ua",
15501  "poltava.ua",
15502  "rivne.ua",
15503  "rovno.ua",
15504  "rv.ua",
15505  "sb.ua",
15506  "sebastopol.ua",
15507  "sevastopol.ua",
15508  "sm.ua",
15509  "sumy.ua",
15510  "te.ua",
15511  "ternopil.ua",
15512  "uz.ua",
15513  "uzhgorod.ua",
15514  "uzhhorod.ua",
15515  "vinnica.ua",
15516  "vinnytsia.ua",
15517  "vn.ua",
15518  "volyn.ua",
15519  "yalta.ua",
15520  "zakarpattia.ua",
15521  "zaporizhzhe.ua",
15522  "zaporizhzhia.ua",
15523  "zhitomir.ua",
15524  "zhytomyr.ua",
15525  "zp.ua",
15526  "zt.ua",
15527  "ug",
15528  "ac.ug",
15529  "co.ug",
15530  "com.ug",
15531  "go.ug",
15532  "ne.ug",
15533  "or.ug",
15534  "org.ug",
15535  "sc.ug",
15536  "uk",
15537  "ac.uk",
15538  "co.uk",
15539  "gov.uk",
15540  "ltd.uk",
15541  "me.uk",
15542  "net.uk",
15543  "nhs.uk",
15544  "org.uk",
15545  "plc.uk",
15546  "police.uk",
15547  "*.sch.uk",
15548  "us",
15549  "dni.us",
15550  "fed.us",
15551  "isa.us",
15552  "kids.us",
15553  "nsn.us",
15554  "ak.us",
15555  "al.us",
15556  "ar.us",
15557  "as.us",
15558  "az.us",
15559  "ca.us",
15560  "co.us",
15561  "ct.us",
15562  "dc.us",
15563  "de.us",
15564  "fl.us",
15565  "ga.us",
15566  "gu.us",
15567  "hi.us",
15568  "ia.us",
15569  "id.us",
15570  "il.us",
15571  "in.us",
15572  "ks.us",
15573  "ky.us",
15574  "la.us",
15575  "ma.us",
15576  "md.us",
15577  "me.us",
15578  "mi.us",
15579  "mn.us",
15580  "mo.us",
15581  "ms.us",
15582  "mt.us",
15583  "nc.us",
15584  "nd.us",
15585  "ne.us",
15586  "nh.us",
15587  "nj.us",
15588  "nm.us",
15589  "nv.us",
15590  "ny.us",
15591  "oh.us",
15592  "ok.us",
15593  "or.us",
15594  "pa.us",
15595  "pr.us",
15596  "ri.us",
15597  "sc.us",
15598  "sd.us",
15599  "tn.us",
15600  "tx.us",
15601  "ut.us",
15602  "va.us",
15603  "vi.us",
15604  "vt.us",
15605  "wa.us",
15606  "wi.us",
15607  "wv.us",
15608  "wy.us",
15609  "k12.ak.us",
15610  "k12.al.us",
15611  "k12.ar.us",
15612  "k12.as.us",
15613  "k12.az.us",
15614  "k12.ca.us",
15615  "k12.co.us",
15616  "k12.ct.us",
15617  "k12.dc.us",
15618  "k12.fl.us",
15619  "k12.ga.us",
15620  "k12.gu.us",
15621  "k12.ia.us",
15622  "k12.id.us",
15623  "k12.il.us",
15624  "k12.in.us",
15625  "k12.ks.us",
15626  "k12.ky.us",
15627  "k12.la.us",
15628  "k12.ma.us",
15629  "k12.md.us",
15630  "k12.me.us",
15631  "k12.mi.us",
15632  "k12.mn.us",
15633  "k12.mo.us",
15634  "k12.ms.us",
15635  "k12.mt.us",
15636  "k12.nc.us",
15637  "k12.ne.us",
15638  "k12.nh.us",
15639  "k12.nj.us",
15640  "k12.nm.us",
15641  "k12.nv.us",
15642  "k12.ny.us",
15643  "k12.oh.us",
15644  "k12.ok.us",
15645  "k12.or.us",
15646  "k12.pa.us",
15647  "k12.pr.us",
15648  "k12.sc.us",
15649  "k12.tn.us",
15650  "k12.tx.us",
15651  "k12.ut.us",
15652  "k12.va.us",
15653  "k12.vi.us",
15654  "k12.vt.us",
15655  "k12.wa.us",
15656  "k12.wi.us",
15657  "cc.ak.us",
15658  "lib.ak.us",
15659  "cc.al.us",
15660  "lib.al.us",
15661  "cc.ar.us",
15662  "lib.ar.us",
15663  "cc.as.us",
15664  "lib.as.us",
15665  "cc.az.us",
15666  "lib.az.us",
15667  "cc.ca.us",
15668  "lib.ca.us",
15669  "cc.co.us",
15670  "lib.co.us",
15671  "cc.ct.us",
15672  "lib.ct.us",
15673  "cc.dc.us",
15674  "lib.dc.us",
15675  "cc.de.us",
15676  "cc.fl.us",
15677  "cc.ga.us",
15678  "cc.gu.us",
15679  "cc.hi.us",
15680  "cc.ia.us",
15681  "cc.id.us",
15682  "cc.il.us",
15683  "cc.in.us",
15684  "cc.ks.us",
15685  "cc.ky.us",
15686  "cc.la.us",
15687  "cc.ma.us",
15688  "cc.md.us",
15689  "cc.me.us",
15690  "cc.mi.us",
15691  "cc.mn.us",
15692  "cc.mo.us",
15693  "cc.ms.us",
15694  "cc.mt.us",
15695  "cc.nc.us",
15696  "cc.nd.us",
15697  "cc.ne.us",
15698  "cc.nh.us",
15699  "cc.nj.us",
15700  "cc.nm.us",
15701  "cc.nv.us",
15702  "cc.ny.us",
15703  "cc.oh.us",
15704  "cc.ok.us",
15705  "cc.or.us",
15706  "cc.pa.us",
15707  "cc.pr.us",
15708  "cc.ri.us",
15709  "cc.sc.us",
15710  "cc.sd.us",
15711  "cc.tn.us",
15712  "cc.tx.us",
15713  "cc.ut.us",
15714  "cc.va.us",
15715  "cc.vi.us",
15716  "cc.vt.us",
15717  "cc.wa.us",
15718  "cc.wi.us",
15719  "cc.wv.us",
15720  "cc.wy.us",
15721  "k12.wy.us",
15722  "lib.fl.us",
15723  "lib.ga.us",
15724  "lib.gu.us",
15725  "lib.hi.us",
15726  "lib.ia.us",
15727  "lib.id.us",
15728  "lib.il.us",
15729  "lib.in.us",
15730  "lib.ks.us",
15731  "lib.ky.us",
15732  "lib.la.us",
15733  "lib.ma.us",
15734  "lib.md.us",
15735  "lib.me.us",
15736  "lib.mi.us",
15737  "lib.mn.us",
15738  "lib.mo.us",
15739  "lib.ms.us",
15740  "lib.mt.us",
15741  "lib.nc.us",
15742  "lib.nd.us",
15743  "lib.ne.us",
15744  "lib.nh.us",
15745  "lib.nj.us",
15746  "lib.nm.us",
15747  "lib.nv.us",
15748  "lib.ny.us",
15749  "lib.oh.us",
15750  "lib.ok.us",
15751  "lib.or.us",
15752  "lib.pa.us",
15753  "lib.pr.us",
15754  "lib.ri.us",
15755  "lib.sc.us",
15756  "lib.sd.us",
15757  "lib.tn.us",
15758  "lib.tx.us",
15759  "lib.ut.us",
15760  "lib.va.us",
15761  "lib.vi.us",
15762  "lib.vt.us",
15763  "lib.wa.us",
15764  "lib.wi.us",
15765  "lib.wy.us",
15766  "chtr.k12.ma.us",
15767  "paroch.k12.ma.us",
15768  "pvt.k12.ma.us",
15769  "ann-arbor.mi.us",
15770  "cog.mi.us",
15771  "dst.mi.us",
15772  "eaton.mi.us",
15773  "gen.mi.us",
15774  "mus.mi.us",
15775  "tec.mi.us",
15776  "washtenaw.mi.us",
15777  "uy",
15778  "com.uy",
15779  "edu.uy",
15780  "gub.uy",
15781  "mil.uy",
15782  "net.uy",
15783  "org.uy",
15784  "uz",
15785  "co.uz",
15786  "com.uz",
15787  "net.uz",
15788  "org.uz",
15789  "va",
15790  "vc",
15791  "com.vc",
15792  "edu.vc",
15793  "gov.vc",
15794  "mil.vc",
15795  "net.vc",
15796  "org.vc",
15797  "ve",
15798  "arts.ve",
15799  "bib.ve",
15800  "co.ve",
15801  "com.ve",
15802  "e12.ve",
15803  "edu.ve",
15804  "firm.ve",
15805  "gob.ve",
15806  "gov.ve",
15807  "info.ve",
15808  "int.ve",
15809  "mil.ve",
15810  "net.ve",
15811  "nom.ve",
15812  "org.ve",
15813  "rar.ve",
15814  "rec.ve",
15815  "store.ve",
15816  "tec.ve",
15817  "web.ve",
15818  "vg",
15819  "vi",
15820  "co.vi",
15821  "com.vi",
15822  "k12.vi",
15823  "net.vi",
15824  "org.vi",
15825  "vn",
15826  "ac.vn",
15827  "ai.vn",
15828  "biz.vn",
15829  "com.vn",
15830  "edu.vn",
15831  "gov.vn",
15832  "health.vn",
15833  "id.vn",
15834  "info.vn",
15835  "int.vn",
15836  "io.vn",
15837  "name.vn",
15838  "net.vn",
15839  "org.vn",
15840  "pro.vn",
15841  "angiang.vn",
15842  "bacgiang.vn",
15843  "backan.vn",
15844  "baclieu.vn",
15845  "bacninh.vn",
15846  "baria-vungtau.vn",
15847  "bentre.vn",
15848  "binhdinh.vn",
15849  "binhduong.vn",
15850  "binhphuoc.vn",
15851  "binhthuan.vn",
15852  "camau.vn",
15853  "cantho.vn",
15854  "caobang.vn",
15855  "daklak.vn",
15856  "daknong.vn",
15857  "danang.vn",
15858  "dienbien.vn",
15859  "dongnai.vn",
15860  "dongthap.vn",
15861  "gialai.vn",
15862  "hagiang.vn",
15863  "haiduong.vn",
15864  "haiphong.vn",
15865  "hanam.vn",
15866  "hanoi.vn",
15867  "hatinh.vn",
15868  "haugiang.vn",
15869  "hoabinh.vn",
15870  "hungyen.vn",
15871  "khanhhoa.vn",
15872  "kiengiang.vn",
15873  "kontum.vn",
15874  "laichau.vn",
15875  "lamdong.vn",
15876  "langson.vn",
15877  "laocai.vn",
15878  "longan.vn",
15879  "namdinh.vn",
15880  "nghean.vn",
15881  "ninhbinh.vn",
15882  "ninhthuan.vn",
15883  "phutho.vn",
15884  "phuyen.vn",
15885  "quangbinh.vn",
15886  "quangnam.vn",
15887  "quangngai.vn",
15888  "quangninh.vn",
15889  "quangtri.vn",
15890  "soctrang.vn",
15891  "sonla.vn",
15892  "tayninh.vn",
15893  "thaibinh.vn",
15894  "thainguyen.vn",
15895  "thanhhoa.vn",
15896  "thanhphohochiminh.vn",
15897  "thuathienhue.vn",
15898  "tiengiang.vn",
15899  "travinh.vn",
15900  "tuyenquang.vn",
15901  "vinhlong.vn",
15902  "vinhphuc.vn",
15903  "yenbai.vn",
15904  "vu",
15905  "com.vu",
15906  "edu.vu",
15907  "net.vu",
15908  "org.vu",
15909  "wf",
15910  "ws",
15911  "com.ws",
15912  "edu.ws",
15913  "gov.ws",
15914  "net.ws",
15915  "org.ws",
15916  "yt",
15917  "امارات",
15918  "Õ°Õ¡Õµ",
15919  "বাংলা",
15920  "бг",
15921  "البحرين",
15922  "бел",
15923  "中国",
15924  "中國",
15925  "الجزائر",
15926  "مصر",
15927  "ею",
15928  "ευ",
15929  "موريتانيا",
15930  "გე",
15931  "ελ",
15932  "香港",
15933  "個人.香港",
15934  "公司.香港",
15935  "政府.香港",
15936  "教育.香港",
15937  "組織.香港",
15938  "網絡.香港",
15939  "ಭಾರತ",
15940  "ଭାରତ",
15941  "ভাৰত",
15942  "भारतम्",
15943  "भारोत",
15944  "ڀارت",
15945  "ഭാരതം",
15946  "भारत",
15947  "بارت",
15948  "بھارت",
15949  "భారత్",
15950  "ભારત",
15951  "ਭਾਰਤ",
15952  "ভারত",
15953  "இந்தியா",
15954  "ایران",
15955  "ايران",
15956  "عراق",
15957  "الاردن",
15958  "한국",
15959  "қаз",
15960  "ລາວ",
15961  "ලංකා",
15962  "இலங்கை",
15963  "المغرب",
15964  "мкд",
15965  "мон",
15966  "澳門",
15967  "澳门",
15968  "مليسيا",
15969  "عمان",
15970  "پاکستان",
15971  "پاكستان",
15972  "فلسطين",
15973  "срб",
15974  "ак.срб",
15975  "обр.срб",
15976  "од.срб",
15977  "орг.срб",
15978  "пр.срб",
15979  "упр.срб",
15980  "рф",
15981  "قطر",
15982  "السعودية",
15983  "السعودیة",
15984  "السعودیۃ",
15985  "السعوديه",
15986  "سودان",
15987  "新加坡",
15988  "சிங்கப்பூர்",
15989  "سورية",
15990  "سوريا",
15991  "ไทย",
15992  "ทหาร.ไทย",
15993  "ธุรกิจ.ไทย",
15994  "เน็ต.ไทย",
15995  "รัฐบาล.ไทย",
15996  "ศึกษา.ไทย",
15997  "องค์กร.ไทย",
15998  "تونس",
15999  "台灣",
16000  "台湾",
16001  "臺灣",
16002  "укр",
16003  "اليمن",
16004  "xxx",
16005  "ye",
16006  "com.ye",
16007  "edu.ye",
16008  "gov.ye",
16009  "mil.ye",
16010  "net.ye",
16011  "org.ye",
16012  "ac.za",
16013  "agric.za",
16014  "alt.za",
16015  "co.za",
16016  "edu.za",
16017  "gov.za",
16018  "grondar.za",
16019  "law.za",
16020  "mil.za",
16021  "net.za",
16022  "ngo.za",
16023  "nic.za",
16024  "nis.za",
16025  "nom.za",
16026  "org.za",
16027  "school.za",
16028  "tm.za",
16029  "web.za",
16030  "zm",
16031  "ac.zm",
16032  "biz.zm",
16033  "co.zm",
16034  "com.zm",
16035  "edu.zm",
16036  "gov.zm",
16037  "info.zm",
16038  "mil.zm",
16039  "net.zm",
16040  "org.zm",
16041  "sch.zm",
16042  "zw",
16043  "ac.zw",
16044  "co.zw",
16045  "gov.zw",
16046  "mil.zw",
16047  "org.zw",
16048  "aaa",
16049  "aarp",
16050  "abb",
16051  "abbott",
16052  "abbvie",
16053  "abc",
16054  "able",
16055  "abogado",
16056  "abudhabi",
16057  "academy",
16058  "accenture",
16059  "accountant",
16060  "accountants",
16061  "aco",
16062  "actor",
16063  "ads",
16064  "adult",
16065  "aeg",
16066  "aetna",
16067  "afl",
16068  "africa",
16069  "agakhan",
16070  "agency",
16071  "aig",
16072  "airbus",
16073  "airforce",
16074  "airtel",
16075  "akdn",
16076  "alibaba",
16077  "alipay",
16078  "allfinanz",
16079  "allstate",
16080  "ally",
16081  "alsace",
16082  "alstom",
16083  "amazon",
16084  "americanexpress",
16085  "americanfamily",
16086  "amex",
16087  "amfam",
16088  "amica",
16089  "amsterdam",
16090  "analytics",
16091  "android",
16092  "anquan",
16093  "anz",
16094  "aol",
16095  "apartments",
16096  "app",
16097  "apple",
16098  "aquarelle",
16099  "arab",
16100  "aramco",
16101  "archi",
16102  "army",
16103  "art",
16104  "arte",
16105  "asda",
16106  "associates",
16107  "athleta",
16108  "attorney",
16109  "auction",
16110  "audi",
16111  "audible",
16112  "audio",
16113  "auspost",
16114  "author",
16115  "auto",
16116  "autos",
16117  "aws",
16118  "axa",
16119  "azure",
16120  "baby",
16121  "baidu",
16122  "banamex",
16123  "band",
16124  "bank",
16125  "bar",
16126  "barcelona",
16127  "barclaycard",
16128  "barclays",
16129  "barefoot",
16130  "bargains",
16131  "baseball",
16132  "basketball",
16133  "bauhaus",
16134  "bayern",
16135  "bbc",
16136  "bbt",
16137  "bbva",
16138  "bcg",
16139  "bcn",
16140  "beats",
16141  "beauty",
16142  "beer",
16143  "bentley",
16144  "berlin",
16145  "best",
16146  "bestbuy",
16147  "bet",
16148  "bharti",
16149  "bible",
16150  "bid",
16151  "bike",
16152  "bing",
16153  "bingo",
16154  "bio",
16155  "black",
16156  "blackfriday",
16157  "blockbuster",
16158  "blog",
16159  "bloomberg",
16160  "blue",
16161  "bms",
16162  "bmw",
16163  "bnpparibas",
16164  "boats",
16165  "boehringer",
16166  "bofa",
16167  "bom",
16168  "bond",
16169  "boo",
16170  "book",
16171  "booking",
16172  "bosch",
16173  "bostik",
16174  "boston",
16175  "bot",
16176  "boutique",
16177  "box",
16178  "bradesco",
16179  "bridgestone",
16180  "broadway",
16181  "broker",
16182  "brother",
16183  "brussels",
16184  "build",
16185  "builders",
16186  "business",
16187  "buy",
16188  "buzz",
16189  "bzh",
16190  "cab",
16191  "cafe",
16192  "cal",
16193  "call",
16194  "calvinklein",
16195  "cam",
16196  "camera",
16197  "camp",
16198  "canon",
16199  "capetown",
16200  "capital",
16201  "capitalone",
16202  "car",
16203  "caravan",
16204  "cards",
16205  "care",
16206  "career",
16207  "careers",
16208  "cars",
16209  "casa",
16210  "case",
16211  "cash",
16212  "casino",
16213  "catering",
16214  "catholic",
16215  "cba",
16216  "cbn",
16217  "cbre",
16218  "center",
16219  "ceo",
16220  "cern",
16221  "cfa",
16222  "cfd",
16223  "chanel",
16224  "channel",
16225  "charity",
16226  "chase",
16227  "chat",
16228  "cheap",
16229  "chintai",
16230  "christmas",
16231  "chrome",
16232  "church",
16233  "cipriani",
16234  "circle",
16235  "cisco",
16236  "citadel",
16237  "citi",
16238  "citic",
16239  "city",
16240  "claims",
16241  "cleaning",
16242  "click",
16243  "clinic",
16244  "clinique",
16245  "clothing",
16246  "cloud",
16247  "club",
16248  "clubmed",
16249  "coach",
16250  "codes",
16251  "coffee",
16252  "college",
16253  "cologne",
16254  "commbank",
16255  "community",
16256  "company",
16257  "compare",
16258  "computer",
16259  "comsec",
16260  "condos",
16261  "construction",
16262  "consulting",
16263  "contact",
16264  "contractors",
16265  "cooking",
16266  "cool",
16267  "corsica",
16268  "country",
16269  "coupon",
16270  "coupons",
16271  "courses",
16272  "cpa",
16273  "credit",
16274  "creditcard",
16275  "creditunion",
16276  "cricket",
16277  "crown",
16278  "crs",
16279  "cruise",
16280  "cruises",
16281  "cuisinella",
16282  "cymru",
16283  "cyou",
16284  "dad",
16285  "dance",
16286  "data",
16287  "date",
16288  "dating",
16289  "datsun",
16290  "day",
16291  "dclk",
16292  "dds",
16293  "deal",
16294  "dealer",
16295  "deals",
16296  "degree",
16297  "delivery",
16298  "dell",
16299  "deloitte",
16300  "delta",
16301  "democrat",
16302  "dental",
16303  "dentist",
16304  "desi",
16305  "design",
16306  "dev",
16307  "dhl",
16308  "diamonds",
16309  "diet",
16310  "digital",
16311  "direct",
16312  "directory",
16313  "discount",
16314  "discover",
16315  "dish",
16316  "diy",
16317  "dnp",
16318  "docs",
16319  "doctor",
16320  "dog",
16321  "domains",
16322  "dot",
16323  "download",
16324  "drive",
16325  "dtv",
16326  "dubai",
16327  "dunlop",
16328  "dupont",
16329  "durban",
16330  "dvag",
16331  "dvr",
16332  "earth",
16333  "eat",
16334  "eco",
16335  "edeka",
16336  "education",
16337  "email",
16338  "emerck",
16339  "energy",
16340  "engineer",
16341  "engineering",
16342  "enterprises",
16343  "epson",
16344  "equipment",
16345  "ericsson",
16346  "erni",
16347  "esq",
16348  "estate",
16349  "eurovision",
16350  "eus",
16351  "events",
16352  "exchange",
16353  "expert",
16354  "exposed",
16355  "express",
16356  "extraspace",
16357  "fage",
16358  "fail",
16359  "fairwinds",
16360  "faith",
16361  "family",
16362  "fan",
16363  "fans",
16364  "farm",
16365  "farmers",
16366  "fashion",
16367  "fast",
16368  "fedex",
16369  "feedback",
16370  "ferrari",
16371  "ferrero",
16372  "fidelity",
16373  "fido",
16374  "film",
16375  "final",
16376  "finance",
16377  "financial",
16378  "fire",
16379  "firestone",
16380  "firmdale",
16381  "fish",
16382  "fishing",
16383  "fit",
16384  "fitness",
16385  "flickr",
16386  "flights",
16387  "flir",
16388  "florist",
16389  "flowers",
16390  "fly",
16391  "foo",
16392  "food",
16393  "football",
16394  "ford",
16395  "forex",
16396  "forsale",
16397  "forum",
16398  "foundation",
16399  "fox",
16400  "free",
16401  "fresenius",
16402  "frl",
16403  "frogans",
16404  "frontier",
16405  "ftr",
16406  "fujitsu",
16407  "fun",
16408  "fund",
16409  "furniture",
16410  "futbol",
16411  "fyi",
16412  "gal",
16413  "gallery",
16414  "gallo",
16415  "gallup",
16416  "game",
16417  "games",
16418  "gap",
16419  "garden",
16420  "gay",
16421  "gbiz",
16422  "gdn",
16423  "gea",
16424  "gent",
16425  "genting",
16426  "george",
16427  "ggee",
16428  "gift",
16429  "gifts",
16430  "gives",
16431  "giving",
16432  "glass",
16433  "gle",
16434  "global",
16435  "globo",
16436  "gmail",
16437  "gmbh",
16438  "gmo",
16439  "gmx",
16440  "godaddy",
16441  "gold",
16442  "goldpoint",
16443  "golf",
16444  "goo",
16445  "goodyear",
16446  "goog",
16447  "google",
16448  "gop",
16449  "got",
16450  "grainger",
16451  "graphics",
16452  "gratis",
16453  "green",
16454  "gripe",
16455  "grocery",
16456  "group",
16457  "gucci",
16458  "guge",
16459  "guide",
16460  "guitars",
16461  "guru",
16462  "hair",
16463  "hamburg",
16464  "hangout",
16465  "haus",
16466  "hbo",
16467  "hdfc",
16468  "hdfcbank",
16469  "health",
16470  "healthcare",
16471  "help",
16472  "helsinki",
16473  "here",
16474  "hermes",
16475  "hiphop",
16476  "hisamitsu",
16477  "hitachi",
16478  "hiv",
16479  "hkt",
16480  "hockey",
16481  "holdings",
16482  "holiday",
16483  "homedepot",
16484  "homegoods",
16485  "homes",
16486  "homesense",
16487  "honda",
16488  "horse",
16489  "hospital",
16490  "host",
16491  "hosting",
16492  "hot",
16493  "hotels",
16494  "hotmail",
16495  "house",
16496  "how",
16497  "hsbc",
16498  "hughes",
16499  "hyatt",
16500  "hyundai",
16501  "ibm",
16502  "icbc",
16503  "ice",
16504  "icu",
16505  "ieee",
16506  "ifm",
16507  "ikano",
16508  "imamat",
16509  "imdb",
16510  "immo",
16511  "immobilien",
16512  "inc",
16513  "industries",
16514  "infiniti",
16515  "ing",
16516  "ink",
16517  "institute",
16518  "insurance",
16519  "insure",
16520  "international",
16521  "intuit",
16522  "investments",
16523  "ipiranga",
16524  "irish",
16525  "ismaili",
16526  "ist",
16527  "istanbul",
16528  "itau",
16529  "itv",
16530  "jaguar",
16531  "java",
16532  "jcb",
16533  "jeep",
16534  "jetzt",
16535  "jewelry",
16536  "jio",
16537  "jll",
16538  "jmp",
16539  "jnj",
16540  "joburg",
16541  "jot",
16542  "joy",
16543  "jpmorgan",
16544  "jprs",
16545  "juegos",
16546  "juniper",
16547  "kaufen",
16548  "kddi",
16549  "kerryhotels",
16550  "kerrylogistics",
16551  "kerryproperties",
16552  "kfh",
16553  "kia",
16554  "kids",
16555  "kim",
16556  "kindle",
16557  "kitchen",
16558  "kiwi",
16559  "koeln",
16560  "komatsu",
16561  "kosher",
16562  "kpmg",
16563  "kpn",
16564  "krd",
16565  "kred",
16566  "kuokgroup",
16567  "kyoto",
16568  "lacaixa",
16569  "lamborghini",
16570  "lamer",
16571  "lancaster",
16572  "land",
16573  "landrover",
16574  "lanxess",
16575  "lasalle",
16576  "lat",
16577  "latino",
16578  "latrobe",
16579  "law",
16580  "lawyer",
16581  "lds",
16582  "lease",
16583  "leclerc",
16584  "lefrak",
16585  "legal",
16586  "lego",
16587  "lexus",
16588  "lgbt",
16589  "lidl",
16590  "life",
16591  "lifeinsurance",
16592  "lifestyle",
16593  "lighting",
16594  "like",
16595  "lilly",
16596  "limited",
16597  "limo",
16598  "lincoln",
16599  "link",
16600  "lipsy",
16601  "live",
16602  "living",
16603  "llc",
16604  "llp",
16605  "loan",
16606  "loans",
16607  "locker",
16608  "locus",
16609  "lol",
16610  "london",
16611  "lotte",
16612  "lotto",
16613  "love",
16614  "lpl",
16615  "lplfinancial",
16616  "ltd",
16617  "ltda",
16618  "lundbeck",
16619  "luxe",
16620  "luxury",
16621  "madrid",
16622  "maif",
16623  "maison",
16624  "makeup",
16625  "man",
16626  "management",
16627  "mango",
16628  "map",
16629  "market",
16630  "marketing",
16631  "markets",
16632  "marriott",
16633  "marshalls",
16634  "mattel",
16635  "mba",
16636  "mckinsey",
16637  "med",
16638  "media",
16639  "meet",
16640  "melbourne",
16641  "meme",
16642  "memorial",
16643  "men",
16644  "menu",
16645  "merck",
16646  "merckmsd",
16647  "miami",
16648  "microsoft",
16649  "mini",
16650  "mint",
16651  "mit",
16652  "mitsubishi",
16653  "mlb",
16654  "mls",
16655  "mma",
16656  "mobile",
16657  "moda",
16658  "moe",
16659  "moi",
16660  "mom",
16661  "monash",
16662  "money",
16663  "monster",
16664  "mormon",
16665  "mortgage",
16666  "moscow",
16667  "moto",
16668  "motorcycles",
16669  "mov",
16670  "movie",
16671  "msd",
16672  "mtn",
16673  "mtr",
16674  "music",
16675  "nab",
16676  "nagoya",
16677  "navy",
16678  "nba",
16679  "nec",
16680  "netbank",
16681  "netflix",
16682  "network",
16683  "neustar",
16684  "new",
16685  "news",
16686  "next",
16687  "nextdirect",
16688  "nexus",
16689  "nfl",
16690  "ngo",
16691  "nhk",
16692  "nico",
16693  "nike",
16694  "nikon",
16695  "ninja",
16696  "nissan",
16697  "nissay",
16698  "nokia",
16699  "norton",
16700  "now",
16701  "nowruz",
16702  "nowtv",
16703  "nra",
16704  "nrw",
16705  "ntt",
16706  "nyc",
16707  "obi",
16708  "observer",
16709  "office",
16710  "okinawa",
16711  "olayan",
16712  "olayangroup",
16713  "ollo",
16714  "omega",
16715  "one",
16716  "ong",
16717  "onl",
16718  "online",
16719  "ooo",
16720  "open",
16721  "oracle",
16722  "orange",
16723  "organic",
16724  "origins",
16725  "osaka",
16726  "otsuka",
16727  "ott",
16728  "ovh",
16729  "page",
16730  "panasonic",
16731  "paris",
16732  "pars",
16733  "partners",
16734  "parts",
16735  "party",
16736  "pay",
16737  "pccw",
16738  "pet",
16739  "pfizer",
16740  "pharmacy",
16741  "phd",
16742  "philips",
16743  "phone",
16744  "photo",
16745  "photography",
16746  "photos",
16747  "physio",
16748  "pics",
16749  "pictet",
16750  "pictures",
16751  "pid",
16752  "pin",
16753  "ping",
16754  "pink",
16755  "pioneer",
16756  "pizza",
16757  "place",
16758  "play",
16759  "playstation",
16760  "plumbing",
16761  "plus",
16762  "pnc",
16763  "pohl",
16764  "poker",
16765  "politie",
16766  "porn",
16767  "pramerica",
16768  "praxi",
16769  "press",
16770  "prime",
16771  "prod",
16772  "productions",
16773  "prof",
16774  "progressive",
16775  "promo",
16776  "properties",
16777  "property",
16778  "protection",
16779  "pru",
16780  "prudential",
16781  "pub",
16782  "pwc",
16783  "qpon",
16784  "quebec",
16785  "quest",
16786  "racing",
16787  "radio",
16788  "read",
16789  "realestate",
16790  "realtor",
16791  "realty",
16792  "recipes",
16793  "red",
16794  "redstone",
16795  "redumbrella",
16796  "rehab",
16797  "reise",
16798  "reisen",
16799  "reit",
16800  "reliance",
16801  "ren",
16802  "rent",
16803  "rentals",
16804  "repair",
16805  "report",
16806  "republican",
16807  "rest",
16808  "restaurant",
16809  "review",
16810  "reviews",
16811  "rexroth",
16812  "rich",
16813  "richardli",
16814  "ricoh",
16815  "ril",
16816  "rio",
16817  "rip",
16818  "rocks",
16819  "rodeo",
16820  "rogers",
16821  "room",
16822  "rsvp",
16823  "rugby",
16824  "ruhr",
16825  "run",
16826  "rwe",
16827  "ryukyu",
16828  "saarland",
16829  "safe",
16830  "safety",
16831  "sakura",
16832  "sale",
16833  "salon",
16834  "samsclub",
16835  "samsung",
16836  "sandvik",
16837  "sandvikcoromant",
16838  "sanofi",
16839  "sap",
16840  "sarl",
16841  "sas",
16842  "save",
16843  "saxo",
16844  "sbi",
16845  "sbs",
16846  "scb",
16847  "schaeffler",
16848  "schmidt",
16849  "scholarships",
16850  "school",
16851  "schule",
16852  "schwarz",
16853  "science",
16854  "scot",
16855  "search",
16856  "seat",
16857  "secure",
16858  "security",
16859  "seek",
16860  "select",
16861  "sener",
16862  "services",
16863  "seven",
16864  "sew",
16865  "sex",
16866  "sexy",
16867  "sfr",
16868  "shangrila",
16869  "sharp",
16870  "shell",
16871  "shia",
16872  "shiksha",
16873  "shoes",
16874  "shop",
16875  "shopping",
16876  "shouji",
16877  "show",
16878  "silk",
16879  "sina",
16880  "singles",
16881  "site",
16882  "ski",
16883  "skin",
16884  "sky",
16885  "skype",
16886  "sling",
16887  "smart",
16888  "smile",
16889  "sncf",
16890  "soccer",
16891  "social",
16892  "softbank",
16893  "software",
16894  "sohu",
16895  "solar",
16896  "solutions",
16897  "song",
16898  "sony",
16899  "soy",
16900  "spa",
16901  "space",
16902  "sport",
16903  "spot",
16904  "srl",
16905  "stada",
16906  "staples",
16907  "star",
16908  "statebank",
16909  "statefarm",
16910  "stc",
16911  "stcgroup",
16912  "stockholm",
16913  "storage",
16914  "store",
16915  "stream",
16916  "studio",
16917  "study",
16918  "style",
16919  "sucks",
16920  "supplies",
16921  "supply",
16922  "support",
16923  "surf",
16924  "surgery",
16925  "suzuki",
16926  "swatch",
16927  "swiss",
16928  "sydney",
16929  "systems",
16930  "tab",
16931  "taipei",
16932  "talk",
16933  "taobao",
16934  "target",
16935  "tatamotors",
16936  "tatar",
16937  "tattoo",
16938  "tax",
16939  "taxi",
16940  "tci",
16941  "tdk",
16942  "team",
16943  "tech",
16944  "technology",
16945  "temasek",
16946  "tennis",
16947  "teva",
16948  "thd",
16949  "theater",
16950  "theatre",
16951  "tiaa",
16952  "tickets",
16953  "tienda",
16954  "tips",
16955  "tires",
16956  "tirol",
16957  "tjmaxx",
16958  "tjx",
16959  "tkmaxx",
16960  "tmall",
16961  "today",
16962  "tokyo",
16963  "tools",
16964  "top",
16965  "toray",
16966  "toshiba",
16967  "total",
16968  "tours",
16969  "town",
16970  "toyota",
16971  "toys",
16972  "trade",
16973  "trading",
16974  "training",
16975  "travel",
16976  "travelers",
16977  "travelersinsurance",
16978  "trust",
16979  "trv",
16980  "tube",
16981  "tui",
16982  "tunes",
16983  "tushu",
16984  "tvs",
16985  "ubank",
16986  "ubs",
16987  "unicom",
16988  "university",
16989  "uno",
16990  "uol",
16991  "ups",
16992  "vacations",
16993  "vana",
16994  "vanguard",
16995  "vegas",
16996  "ventures",
16997  "verisign",
16998  "versicherung",
16999  "vet",
17000  "viajes",
17001  "video",
17002  "vig",
17003  "viking",
17004  "villas",
17005  "vin",
17006  "vip",
17007  "virgin",
17008  "visa",
17009  "vision",
17010  "viva",
17011  "vivo",
17012  "vlaanderen",
17013  "vodka",
17014  "volvo",
17015  "vote",
17016  "voting",
17017  "voto",
17018  "voyage",
17019  "wales",
17020  "walmart",
17021  "walter",
17022  "wang",
17023  "wanggou",
17024  "watch",
17025  "watches",
17026  "weather",
17027  "weatherchannel",
17028  "webcam",
17029  "weber",
17030  "website",
17031  "wed",
17032  "wedding",
17033  "weibo",
17034  "weir",
17035  "whoswho",
17036  "wien",
17037  "wiki",
17038  "williamhill",
17039  "win",
17040  "windows",
17041  "wine",
17042  "winners",
17043  "wme",
17044  "wolterskluwer",
17045  "woodside",
17046  "work",
17047  "works",
17048  "world",
17049  "wow",
17050  "wtc",
17051  "wtf",
17052  "xbox",
17053  "xerox",
17054  "xihuan",
17055  "xin",
17056  "कॉम",
17057  "セール",
17058  "佛山",
17059  "慈善",
17060  "集团",
17061  "在线",
17062  "点看",
17063  "คอม",
17064  "八卦",
17065  "موقع",
17066  "公益",
17067  "公司",
17068  "香格里拉",
17069  "网站",
17070  "移动",
17071  "我爱你",
17072  "москва",
17073  "католик",
17074  "онлайн",
17075  "сайт",
17076  "联通",
17077  "קום",
17078  "时尚",
17079  "微博",
17080  "淡马锡",
17081  "ファッション",
17082  "орг",
17083  "नेट",
17084  "ストア",
17085  "アマゾン",
17086  "삼성",
17087  "商标",
17088  "商店",
17089  "商城",
17090  "дети",
17091  "ポイント",
17092  "新闻",
17093  "家電",
17094  "كوم",
17095  "中文网",
17096  "中信",
17097  "娱乐",
17098  "谷歌",
17099  "電訊盈科",
17100  "购物",
17101  "クラウド",
17102  "通販",
17103  "网店",
17104  "संगठन",
17105  "餐厅",
17106  "网络",
17107  "ком",
17108  "亚马逊",
17109  "食品",
17110  "飞利浦",
17111  "手机",
17112  "ارامكو",
17113  "العليان",
17114  "بازار",
17115  "ابوظبي",
17116  "كاثوليك",
17117  "همراه",
17118  "닷컴",
17119  "政府",
17120  "شبكة",
17121  "بيتك",
17122  "عرب",
17123  "机构",
17124  "组织机构",
17125  "健康",
17126  "招聘",
17127  "рус",
17128  "大拿",
17129  "みんな",
17130  "グーグル",
17131  "世界",
17132  "書籍",
17133  "网址",
17134  "닷넷",
17135  "コム",
17136  "天主教",
17137  "游戏",
17138  "vermögensberater",
17139  "vermögensberatung",
17140  "企业",
17141  "信息",
17142  "嘉里大酒店",
17143  "嘉里",
17144  "广东",
17145  "政务",
17146  "xyz",
17147  "yachts",
17148  "yahoo",
17149  "yamaxun",
17150  "yandex",
17151  "yodobashi",
17152  "yoga",
17153  "yokohama",
17154  "you",
17155  "youtube",
17156  "yun",
17157  "zappos",
17158  "zara",
17159  "zero",
17160  "zip",
17161  "zone",
17162  "zuerich",
17163  "co.krd",
17164  "edu.krd",
17165  "art.pl",
17166  "gliwice.pl",
17167  "krakow.pl",
17168  "poznan.pl",
17169  "wroc.pl",
17170  "zakopane.pl",
17171  "lib.de.us",
17172  "12chars.dev",
17173  "12chars.it",
17174  "12chars.pro",
17175  "cc.ua",
17176  "inf.ua",
17177  "ltd.ua",
17178  "611.to",
17179  "a2hosted.com",
17180  "cpserver.com",
17181  "aaa.vodka",
17182  "*.on-acorn.io",
17183  "activetrail.biz",
17184  "adaptable.app",
17185  "adobeaemcloud.com",
17186  "*.dev.adobeaemcloud.com",
17187  "aem.live",
17188  "hlx.live",
17189  "adobeaemcloud.net",
17190  "aem.page",
17191  "hlx.page",
17192  "hlx3.page",
17193  "adobeio-static.net",
17194  "adobeioruntime.net",
17195  "africa.com",
17196  "beep.pl",
17197  "airkitapps.com",
17198  "airkitapps-au.com",
17199  "airkitapps.eu",
17200  "aivencloud.com",
17201  "akadns.net",
17202  "akamai.net",
17203  "akamai-staging.net",
17204  "akamaiedge.net",
17205  "akamaiedge-staging.net",
17206  "akamaihd.net",
17207  "akamaihd-staging.net",
17208  "akamaiorigin.net",
17209  "akamaiorigin-staging.net",
17210  "akamaized.net",
17211  "akamaized-staging.net",
17212  "edgekey.net",
17213  "edgekey-staging.net",
17214  "edgesuite.net",
17215  "edgesuite-staging.net",
17216  "barsy.ca",
17217  "*.compute.estate",
17218  "*.alces.network",
17219  "kasserver.com",
17220  "altervista.org",
17221  "alwaysdata.net",
17222  "myamaze.net",
17223  "execute-api.cn-north-1.amazonaws.com.cn",
17224  "execute-api.cn-northwest-1.amazonaws.com.cn",
17225  "execute-api.af-south-1.amazonaws.com",
17226  "execute-api.ap-east-1.amazonaws.com",
17227  "execute-api.ap-northeast-1.amazonaws.com",
17228  "execute-api.ap-northeast-2.amazonaws.com",
17229  "execute-api.ap-northeast-3.amazonaws.com",
17230  "execute-api.ap-south-1.amazonaws.com",
17231  "execute-api.ap-south-2.amazonaws.com",
17232  "execute-api.ap-southeast-1.amazonaws.com",
17233  "execute-api.ap-southeast-2.amazonaws.com",
17234  "execute-api.ap-southeast-3.amazonaws.com",
17235  "execute-api.ap-southeast-4.amazonaws.com",
17236  "execute-api.ap-southeast-5.amazonaws.com",
17237  "execute-api.ca-central-1.amazonaws.com",
17238  "execute-api.ca-west-1.amazonaws.com",
17239  "execute-api.eu-central-1.amazonaws.com",
17240  "execute-api.eu-central-2.amazonaws.com",
17241  "execute-api.eu-north-1.amazonaws.com",
17242  "execute-api.eu-south-1.amazonaws.com",
17243  "execute-api.eu-south-2.amazonaws.com",
17244  "execute-api.eu-west-1.amazonaws.com",
17245  "execute-api.eu-west-2.amazonaws.com",
17246  "execute-api.eu-west-3.amazonaws.com",
17247  "execute-api.il-central-1.amazonaws.com",
17248  "execute-api.me-central-1.amazonaws.com",
17249  "execute-api.me-south-1.amazonaws.com",
17250  "execute-api.sa-east-1.amazonaws.com",
17251  "execute-api.us-east-1.amazonaws.com",
17252  "execute-api.us-east-2.amazonaws.com",
17253  "execute-api.us-gov-east-1.amazonaws.com",
17254  "execute-api.us-gov-west-1.amazonaws.com",
17255  "execute-api.us-west-1.amazonaws.com",
17256  "execute-api.us-west-2.amazonaws.com",
17257  "cloudfront.net",
17258  "auth.af-south-1.amazoncognito.com",
17259  "auth.ap-east-1.amazoncognito.com",
17260  "auth.ap-northeast-1.amazoncognito.com",
17261  "auth.ap-northeast-2.amazoncognito.com",
17262  "auth.ap-northeast-3.amazoncognito.com",
17263  "auth.ap-south-1.amazoncognito.com",
17264  "auth.ap-south-2.amazoncognito.com",
17265  "auth.ap-southeast-1.amazoncognito.com",
17266  "auth.ap-southeast-2.amazoncognito.com",
17267  "auth.ap-southeast-3.amazoncognito.com",
17268  "auth.ap-southeast-4.amazoncognito.com",
17269  "auth.ca-central-1.amazoncognito.com",
17270  "auth.ca-west-1.amazoncognito.com",
17271  "auth.eu-central-1.amazoncognito.com",
17272  "auth.eu-central-2.amazoncognito.com",
17273  "auth.eu-north-1.amazoncognito.com",
17274  "auth.eu-south-1.amazoncognito.com",
17275  "auth.eu-south-2.amazoncognito.com",
17276  "auth.eu-west-1.amazoncognito.com",
17277  "auth.eu-west-2.amazoncognito.com",
17278  "auth.eu-west-3.amazoncognito.com",
17279  "auth.il-central-1.amazoncognito.com",
17280  "auth.me-central-1.amazoncognito.com",
17281  "auth.me-south-1.amazoncognito.com",
17282  "auth.sa-east-1.amazoncognito.com",
17283  "auth.us-east-1.amazoncognito.com",
17284  "auth-fips.us-east-1.amazoncognito.com",
17285  "auth.us-east-2.amazoncognito.com",
17286  "auth-fips.us-east-2.amazoncognito.com",
17287  "auth-fips.us-gov-west-1.amazoncognito.com",
17288  "auth.us-west-1.amazoncognito.com",
17289  "auth-fips.us-west-1.amazoncognito.com",
17290  "auth.us-west-2.amazoncognito.com",
17291  "auth-fips.us-west-2.amazoncognito.com",
17292  "*.compute.amazonaws.com.cn",
17293  "*.compute.amazonaws.com",
17294  "*.compute-1.amazonaws.com",
17295  "us-east-1.amazonaws.com",
17296  "emrappui-prod.cn-north-1.amazonaws.com.cn",
17297  "emrnotebooks-prod.cn-north-1.amazonaws.com.cn",
17298  "emrstudio-prod.cn-north-1.amazonaws.com.cn",
17299  "emrappui-prod.cn-northwest-1.amazonaws.com.cn",
17300  "emrnotebooks-prod.cn-northwest-1.amazonaws.com.cn",
17301  "emrstudio-prod.cn-northwest-1.amazonaws.com.cn",
17302  "emrappui-prod.af-south-1.amazonaws.com",
17303  "emrnotebooks-prod.af-south-1.amazonaws.com",
17304  "emrstudio-prod.af-south-1.amazonaws.com",
17305  "emrappui-prod.ap-east-1.amazonaws.com",
17306  "emrnotebooks-prod.ap-east-1.amazonaws.com",
17307  "emrstudio-prod.ap-east-1.amazonaws.com",
17308  "emrappui-prod.ap-northeast-1.amazonaws.com",
17309  "emrnotebooks-prod.ap-northeast-1.amazonaws.com",
17310  "emrstudio-prod.ap-northeast-1.amazonaws.com",
17311  "emrappui-prod.ap-northeast-2.amazonaws.com",
17312  "emrnotebooks-prod.ap-northeast-2.amazonaws.com",
17313  "emrstudio-prod.ap-northeast-2.amazonaws.com",
17314  "emrappui-prod.ap-northeast-3.amazonaws.com",
17315  "emrnotebooks-prod.ap-northeast-3.amazonaws.com",
17316  "emrstudio-prod.ap-northeast-3.amazonaws.com",
17317  "emrappui-prod.ap-south-1.amazonaws.com",
17318  "emrnotebooks-prod.ap-south-1.amazonaws.com",
17319  "emrstudio-prod.ap-south-1.amazonaws.com",
17320  "emrappui-prod.ap-south-2.amazonaws.com",
17321  "emrnotebooks-prod.ap-south-2.amazonaws.com",
17322  "emrstudio-prod.ap-south-2.amazonaws.com",
17323  "emrappui-prod.ap-southeast-1.amazonaws.com",
17324  "emrnotebooks-prod.ap-southeast-1.amazonaws.com",
17325  "emrstudio-prod.ap-southeast-1.amazonaws.com",
17326  "emrappui-prod.ap-southeast-2.amazonaws.com",
17327  "emrnotebooks-prod.ap-southeast-2.amazonaws.com",
17328  "emrstudio-prod.ap-southeast-2.amazonaws.com",
17329  "emrappui-prod.ap-southeast-3.amazonaws.com",
17330  "emrnotebooks-prod.ap-southeast-3.amazonaws.com",
17331  "emrstudio-prod.ap-southeast-3.amazonaws.com",
17332  "emrappui-prod.ap-southeast-4.amazonaws.com",
17333  "emrnotebooks-prod.ap-southeast-4.amazonaws.com",
17334  "emrstudio-prod.ap-southeast-4.amazonaws.com",
17335  "emrappui-prod.ca-central-1.amazonaws.com",
17336  "emrnotebooks-prod.ca-central-1.amazonaws.com",
17337  "emrstudio-prod.ca-central-1.amazonaws.com",
17338  "emrappui-prod.ca-west-1.amazonaws.com",
17339  "emrnotebooks-prod.ca-west-1.amazonaws.com",
17340  "emrstudio-prod.ca-west-1.amazonaws.com",
17341  "emrappui-prod.eu-central-1.amazonaws.com",
17342  "emrnotebooks-prod.eu-central-1.amazonaws.com",
17343  "emrstudio-prod.eu-central-1.amazonaws.com",
17344  "emrappui-prod.eu-central-2.amazonaws.com",
17345  "emrnotebooks-prod.eu-central-2.amazonaws.com",
17346  "emrstudio-prod.eu-central-2.amazonaws.com",
17347  "emrappui-prod.eu-north-1.amazonaws.com",
17348  "emrnotebooks-prod.eu-north-1.amazonaws.com",
17349  "emrstudio-prod.eu-north-1.amazonaws.com",
17350  "emrappui-prod.eu-south-1.amazonaws.com",
17351  "emrnotebooks-prod.eu-south-1.amazonaws.com",
17352  "emrstudio-prod.eu-south-1.amazonaws.com",
17353  "emrappui-prod.eu-south-2.amazonaws.com",
17354  "emrnotebooks-prod.eu-south-2.amazonaws.com",
17355  "emrstudio-prod.eu-south-2.amazonaws.com",
17356  "emrappui-prod.eu-west-1.amazonaws.com",
17357  "emrnotebooks-prod.eu-west-1.amazonaws.com",
17358  "emrstudio-prod.eu-west-1.amazonaws.com",
17359  "emrappui-prod.eu-west-2.amazonaws.com",
17360  "emrnotebooks-prod.eu-west-2.amazonaws.com",
17361  "emrstudio-prod.eu-west-2.amazonaws.com",
17362  "emrappui-prod.eu-west-3.amazonaws.com",
17363  "emrnotebooks-prod.eu-west-3.amazonaws.com",
17364  "emrstudio-prod.eu-west-3.amazonaws.com",
17365  "emrappui-prod.il-central-1.amazonaws.com",
17366  "emrnotebooks-prod.il-central-1.amazonaws.com",
17367  "emrstudio-prod.il-central-1.amazonaws.com",
17368  "emrappui-prod.me-central-1.amazonaws.com",
17369  "emrnotebooks-prod.me-central-1.amazonaws.com",
17370  "emrstudio-prod.me-central-1.amazonaws.com",
17371  "emrappui-prod.me-south-1.amazonaws.com",
17372  "emrnotebooks-prod.me-south-1.amazonaws.com",
17373  "emrstudio-prod.me-south-1.amazonaws.com",
17374  "emrappui-prod.sa-east-1.amazonaws.com",
17375  "emrnotebooks-prod.sa-east-1.amazonaws.com",
17376  "emrstudio-prod.sa-east-1.amazonaws.com",
17377  "emrappui-prod.us-east-1.amazonaws.com",
17378  "emrnotebooks-prod.us-east-1.amazonaws.com",
17379  "emrstudio-prod.us-east-1.amazonaws.com",
17380  "emrappui-prod.us-east-2.amazonaws.com",
17381  "emrnotebooks-prod.us-east-2.amazonaws.com",
17382  "emrstudio-prod.us-east-2.amazonaws.com",
17383  "emrappui-prod.us-gov-east-1.amazonaws.com",
17384  "emrnotebooks-prod.us-gov-east-1.amazonaws.com",
17385  "emrstudio-prod.us-gov-east-1.amazonaws.com",
17386  "emrappui-prod.us-gov-west-1.amazonaws.com",
17387  "emrnotebooks-prod.us-gov-west-1.amazonaws.com",
17388  "emrstudio-prod.us-gov-west-1.amazonaws.com",
17389  "emrappui-prod.us-west-1.amazonaws.com",
17390  "emrnotebooks-prod.us-west-1.amazonaws.com",
17391  "emrstudio-prod.us-west-1.amazonaws.com",
17392  "emrappui-prod.us-west-2.amazonaws.com",
17393  "emrnotebooks-prod.us-west-2.amazonaws.com",
17394  "emrstudio-prod.us-west-2.amazonaws.com",
17395  "*.cn-north-1.airflow.amazonaws.com.cn",
17396  "*.cn-northwest-1.airflow.amazonaws.com.cn",
17397  "*.af-south-1.airflow.amazonaws.com",
17398  "*.ap-east-1.airflow.amazonaws.com",
17399  "*.ap-northeast-1.airflow.amazonaws.com",
17400  "*.ap-northeast-2.airflow.amazonaws.com",
17401  "*.ap-northeast-3.airflow.amazonaws.com",
17402  "*.ap-south-1.airflow.amazonaws.com",
17403  "*.ap-south-2.airflow.amazonaws.com",
17404  "*.ap-southeast-1.airflow.amazonaws.com",
17405  "*.ap-southeast-2.airflow.amazonaws.com",
17406  "*.ap-southeast-3.airflow.amazonaws.com",
17407  "*.ap-southeast-4.airflow.amazonaws.com",
17408  "*.ca-central-1.airflow.amazonaws.com",
17409  "*.ca-west-1.airflow.amazonaws.com",
17410  "*.eu-central-1.airflow.amazonaws.com",
17411  "*.eu-central-2.airflow.amazonaws.com",
17412  "*.eu-north-1.airflow.amazonaws.com",
17413  "*.eu-south-1.airflow.amazonaws.com",
17414  "*.eu-south-2.airflow.amazonaws.com",
17415  "*.eu-west-1.airflow.amazonaws.com",
17416  "*.eu-west-2.airflow.amazonaws.com",
17417  "*.eu-west-3.airflow.amazonaws.com",
17418  "*.il-central-1.airflow.amazonaws.com",
17419  "*.me-central-1.airflow.amazonaws.com",
17420  "*.me-south-1.airflow.amazonaws.com",
17421  "*.sa-east-1.airflow.amazonaws.com",
17422  "*.us-east-1.airflow.amazonaws.com",
17423  "*.us-east-2.airflow.amazonaws.com",
17424  "*.us-west-1.airflow.amazonaws.com",
17425  "*.us-west-2.airflow.amazonaws.com",
17426  "s3.dualstack.cn-north-1.amazonaws.com.cn",
17427  "s3-accesspoint.dualstack.cn-north-1.amazonaws.com.cn",
17428  "s3-website.dualstack.cn-north-1.amazonaws.com.cn",
17429  "s3.cn-north-1.amazonaws.com.cn",
17430  "s3-accesspoint.cn-north-1.amazonaws.com.cn",
17431  "s3-deprecated.cn-north-1.amazonaws.com.cn",
17432  "s3-object-lambda.cn-north-1.amazonaws.com.cn",
17433  "s3-website.cn-north-1.amazonaws.com.cn",
17434  "s3.dualstack.cn-northwest-1.amazonaws.com.cn",
17435  "s3-accesspoint.dualstack.cn-northwest-1.amazonaws.com.cn",
17436  "s3.cn-northwest-1.amazonaws.com.cn",
17437  "s3-accesspoint.cn-northwest-1.amazonaws.com.cn",
17438  "s3-object-lambda.cn-northwest-1.amazonaws.com.cn",
17439  "s3-website.cn-northwest-1.amazonaws.com.cn",
17440  "s3.dualstack.af-south-1.amazonaws.com",
17441  "s3-accesspoint.dualstack.af-south-1.amazonaws.com",
17442  "s3-website.dualstack.af-south-1.amazonaws.com",
17443  "s3.af-south-1.amazonaws.com",
17444  "s3-accesspoint.af-south-1.amazonaws.com",
17445  "s3-object-lambda.af-south-1.amazonaws.com",
17446  "s3-website.af-south-1.amazonaws.com",
17447  "s3.dualstack.ap-east-1.amazonaws.com",
17448  "s3-accesspoint.dualstack.ap-east-1.amazonaws.com",
17449  "s3.ap-east-1.amazonaws.com",
17450  "s3-accesspoint.ap-east-1.amazonaws.com",
17451  "s3-object-lambda.ap-east-1.amazonaws.com",
17452  "s3-website.ap-east-1.amazonaws.com",
17453  "s3.dualstack.ap-northeast-1.amazonaws.com",
17454  "s3-accesspoint.dualstack.ap-northeast-1.amazonaws.com",
17455  "s3-website.dualstack.ap-northeast-1.amazonaws.com",
17456  "s3.ap-northeast-1.amazonaws.com",
17457  "s3-accesspoint.ap-northeast-1.amazonaws.com",
17458  "s3-object-lambda.ap-northeast-1.amazonaws.com",
17459  "s3-website.ap-northeast-1.amazonaws.com",
17460  "s3.dualstack.ap-northeast-2.amazonaws.com",
17461  "s3-accesspoint.dualstack.ap-northeast-2.amazonaws.com",
17462  "s3-website.dualstack.ap-northeast-2.amazonaws.com",
17463  "s3.ap-northeast-2.amazonaws.com",
17464  "s3-accesspoint.ap-northeast-2.amazonaws.com",
17465  "s3-object-lambda.ap-northeast-2.amazonaws.com",
17466  "s3-website.ap-northeast-2.amazonaws.com",
17467  "s3.dualstack.ap-northeast-3.amazonaws.com",
17468  "s3-accesspoint.dualstack.ap-northeast-3.amazonaws.com",
17469  "s3-website.dualstack.ap-northeast-3.amazonaws.com",
17470  "s3.ap-northeast-3.amazonaws.com",
17471  "s3-accesspoint.ap-northeast-3.amazonaws.com",
17472  "s3-object-lambda.ap-northeast-3.amazonaws.com",
17473  "s3-website.ap-northeast-3.amazonaws.com",
17474  "s3.dualstack.ap-south-1.amazonaws.com",
17475  "s3-accesspoint.dualstack.ap-south-1.amazonaws.com",
17476  "s3-website.dualstack.ap-south-1.amazonaws.com",
17477  "s3.ap-south-1.amazonaws.com",
17478  "s3-accesspoint.ap-south-1.amazonaws.com",
17479  "s3-object-lambda.ap-south-1.amazonaws.com",
17480  "s3-website.ap-south-1.amazonaws.com",
17481  "s3.dualstack.ap-south-2.amazonaws.com",
17482  "s3-accesspoint.dualstack.ap-south-2.amazonaws.com",
17483  "s3-website.dualstack.ap-south-2.amazonaws.com",
17484  "s3.ap-south-2.amazonaws.com",
17485  "s3-accesspoint.ap-south-2.amazonaws.com",
17486  "s3-object-lambda.ap-south-2.amazonaws.com",
17487  "s3-website.ap-south-2.amazonaws.com",
17488  "s3.dualstack.ap-southeast-1.amazonaws.com",
17489  "s3-accesspoint.dualstack.ap-southeast-1.amazonaws.com",
17490  "s3-website.dualstack.ap-southeast-1.amazonaws.com",
17491  "s3.ap-southeast-1.amazonaws.com",
17492  "s3-accesspoint.ap-southeast-1.amazonaws.com",
17493  "s3-object-lambda.ap-southeast-1.amazonaws.com",
17494  "s3-website.ap-southeast-1.amazonaws.com",
17495  "s3.dualstack.ap-southeast-2.amazonaws.com",
17496  "s3-accesspoint.dualstack.ap-southeast-2.amazonaws.com",
17497  "s3-website.dualstack.ap-southeast-2.amazonaws.com",
17498  "s3.ap-southeast-2.amazonaws.com",
17499  "s3-accesspoint.ap-southeast-2.amazonaws.com",
17500  "s3-object-lambda.ap-southeast-2.amazonaws.com",
17501  "s3-website.ap-southeast-2.amazonaws.com",
17502  "s3.dualstack.ap-southeast-3.amazonaws.com",
17503  "s3-accesspoint.dualstack.ap-southeast-3.amazonaws.com",
17504  "s3-website.dualstack.ap-southeast-3.amazonaws.com",
17505  "s3.ap-southeast-3.amazonaws.com",
17506  "s3-accesspoint.ap-southeast-3.amazonaws.com",
17507  "s3-object-lambda.ap-southeast-3.amazonaws.com",
17508  "s3-website.ap-southeast-3.amazonaws.com",
17509  "s3.dualstack.ap-southeast-4.amazonaws.com",
17510  "s3-accesspoint.dualstack.ap-southeast-4.amazonaws.com",
17511  "s3-website.dualstack.ap-southeast-4.amazonaws.com",
17512  "s3.ap-southeast-4.amazonaws.com",
17513  "s3-accesspoint.ap-southeast-4.amazonaws.com",
17514  "s3-object-lambda.ap-southeast-4.amazonaws.com",
17515  "s3-website.ap-southeast-4.amazonaws.com",
17516  "s3.dualstack.ap-southeast-5.amazonaws.com",
17517  "s3-accesspoint.dualstack.ap-southeast-5.amazonaws.com",
17518  "s3-website.dualstack.ap-southeast-5.amazonaws.com",
17519  "s3.ap-southeast-5.amazonaws.com",
17520  "s3-accesspoint.ap-southeast-5.amazonaws.com",
17521  "s3-deprecated.ap-southeast-5.amazonaws.com",
17522  "s3-object-lambda.ap-southeast-5.amazonaws.com",
17523  "s3-website.ap-southeast-5.amazonaws.com",
17524  "s3.dualstack.ca-central-1.amazonaws.com",
17525  "s3-accesspoint.dualstack.ca-central-1.amazonaws.com",
17526  "s3-accesspoint-fips.dualstack.ca-central-1.amazonaws.com",
17527  "s3-fips.dualstack.ca-central-1.amazonaws.com",
17528  "s3-website.dualstack.ca-central-1.amazonaws.com",
17529  "s3.ca-central-1.amazonaws.com",
17530  "s3-accesspoint.ca-central-1.amazonaws.com",
17531  "s3-accesspoint-fips.ca-central-1.amazonaws.com",
17532  "s3-fips.ca-central-1.amazonaws.com",
17533  "s3-object-lambda.ca-central-1.amazonaws.com",
17534  "s3-website.ca-central-1.amazonaws.com",
17535  "s3.dualstack.ca-west-1.amazonaws.com",
17536  "s3-accesspoint.dualstack.ca-west-1.amazonaws.com",
17537  "s3-accesspoint-fips.dualstack.ca-west-1.amazonaws.com",
17538  "s3-fips.dualstack.ca-west-1.amazonaws.com",
17539  "s3-website.dualstack.ca-west-1.amazonaws.com",
17540  "s3.ca-west-1.amazonaws.com",
17541  "s3-accesspoint.ca-west-1.amazonaws.com",
17542  "s3-accesspoint-fips.ca-west-1.amazonaws.com",
17543  "s3-fips.ca-west-1.amazonaws.com",
17544  "s3-object-lambda.ca-west-1.amazonaws.com",
17545  "s3-website.ca-west-1.amazonaws.com",
17546  "s3.dualstack.eu-central-1.amazonaws.com",
17547  "s3-accesspoint.dualstack.eu-central-1.amazonaws.com",
17548  "s3-website.dualstack.eu-central-1.amazonaws.com",
17549  "s3.eu-central-1.amazonaws.com",
17550  "s3-accesspoint.eu-central-1.amazonaws.com",
17551  "s3-object-lambda.eu-central-1.amazonaws.com",
17552  "s3-website.eu-central-1.amazonaws.com",
17553  "s3.dualstack.eu-central-2.amazonaws.com",
17554  "s3-accesspoint.dualstack.eu-central-2.amazonaws.com",
17555  "s3-website.dualstack.eu-central-2.amazonaws.com",
17556  "s3.eu-central-2.amazonaws.com",
17557  "s3-accesspoint.eu-central-2.amazonaws.com",
17558  "s3-object-lambda.eu-central-2.amazonaws.com",
17559  "s3-website.eu-central-2.amazonaws.com",
17560  "s3.dualstack.eu-north-1.amazonaws.com",
17561  "s3-accesspoint.dualstack.eu-north-1.amazonaws.com",
17562  "s3.eu-north-1.amazonaws.com",
17563  "s3-accesspoint.eu-north-1.amazonaws.com",
17564  "s3-object-lambda.eu-north-1.amazonaws.com",
17565  "s3-website.eu-north-1.amazonaws.com",
17566  "s3.dualstack.eu-south-1.amazonaws.com",
17567  "s3-accesspoint.dualstack.eu-south-1.amazonaws.com",
17568  "s3-website.dualstack.eu-south-1.amazonaws.com",
17569  "s3.eu-south-1.amazonaws.com",
17570  "s3-accesspoint.eu-south-1.amazonaws.com",
17571  "s3-object-lambda.eu-south-1.amazonaws.com",
17572  "s3-website.eu-south-1.amazonaws.com",
17573  "s3.dualstack.eu-south-2.amazonaws.com",
17574  "s3-accesspoint.dualstack.eu-south-2.amazonaws.com",
17575  "s3-website.dualstack.eu-south-2.amazonaws.com",
17576  "s3.eu-south-2.amazonaws.com",
17577  "s3-accesspoint.eu-south-2.amazonaws.com",
17578  "s3-object-lambda.eu-south-2.amazonaws.com",
17579  "s3-website.eu-south-2.amazonaws.com",
17580  "s3.dualstack.eu-west-1.amazonaws.com",
17581  "s3-accesspoint.dualstack.eu-west-1.amazonaws.com",
17582  "s3-website.dualstack.eu-west-1.amazonaws.com",
17583  "s3.eu-west-1.amazonaws.com",
17584  "s3-accesspoint.eu-west-1.amazonaws.com",
17585  "s3-deprecated.eu-west-1.amazonaws.com",
17586  "s3-object-lambda.eu-west-1.amazonaws.com",
17587  "s3-website.eu-west-1.amazonaws.com",
17588  "s3.dualstack.eu-west-2.amazonaws.com",
17589  "s3-accesspoint.dualstack.eu-west-2.amazonaws.com",
17590  "s3.eu-west-2.amazonaws.com",
17591  "s3-accesspoint.eu-west-2.amazonaws.com",
17592  "s3-object-lambda.eu-west-2.amazonaws.com",
17593  "s3-website.eu-west-2.amazonaws.com",
17594  "s3.dualstack.eu-west-3.amazonaws.com",
17595  "s3-accesspoint.dualstack.eu-west-3.amazonaws.com",
17596  "s3-website.dualstack.eu-west-3.amazonaws.com",
17597  "s3.eu-west-3.amazonaws.com",
17598  "s3-accesspoint.eu-west-3.amazonaws.com",
17599  "s3-object-lambda.eu-west-3.amazonaws.com",
17600  "s3-website.eu-west-3.amazonaws.com",
17601  "s3.dualstack.il-central-1.amazonaws.com",
17602  "s3-accesspoint.dualstack.il-central-1.amazonaws.com",
17603  "s3-website.dualstack.il-central-1.amazonaws.com",
17604  "s3.il-central-1.amazonaws.com",
17605  "s3-accesspoint.il-central-1.amazonaws.com",
17606  "s3-object-lambda.il-central-1.amazonaws.com",
17607  "s3-website.il-central-1.amazonaws.com",
17608  "s3.dualstack.me-central-1.amazonaws.com",
17609  "s3-accesspoint.dualstack.me-central-1.amazonaws.com",
17610  "s3-website.dualstack.me-central-1.amazonaws.com",
17611  "s3.me-central-1.amazonaws.com",
17612  "s3-accesspoint.me-central-1.amazonaws.com",
17613  "s3-object-lambda.me-central-1.amazonaws.com",
17614  "s3-website.me-central-1.amazonaws.com",
17615  "s3.dualstack.me-south-1.amazonaws.com",
17616  "s3-accesspoint.dualstack.me-south-1.amazonaws.com",
17617  "s3.me-south-1.amazonaws.com",
17618  "s3-accesspoint.me-south-1.amazonaws.com",
17619  "s3-object-lambda.me-south-1.amazonaws.com",
17620  "s3-website.me-south-1.amazonaws.com",
17621  "s3.amazonaws.com",
17622  "s3-1.amazonaws.com",
17623  "s3-ap-east-1.amazonaws.com",
17624  "s3-ap-northeast-1.amazonaws.com",
17625  "s3-ap-northeast-2.amazonaws.com",
17626  "s3-ap-northeast-3.amazonaws.com",
17627  "s3-ap-south-1.amazonaws.com",
17628  "s3-ap-southeast-1.amazonaws.com",
17629  "s3-ap-southeast-2.amazonaws.com",
17630  "s3-ca-central-1.amazonaws.com",
17631  "s3-eu-central-1.amazonaws.com",
17632  "s3-eu-north-1.amazonaws.com",
17633  "s3-eu-west-1.amazonaws.com",
17634  "s3-eu-west-2.amazonaws.com",
17635  "s3-eu-west-3.amazonaws.com",
17636  "s3-external-1.amazonaws.com",
17637  "s3-fips-us-gov-east-1.amazonaws.com",
17638  "s3-fips-us-gov-west-1.amazonaws.com",
17639  "mrap.accesspoint.s3-global.amazonaws.com",
17640  "s3-me-south-1.amazonaws.com",
17641  "s3-sa-east-1.amazonaws.com",
17642  "s3-us-east-2.amazonaws.com",
17643  "s3-us-gov-east-1.amazonaws.com",
17644  "s3-us-gov-west-1.amazonaws.com",
17645  "s3-us-west-1.amazonaws.com",
17646  "s3-us-west-2.amazonaws.com",
17647  "s3-website-ap-northeast-1.amazonaws.com",
17648  "s3-website-ap-southeast-1.amazonaws.com",
17649  "s3-website-ap-southeast-2.amazonaws.com",
17650  "s3-website-eu-west-1.amazonaws.com",
17651  "s3-website-sa-east-1.amazonaws.com",
17652  "s3-website-us-east-1.amazonaws.com",
17653  "s3-website-us-gov-west-1.amazonaws.com",
17654  "s3-website-us-west-1.amazonaws.com",
17655  "s3-website-us-west-2.amazonaws.com",
17656  "s3.dualstack.sa-east-1.amazonaws.com",
17657  "s3-accesspoint.dualstack.sa-east-1.amazonaws.com",
17658  "s3-website.dualstack.sa-east-1.amazonaws.com",
17659  "s3.sa-east-1.amazonaws.com",
17660  "s3-accesspoint.sa-east-1.amazonaws.com",
17661  "s3-object-lambda.sa-east-1.amazonaws.com",
17662  "s3-website.sa-east-1.amazonaws.com",
17663  "s3.dualstack.us-east-1.amazonaws.com",
17664  "s3-accesspoint.dualstack.us-east-1.amazonaws.com",
17665  "s3-accesspoint-fips.dualstack.us-east-1.amazonaws.com",
17666  "s3-fips.dualstack.us-east-1.amazonaws.com",
17667  "s3-website.dualstack.us-east-1.amazonaws.com",
17668  "s3.us-east-1.amazonaws.com",
17669  "s3-accesspoint.us-east-1.amazonaws.com",
17670  "s3-accesspoint-fips.us-east-1.amazonaws.com",
17671  "s3-deprecated.us-east-1.amazonaws.com",
17672  "s3-fips.us-east-1.amazonaws.com",
17673  "s3-object-lambda.us-east-1.amazonaws.com",
17674  "s3-website.us-east-1.amazonaws.com",
17675  "s3.dualstack.us-east-2.amazonaws.com",
17676  "s3-accesspoint.dualstack.us-east-2.amazonaws.com",
17677  "s3-accesspoint-fips.dualstack.us-east-2.amazonaws.com",
17678  "s3-fips.dualstack.us-east-2.amazonaws.com",
17679  "s3-website.dualstack.us-east-2.amazonaws.com",
17680  "s3.us-east-2.amazonaws.com",
17681  "s3-accesspoint.us-east-2.amazonaws.com",
17682  "s3-accesspoint-fips.us-east-2.amazonaws.com",
17683  "s3-deprecated.us-east-2.amazonaws.com",
17684  "s3-fips.us-east-2.amazonaws.com",
17685  "s3-object-lambda.us-east-2.amazonaws.com",
17686  "s3-website.us-east-2.amazonaws.com",
17687  "s3.dualstack.us-gov-east-1.amazonaws.com",
17688  "s3-accesspoint.dualstack.us-gov-east-1.amazonaws.com",
17689  "s3-accesspoint-fips.dualstack.us-gov-east-1.amazonaws.com",
17690  "s3-fips.dualstack.us-gov-east-1.amazonaws.com",
17691  "s3.us-gov-east-1.amazonaws.com",
17692  "s3-accesspoint.us-gov-east-1.amazonaws.com",
17693  "s3-accesspoint-fips.us-gov-east-1.amazonaws.com",
17694  "s3-fips.us-gov-east-1.amazonaws.com",
17695  "s3-object-lambda.us-gov-east-1.amazonaws.com",
17696  "s3-website.us-gov-east-1.amazonaws.com",
17697  "s3.dualstack.us-gov-west-1.amazonaws.com",
17698  "s3-accesspoint.dualstack.us-gov-west-1.amazonaws.com",
17699  "s3-accesspoint-fips.dualstack.us-gov-west-1.amazonaws.com",
17700  "s3-fips.dualstack.us-gov-west-1.amazonaws.com",
17701  "s3.us-gov-west-1.amazonaws.com",
17702  "s3-accesspoint.us-gov-west-1.amazonaws.com",
17703  "s3-accesspoint-fips.us-gov-west-1.amazonaws.com",
17704  "s3-fips.us-gov-west-1.amazonaws.com",
17705  "s3-object-lambda.us-gov-west-1.amazonaws.com",
17706  "s3-website.us-gov-west-1.amazonaws.com",
17707  "s3.dualstack.us-west-1.amazonaws.com",
17708  "s3-accesspoint.dualstack.us-west-1.amazonaws.com",
17709  "s3-accesspoint-fips.dualstack.us-west-1.amazonaws.com",
17710  "s3-fips.dualstack.us-west-1.amazonaws.com",
17711  "s3-website.dualstack.us-west-1.amazonaws.com",
17712  "s3.us-west-1.amazonaws.com",
17713  "s3-accesspoint.us-west-1.amazonaws.com",
17714  "s3-accesspoint-fips.us-west-1.amazonaws.com",
17715  "s3-fips.us-west-1.amazonaws.com",
17716  "s3-object-lambda.us-west-1.amazonaws.com",
17717  "s3-website.us-west-1.amazonaws.com",
17718  "s3.dualstack.us-west-2.amazonaws.com",
17719  "s3-accesspoint.dualstack.us-west-2.amazonaws.com",
17720  "s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com",
17721  "s3-fips.dualstack.us-west-2.amazonaws.com",
17722  "s3-website.dualstack.us-west-2.amazonaws.com",
17723  "s3.us-west-2.amazonaws.com",
17724  "s3-accesspoint.us-west-2.amazonaws.com",
17725  "s3-accesspoint-fips.us-west-2.amazonaws.com",
17726  "s3-deprecated.us-west-2.amazonaws.com",
17727  "s3-fips.us-west-2.amazonaws.com",
17728  "s3-object-lambda.us-west-2.amazonaws.com",
17729  "s3-website.us-west-2.amazonaws.com",
17730  "labeling.ap-northeast-1.sagemaker.aws",
17731  "labeling.ap-northeast-2.sagemaker.aws",
17732  "labeling.ap-south-1.sagemaker.aws",
17733  "labeling.ap-southeast-1.sagemaker.aws",
17734  "labeling.ap-southeast-2.sagemaker.aws",
17735  "labeling.ca-central-1.sagemaker.aws",
17736  "labeling.eu-central-1.sagemaker.aws",
17737  "labeling.eu-west-1.sagemaker.aws",
17738  "labeling.eu-west-2.sagemaker.aws",
17739  "labeling.us-east-1.sagemaker.aws",
17740  "labeling.us-east-2.sagemaker.aws",
17741  "labeling.us-west-2.sagemaker.aws",
17742  "notebook.af-south-1.sagemaker.aws",
17743  "notebook.ap-east-1.sagemaker.aws",
17744  "notebook.ap-northeast-1.sagemaker.aws",
17745  "notebook.ap-northeast-2.sagemaker.aws",
17746  "notebook.ap-northeast-3.sagemaker.aws",
17747  "notebook.ap-south-1.sagemaker.aws",
17748  "notebook.ap-south-2.sagemaker.aws",
17749  "notebook.ap-southeast-1.sagemaker.aws",
17750  "notebook.ap-southeast-2.sagemaker.aws",
17751  "notebook.ap-southeast-3.sagemaker.aws",
17752  "notebook.ap-southeast-4.sagemaker.aws",
17753  "notebook.ca-central-1.sagemaker.aws",
17754  "notebook-fips.ca-central-1.sagemaker.aws",
17755  "notebook.ca-west-1.sagemaker.aws",
17756  "notebook-fips.ca-west-1.sagemaker.aws",
17757  "notebook.eu-central-1.sagemaker.aws",
17758  "notebook.eu-central-2.sagemaker.aws",
17759  "notebook.eu-north-1.sagemaker.aws",
17760  "notebook.eu-south-1.sagemaker.aws",
17761  "notebook.eu-south-2.sagemaker.aws",
17762  "notebook.eu-west-1.sagemaker.aws",
17763  "notebook.eu-west-2.sagemaker.aws",
17764  "notebook.eu-west-3.sagemaker.aws",
17765  "notebook.il-central-1.sagemaker.aws",
17766  "notebook.me-central-1.sagemaker.aws",
17767  "notebook.me-south-1.sagemaker.aws",
17768  "notebook.sa-east-1.sagemaker.aws",
17769  "notebook.us-east-1.sagemaker.aws",
17770  "notebook-fips.us-east-1.sagemaker.aws",
17771  "notebook.us-east-2.sagemaker.aws",
17772  "notebook-fips.us-east-2.sagemaker.aws",
17773  "notebook.us-gov-east-1.sagemaker.aws",
17774  "notebook-fips.us-gov-east-1.sagemaker.aws",
17775  "notebook.us-gov-west-1.sagemaker.aws",
17776  "notebook-fips.us-gov-west-1.sagemaker.aws",
17777  "notebook.us-west-1.sagemaker.aws",
17778  "notebook-fips.us-west-1.sagemaker.aws",
17779  "notebook.us-west-2.sagemaker.aws",
17780  "notebook-fips.us-west-2.sagemaker.aws",
17781  "notebook.cn-north-1.sagemaker.com.cn",
17782  "notebook.cn-northwest-1.sagemaker.com.cn",
17783  "studio.af-south-1.sagemaker.aws",
17784  "studio.ap-east-1.sagemaker.aws",
17785  "studio.ap-northeast-1.sagemaker.aws",
17786  "studio.ap-northeast-2.sagemaker.aws",
17787  "studio.ap-northeast-3.sagemaker.aws",
17788  "studio.ap-south-1.sagemaker.aws",
17789  "studio.ap-southeast-1.sagemaker.aws",
17790  "studio.ap-southeast-2.sagemaker.aws",
17791  "studio.ap-southeast-3.sagemaker.aws",
17792  "studio.ca-central-1.sagemaker.aws",
17793  "studio.eu-central-1.sagemaker.aws",
17794  "studio.eu-north-1.sagemaker.aws",
17795  "studio.eu-south-1.sagemaker.aws",
17796  "studio.eu-south-2.sagemaker.aws",
17797  "studio.eu-west-1.sagemaker.aws",
17798  "studio.eu-west-2.sagemaker.aws",
17799  "studio.eu-west-3.sagemaker.aws",
17800  "studio.il-central-1.sagemaker.aws",
17801  "studio.me-central-1.sagemaker.aws",
17802  "studio.me-south-1.sagemaker.aws",
17803  "studio.sa-east-1.sagemaker.aws",
17804  "studio.us-east-1.sagemaker.aws",
17805  "studio.us-east-2.sagemaker.aws",
17806  "studio.us-gov-east-1.sagemaker.aws",
17807  "studio-fips.us-gov-east-1.sagemaker.aws",
17808  "studio.us-gov-west-1.sagemaker.aws",
17809  "studio-fips.us-gov-west-1.sagemaker.aws",
17810  "studio.us-west-1.sagemaker.aws",
17811  "studio.us-west-2.sagemaker.aws",
17812  "studio.cn-north-1.sagemaker.com.cn",
17813  "studio.cn-northwest-1.sagemaker.com.cn",
17814  "*.experiments.sagemaker.aws",
17815  "analytics-gateway.ap-northeast-1.amazonaws.com",
17816  "analytics-gateway.ap-northeast-2.amazonaws.com",
17817  "analytics-gateway.ap-south-1.amazonaws.com",
17818  "analytics-gateway.ap-southeast-1.amazonaws.com",
17819  "analytics-gateway.ap-southeast-2.amazonaws.com",
17820  "analytics-gateway.eu-central-1.amazonaws.com",
17821  "analytics-gateway.eu-west-1.amazonaws.com",
17822  "analytics-gateway.us-east-1.amazonaws.com",
17823  "analytics-gateway.us-east-2.amazonaws.com",
17824  "analytics-gateway.us-west-2.amazonaws.com",
17825  "amplifyapp.com",
17826  "*.awsapprunner.com",
17827  "webview-assets.aws-cloud9.af-south-1.amazonaws.com",
17828  "vfs.cloud9.af-south-1.amazonaws.com",
17829  "webview-assets.cloud9.af-south-1.amazonaws.com",
17830  "webview-assets.aws-cloud9.ap-east-1.amazonaws.com",
17831  "vfs.cloud9.ap-east-1.amazonaws.com",
17832  "webview-assets.cloud9.ap-east-1.amazonaws.com",
17833  "webview-assets.aws-cloud9.ap-northeast-1.amazonaws.com",
17834  "vfs.cloud9.ap-northeast-1.amazonaws.com",
17835  "webview-assets.cloud9.ap-northeast-1.amazonaws.com",
17836  "webview-assets.aws-cloud9.ap-northeast-2.amazonaws.com",
17837  "vfs.cloud9.ap-northeast-2.amazonaws.com",
17838  "webview-assets.cloud9.ap-northeast-2.amazonaws.com",
17839  "webview-assets.aws-cloud9.ap-northeast-3.amazonaws.com",
17840  "vfs.cloud9.ap-northeast-3.amazonaws.com",
17841  "webview-assets.cloud9.ap-northeast-3.amazonaws.com",
17842  "webview-assets.aws-cloud9.ap-south-1.amazonaws.com",
17843  "vfs.cloud9.ap-south-1.amazonaws.com",
17844  "webview-assets.cloud9.ap-south-1.amazonaws.com",
17845  "webview-assets.aws-cloud9.ap-southeast-1.amazonaws.com",
17846  "vfs.cloud9.ap-southeast-1.amazonaws.com",
17847  "webview-assets.cloud9.ap-southeast-1.amazonaws.com",
17848  "webview-assets.aws-cloud9.ap-southeast-2.amazonaws.com",
17849  "vfs.cloud9.ap-southeast-2.amazonaws.com",
17850  "webview-assets.cloud9.ap-southeast-2.amazonaws.com",
17851  "webview-assets.aws-cloud9.ca-central-1.amazonaws.com",
17852  "vfs.cloud9.ca-central-1.amazonaws.com",
17853  "webview-assets.cloud9.ca-central-1.amazonaws.com",
17854  "webview-assets.aws-cloud9.eu-central-1.amazonaws.com",
17855  "vfs.cloud9.eu-central-1.amazonaws.com",
17856  "webview-assets.cloud9.eu-central-1.amazonaws.com",
17857  "webview-assets.aws-cloud9.eu-north-1.amazonaws.com",
17858  "vfs.cloud9.eu-north-1.amazonaws.com",
17859  "webview-assets.cloud9.eu-north-1.amazonaws.com",
17860  "webview-assets.aws-cloud9.eu-south-1.amazonaws.com",
17861  "vfs.cloud9.eu-south-1.amazonaws.com",
17862  "webview-assets.cloud9.eu-south-1.amazonaws.com",
17863  "webview-assets.aws-cloud9.eu-west-1.amazonaws.com",
17864  "vfs.cloud9.eu-west-1.amazonaws.com",
17865  "webview-assets.cloud9.eu-west-1.amazonaws.com",
17866  "webview-assets.aws-cloud9.eu-west-2.amazonaws.com",
17867  "vfs.cloud9.eu-west-2.amazonaws.com",
17868  "webview-assets.cloud9.eu-west-2.amazonaws.com",
17869  "webview-assets.aws-cloud9.eu-west-3.amazonaws.com",
17870  "vfs.cloud9.eu-west-3.amazonaws.com",
17871  "webview-assets.cloud9.eu-west-3.amazonaws.com",
17872  "webview-assets.aws-cloud9.il-central-1.amazonaws.com",
17873  "vfs.cloud9.il-central-1.amazonaws.com",
17874  "webview-assets.aws-cloud9.me-south-1.amazonaws.com",
17875  "vfs.cloud9.me-south-1.amazonaws.com",
17876  "webview-assets.cloud9.me-south-1.amazonaws.com",
17877  "webview-assets.aws-cloud9.sa-east-1.amazonaws.com",
17878  "vfs.cloud9.sa-east-1.amazonaws.com",
17879  "webview-assets.cloud9.sa-east-1.amazonaws.com",
17880  "webview-assets.aws-cloud9.us-east-1.amazonaws.com",
17881  "vfs.cloud9.us-east-1.amazonaws.com",
17882  "webview-assets.cloud9.us-east-1.amazonaws.com",
17883  "webview-assets.aws-cloud9.us-east-2.amazonaws.com",
17884  "vfs.cloud9.us-east-2.amazonaws.com",
17885  "webview-assets.cloud9.us-east-2.amazonaws.com",
17886  "webview-assets.aws-cloud9.us-west-1.amazonaws.com",
17887  "vfs.cloud9.us-west-1.amazonaws.com",
17888  "webview-assets.cloud9.us-west-1.amazonaws.com",
17889  "webview-assets.aws-cloud9.us-west-2.amazonaws.com",
17890  "vfs.cloud9.us-west-2.amazonaws.com",
17891  "webview-assets.cloud9.us-west-2.amazonaws.com",
17892  "awsapps.com",
17893  "cn-north-1.eb.amazonaws.com.cn",
17894  "cn-northwest-1.eb.amazonaws.com.cn",
17895  "elasticbeanstalk.com",
17896  "af-south-1.elasticbeanstalk.com",
17897  "ap-east-1.elasticbeanstalk.com",
17898  "ap-northeast-1.elasticbeanstalk.com",
17899  "ap-northeast-2.elasticbeanstalk.com",
17900  "ap-northeast-3.elasticbeanstalk.com",
17901  "ap-south-1.elasticbeanstalk.com",
17902  "ap-southeast-1.elasticbeanstalk.com",
17903  "ap-southeast-2.elasticbeanstalk.com",
17904  "ap-southeast-3.elasticbeanstalk.com",
17905  "ca-central-1.elasticbeanstalk.com",
17906  "eu-central-1.elasticbeanstalk.com",
17907  "eu-north-1.elasticbeanstalk.com",
17908  "eu-south-1.elasticbeanstalk.com",
17909  "eu-west-1.elasticbeanstalk.com",
17910  "eu-west-2.elasticbeanstalk.com",
17911  "eu-west-3.elasticbeanstalk.com",
17912  "il-central-1.elasticbeanstalk.com",
17913  "me-south-1.elasticbeanstalk.com",
17914  "sa-east-1.elasticbeanstalk.com",
17915  "us-east-1.elasticbeanstalk.com",
17916  "us-east-2.elasticbeanstalk.com",
17917  "us-gov-east-1.elasticbeanstalk.com",
17918  "us-gov-west-1.elasticbeanstalk.com",
17919  "us-west-1.elasticbeanstalk.com",
17920  "us-west-2.elasticbeanstalk.com",
17921  "*.elb.amazonaws.com.cn",
17922  "*.elb.amazonaws.com",
17923  "awsglobalaccelerator.com",
17924  "*.private.repost.aws",
17925  "eero.online",
17926  "eero-stage.online",
17927  "apigee.io",
17928  "panel.dev",
17929  "siiites.com",
17930  "appspacehosted.com",
17931  "appspaceusercontent.com",
17932  "appudo.net",
17933  "on-aptible.com",
17934  "f5.si",
17935  "arvanedge.ir",
17936  "user.aseinet.ne.jp",
17937  "gv.vc",
17938  "d.gv.vc",
17939  "user.party.eus",
17940  "pimienta.org",
17941  "poivron.org",
17942  "potager.org",
17943  "sweetpepper.org",
17944  "myasustor.com",
17945  "cdn.prod.atlassian-dev.net",
17946  "translated.page",
17947  "myfritz.link",
17948  "myfritz.net",
17949  "onavstack.net",
17950  "*.awdev.ca",
17951  "*.advisor.ws",
17952  "ecommerce-shop.pl",
17953  "b-data.io",
17954  "balena-devices.com",
17955  "base.ec",
17956  "official.ec",
17957  "buyshop.jp",
17958  "fashionstore.jp",
17959  "handcrafted.jp",
17960  "kawaiishop.jp",
17961  "supersale.jp",
17962  "theshop.jp",
17963  "shopselect.net",
17964  "base.shop",
17965  "beagleboard.io",
17966  "*.beget.app",
17967  "pages.gay",
17968  "bnr.la",
17969  "bitbucket.io",
17970  "blackbaudcdn.net",
17971  "of.je",
17972  "bluebite.io",
17973  "boomla.net",
17974  "boutir.com",
17975  "boxfuse.io",
17976  "square7.ch",
17977  "bplaced.com",
17978  "bplaced.de",
17979  "square7.de",
17980  "bplaced.net",
17981  "square7.net",
17982  "*.s.brave.io",
17983  "shop.brendly.hr",
17984  "shop.brendly.rs",
17985  "browsersafetymark.io",
17986  "radio.am",
17987  "radio.fm",
17988  "uk0.bigv.io",
17989  "dh.bytemark.co.uk",
17990  "vm.bytemark.co.uk",
17991  "cafjs.com",
17992  "canva-apps.cn",
17993  "*.my.canvasite.cn",
17994  "canva-apps.com",
17995  "*.my.canva.site",
17996  "drr.ac",
17997  "uwu.ai",
17998  "carrd.co",
17999  "crd.co",
18000  "ju.mp",
18001  "api.gov.uk",
18002  "cdn77-storage.com",
18003  "rsc.contentproxy9.cz",
18004  "r.cdn77.net",
18005  "cdn77-ssl.net",
18006  "c.cdn77.org",
18007  "rsc.cdn77.org",
18008  "ssl.origin.cdn77-secure.org",
18009  "za.bz",
18010  "br.com",
18011  "cn.com",
18012  "de.com",
18013  "eu.com",
18014  "jpn.com",
18015  "mex.com",
18016  "ru.com",
18017  "sa.com",
18018  "uk.com",
18019  "us.com",
18020  "za.com",
18021  "com.de",
18022  "gb.net",
18023  "hu.net",
18024  "jp.net",
18025  "se.net",
18026  "uk.net",
18027  "ae.org",
18028  "com.se",
18029  "cx.ua",
18030  "discourse.group",
18031  "discourse.team",
18032  "clerk.app",
18033  "clerkstage.app",
18034  "*.lcl.dev",
18035  "*.lclstage.dev",
18036  "*.stg.dev",
18037  "*.stgstage.dev",
18038  "cleverapps.cc",
18039  "*.services.clever-cloud.com",
18040  "cleverapps.io",
18041  "cleverapps.tech",
18042  "clickrising.net",
18043  "cloudns.asia",
18044  "cloudns.be",
18045  "cloud-ip.biz",
18046  "cloudns.biz",
18047  "cloudns.cc",
18048  "cloudns.ch",
18049  "cloudns.cl",
18050  "cloudns.club",
18051  "dnsabr.com",
18052  "ip-ddns.com",
18053  "cloudns.cx",
18054  "cloudns.eu",
18055  "cloudns.in",
18056  "cloudns.info",
18057  "ddns-ip.net",
18058  "dns-cloud.net",
18059  "dns-dynamic.net",
18060  "cloudns.nz",
18061  "cloudns.org",
18062  "ip-dynamic.org",
18063  "cloudns.ph",
18064  "cloudns.pro",
18065  "cloudns.pw",
18066  "cloudns.us",
18067  "c66.me",
18068  "cloud66.ws",
18069  "cloud66.zone",
18070  "jdevcloud.com",
18071  "wpdevcloud.com",
18072  "cloudaccess.host",
18073  "freesite.host",
18074  "cloudaccess.net",
18075  "*.cloudera.site",
18076  "cf-ipfs.com",
18077  "cloudflare-ipfs.com",
18078  "trycloudflare.com",
18079  "pages.dev",
18080  "r2.dev",
18081  "workers.dev",
18082  "cloudflare.net",
18083  "cdn.cloudflare.net",
18084  "cdn.cloudflareanycast.net",
18085  "cdn.cloudflarecn.net",
18086  "cdn.cloudflareglobal.net",
18087  "cust.cloudscale.ch",
18088  "objects.lpg.cloudscale.ch",
18089  "objects.rma.cloudscale.ch",
18090  "wnext.app",
18091  "cnpy.gdn",
18092  "*.otap.co",
18093  "co.ca",
18094  "co.com",
18095  "codeberg.page",
18096  "csb.app",
18097  "preview.csb.app",
18098  "co.nl",
18099  "co.no",
18100  "webhosting.be",
18101  "hosting-cluster.nl",
18102  "ctfcloud.net",
18103  "convex.site",
18104  "ac.ru",
18105  "edu.ru",
18106  "gov.ru",
18107  "int.ru",
18108  "mil.ru",
18109  "test.ru",
18110  "dyn.cosidns.de",
18111  "dnsupdater.de",
18112  "dynamisches-dns.de",
18113  "internet-dns.de",
18114  "l-o-g-i-n.de",
18115  "dynamic-dns.info",
18116  "feste-ip.net",
18117  "knx-server.net",
18118  "static-access.net",
18119  "craft.me",
18120  "realm.cz",
18121  "on.crisp.email",
18122  "*.cryptonomic.net",
18123  "curv.dev",
18124  "cfolks.pl",
18125  "cyon.link",
18126  "cyon.site",
18127  "platform0.app",
18128  "fnwk.site",
18129  "folionetwork.site",
18130  "biz.dk",
18131  "co.dk",
18132  "firm.dk",
18133  "reg.dk",
18134  "store.dk",
18135  "dyndns.dappnode.io",
18136  "builtwithdark.com",
18137  "darklang.io",
18138  "demo.datadetect.com",
18139  "instance.datadetect.com",
18140  "edgestack.me",
18141  "dattolocal.com",
18142  "dattorelay.com",
18143  "dattoweb.com",
18144  "mydatto.com",
18145  "dattolocal.net",
18146  "mydatto.net",
18147  "ddnss.de",
18148  "dyn.ddnss.de",
18149  "dyndns.ddnss.de",
18150  "dyn-ip24.de",
18151  "dyndns1.de",
18152  "home-webserver.de",
18153  "dyn.home-webserver.de",
18154  "myhome-server.de",
18155  "ddnss.org",
18156  "debian.net",
18157  "definima.io",
18158  "definima.net",
18159  "deno.dev",
18160  "deno-staging.dev",
18161  "dedyn.io",
18162  "deta.app",
18163  "deta.dev",
18164  "dfirma.pl",
18165  "dkonto.pl",
18166  "you2.pl",
18167  "ondigitalocean.app",
18168  "*.digitaloceanspaces.com",
18169  "us.kg",
18170  "rss.my.id",
18171  "diher.solutions",
18172  "discordsays.com",
18173  "discordsez.com",
18174  "jozi.biz",
18175  "dnshome.de",
18176  "online.th",
18177  "shop.th",
18178  "drayddns.com",
18179  "shoparena.pl",
18180  "dreamhosters.com",
18181  "durumis.com",
18182  "mydrobo.com",
18183  "drud.io",
18184  "drud.us",
18185  "duckdns.org",
18186  "dy.fi",
18187  "tunk.org",
18188  "dyndns.biz",
18189  "for-better.biz",
18190  "for-more.biz",
18191  "for-some.biz",
18192  "for-the.biz",
18193  "selfip.biz",
18194  "webhop.biz",
18195  "ftpaccess.cc",
18196  "game-server.cc",
18197  "myphotos.cc",
18198  "scrapping.cc",
18199  "blogdns.com",
18200  "cechire.com",
18201  "dnsalias.com",
18202  "dnsdojo.com",
18203  "doesntexist.com",
18204  "dontexist.com",
18205  "doomdns.com",
18206  "dyn-o-saur.com",
18207  "dynalias.com",
18208  "dyndns-at-home.com",
18209  "dyndns-at-work.com",
18210  "dyndns-blog.com",
18211  "dyndns-free.com",
18212  "dyndns-home.com",
18213  "dyndns-ip.com",
18214  "dyndns-mail.com",
18215  "dyndns-office.com",
18216  "dyndns-pics.com",
18217  "dyndns-remote.com",
18218  "dyndns-server.com",
18219  "dyndns-web.com",
18220  "dyndns-wiki.com",
18221  "dyndns-work.com",
18222  "est-a-la-maison.com",
18223  "est-a-la-masion.com",
18224  "est-le-patron.com",
18225  "est-mon-blogueur.com",
18226  "from-ak.com",
18227  "from-al.com",
18228  "from-ar.com",
18229  "from-ca.com",
18230  "from-ct.com",
18231  "from-dc.com",
18232  "from-de.com",
18233  "from-fl.com",
18234  "from-ga.com",
18235  "from-hi.com",
18236  "from-ia.com",
18237  "from-id.com",
18238  "from-il.com",
18239  "from-in.com",
18240  "from-ks.com",
18241  "from-ky.com",
18242  "from-ma.com",
18243  "from-md.com",
18244  "from-mi.com",
18245  "from-mn.com",
18246  "from-mo.com",
18247  "from-ms.com",
18248  "from-mt.com",
18249  "from-nc.com",
18250  "from-nd.com",
18251  "from-ne.com",
18252  "from-nh.com",
18253  "from-nj.com",
18254  "from-nm.com",
18255  "from-nv.com",
18256  "from-oh.com",
18257  "from-ok.com",
18258  "from-or.com",
18259  "from-pa.com",
18260  "from-pr.com",
18261  "from-ri.com",
18262  "from-sc.com",
18263  "from-sd.com",
18264  "from-tn.com",
18265  "from-tx.com",
18266  "from-ut.com",
18267  "from-va.com",
18268  "from-vt.com",
18269  "from-wa.com",
18270  "from-wi.com",
18271  "from-wv.com",
18272  "from-wy.com",
18273  "getmyip.com",
18274  "gotdns.com",
18275  "hobby-site.com",
18276  "homelinux.com",
18277  "homeunix.com",
18278  "iamallama.com",
18279  "is-a-anarchist.com",
18280  "is-a-blogger.com",
18281  "is-a-bookkeeper.com",
18282  "is-a-bulls-fan.com",
18283  "is-a-caterer.com",
18284  "is-a-chef.com",
18285  "is-a-conservative.com",
18286  "is-a-cpa.com",
18287  "is-a-cubicle-slave.com",
18288  "is-a-democrat.com",
18289  "is-a-designer.com",
18290  "is-a-doctor.com",
18291  "is-a-financialadvisor.com",
18292  "is-a-geek.com",
18293  "is-a-green.com",
18294  "is-a-guru.com",
18295  "is-a-hard-worker.com",
18296  "is-a-hunter.com",
18297  "is-a-landscaper.com",
18298  "is-a-lawyer.com",
18299  "is-a-liberal.com",
18300  "is-a-libertarian.com",
18301  "is-a-llama.com",
18302  "is-a-musician.com",
18303  "is-a-nascarfan.com",
18304  "is-a-nurse.com",
18305  "is-a-painter.com",
18306  "is-a-personaltrainer.com",
18307  "is-a-photographer.com",
18308  "is-a-player.com",
18309  "is-a-republican.com",
18310  "is-a-rockstar.com",
18311  "is-a-socialist.com",
18312  "is-a-student.com",
18313  "is-a-teacher.com",
18314  "is-a-techie.com",
18315  "is-a-therapist.com",
18316  "is-an-accountant.com",
18317  "is-an-actor.com",
18318  "is-an-actress.com",
18319  "is-an-anarchist.com",
18320  "is-an-artist.com",
18321  "is-an-engineer.com",
18322  "is-an-entertainer.com",
18323  "is-certified.com",
18324  "is-gone.com",
18325  "is-into-anime.com",
18326  "is-into-cars.com",
18327  "is-into-cartoons.com",
18328  "is-into-games.com",
18329  "is-leet.com",
18330  "is-not-certified.com",
18331  "is-slick.com",
18332  "is-uberleet.com",
18333  "is-with-theband.com",
18334  "isa-geek.com",
18335  "isa-hockeynut.com",
18336  "issmarterthanyou.com",
18337  "likes-pie.com",
18338  "likescandy.com",
18339  "neat-url.com",
18340  "saves-the-whales.com",
18341  "selfip.com",
18342  "sells-for-less.com",
18343  "sells-for-u.com",
18344  "servebbs.com",
18345  "simple-url.com",
18346  "space-to-rent.com",
18347  "teaches-yoga.com",
18348  "writesthisblog.com",
18349  "ath.cx",
18350  "fuettertdasnetz.de",
18351  "isteingeek.de",
18352  "istmein.de",
18353  "lebtimnetz.de",
18354  "leitungsen.de",
18355  "traeumtgerade.de",
18356  "barrel-of-knowledge.info",
18357  "barrell-of-knowledge.info",
18358  "dyndns.info",
18359  "for-our.info",
18360  "groks-the.info",
18361  "groks-this.info",
18362  "here-for-more.info",
18363  "knowsitall.info",
18364  "selfip.info",
18365  "webhop.info",
18366  "forgot.her.name",
18367  "forgot.his.name",
18368  "at-band-camp.net",
18369  "blogdns.net",
18370  "broke-it.net",
18371  "buyshouses.net",
18372  "dnsalias.net",
18373  "dnsdojo.net",
18374  "does-it.net",
18375  "dontexist.net",
18376  "dynalias.net",
18377  "dynathome.net",
18378  "endofinternet.net",
18379  "from-az.net",
18380  "from-co.net",
18381  "from-la.net",
18382  "from-ny.net",
18383  "gets-it.net",
18384  "ham-radio-op.net",
18385  "homeftp.net",
18386  "homeip.net",
18387  "homelinux.net",
18388  "homeunix.net",
18389  "in-the-band.net",
18390  "is-a-chef.net",
18391  "is-a-geek.net",
18392  "isa-geek.net",
18393  "kicks-ass.net",
18394  "office-on-the.net",
18395  "podzone.net",
18396  "scrapper-site.net",
18397  "selfip.net",
18398  "sells-it.net",
18399  "servebbs.net",
18400  "serveftp.net",
18401  "thruhere.net",
18402  "webhop.net",
18403  "merseine.nu",
18404  "mine.nu",
18405  "shacknet.nu",
18406  "blogdns.org",
18407  "blogsite.org",
18408  "boldlygoingnowhere.org",
18409  "dnsalias.org",
18410  "dnsdojo.org",
18411  "doesntexist.org",
18412  "dontexist.org",
18413  "doomdns.org",
18414  "dvrdns.org",
18415  "dynalias.org",
18416  "dyndns.org",
18417  "go.dyndns.org",
18418  "home.dyndns.org",
18419  "endofinternet.org",
18420  "endoftheinternet.org",
18421  "from-me.org",
18422  "game-host.org",
18423  "gotdns.org",
18424  "hobby-site.org",
18425  "homedns.org",
18426  "homeftp.org",
18427  "homelinux.org",
18428  "homeunix.org",
18429  "is-a-bruinsfan.org",
18430  "is-a-candidate.org",
18431  "is-a-celticsfan.org",
18432  "is-a-chef.org",
18433  "is-a-geek.org",
18434  "is-a-knight.org",
18435  "is-a-linux-user.org",
18436  "is-a-patsfan.org",
18437  "is-a-soxfan.org",
18438  "is-found.org",
18439  "is-lost.org",
18440  "is-saved.org",
18441  "is-very-bad.org",
18442  "is-very-evil.org",
18443  "is-very-good.org",
18444  "is-very-nice.org",
18445  "is-very-sweet.org",
18446  "isa-geek.org",
18447  "kicks-ass.org",
18448  "misconfused.org",
18449  "podzone.org",
18450  "readmyblog.org",
18451  "selfip.org",
18452  "sellsyourhome.org",
18453  "servebbs.org",
18454  "serveftp.org",
18455  "servegame.org",
18456  "stuff-4-sale.org",
18457  "webhop.org",
18458  "better-than.tv",
18459  "dyndns.tv",
18460  "on-the-web.tv",
18461  "worse-than.tv",
18462  "is-by.us",
18463  "land-4-sale.us",
18464  "stuff-4-sale.us",
18465  "dyndns.ws",
18466  "mypets.ws",
18467  "ddnsfree.com",
18468  "ddnsgeek.com",
18469  "giize.com",
18470  "gleeze.com",
18471  "kozow.com",
18472  "loseyourip.com",
18473  "ooguy.com",
18474  "theworkpc.com",
18475  "casacam.net",
18476  "dynu.net",
18477  "accesscam.org",
18478  "camdvr.org",
18479  "freeddns.org",
18480  "mywire.org",
18481  "webredirect.org",
18482  "myddns.rocks",
18483  "dynv6.net",
18484  "e4.cz",
18485  "easypanel.app",
18486  "easypanel.host",
18487  "*.ewp.live",
18488  "twmail.cc",
18489  "twmail.net",
18490  "twmail.org",
18491  "mymailer.com.tw",
18492  "url.tw",
18493  "at.emf.camp",
18494  "rt.ht",
18495  "elementor.cloud",
18496  "elementor.cool",
18497  "en-root.fr",
18498  "mytuleap.com",
18499  "tuleap-partners.com",
18500  "encr.app",
18501  "encoreapi.com",
18502  "eu.encoway.cloud",
18503  "eu.org",
18504  "al.eu.org",
18505  "asso.eu.org",
18506  "at.eu.org",
18507  "au.eu.org",
18508  "be.eu.org",
18509  "bg.eu.org",
18510  "ca.eu.org",
18511  "cd.eu.org",
18512  "ch.eu.org",
18513  "cn.eu.org",
18514  "cy.eu.org",
18515  "cz.eu.org",
18516  "de.eu.org",
18517  "dk.eu.org",
18518  "edu.eu.org",
18519  "ee.eu.org",
18520  "es.eu.org",
18521  "fi.eu.org",
18522  "fr.eu.org",
18523  "gr.eu.org",
18524  "hr.eu.org",
18525  "hu.eu.org",
18526  "ie.eu.org",
18527  "il.eu.org",
18528  "in.eu.org",
18529  "int.eu.org",
18530  "is.eu.org",
18531  "it.eu.org",
18532  "jp.eu.org",
18533  "kr.eu.org",
18534  "lt.eu.org",
18535  "lu.eu.org",
18536  "lv.eu.org",
18537  "me.eu.org",
18538  "mk.eu.org",
18539  "mt.eu.org",
18540  "my.eu.org",
18541  "net.eu.org",
18542  "ng.eu.org",
18543  "nl.eu.org",
18544  "no.eu.org",
18545  "nz.eu.org",
18546  "pl.eu.org",
18547  "pt.eu.org",
18548  "ro.eu.org",
18549  "ru.eu.org",
18550  "se.eu.org",
18551  "si.eu.org",
18552  "sk.eu.org",
18553  "tr.eu.org",
18554  "uk.eu.org",
18555  "us.eu.org",
18556  "eurodir.ru",
18557  "eu-1.evennode.com",
18558  "eu-2.evennode.com",
18559  "eu-3.evennode.com",
18560  "eu-4.evennode.com",
18561  "us-1.evennode.com",
18562  "us-2.evennode.com",
18563  "us-3.evennode.com",
18564  "us-4.evennode.com",
18565  "relay.evervault.app",
18566  "relay.evervault.dev",
18567  "expo.app",
18568  "staging.expo.app",
18569  "onfabrica.com",
18570  "ru.net",
18571  "adygeya.ru",
18572  "bashkiria.ru",
18573  "bir.ru",
18574  "cbg.ru",
18575  "com.ru",
18576  "dagestan.ru",
18577  "grozny.ru",
18578  "kalmykia.ru",
18579  "kustanai.ru",
18580  "marine.ru",
18581  "mordovia.ru",
18582  "msk.ru",
18583  "mytis.ru",
18584  "nalchik.ru",
18585  "nov.ru",
18586  "pyatigorsk.ru",
18587  "spb.ru",
18588  "vladikavkaz.ru",
18589  "vladimir.ru",
18590  "abkhazia.su",
18591  "adygeya.su",
18592  "aktyubinsk.su",
18593  "arkhangelsk.su",
18594  "armenia.su",
18595  "ashgabad.su",
18596  "azerbaijan.su",
18597  "balashov.su",
18598  "bashkiria.su",
18599  "bryansk.su",
18600  "bukhara.su",
18601  "chimkent.su",
18602  "dagestan.su",
18603  "east-kazakhstan.su",
18604  "exnet.su",
18605  "georgia.su",
18606  "grozny.su",
18607  "ivanovo.su",
18608  "jambyl.su",
18609  "kalmykia.su",
18610  "kaluga.su",
18611  "karacol.su",
18612  "karaganda.su",
18613  "karelia.su",
18614  "khakassia.su",
18615  "krasnodar.su",
18616  "kurgan.su",
18617  "kustanai.su",
18618  "lenug.su",
18619  "mangyshlak.su",
18620  "mordovia.su",
18621  "msk.su",
18622  "murmansk.su",
18623  "nalchik.su",
18624  "navoi.su",
18625  "north-kazakhstan.su",
18626  "nov.su",
18627  "obninsk.su",
18628  "penza.su",
18629  "pokrovsk.su",
18630  "sochi.su",
18631  "spb.su",
18632  "tashkent.su",
18633  "termez.su",
18634  "togliatti.su",
18635  "troitsk.su",
18636  "tselinograd.su",
18637  "tula.su",
18638  "tuva.su",
18639  "vladikavkaz.su",
18640  "vladimir.su",
18641  "vologda.su",
18642  "channelsdvr.net",
18643  "u.channelsdvr.net",
18644  "edgecompute.app",
18645  "fastly-edge.com",
18646  "fastly-terrarium.com",
18647  "freetls.fastly.net",
18648  "map.fastly.net",
18649  "a.prod.fastly.net",
18650  "global.prod.fastly.net",
18651  "a.ssl.fastly.net",
18652  "b.ssl.fastly.net",
18653  "global.ssl.fastly.net",
18654  "fastlylb.net",
18655  "map.fastlylb.net",
18656  "*.user.fm",
18657  "fastvps-server.com",
18658  "fastvps.host",
18659  "myfast.host",
18660  "fastvps.site",
18661  "myfast.space",
18662  "conn.uk",
18663  "copro.uk",
18664  "hosp.uk",
18665  "fedorainfracloud.org",
18666  "fedorapeople.org",
18667  "cloud.fedoraproject.org",
18668  "app.os.fedoraproject.org",
18669  "app.os.stg.fedoraproject.org",
18670  "mydobiss.com",
18671  "fh-muenster.io",
18672  "filegear.me",
18673  "firebaseapp.com",
18674  "fldrv.com",
18675  "flutterflow.app",
18676  "fly.dev",
18677  "shw.io",
18678  "edgeapp.net",
18679  "forgeblocks.com",
18680  "id.forgerock.io",
18681  "framer.ai",
18682  "framer.app",
18683  "framercanvas.com",
18684  "framer.media",
18685  "framer.photos",
18686  "framer.website",
18687  "framer.wiki",
18688  "0e.vc",
18689  "freebox-os.com",
18690  "freeboxos.com",
18691  "fbx-os.fr",
18692  "fbxos.fr",
18693  "freebox-os.fr",
18694  "freeboxos.fr",
18695  "freedesktop.org",
18696  "freemyip.com",
18697  "*.frusky.de",
18698  "wien.funkfeuer.at",
18699  "daemon.asia",
18700  "dix.asia",
18701  "mydns.bz",
18702  "0am.jp",
18703  "0g0.jp",
18704  "0j0.jp",
18705  "0t0.jp",
18706  "mydns.jp",
18707  "pgw.jp",
18708  "wjg.jp",
18709  "keyword-on.net",
18710  "live-on.net",
18711  "server-on.net",
18712  "mydns.tw",
18713  "mydns.vc",
18714  "*.futurecms.at",
18715  "*.ex.futurecms.at",
18716  "*.in.futurecms.at",
18717  "futurehosting.at",
18718  "futuremailing.at",
18719  "*.ex.ortsinfo.at",
18720  "*.kunden.ortsinfo.at",
18721  "*.statics.cloud",
18722  "aliases121.com",
18723  "campaign.gov.uk",
18724  "service.gov.uk",
18725  "independent-commission.uk",
18726  "independent-inquest.uk",
18727  "independent-inquiry.uk",
18728  "independent-panel.uk",
18729  "independent-review.uk",
18730  "public-inquiry.uk",
18731  "royal-commission.uk",
18732  "gehirn.ne.jp",
18733  "usercontent.jp",
18734  "gentapps.com",
18735  "gentlentapis.com",
18736  "lab.ms",
18737  "cdn-edges.net",
18738  "localcert.net",
18739  "localhostcert.net",
18740  "gsj.bz",
18741  "githubusercontent.com",
18742  "githubpreview.dev",
18743  "github.io",
18744  "gitlab.io",
18745  "gitapp.si",
18746  "gitpage.si",
18747  "glitch.me",
18748  "nog.community",
18749  "co.ro",
18750  "shop.ro",
18751  "lolipop.io",
18752  "angry.jp",
18753  "babyblue.jp",
18754  "babymilk.jp",
18755  "backdrop.jp",
18756  "bambina.jp",
18757  "bitter.jp",
18758  "blush.jp",
18759  "boo.jp",
18760  "boy.jp",
18761  "boyfriend.jp",
18762  "but.jp",
18763  "candypop.jp",
18764  "capoo.jp",
18765  "catfood.jp",
18766  "cheap.jp",
18767  "chicappa.jp",
18768  "chillout.jp",
18769  "chips.jp",
18770  "chowder.jp",
18771  "chu.jp",
18772  "ciao.jp",
18773  "cocotte.jp",
18774  "coolblog.jp",
18775  "cranky.jp",
18776  "cutegirl.jp",
18777  "daa.jp",
18778  "deca.jp",
18779  "deci.jp",
18780  "digick.jp",
18781  "egoism.jp",
18782  "fakefur.jp",
18783  "fem.jp",
18784  "flier.jp",
18785  "floppy.jp",
18786  "fool.jp",
18787  "frenchkiss.jp",
18788  "girlfriend.jp",
18789  "girly.jp",
18790  "gloomy.jp",
18791  "gonna.jp",
18792  "greater.jp",
18793  "hacca.jp",
18794  "heavy.jp",
18795  "her.jp",
18796  "hiho.jp",
18797  "hippy.jp",
18798  "holy.jp",
18799  "hungry.jp",
18800  "icurus.jp",
18801  "itigo.jp",
18802  "jellybean.jp",
18803  "kikirara.jp",
18804  "kill.jp",
18805  "kilo.jp",
18806  "kuron.jp",
18807  "littlestar.jp",
18808  "lolipopmc.jp",
18809  "lolitapunk.jp",
18810  "lomo.jp",
18811  "lovepop.jp",
18812  "lovesick.jp",
18813  "main.jp",
18814  "mods.jp",
18815  "mond.jp",
18816  "mongolian.jp",
18817  "moo.jp",
18818  "namaste.jp",
18819  "nikita.jp",
18820  "nobushi.jp",
18821  "noor.jp",
18822  "oops.jp",
18823  "parallel.jp",
18824  "parasite.jp",
18825  "pecori.jp",
18826  "peewee.jp",
18827  "penne.jp",
18828  "pepper.jp",
18829  "perma.jp",
18830  "pigboat.jp",
18831  "pinoko.jp",
18832  "punyu.jp",
18833  "pupu.jp",
18834  "pussycat.jp",
18835  "pya.jp",
18836  "raindrop.jp",
18837  "readymade.jp",
18838  "sadist.jp",
18839  "schoolbus.jp",
18840  "secret.jp",
18841  "staba.jp",
18842  "stripper.jp",
18843  "sub.jp",
18844  "sunnyday.jp",
18845  "thick.jp",
18846  "tonkotsu.jp",
18847  "under.jp",
18848  "upper.jp",
18849  "velvet.jp",
18850  "verse.jp",
18851  "versus.jp",
18852  "vivian.jp",
18853  "watson.jp",
18854  "weblike.jp",
18855  "whitesnow.jp",
18856  "zombie.jp",
18857  "heteml.net",
18858  "graphic.design",
18859  "goip.de",
18860  "blogspot.ae",
18861  "blogspot.al",
18862  "blogspot.am",
18863  "*.hosted.app",
18864  "*.run.app",
18865  "web.app",
18866  "blogspot.com.ar",
18867  "blogspot.co.at",
18868  "blogspot.com.au",
18869  "blogspot.ba",
18870  "blogspot.be",
18871  "blogspot.bg",
18872  "blogspot.bj",
18873  "blogspot.com.br",
18874  "blogspot.com.by",
18875  "blogspot.ca",
18876  "blogspot.cf",
18877  "blogspot.ch",
18878  "blogspot.cl",
18879  "blogspot.com.co",
18880  "*.0emm.com",
18881  "appspot.com",
18882  "*.r.appspot.com",
18883  "blogspot.com",
18884  "codespot.com",
18885  "googleapis.com",
18886  "googlecode.com",
18887  "pagespeedmobilizer.com",
18888  "withgoogle.com",
18889  "withyoutube.com",
18890  "blogspot.cv",
18891  "blogspot.com.cy",
18892  "blogspot.cz",
18893  "blogspot.de",
18894  "*.gateway.dev",
18895  "blogspot.dk",
18896  "blogspot.com.ee",
18897  "blogspot.com.eg",
18898  "blogspot.com.es",
18899  "blogspot.fi",
18900  "blogspot.fr",
18901  "cloud.goog",
18902  "translate.goog",
18903  "*.usercontent.goog",
18904  "blogspot.gr",
18905  "blogspot.hk",
18906  "blogspot.hr",
18907  "blogspot.hu",
18908  "blogspot.co.id",
18909  "blogspot.ie",
18910  "blogspot.co.il",
18911  "blogspot.in",
18912  "blogspot.is",
18913  "blogspot.it",
18914  "blogspot.jp",
18915  "blogspot.co.ke",
18916  "blogspot.kr",
18917  "blogspot.li",
18918  "blogspot.lt",
18919  "blogspot.lu",
18920  "blogspot.md",
18921  "blogspot.mk",
18922  "blogspot.com.mt",
18923  "blogspot.mx",
18924  "blogspot.my",
18925  "cloudfunctions.net",
18926  "blogspot.com.ng",
18927  "blogspot.nl",
18928  "blogspot.no",
18929  "blogspot.co.nz",
18930  "blogspot.pe",
18931  "blogspot.pt",
18932  "blogspot.qa",
18933  "blogspot.re",
18934  "blogspot.ro",
18935  "blogspot.rs",
18936  "blogspot.ru",
18937  "blogspot.se",
18938  "blogspot.sg",
18939  "blogspot.si",
18940  "blogspot.sk",
18941  "blogspot.sn",
18942  "blogspot.td",
18943  "blogspot.com.tr",
18944  "blogspot.tw",
18945  "blogspot.ug",
18946  "blogspot.co.uk",
18947  "blogspot.com.uy",
18948  "blogspot.vn",
18949  "blogspot.co.za",
18950  "goupile.fr",
18951  "pymnt.uk",
18952  "cloudapps.digital",
18953  "london.cloudapps.digital",
18954  "gov.nl",
18955  "grafana-dev.net",
18956  "grayjayleagues.com",
18957  "günstigbestellen.de",
18958  "günstigliefern.de",
18959  "fin.ci",
18960  "free.hr",
18961  "caa.li",
18962  "ua.rs",
18963  "conf.se",
18964  "häkkinen.fi",
18965  "hrsn.dev",
18966  "hashbang.sh",
18967  "hasura.app",
18968  "hasura-app.io",
18969  "hatenablog.com",
18970  "hatenadiary.com",
18971  "hateblo.jp",
18972  "hatenablog.jp",
18973  "hatenadiary.jp",
18974  "hatenadiary.org",
18975  "pages.it.hs-heilbronn.de",
18976  "pages-research.it.hs-heilbronn.de",
18977  "heiyu.space",
18978  "helioho.st",
18979  "heliohost.us",
18980  "hepforge.org",
18981  "herokuapp.com",
18982  "herokussl.com",
18983  "heyflow.page",
18984  "heyflow.site",
18985  "ravendb.cloud",
18986  "ravendb.community",
18987  "development.run",
18988  "ravendb.run",
18989  "homesklep.pl",
18990  "*.kin.one",
18991  "*.id.pub",
18992  "*.kin.pub",
18993  "secaas.hk",
18994  "hoplix.shop",
18995  "orx.biz",
18996  "biz.gl",
18997  "biz.ng",
18998  "co.biz.ng",
18999  "dl.biz.ng",
19000  "go.biz.ng",
19001  "lg.biz.ng",
19002  "on.biz.ng",
19003  "col.ng",
19004  "firm.ng",
19005  "gen.ng",
19006  "ltd.ng",
19007  "ngo.ng",
19008  "plc.ng",
19009  "ie.ua",
19010  "hostyhosting.io",
19011  "hf.space",
19012  "static.hf.space",
19013  "hypernode.io",
19014  "iobb.net",
19015  "co.cz",
19016  "*.moonscale.io",
19017  "moonscale.net",
19018  "gr.com",
19019  "iki.fi",
19020  "ibxos.it",
19021  "iliadboxos.it",
19022  "smushcdn.com",
19023  "wphostedmail.com",
19024  "wpmucdn.com",
19025  "tempurl.host",
19026  "wpmudev.host",
19027  "dyn-berlin.de",
19028  "in-berlin.de",
19029  "in-brb.de",
19030  "in-butter.de",
19031  "in-dsl.de",
19032  "in-vpn.de",
19033  "in-dsl.net",
19034  "in-vpn.net",
19035  "in-dsl.org",
19036  "in-vpn.org",
19037  "biz.at",
19038  "info.at",
19039  "info.cx",
19040  "ac.leg.br",
19041  "al.leg.br",
19042  "am.leg.br",
19043  "ap.leg.br",
19044  "ba.leg.br",
19045  "ce.leg.br",
19046  "df.leg.br",
19047  "es.leg.br",
19048  "go.leg.br",
19049  "ma.leg.br",
19050  "mg.leg.br",
19051  "ms.leg.br",
19052  "mt.leg.br",
19053  "pa.leg.br",
19054  "pb.leg.br",
19055  "pe.leg.br",
19056  "pi.leg.br",
19057  "pr.leg.br",
19058  "rj.leg.br",
19059  "rn.leg.br",
19060  "ro.leg.br",
19061  "rr.leg.br",
19062  "rs.leg.br",
19063  "sc.leg.br",
19064  "se.leg.br",
19065  "sp.leg.br",
19066  "to.leg.br",
19067  "pixolino.com",
19068  "na4u.ru",
19069  "apps-1and1.com",
19070  "live-website.com",
19071  "apps-1and1.net",
19072  "websitebuilder.online",
19073  "app-ionos.space",
19074  "iopsys.se",
19075  "*.dweb.link",
19076  "ipifony.net",
19077  "ir.md",
19078  "is-a-good.dev",
19079  "is-a.dev",
19080  "iservschule.de",
19081  "mein-iserv.de",
19082  "schulplattform.de",
19083  "schulserver.de",
19084  "test-iserv.de",
19085  "iserv.dev",
19086  "mel.cloudlets.com.au",
19087  "cloud.interhostsolutions.be",
19088  "alp1.ae.flow.ch",
19089  "appengine.flow.ch",
19090  "es-1.axarnet.cloud",
19091  "diadem.cloud",
19092  "vip.jelastic.cloud",
19093  "jele.cloud",
19094  "it1.eur.aruba.jenv-aruba.cloud",
19095  "it1.jenv-aruba.cloud",
19096  "keliweb.cloud",
19097  "cs.keliweb.cloud",
19098  "oxa.cloud",
19099  "tn.oxa.cloud",
19100  "uk.oxa.cloud",
19101  "primetel.cloud",
19102  "uk.primetel.cloud",
19103  "ca.reclaim.cloud",
19104  "uk.reclaim.cloud",
19105  "us.reclaim.cloud",
19106  "ch.trendhosting.cloud",
19107  "de.trendhosting.cloud",
19108  "jele.club",
19109  "dopaas.com",
19110  "paas.hosted-by-previder.com",
19111  "rag-cloud.hosteur.com",
19112  "rag-cloud-ch.hosteur.com",
19113  "jcloud.ik-server.com",
19114  "jcloud-ver-jpc.ik-server.com",
19115  "demo.jelastic.com",
19116  "paas.massivegrid.com",
19117  "jed.wafaicloud.com",
19118  "ryd.wafaicloud.com",
19119  "j.scaleforce.com.cy",
19120  "jelastic.dogado.eu",
19121  "fi.cloudplatform.fi",
19122  "demo.datacenter.fi",
19123  "paas.datacenter.fi",
19124  "jele.host",
19125  "mircloud.host",
19126  "paas.beebyte.io",
19127  "sekd1.beebyteapp.io",
19128  "jele.io",
19129  "jc.neen.it",
19130  "jcloud.kz",
19131  "cloudjiffy.net",
19132  "fra1-de.cloudjiffy.net",
19133  "west1-us.cloudjiffy.net",
19134  "jls-sto1.elastx.net",
19135  "jls-sto2.elastx.net",
19136  "jls-sto3.elastx.net",
19137  "fr-1.paas.massivegrid.net",
19138  "lon-1.paas.massivegrid.net",
19139  "lon-2.paas.massivegrid.net",
19140  "ny-1.paas.massivegrid.net",
19141  "ny-2.paas.massivegrid.net",
19142  "sg-1.paas.massivegrid.net",
19143  "jelastic.saveincloud.net",
19144  "nordeste-idc.saveincloud.net",
19145  "j.scaleforce.net",
19146  "sdscloud.pl",
19147  "unicloud.pl",
19148  "mircloud.ru",
19149  "enscaled.sg",
19150  "jele.site",
19151  "jelastic.team",
19152  "orangecloud.tn",
19153  "j.layershift.co.uk",
19154  "phx.enscaled.us",
19155  "mircloud.us",
19156  "myjino.ru",
19157  "*.hosting.myjino.ru",
19158  "*.landing.myjino.ru",
19159  "*.spectrum.myjino.ru",
19160  "*.vps.myjino.ru",
19161  "jotelulu.cloud",
19162  "webadorsite.com",
19163  "jouwweb.site",
19164  "*.cns.joyent.com",
19165  "*.triton.zone",
19166  "js.org",
19167  "kaas.gg",
19168  "khplay.nl",
19169  "kapsi.fi",
19170  "ezproxy.kuleuven.be",
19171  "kuleuven.cloud",
19172  "keymachine.de",
19173  "kinghost.net",
19174  "uni5.net",
19175  "knightpoint.systems",
19176  "koobin.events",
19177  "webthings.io",
19178  "krellian.net",
19179  "oya.to",
19180  "git-repos.de",
19181  "lcube-server.de",
19182  "svn-repos.de",
19183  "leadpages.co",
19184  "lpages.co",
19185  "lpusercontent.com",
19186  "lelux.site",
19187  "libp2p.direct",
19188  "runcontainers.dev",
19189  "co.business",
19190  "co.education",
19191  "co.events",
19192  "co.financial",
19193  "co.network",
19194  "co.place",
19195  "co.technology",
19196  "linkyard-cloud.ch",
19197  "linkyard.cloud",
19198  "members.linode.com",
19199  "*.nodebalancer.linode.com",
19200  "*.linodeobjects.com",
19201  "ip.linodeusercontent.com",
19202  "we.bs",
19203  "filegear-sg.me",
19204  "ggff.net",
19205  "*.user.localcert.dev",
19206  "lodz.pl",
19207  "pabianice.pl",
19208  "plock.pl",
19209  "sieradz.pl",
19210  "skierniewice.pl",
19211  "zgierz.pl",
19212  "loginline.app",
19213  "loginline.dev",
19214  "loginline.io",
19215  "loginline.services",
19216  "loginline.site",
19217  "lohmus.me",
19218  "servers.run",
19219  "krasnik.pl",
19220  "leczna.pl",
19221  "lubartow.pl",
19222  "lublin.pl",
19223  "poniatowa.pl",
19224  "swidnik.pl",
19225  "glug.org.uk",
19226  "lug.org.uk",
19227  "lugs.org.uk",
19228  "barsy.bg",
19229  "barsy.club",
19230  "barsycenter.com",
19231  "barsyonline.com",
19232  "barsy.de",
19233  "barsy.dev",
19234  "barsy.eu",
19235  "barsy.gr",
19236  "barsy.in",
19237  "barsy.info",
19238  "barsy.io",
19239  "barsy.me",
19240  "barsy.menu",
19241  "barsyonline.menu",
19242  "barsy.mobi",
19243  "barsy.net",
19244  "barsy.online",
19245  "barsy.org",
19246  "barsy.pro",
19247  "barsy.pub",
19248  "barsy.ro",
19249  "barsy.rs",
19250  "barsy.shop",
19251  "barsyonline.shop",
19252  "barsy.site",
19253  "barsy.store",
19254  "barsy.support",
19255  "barsy.uk",
19256  "barsy.co.uk",
19257  "barsyonline.co.uk",
19258  "*.magentosite.cloud",
19259  "hb.cldmail.ru",
19260  "matlab.cloud",
19261  "modelscape.com",
19262  "mwcloudnonprod.com",
19263  "polyspace.com",
19264  "mayfirst.info",
19265  "mayfirst.org",
19266  "mazeplay.com",
19267  "mcdir.me",
19268  "mcdir.ru",
19269  "vps.mcdir.ru",
19270  "mcpre.ru",
19271  "mediatech.by",
19272  "mediatech.dev",
19273  "hra.health",
19274  "medusajs.app",
19275  "miniserver.com",
19276  "memset.net",
19277  "messerli.app",
19278  "atmeta.com",
19279  "apps.fbsbx.com",
19280  "*.cloud.metacentrum.cz",
19281  "custom.metacentrum.cz",
19282  "flt.cloud.muni.cz",
19283  "usr.cloud.muni.cz",
19284  "meteorapp.com",
19285  "eu.meteorapp.com",
19286  "co.pl",
19287  "*.azurecontainer.io",
19288  "azure-api.net",
19289  "azure-mobile.net",
19290  "azureedge.net",
19291  "azurefd.net",
19292  "azurestaticapps.net",
19293  "1.azurestaticapps.net",
19294  "2.azurestaticapps.net",
19295  "3.azurestaticapps.net",
19296  "4.azurestaticapps.net",
19297  "5.azurestaticapps.net",
19298  "6.azurestaticapps.net",
19299  "7.azurestaticapps.net",
19300  "centralus.azurestaticapps.net",
19301  "eastasia.azurestaticapps.net",
19302  "eastus2.azurestaticapps.net",
19303  "westeurope.azurestaticapps.net",
19304  "westus2.azurestaticapps.net",
19305  "azurewebsites.net",
19306  "cloudapp.net",
19307  "trafficmanager.net",
19308  "blob.core.windows.net",
19309  "servicebus.windows.net",
19310  "routingthecloud.com",
19311  "sn.mynetname.net",
19312  "routingthecloud.net",
19313  "routingthecloud.org",
19314  "csx.cc",
19315  "mydbserver.com",
19316  "webspaceconfig.de",
19317  "mittwald.info",
19318  "mittwaldserver.info",
19319  "typo3server.info",
19320  "project.space",
19321  "modx.dev",
19322  "bmoattachments.org",
19323  "net.ru",
19324  "org.ru",
19325  "pp.ru",
19326  "hostedpi.com",
19327  "caracal.mythic-beasts.com",
19328  "customer.mythic-beasts.com",
19329  "fentiger.mythic-beasts.com",
19330  "lynx.mythic-beasts.com",
19331  "ocelot.mythic-beasts.com",
19332  "oncilla.mythic-beasts.com",
19333  "onza.mythic-beasts.com",
19334  "sphinx.mythic-beasts.com",
19335  "vs.mythic-beasts.com",
19336  "x.mythic-beasts.com",
19337  "yali.mythic-beasts.com",
19338  "cust.retrosnub.co.uk",
19339  "ui.nabu.casa",
19340  "cloud.nospamproxy.com",
19341  "netfy.app",
19342  "netlify.app",
19343  "4u.com",
19344  "nfshost.com",
19345  "ipfs.nftstorage.link",
19346  "ngo.us",
19347  "ngrok.app",
19348  "ngrok-free.app",
19349  "ngrok.dev",
19350  "ngrok-free.dev",
19351  "ngrok.io",
19352  "ap.ngrok.io",
19353  "au.ngrok.io",
19354  "eu.ngrok.io",
19355  "in.ngrok.io",
19356  "jp.ngrok.io",
19357  "sa.ngrok.io",
19358  "us.ngrok.io",
19359  "ngrok.pizza",
19360  "ngrok.pro",
19361  "torun.pl",
19362  "nh-serv.co.uk",
19363  "nimsite.uk",
19364  "mmafan.biz",
19365  "myftp.biz",
19366  "no-ip.biz",
19367  "no-ip.ca",
19368  "fantasyleague.cc",
19369  "gotdns.ch",
19370  "3utilities.com",
19371  "blogsyte.com",
19372  "ciscofreak.com",
19373  "damnserver.com",
19374  "ddnsking.com",
19375  "ditchyourip.com",
19376  "dnsiskinky.com",
19377  "dynns.com",
19378  "geekgalaxy.com",
19379  "health-carereform.com",
19380  "homesecuritymac.com",
19381  "homesecuritypc.com",
19382  "myactivedirectory.com",
19383  "mysecuritycamera.com",
19384  "myvnc.com",
19385  "net-freaks.com",
19386  "onthewifi.com",
19387  "point2this.com",
19388  "quicksytes.com",
19389  "securitytactics.com",
19390  "servebeer.com",
19391  "servecounterstrike.com",
19392  "serveexchange.com",
19393  "serveftp.com",
19394  "servegame.com",
19395  "servehalflife.com",
19396  "servehttp.com",
19397  "servehumour.com",
19398  "serveirc.com",
19399  "servemp3.com",
19400  "servep2p.com",
19401  "servepics.com",
19402  "servequake.com",
19403  "servesarcasm.com",
19404  "stufftoread.com",
19405  "unusualperson.com",
19406  "workisboring.com",
19407  "dvrcam.info",
19408  "ilovecollege.info",
19409  "no-ip.info",
19410  "brasilia.me",
19411  "ddns.me",
19412  "dnsfor.me",
19413  "hopto.me",
19414  "loginto.me",
19415  "noip.me",
19416  "webhop.me",
19417  "bounceme.net",
19418  "ddns.net",
19419  "eating-organic.net",
19420  "mydissent.net",
19421  "myeffect.net",
19422  "mymediapc.net",
19423  "mypsx.net",
19424  "mysecuritycamera.net",
19425  "nhlfan.net",
19426  "no-ip.net",
19427  "pgafan.net",
19428  "privatizehealthinsurance.net",
19429  "redirectme.net",
19430  "serveblog.net",
19431  "serveminecraft.net",
19432  "sytes.net",
19433  "cable-modem.org",
19434  "collegefan.org",
19435  "couchpotatofries.org",
19436  "hopto.org",
19437  "mlbfan.org",
19438  "myftp.org",
19439  "mysecuritycamera.org",
19440  "nflfan.org",
19441  "no-ip.org",
19442  "read-books.org",
19443  "ufcfan.org",
19444  "zapto.org",
19445  "no-ip.co.uk",
19446  "golffan.us",
19447  "noip.us",
19448  "pointto.us",
19449  "stage.nodeart.io",
19450  "*.developer.app",
19451  "noop.app",
19452  "*.northflank.app",
19453  "*.build.run",
19454  "*.code.run",
19455  "*.database.run",
19456  "*.migration.run",
19457  "noticeable.news",
19458  "notion.site",
19459  "dnsking.ch",
19460  "mypi.co",
19461  "n4t.co",
19462  "001www.com",
19463  "myiphost.com",
19464  "forumz.info",
19465  "soundcast.me",
19466  "tcp4.me",
19467  "dnsup.net",
19468  "hicam.net",
19469  "now-dns.net",
19470  "ownip.net",
19471  "vpndns.net",
19472  "dynserv.org",
19473  "now-dns.org",
19474  "x443.pw",
19475  "now-dns.top",
19476  "ntdll.top",
19477  "freeddns.us",
19478  "nsupdate.info",
19479  "nerdpol.ovh",
19480  "nyc.mn",
19481  "prvcy.page",
19482  "obl.ong",
19483  "observablehq.cloud",
19484  "static.observableusercontent.com",
19485  "omg.lol",
19486  "cloudycluster.net",
19487  "omniwe.site",
19488  "123webseite.at",
19489  "123website.be",
19490  "simplesite.com.br",
19491  "123website.ch",
19492  "simplesite.com",
19493  "123webseite.de",
19494  "123hjemmeside.dk",
19495  "123miweb.es",
19496  "123kotisivu.fi",
19497  "123siteweb.fr",
19498  "simplesite.gr",
19499  "123homepage.it",
19500  "123website.lu",
19501  "123website.nl",
19502  "123hjemmeside.no",
19503  "service.one",
19504  "simplesite.pl",
19505  "123paginaweb.pt",
19506  "123minsida.se",
19507  "is-a-fullstack.dev",
19508  "is-cool.dev",
19509  "is-not-a.dev",
19510  "localplayer.dev",
19511  "is-local.org",
19512  "opensocial.site",
19513  "opencraft.hosting",
19514  "16-b.it",
19515  "32-b.it",
19516  "64-b.it",
19517  "orsites.com",
19518  "operaunite.com",
19519  "*.customer-oci.com",
19520  "*.oci.customer-oci.com",
19521  "*.ocp.customer-oci.com",
19522  "*.ocs.customer-oci.com",
19523  "*.oraclecloudapps.com",
19524  "*.oraclegovcloudapps.com",
19525  "*.oraclegovcloudapps.uk",
19526  "tech.orange",
19527  "can.re",
19528  "authgear-staging.com",
19529  "authgearapps.com",
19530  "skygearapp.com",
19531  "outsystemscloud.com",
19532  "*.hosting.ovh.net",
19533  "*.webpaas.ovh.net",
19534  "ownprovider.com",
19535  "own.pm",
19536  "*.owo.codes",
19537  "ox.rs",
19538  "oy.lc",
19539  "pgfog.com",
19540  "pagexl.com",
19541  "gotpantheon.com",
19542  "pantheonsite.io",
19543  "*.paywhirl.com",
19544  "*.xmit.co",
19545  "xmit.dev",
19546  "madethis.site",
19547  "srv.us",
19548  "gh.srv.us",
19549  "gl.srv.us",
19550  "lk3.ru",
19551  "mypep.link",
19552  "perspecta.cloud",
19553  "on-web.fr",
19554  "*.upsun.app",
19555  "upsunapp.com",
19556  "ent.platform.sh",
19557  "eu.platform.sh",
19558  "us.platform.sh",
19559  "*.platformsh.site",
19560  "*.tst.site",
19561  "platter-app.com",
19562  "platter-app.dev",
19563  "platterp.us",
19564  "pley.games",
19565  "onporter.run",
19566  "co.bn",
19567  "postman-echo.com",
19568  "pstmn.io",
19569  "mock.pstmn.io",
19570  "httpbin.org",
19571  "prequalifyme.today",
19572  "xen.prgmr.com",
19573  "priv.at",
19574  "protonet.io",
19575  "chirurgiens-dentistes-en-france.fr",
19576  "byen.site",
19577  "pubtls.org",
19578  "pythonanywhere.com",
19579  "eu.pythonanywhere.com",
19580  "qa2.com",
19581  "qcx.io",
19582  "*.sys.qcx.io",
19583  "myqnapcloud.cn",
19584  "alpha-myqnapcloud.com",
19585  "dev-myqnapcloud.com",
19586  "mycloudnas.com",
19587  "mynascloud.com",
19588  "myqnapcloud.com",
19589  "qoto.io",
19590  "qualifioapp.com",
19591  "ladesk.com",
19592  "qbuser.com",
19593  "*.quipelements.com",
19594  "vapor.cloud",
19595  "vaporcloud.io",
19596  "rackmaze.com",
19597  "rackmaze.net",
19598  "cloudsite.builders",
19599  "myradweb.net",
19600  "servername.us",
19601  "web.in",
19602  "in.net",
19603  "myrdbx.io",
19604  "site.rb-hosting.io",
19605  "*.on-rancher.cloud",
19606  "*.on-k3s.io",
19607  "*.on-rio.io",
19608  "ravpage.co.il",
19609  "readthedocs-hosted.com",
19610  "readthedocs.io",
19611  "rhcloud.com",
19612  "instances.spawn.cc",
19613  "onrender.com",
19614  "app.render.com",
19615  "replit.app",
19616  "id.replit.app",
19617  "firewalledreplit.co",
19618  "id.firewalledreplit.co",
19619  "repl.co",
19620  "id.repl.co",
19621  "replit.dev",
19622  "archer.replit.dev",
19623  "bones.replit.dev",
19624  "canary.replit.dev",
19625  "global.replit.dev",
19626  "hacker.replit.dev",
19627  "id.replit.dev",
19628  "janeway.replit.dev",
19629  "kim.replit.dev",
19630  "kira.replit.dev",
19631  "kirk.replit.dev",
19632  "odo.replit.dev",
19633  "paris.replit.dev",
19634  "picard.replit.dev",
19635  "pike.replit.dev",
19636  "prerelease.replit.dev",
19637  "reed.replit.dev",
19638  "riker.replit.dev",
19639  "sisko.replit.dev",
19640  "spock.replit.dev",
19641  "staging.replit.dev",
19642  "sulu.replit.dev",
19643  "tarpit.replit.dev",
19644  "teams.replit.dev",
19645  "tucker.replit.dev",
19646  "wesley.replit.dev",
19647  "worf.replit.dev",
19648  "repl.run",
19649  "resindevice.io",
19650  "devices.resinstaging.io",
19651  "hzc.io",
19652  "adimo.co.uk",
19653  "itcouldbewor.se",
19654  "aus.basketball",
19655  "nz.basketball",
19656  "git-pages.rit.edu",
19657  "rocky.page",
19658  "rub.de",
19659  "ruhr-uni-bochum.de",
19660  "io.noc.ruhr-uni-bochum.de",
19661  "биз.рус",
19662  "ком.рус",
19663  "крым.рус",
19664  "мир.рус",
19665  "мск.рус",
19666  "орг.рус",
19667  "самара.рус",
19668  "сочи.рус",
19669  "спб.рус",
19670  "я.рус",
19671  "ras.ru",
19672  "nyat.app",
19673  "180r.com",
19674  "dojin.com",
19675  "sakuratan.com",
19676  "sakuraweb.com",
19677  "x0.com",
19678  "2-d.jp",
19679  "bona.jp",
19680  "crap.jp",
19681  "daynight.jp",
19682  "eek.jp",
19683  "flop.jp",
19684  "halfmoon.jp",
19685  "jeez.jp",
19686  "matrix.jp",
19687  "mimoza.jp",
19688  "ivory.ne.jp",
19689  "mail-box.ne.jp",
19690  "mints.ne.jp",
19691  "mokuren.ne.jp",
19692  "opal.ne.jp",
19693  "sakura.ne.jp",
19694  "sumomo.ne.jp",
19695  "topaz.ne.jp",
19696  "netgamers.jp",
19697  "nyanta.jp",
19698  "o0o0.jp",
19699  "rdy.jp",
19700  "rgr.jp",
19701  "rulez.jp",
19702  "s3.isk01.sakurastorage.jp",
19703  "s3.isk02.sakurastorage.jp",
19704  "saloon.jp",
19705  "sblo.jp",
19706  "skr.jp",
19707  "tank.jp",
19708  "uh-oh.jp",
19709  "undo.jp",
19710  "rs.webaccel.jp",
19711  "user.webaccel.jp",
19712  "websozai.jp",
19713  "xii.jp",
19714  "squares.net",
19715  "jpn.org",
19716  "kirara.st",
19717  "x0.to",
19718  "from.tv",
19719  "sakura.tv",
19720  "*.builder.code.com",
19721  "*.dev-builder.code.com",
19722  "*.stg-builder.code.com",
19723  "*.001.test.code-builder-stg.platform.salesforce.com",
19724  "*.d.crm.dev",
19725  "*.w.crm.dev",
19726  "*.wa.crm.dev",
19727  "*.wb.crm.dev",
19728  "*.wc.crm.dev",
19729  "*.wd.crm.dev",
19730  "*.we.crm.dev",
19731  "*.wf.crm.dev",
19732  "sandcats.io",
19733  "logoip.com",
19734  "logoip.de",
19735  "fr-par-1.baremetal.scw.cloud",
19736  "fr-par-2.baremetal.scw.cloud",
19737  "nl-ams-1.baremetal.scw.cloud",
19738  "cockpit.fr-par.scw.cloud",
19739  "fnc.fr-par.scw.cloud",
19740  "functions.fnc.fr-par.scw.cloud",
19741  "k8s.fr-par.scw.cloud",
19742  "nodes.k8s.fr-par.scw.cloud",
19743  "s3.fr-par.scw.cloud",
19744  "s3-website.fr-par.scw.cloud",
19745  "whm.fr-par.scw.cloud",
19746  "priv.instances.scw.cloud",
19747  "pub.instances.scw.cloud",
19748  "k8s.scw.cloud",
19749  "cockpit.nl-ams.scw.cloud",
19750  "k8s.nl-ams.scw.cloud",
19751  "nodes.k8s.nl-ams.scw.cloud",
19752  "s3.nl-ams.scw.cloud",
19753  "s3-website.nl-ams.scw.cloud",
19754  "whm.nl-ams.scw.cloud",
19755  "cockpit.pl-waw.scw.cloud",
19756  "k8s.pl-waw.scw.cloud",
19757  "nodes.k8s.pl-waw.scw.cloud",
19758  "s3.pl-waw.scw.cloud",
19759  "s3-website.pl-waw.scw.cloud",
19760  "scalebook.scw.cloud",
19761  "smartlabeling.scw.cloud",
19762  "dedibox.fr",
19763  "schokokeks.net",
19764  "gov.scot",
19765  "service.gov.scot",
19766  "scrysec.com",
19767  "client.scrypted.io",
19768  "firewall-gateway.com",
19769  "firewall-gateway.de",
19770  "my-gateway.de",
19771  "my-router.de",
19772  "spdns.de",
19773  "spdns.eu",
19774  "firewall-gateway.net",
19775  "my-firewall.org",
19776  "myfirewall.org",
19777  "spdns.org",
19778  "seidat.net",
19779  "sellfy.store",
19780  "minisite.ms",
19781  "senseering.net",
19782  "servebolt.cloud",
19783  "biz.ua",
19784  "co.ua",
19785  "pp.ua",
19786  "as.sh.cn",
19787  "sheezy.games",
19788  "shiftedit.io",
19789  "myshopblocks.com",
19790  "myshopify.com",
19791  "shopitsite.com",
19792  "shopware.shop",
19793  "shopware.store",
19794  "mo-siemens.io",
19795  "1kapp.com",
19796  "appchizi.com",
19797  "applinzi.com",
19798  "sinaapp.com",
19799  "vipsinaapp.com",
19800  "siteleaf.net",
19801  "small-web.org",
19802  "aeroport.fr",
19803  "avocat.fr",
19804  "chambagri.fr",
19805  "chirurgiens-dentistes.fr",
19806  "experts-comptables.fr",
19807  "medecin.fr",
19808  "notaires.fr",
19809  "pharmacien.fr",
19810  "port.fr",
19811  "veterinaire.fr",
19812  "vp4.me",
19813  "*.snowflake.app",
19814  "*.privatelink.snowflake.app",
19815  "streamlit.app",
19816  "streamlitapp.com",
19817  "try-snowplow.com",
19818  "mafelo.net",
19819  "playstation-cloud.com",
19820  "srht.site",
19821  "apps.lair.io",
19822  "*.stolos.io",
19823  "spacekit.io",
19824  "ind.mom",
19825  "customer.speedpartner.de",
19826  "myspreadshop.at",
19827  "myspreadshop.com.au",
19828  "myspreadshop.be",
19829  "myspreadshop.ca",
19830  "myspreadshop.ch",
19831  "myspreadshop.com",
19832  "myspreadshop.de",
19833  "myspreadshop.dk",
19834  "myspreadshop.es",
19835  "myspreadshop.fi",
19836  "myspreadshop.fr",
19837  "myspreadshop.ie",
19838  "myspreadshop.it",
19839  "myspreadshop.net",
19840  "myspreadshop.nl",
19841  "myspreadshop.no",
19842  "myspreadshop.pl",
19843  "myspreadshop.se",
19844  "myspreadshop.co.uk",
19845  "w-corp-staticblitz.com",
19846  "w-credentialless-staticblitz.com",
19847  "w-staticblitz.com",
19848  "stackhero-network.com",
19849  "runs.onstackit.cloud",
19850  "stackit.gg",
19851  "stackit.rocks",
19852  "stackit.run",
19853  "stackit.zone",
19854  "musician.io",
19855  "novecore.site",
19856  "api.stdlib.com",
19857  "feedback.ac",
19858  "forms.ac",
19859  "assessments.cx",
19860  "calculators.cx",
19861  "funnels.cx",
19862  "paynow.cx",
19863  "quizzes.cx",
19864  "researched.cx",
19865  "tests.cx",
19866  "surveys.so",
19867  "storebase.store",
19868  "storipress.app",
19869  "storj.farm",
19870  "strapiapp.com",
19871  "media.strapiapp.com",
19872  "vps-host.net",
19873  "atl.jelastic.vps-host.net",
19874  "njs.jelastic.vps-host.net",
19875  "ric.jelastic.vps-host.net",
19876  "streak-link.com",
19877  "streaklinks.com",
19878  "streakusercontent.com",
19879  "soc.srcf.net",
19880  "user.srcf.net",
19881  "utwente.io",
19882  "temp-dns.com",
19883  "supabase.co",
19884  "supabase.in",
19885  "supabase.net",
19886  "syncloud.it",
19887  "dscloud.biz",
19888  "direct.quickconnect.cn",
19889  "dsmynas.com",
19890  "familyds.com",
19891  "diskstation.me",
19892  "dscloud.me",
19893  "i234.me",
19894  "myds.me",
19895  "synology.me",
19896  "dscloud.mobi",
19897  "dsmynas.net",
19898  "familyds.net",
19899  "dsmynas.org",
19900  "familyds.org",
19901  "direct.quickconnect.to",
19902  "vpnplus.to",
19903  "mytabit.com",
19904  "mytabit.co.il",
19905  "tabitorder.co.il",
19906  "taifun-dns.de",
19907  "ts.net",
19908  "*.c.ts.net",
19909  "gda.pl",
19910  "gdansk.pl",
19911  "gdynia.pl",
19912  "med.pl",
19913  "sopot.pl",
19914  "taveusercontent.com",
19915  "p.tawk.email",
19916  "p.tawkto.email",
19917  "site.tb-hosting.com",
19918  "edugit.io",
19919  "s3.teckids.org",
19920  "telebit.app",
19921  "telebit.io",
19922  "*.telebit.xyz",
19923  "*.firenet.ch",
19924  "*.svc.firenet.ch",
19925  "reservd.com",
19926  "thingdustdata.com",
19927  "cust.dev.thingdust.io",
19928  "reservd.dev.thingdust.io",
19929  "cust.disrec.thingdust.io",
19930  "reservd.disrec.thingdust.io",
19931  "cust.prod.thingdust.io",
19932  "cust.testing.thingdust.io",
19933  "reservd.testing.thingdust.io",
19934  "tickets.io",
19935  "arvo.network",
19936  "azimuth.network",
19937  "tlon.network",
19938  "torproject.net",
19939  "pages.torproject.net",
19940  "townnews-staging.com",
19941  "12hp.at",
19942  "2ix.at",
19943  "4lima.at",
19944  "lima-city.at",
19945  "12hp.ch",
19946  "2ix.ch",
19947  "4lima.ch",
19948  "lima-city.ch",
19949  "trafficplex.cloud",
19950  "de.cool",
19951  "12hp.de",
19952  "2ix.de",
19953  "4lima.de",
19954  "lima-city.de",
19955  "1337.pictures",
19956  "clan.rip",
19957  "lima-city.rocks",
19958  "webspace.rocks",
19959  "lima.zone",
19960  "*.transurl.be",
19961  "*.transurl.eu",
19962  "site.transip.me",
19963  "*.transurl.nl",
19964  "tuxfamily.org",
19965  "dd-dns.de",
19966  "dray-dns.de",
19967  "draydns.de",
19968  "dyn-vpn.de",
19969  "dynvpn.de",
19970  "mein-vigor.de",
19971  "my-vigor.de",
19972  "my-wan.de",
19973  "syno-ds.de",
19974  "synology-diskstation.de",
19975  "synology-ds.de",
19976  "diskstation.eu",
19977  "diskstation.org",
19978  "typedream.app",
19979  "pro.typeform.com",
19980  "*.uberspace.de",
19981  "uber.space",
19982  "hk.com",
19983  "inc.hk",
19984  "ltd.hk",
19985  "hk.org",
19986  "it.com",
19987  "unison-services.cloud",
19988  "virtual-user.de",
19989  "virtualuser.de",
19990  "name.pm",
19991  "sch.tf",
19992  "biz.wf",
19993  "sch.wf",
19994  "org.yt",
19995  "rs.ba",
19996  "bielsko.pl",
19997  "upli.io",
19998  "urown.cloud",
19999  "dnsupdate.info",
20000  "us.org",
20001  "v.ua",
20002  "express.val.run",
20003  "web.val.run",
20004  "vercel.app",
20005  "v0.build",
20006  "vercel.dev",
20007  "vusercontent.net",
20008  "now.sh",
20009  "2038.io",
20010  "router.management",
20011  "v-info.info",
20012  "voorloper.cloud",
20013  "*.vultrobjects.com",
20014  "wafflecell.com",
20015  "webflow.io",
20016  "webflowtest.io",
20017  "*.webhare.dev",
20018  "bookonline.app",
20019  "hotelwithflight.com",
20020  "reserve-online.com",
20021  "reserve-online.net",
20022  "cprapid.com",
20023  "pleskns.com",
20024  "wp2.host",
20025  "pdns.page",
20026  "plesk.page",
20027  "wpsquared.site",
20028  "*.wadl.top",
20029  "remotewd.com",
20030  "box.ca",
20031  "pages.wiardweb.com",
20032  "toolforge.org",
20033  "wmcloud.org",
20034  "wmflabs.org",
20035  "wdh.app",
20036  "panel.gg",
20037  "daemon.panel.gg",
20038  "wixsite.com",
20039  "wixstudio.com",
20040  "editorx.io",
20041  "wixstudio.io",
20042  "wix.run",
20043  "messwithdns.com",
20044  "woltlab-demo.com",
20045  "myforum.community",
20046  "community-pro.de",
20047  "diskussionsbereich.de",
20048  "community-pro.net",
20049  "meinforum.net",
20050  "affinitylottery.org.uk",
20051  "raffleentry.org.uk",
20052  "weeklylottery.org.uk",
20053  "wpenginepowered.com",
20054  "js.wpenginepowered.com",
20055  "half.host",
20056  "xnbay.com",
20057  "u2.xnbay.com",
20058  "u2-local.xnbay.com",
20059  "cistron.nl",
20060  "demon.nl",
20061  "xs4all.space",
20062  "yandexcloud.net",
20063  "storage.yandexcloud.net",
20064  "website.yandexcloud.net",
20065  "official.academy",
20066  "yolasite.com",
20067  "yombo.me",
20068  "ynh.fr",
20069  "nohost.me",
20070  "noho.st",
20071  "za.net",
20072  "za.org",
20073  "zap.cloud",
20074  "zeabur.app",
20075  "bss.design",
20076  "basicserver.io",
20077  "virtualserver.io",
20078  "enterprisecloud.nu"
20079], Q = K.reduce(
20080  (e, s) => {
20081    const c = s.replace(/^(\*\.|\!)/, ""), o = A.toASCII(c), t = s.charAt(0);
20082    if (e.has(o))
20083      throw new Error(`Multiple rules found for ${s} (${o})`);
20084    return e.set(o, {
20085      rule: s,
20086      suffix: c,
20087      punySuffix: o,
20088      wildcard: t === "*",
20089      exception: t === "!"
20090    }), e;
20091  },
20092  /* @__PURE__ */ new Map()
20093), X = (e) => {
20094  const c = A.toASCII(e).split(".");
20095  for (let o = 0; o < c.length; o++) {
20096    const t = c.slice(o).join("."), d = Q.get(t);
20097    if (d)
20098      return d;
20099  }
20100  return null;
20101}, Y = {
20102  DOMAIN_TOO_SHORT: "Domain name too short.",
20103  DOMAIN_TOO_LONG: "Domain name too long. It should be no more than 255 chars.",
20104  LABEL_STARTS_WITH_DASH: "Domain name label can not start with a dash.",
20105  LABEL_ENDS_WITH_DASH: "Domain name label can not end with a dash.",
20106  LABEL_TOO_LONG: "Domain name label should be at most 63 chars long.",
20107  LABEL_TOO_SHORT: "Domain name label should be at least 1 character long.",
20108  LABEL_INVALID_CHARS: "Domain name label can only contain alphanumeric characters or dashes."
20109}, Z = (e) => {
20110  const s = A.toASCII(e);
20111  if (s.length < 1)
20112    return "DOMAIN_TOO_SHORT";
20113  if (s.length > 255)
20114    return "DOMAIN_TOO_LONG";
20115  const c = s.split(".");
20116  let o;
20117  for (let t = 0; t < c.length; ++t) {
20118    if (o = c[t], !o.length)
20119      return "LABEL_TOO_SHORT";
20120    if (o.length > 63)
20121      return "LABEL_TOO_LONG";
20122    if (o.charAt(0) === "-")
20123      return "LABEL_STARTS_WITH_DASH";
20124    if (o.charAt(o.length - 1) === "-")
20125      return "LABEL_ENDS_WITH_DASH";
20126    if (!/^[a-z0-9\-_]+$/.test(o))
20127      return "LABEL_INVALID_CHARS";
20128  }
20129}, O = (e) => {
20130  if (typeof e != "string")
20131    throw new TypeError("Domain name must be a string.");
20132  let s = e.slice(0).toLowerCase();
20133  s.charAt(s.length - 1) === "." && (s = s.slice(0, s.length - 1));
20134  const c = Z(s);
20135  if (c)
20136    return {
20137      input: e,
20138      error: {
20139        message: Y[c],
20140        code: c
20141      }
20142    };
20143  const o = {
20144    input: e,
20145    tld: null,
20146    sld: null,
20147    domain: null,
20148    subdomain: null,
20149    listed: !1
20150  }, t = s.split(".");
20151  if (t[t.length - 1] === "local")
20152    return o;
20153  const d = () => (/xn--/.test(s) && (o.domain && (o.domain = A.toASCII(o.domain)), o.subdomain && (o.subdomain = A.toASCII(o.subdomain))), o), z = X(s);
20154  if (!z)
20155    return t.length < 2 ? o : (o.tld = t.pop(), o.sld = t.pop(), o.domain = [o.sld, o.tld].join("."), t.length && (o.subdomain = t.pop()), d());
20156  o.listed = !0;
20157  const y = z.suffix.split("."), g = t.slice(0, t.length - y.length);
20158  return z.exception && g.push(y.shift()), o.tld = y.join("."), !g.length || (z.wildcard && (y.unshift(g.pop()), o.tld = y.join(".")), !g.length) || (o.sld = g.pop(), o.domain = [o.sld, o.tld].join("."), g.length && (o.subdomain = g.join("."))), d();
20159}, aa = (e) => e && O(e).domain || null, oa = (e) => {
20160  const s = O(e);
20161  return !!(s.domain && s.listed);
20162}, na = { parse: O, get: aa, isValid: oa };
20163
20164
20165
20166/***/ }),
20167
20168/***/ 67536:
20169/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20170
20171"use strict";
20172/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20173/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
20174/* harmony export */ });
20175var raf = function raf(callback) {
20176  return +setTimeout(callback, 16);
20177};
20178var caf = function caf(num) {
20179  return clearTimeout(num);
20180};
20181if (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {
20182  raf = function raf(callback) {
20183    return window.requestAnimationFrame(callback);
20184  };
20185  caf = function caf(handle) {
20186    return window.cancelAnimationFrame(handle);
20187  };
20188}
20189var rafUUID = 0;
20190var rafIds = new Map();
20191function cleanup(id) {
20192  rafIds.delete(id);
20193}
20194var wrapperRaf = function wrapperRaf(callback) {
20195  var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
20196  rafUUID += 1;
20197  var id = rafUUID;
20198  function callRef(leftTimes) {
20199    if (leftTimes === 0) {
20200      // Clean up
20201      cleanup(id);
20202
20203      // Trigger
20204      callback();
20205    } else {
20206      // Next raf
20207      var realId = raf(function () {
20208        callRef(leftTimes - 1);
20209      });
20210
20211      // Bind real raf id
20212      rafIds.set(id, realId);
20213    }
20214  }
20215  callRef(times);
20216  return id;
20217};
20218wrapperRaf.cancel = function (id) {
20219  var realId = rafIds.get(id);
20220  cleanup(id);
20221  return caf(realId);
20222};
20223if (false) // removed by dead control flow
20224{}
20225/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (wrapperRaf);
20226
20227/***/ }),
20228
20229/***/ 69055:
20230/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20231
20232"use strict";
20233/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20234/* harmony export */   A: () => (/* binding */ useIsQk)
20235/* harmony export */ });
20236function useIsQk(server_siteCheck) {
20237  var _a, _b;
20238  if (typeof window === 'undefined') return server_siteCheck ? ((_a = server_siteCheck === null || server_siteCheck === void 0 ? void 0 : server_siteCheck.isShow) === null || _a === void 0 ? void 0 : _a.call(server_siteCheck, 'global-qkff')) === false : false;
20239  return ((_b = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _b === void 0 ? void 0 : _b.isShow('global-qkff')) === false;
20240}
20241
20242/***/ }),
20243
20244/***/ 69740:
20245/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
20246
20247"use strict";
20248/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20249/* harmony export */   A: () => (/* binding */ _objectSpread2)
20250/* harmony export */ });
20251/* harmony import */ var _defineProperty_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24586);
20252
20253function ownKeys(e, r) {
20254  var t = Object.keys(e);
20255  if (Object.getOwnPropertySymbols) {
20256    var o = Object.getOwnPropertySymbols(e);
20257    r && (o = o.filter(function (r) {
20258      return Object.getOwnPropertyDescriptor(e, r).enumerable;
20259    })), t.push.apply(t, o);
20260  }
20261  return t;
20262}
20263function _objectSpread2(e) {
20264  for (var r = 1; r < arguments.length; r++) {
20265    var t = null != arguments[r] ? arguments[r] : {};
20266    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
20267      (0,_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(e, r, t[r]);
20268    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
20269      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
20270    });
20271  }
20272  return e;
20273}
20274
20275
20276/***/ }),
20277
20278/***/ 70297:
20279/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20280
20281"use strict";
20282/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20283/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
20284/* harmony export */ });
20285/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79082);
20286/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
20287/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
20288/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(56003);
20289/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_2__);
20290/* harmony import */ var rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(47169);
20291/* harmony import */ var rc_util_es_warning__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84445);
20292/* harmony import */ var rc_util_es_ref__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(19284);
20293/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(50184);
20294/* harmony import */ var _useDom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(74234);
20295/* harmony import */ var _useScrollLocker__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(6553);
20296/* harmony import */ var _mock__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(71161);
20297
20298
20299
20300
20301
20302
20303
20304
20305
20306
20307var getPortalContainer = function getPortalContainer(getContainer) {
20308  if (getContainer === false) {
20309    return false;
20310  }
20311  if (!(0,rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)() || !getContainer) {
20312    return null;
20313  }
20314  if (typeof getContainer === 'string') {
20315    return document.querySelector(getContainer);
20316  }
20317  if (typeof getContainer === 'function') {
20318    return getContainer();
20319  }
20320  return getContainer;
20321};
20322var Portal = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(function (props, ref) {
20323  var open = props.open,
20324    autoLock = props.autoLock,
20325    getContainer = props.getContainer,
20326    debug = props.debug,
20327    _props$autoDestroy = props.autoDestroy,
20328    autoDestroy = _props$autoDestroy === void 0 ? true : _props$autoDestroy,
20329    children = props.children;
20330  var _React$useState = react__WEBPACK_IMPORTED_MODULE_1__.useState(open),
20331    _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(_React$useState, 2),
20332    shouldRender = _React$useState2[0],
20333    setShouldRender = _React$useState2[1];
20334  var mergedRender = shouldRender || open;
20335
20336  // ========================= Warning =========================
20337  if (false) // removed by dead control flow
20338{}
20339
20340  // ====================== Should Render ======================
20341  react__WEBPACK_IMPORTED_MODULE_1__.useEffect(function () {
20342    if (autoDestroy || open) {
20343      setShouldRender(open);
20344    }
20345  }, [open, autoDestroy]);
20346
20347  // ======================== Container ========================
20348  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_1__.useState(function () {
20349      return getPortalContainer(getContainer);
20350    }),
20351    _React$useState4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(_React$useState3, 2),
20352    innerContainer = _React$useState4[0],
20353    setInnerContainer = _React$useState4[1];
20354  react__WEBPACK_IMPORTED_MODULE_1__.useEffect(function () {
20355    var customizeContainer = getPortalContainer(getContainer);
20356
20357    // Tell component that we check this in effect which is safe to be `null`
20358    setInnerContainer(customizeContainer !== null && customizeContainer !== void 0 ? customizeContainer : null);
20359  });
20360  var _useDom = (0,_useDom__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)(mergedRender && !innerContainer, debug),
20361    _useDom2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(_useDom, 2),
20362    defaultContainer = _useDom2[0],
20363    queueCreate = _useDom2[1];
20364  var mergedContainer = innerContainer !== null && innerContainer !== void 0 ? innerContainer : defaultContainer;
20365
20366  // ========================= Locker ==========================
20367  (0,_useScrollLocker__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(autoLock && open && (0,rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)() && (mergedContainer === defaultContainer || mergedContainer === document.body));
20368
20369  // =========================== Ref ===========================
20370  var childRef = null;
20371  if (children && (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_5__/* .supportRef */ .f3)(children) && ref) {
20372    var _ref = children;
20373    childRef = _ref.ref;
20374  }
20375  var mergedRef = (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_5__/* .useComposeRef */ .xK)(childRef, ref);
20376
20377  // ========================= Render ==========================
20378  // Do not render when nothing need render
20379  // When innerContainer is `undefined`, it may not ready since user use ref in the same render
20380  if (!mergedRender || !(0,rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)() || innerContainer === undefined) {
20381    return null;
20382  }
20383
20384  // Render inline
20385  var renderInline = mergedContainer === false || (0,_mock__WEBPACK_IMPORTED_MODULE_9__/* .inlineMock */ .O)();
20386  var reffedChildren = children;
20387  if (ref) {
20388    reffedChildren = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.cloneElement(children, {
20389      ref: mergedRef
20390    });
20391  }
20392  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_Context__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A.Provider, {
20393    value: queueCreate
20394  }, renderInline ? reffedChildren : /*#__PURE__*/(0,react_dom__WEBPACK_IMPORTED_MODULE_2__.createPortal)(reffedChildren, mergedContainer));
20395});
20396if (false) // removed by dead control flow
20397{}
20398/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Portal);
20399
20400/***/ }),
20401
20402/***/ 71161:
20403/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20404
20405"use strict";
20406/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20407/* harmony export */   O: () => (/* binding */ inlineMock)
20408/* harmony export */ });
20409/* unused harmony export inline */
20410var inline = false;
20411function inlineMock(nextInline) {
20412  if (typeof nextInline === 'boolean') {
20413    inline = nextInline;
20414  }
20415  return inline;
20416}
20417
20418/***/ }),
20419
20420/***/ 71850:
20421/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20422
20423"use strict";
20424/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20425/* harmony export */   A: () => (/* binding */ useIsMyCJ),
20426/* harmony export */   h: () => (/* binding */ isMyCjPageCheck)
20427/* harmony export */ });
20428/* harmony import */ var _components_CjHeader_contexts_PropsContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44148);
20429/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
20430/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
20431
20432
20433var isMyCjPageCheck = function isMyCjPageCheck(path) {
20434  return path.startsWith('/my.html') || path.startsWith('/mine/');
20435};
20436function useIsMyCJ() {
20437  var path = (0,_components_CjHeader_contexts_PropsContext__WEBPACK_IMPORTED_MODULE_0__/* .useGlobalProps */ .v)().path;
20438  var isMyCJPage = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(function () {
20439    return isMyCjPageCheck(path);
20440  }, [path]);
20441  var isOld = path.startsWith('/my.html');
20442  var isNew = path.startsWith('/mine/');
20443  return {
20444    isMyCJPage: isMyCJPage,
20445    isOld: isOld,
20446    isNew: isNew
20447  };
20448}
20449
20450/***/ }),
20451
20452/***/ 72715:
20453/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
20454
20455"use strict";
20456/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20457/* harmony export */   A: () => (/* binding */ _getPrototypeOf)
20458/* harmony export */ });
20459function _getPrototypeOf(t) {
20460  return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
20461    return t.__proto__ || Object.getPrototypeOf(t);
20462  }, _getPrototypeOf(t);
20463}
20464
20465
20466/***/ }),
20467
20468/***/ 72777:
20469/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20470
20471"use strict";
20472/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20473/* harmony export */   cc: () => (/* binding */ getOtherCookies)
20474/* harmony export */ });
20475/* unused harmony exports getWarehouses, getShowAuthorPlatform, getCurrencys, getQueryParams */
20476/* harmony import */ var _services__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62934);
20477/* harmony import */ var _common_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4703);
20478/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(81002);
20479/* harmony import */ var _components_CjHeader_const_show_authorize_list__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84266);
20480/* harmony import */ var _common_get_cookies__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(74372);
20481var __assign = undefined && undefined.__assign || function () {
20482  __assign = Object.assign || function (t) {
20483    for (var s, i = 1, n = arguments.length; i < n; i++) {
20484      s = arguments[i];
20485      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
20486    }
20487    return t;
20488  };
20489  return __assign.apply(this, arguments);
20490};
20491var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
20492  function adopt(value) {
20493    return value instanceof P ? value : new P(function (resolve) {
20494      resolve(value);
20495    });
20496  }
20497  return new (P || (P = Promise))(function (resolve, reject) {
20498    function fulfilled(value) {
20499      try {
20500        step(generator.next(value));
20501      } catch (e) {
20502        reject(e);
20503      }
20504    }
20505    function rejected(value) {
20506      try {
20507        step(generator["throw"](value));
20508      } catch (e) {
20509        reject(e);
20510      }
20511    }
20512    function step(result) {
20513      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
20514    }
20515    step((generator = generator.apply(thisArg, _arguments || [])).next());
20516  });
20517};
20518var __generator = undefined && undefined.__generator || function (thisArg, body) {
20519  var _ = {
20520      label: 0,
20521      sent: function sent() {
20522        if (t[0] & 1) throw t[1];
20523        return t[1];
20524      },
20525      trys: [],
20526      ops: []
20527    },
20528    f,
20529    y,
20530    t,
20531    g;
20532  return g = {
20533    next: verb(0),
20534    "throw": verb(1),
20535    "return": verb(2)
20536  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
20537    return this;
20538  }), g;
20539  function verb(n) {
20540    return function (v) {
20541      return step([n, v]);
20542    };
20543  }
20544  function step(op) {
20545    if (f) throw new TypeError("Generator is already executing.");
20546    while (g && (g = 0, op[0] && (_ = 0)), _) try {
20547      if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
20548      if (y = 0, t) op = [op[0] & 2, t.value];
20549      switch (op[0]) {
20550        case 0:
20551        case 1:
20552          t = op;
20553          break;
20554        case 4:
20555          _.label++;
20556          return {
20557            value: op[1],
20558            done: false
20559          };
20560        case 5:
20561          _.label++;
20562          y = op[1];
20563          op = [0];
20564          continue;
20565        case 7:
20566          op = _.ops.pop();
20567          _.trys.pop();
20568          continue;
20569        default:
20570          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
20571            _ = 0;
20572            continue;
20573          }
20574          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
20575            _.label = op[1];
20576            break;
20577          }
20578          if (op[0] === 6 && _.label < t[1]) {
20579            _.label = t[1];
20580            t = op;
20581            break;
20582          }
20583          if (t && _.label < t[2]) {
20584            _.label = t[2];
20585            _.ops.push(op);
20586            break;
20587          }
20588          if (t[2]) _.ops.pop();
20589          _.trys.pop();
20590          continue;
20591      }
20592      op = body.call(thisArg, _);
20593    } catch (e) {
20594      op = [6, e];
20595      y = 0;
20596    } finally {
20597      f = t = 0;
20598    }
20599    if (op[0] & 5) throw op[1];
20600    return {
20601      value: op[0] ? op[1] : void 0,
20602      done: true
20603    };
20604  }
20605};
20606
20607
20608
20609
20610
20611var getWarehouses = function getWarehouses(_a) {
20612  var ctx = _a.ctx,
20613    $axios = _a.$axios,
20614    lng = _a.lng;
20615  return __awaiter(void 0, void 0, void 0, function () {
20616    var _b, err, data;
20617    return __generator(this, function (_c) {
20618      switch (_c.label) {
20619        case 0:
20620          return [4, getWarehouseList({
20621            ctx: ctx,
20622            $axios: $axios,
20623            lng: lng
20624          })];
20625        case 1:
20626          _b = _c.sent(), err = _b[0], data = _b[1];
20627          if (!err && data) return [2, data];
20628          return [2, []];
20629      }
20630    });
20631  });
20632};
20633var getShowAuthorPlatform = function getShowAuthorPlatform(_a) {
20634  var ctx = _a.ctx,
20635    $axios = _a.$axios,
20636    token = _a.token;
20637  return __awaiter(void 0, void 0, void 0, function () {
20638    var showAuthorizeObject, platformKeys, data, _b, _i, data_1, element, item;
20639    var _c;
20640    return __generator(this, function (_d) {
20641      switch (_d.label) {
20642        case 0:
20643          showAuthorizeObject = __assign({}, showAuthorizeDefaultData);
20644          platformKeys = [];
20645          if (!ctx) return [3, 1];
20646          _b = (_c = ctx === null || ctx === void 0 ? void 0 : ctx.commonTopSSRProps) === null || _c === void 0 ? void 0 : _c.platformShowList;
20647          return [3, 3];
20648        case 1:
20649          return [4, getAuthorizeShowList($axios)];
20650        case 2:
20651          _b = _d.sent();
20652          _d.label = 3;
20653        case 3:
20654          data = _b;
20655          if (data && data.length > 0) {
20656            for (_i = 0, data_1 = data; _i < data_1.length; _i++) {
20657              element = data_1[_i];
20658              item = element;
20659              if (showAuthorizeObject[item.shopPlatformType]) {
20660                showAuthorizeObject[item.shopPlatformType].isAuthor = item.isAuthor;
20661                showAuthorizeObject[item.shopPlatformType].isShow = item.isShow;
20662                platformKeys.push(item.shopPlatformType);
20663              }
20664            }
20665          }
20666          return [2, {
20667            showAuthorizeObject: showAuthorizeObject,
20668            platformKeys: platformKeys
20669          }];
20670      }
20671    });
20672  });
20673};
20674var getCurrencys = function getCurrencys(_a) {
20675  var $axios = _a.$axios,
20676    siteCheck = _a.siteCheck;
20677  return __awaiter(void 0, void 0, void 0, function () {
20678    function request() {
20679      var _a;
20680      return __awaiter(this, void 0, void 0, function () {
20681        return __generator(this, function (_b) {
20682          switch (_b.label) {
20683            case 0:
20684              if (!is1688(siteCheck)) return [3, 2];
20685              return [4, getThCountryData($axios, (_a = siteCheck.data('name')) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase())];
20686            case 1:
20687              return [2, _b.sent()];
20688            case 2:
20689              return [4, getCountryData($axios)];
20690            case 3:
20691              return [2, _b.sent()];
20692          }
20693        });
20694      });
20695    }
20696    var currencys, currentTime;
20697    return __generator(this, function (_b) {
20698      switch (_b.label) {
20699        case 0:
20700          currencys = {};
20701          if (!isBrowser) return [3, 3];
20702          currentTime = new Date().getTime();
20703          currencys = store.get('@country/data', {
20704            parse: true
20705          });
20706          if ((currencys === null || currencys === void 0 ? void 0 : currencys.updateTime) - 1723432631219 < 0) {
20707            currencys = null;
20708          }
20709          if (!(!currencys || currentTime - (currencys.updateTime || 0) > 60 * 60 * 24 * 1000)) return [3, 2];
20710          return [4, request()];
20711        case 1:
20712          currencys = _b.sent();
20713          store.set('@country/data', __assign(__assign({}, currencys), {
20714            updateTime: currentTime
20715          }));
20716          _b.label = 2;
20717        case 2:
20718          return [3, 5];
20719        case 3:
20720          return [4, request()];
20721        case 4:
20722          currencys = _b.sent();
20723          _b.label = 5;
20724        case 5:
20725          return [2, currencys];
20726      }
20727    });
20728  });
20729};
20730var getQueryParams = function getQueryParams(_a) {
20731  var ctx = _a.ctx;
20732  var querySearch = isBrowser ? getQueryVariable() : ctx === null || ctx === void 0 ? void 0 : ctx.query;
20733  return querySearch !== null && querySearch !== void 0 ? querySearch : {};
20734};
20735var getOtherCookies = function getOtherCookies(_a) {
20736  var ctx = _a.ctx;
20737  return (0,_common_get_cookies__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)(ctx, [{
20738    name: 'lng'
20739  }, {
20740    name: 'shopPlatformTypesList'
20741  }, {
20742    name: 'currency'
20743  }, {
20744    name: 'SHOWMESSAGE'
20745  }, {
20746    name: 'cjLoginToken'
20747  }, {
20748    name: 'cur'
20749  }, {
20750    name: 'country'
20751  }, {
20752    name: 'searchSku'
20753  }]);
20754};
20755
20756/***/ }),
20757
20758/***/ 72880:
20759/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
20760
20761"use strict";
20762/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20763/* harmony export */   A: () => (/* binding */ _nonIterableSpread)
20764/* harmony export */ });
20765function _nonIterableSpread() {
20766  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
20767}
20768
20769
20770/***/ }),
20771
20772/***/ 73688:
20773/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20774
20775"use strict";
20776/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20777/* harmony export */   J1: () => (/* binding */ supportTransition),
20778/* harmony export */   Vc: () => (/* binding */ animationEndName),
20779/* harmony export */   by: () => (/* binding */ getTransitionName),
20780/* harmony export */   m8: () => (/* binding */ transitionEndName)
20781/* harmony export */ });
20782/* unused harmony exports getVendorPrefixes, getVendorPrefixedEventName */
20783/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17545);
20784/* harmony import */ var rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(47169);
20785
20786
20787// ================= Transition =================
20788// Event wrapper. Copy from react source code
20789function makePrefixMap(styleProp, eventName) {
20790  var prefixes = {};
20791  prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();
20792  prefixes["Webkit".concat(styleProp)] = "webkit".concat(eventName);
20793  prefixes["Moz".concat(styleProp)] = "moz".concat(eventName);
20794  prefixes["ms".concat(styleProp)] = "MS".concat(eventName);
20795  prefixes["O".concat(styleProp)] = "o".concat(eventName.toLowerCase());
20796  return prefixes;
20797}
20798function getVendorPrefixes(domSupport, win) {
20799  var prefixes = {
20800    animationend: makePrefixMap('Animation', 'AnimationEnd'),
20801    transitionend: makePrefixMap('Transition', 'TransitionEnd')
20802  };
20803  if (domSupport) {
20804    if (!('AnimationEvent' in win)) {
20805      delete prefixes.animationend.animation;
20806    }
20807    if (!('TransitionEvent' in win)) {
20808      delete prefixes.transitionend.transition;
20809    }
20810  }
20811  return prefixes;
20812}
20813var vendorPrefixes = getVendorPrefixes((0,rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(), typeof window !== 'undefined' ? window : {});
20814var style = {};
20815if ((0,rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)()) {
20816  var _document$createEleme = document.createElement('div');
20817  style = _document$createEleme.style;
20818}
20819var prefixedEventNames = {};
20820function getVendorPrefixedEventName(eventName) {
20821  if (prefixedEventNames[eventName]) {
20822    return prefixedEventNames[eventName];
20823  }
20824  var prefixMap = vendorPrefixes[eventName];
20825  if (prefixMap) {
20826    var stylePropList = Object.keys(prefixMap);
20827    var len = stylePropList.length;
20828    for (var i = 0; i < len; i += 1) {
20829      var styleProp = stylePropList[i];
20830      if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {
20831        prefixedEventNames[eventName] = prefixMap[styleProp];
20832        return prefixedEventNames[eventName];
20833      }
20834    }
20835  }
20836  return '';
20837}
20838var internalAnimationEndName = getVendorPrefixedEventName('animationend');
20839var internalTransitionEndName = getVendorPrefixedEventName('transitionend');
20840var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);
20841var animationEndName = internalAnimationEndName || 'animationend';
20842var transitionEndName = internalTransitionEndName || 'transitionend';
20843function getTransitionName(transitionName, transitionType) {
20844  if (!transitionName) return null;
20845  if ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(transitionName) === 'object') {
20846    var type = transitionType.replace(/-\w/g, function (match) {
20847      return match[1].toUpperCase();
20848    });
20849    return transitionName[type];
20850  }
20851  return "".concat(transitionName, "-").concat(transitionType);
20852}
20853
20854/***/ }),
20855
20856/***/ 74234:
20857/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20858
20859"use strict";
20860/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20861/* harmony export */   A: () => (/* binding */ useDom)
20862/* harmony export */ });
20863/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75153);
20864/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79082);
20865/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15442);
20866/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
20867/* harmony import */ var rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84238);
20868/* harmony import */ var rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(47169);
20869/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50184);
20870
20871
20872
20873
20874
20875
20876var EMPTY_LIST = [];
20877
20878/**
20879 * Will add `div` to document. Nest call will keep order
20880 * @param render Render DOM in document
20881 */
20882function useDom(render, debug) {
20883  var _React$useState = react__WEBPACK_IMPORTED_MODULE_2__.useState(function () {
20884      if (!(0,rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)()) {
20885        return null;
20886      }
20887      var defaultEle = document.createElement('div');
20888      if (false) // removed by dead control flow
20889{}
20890      return defaultEle;
20891    }),
20892    _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState, 1),
20893    ele = _React$useState2[0];
20894
20895  // ========================== Order ==========================
20896  var appendedRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(false);
20897  var queueCreate = react__WEBPACK_IMPORTED_MODULE_2__.useContext(_Context__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A);
20898  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_2__.useState(EMPTY_LIST),
20899    _React$useState4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState3, 2),
20900    queue = _React$useState4[0],
20901    setQueue = _React$useState4[1];
20902  var mergedQueueCreate = queueCreate || (appendedRef.current ? undefined : function (appendFn) {
20903    setQueue(function (origin) {
20904      var newQueue = [appendFn].concat((0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(origin));
20905      return newQueue;
20906    });
20907  });
20908
20909  // =========================== DOM ===========================
20910  function append() {
20911    if (!ele.parentElement) {
20912      document.body.appendChild(ele);
20913    }
20914    appendedRef.current = true;
20915  }
20916  function cleanup() {
20917    var _ele$parentElement;
20918    (_ele$parentElement = ele.parentElement) === null || _ele$parentElement === void 0 ? void 0 : _ele$parentElement.removeChild(ele);
20919    appendedRef.current = false;
20920  }
20921  (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)(function () {
20922    if (render) {
20923      if (queueCreate) {
20924        queueCreate(append);
20925      } else {
20926        append();
20927      }
20928    } else {
20929      cleanup();
20930    }
20931    return cleanup;
20932  }, [render]);
20933  (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)(function () {
20934    if (queue.length) {
20935      queue.forEach(function (appendFn) {
20936        return appendFn();
20937      });
20938      setQueue(EMPTY_LIST);
20939    }
20940  }, [queue]);
20941  return [ele, mergedQueueCreate];
20942}
20943
20944/***/ }),
20945
20946/***/ 74372:
20947/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20948
20949"use strict";
20950/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20951/* harmony export */   A: () => (/* binding */ getCookies)
20952/* harmony export */ });
20953/* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(93584);
20954/* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3478);
20955
20956
20957function getCookies(ctx, names) {
20958  var obj = {};
20959  var customCookies = ctx ? ctx.customCookies || {} : {};
20960  names.forEach(function (_) {
20961    var name = _.name;
20962    var value = ctx ? customCookies[name] ? customCookies[name] : ctx === null || ctx === void 0 ? void 0 : ctx.cookies.get(name, {
20963      signed: false
20964    }) : js_cookie__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A.get(name);
20965    if (_.decode) {
20966      try {
20967        value = js_base64__WEBPACK_IMPORTED_MODULE_0__/* .Base64 */ .o4.decode(value || '');
20968      } catch (_a) {
20969        console.log('base64解析报错', value);
20970      }
20971    }
20972    value = _.parse ? JSON.parse(value || '') : value;
20973    obj[name] = value !== null && value !== void 0 ? value : '';
20974  });
20975  return obj !== null && obj !== void 0 ? obj : {};
20976}
20977
20978/***/ }),
20979
20980/***/ 74430:
20981/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
20982
20983"use strict";
20984/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20985/* harmony export */   A: () => (/* binding */ _iterableToArray)
20986/* harmony export */ });
20987function _iterableToArray(r) {
20988  if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
20989}
20990
20991
20992/***/ }),
20993
20994/***/ 74568:
20995/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20996
20997"use strict";
20998/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20999/* harmony export */   o: () => (/* binding */ Context)
21000/* harmony export */ });
21001/* unused harmony export default */
21002/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15442);
21003/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
21004
21005var _excluded = (/* unused pure expression or super */ null && (["children"]));
21006
21007var Context = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createContext({});
21008function MotionProvider(_ref) {
21009  var children = _ref.children,
21010    props = _objectWithoutProperties(_ref, _excluded);
21011  return /*#__PURE__*/React.createElement(Context.Provider, {
21012    value: props
21013  }, children);
21014}
21015
21016/***/ }),
21017
21018/***/ 74967:
21019/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
21020
21021/** Detect free variable `global` from Node.js. */
21022var freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;
21023
21024module.exports = freeGlobal;
21025
21026
21027/***/ }),
21028
21029/***/ 75153:
21030/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21031
21032"use strict";
21033/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21034/* harmony export */   A: () => (/* binding */ _toConsumableArray)
21035/* harmony export */ });
21036/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23492);
21037/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(74430);
21038/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27985);
21039/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(72880);
21040
21041
21042
21043
21044function _toConsumableArray(r) {
21045  return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(r) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(r) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(r) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)();
21046}
21047
21048
21049/***/ }),
21050
21051/***/ 75476:
21052/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
21053
21054"use strict";
21055/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21056/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
21057/* harmony export */ });
21058/* unused harmony export resetUuid */
21059/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79082);
21060/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(69740);
21061/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15442);
21062/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
21063
21064
21065
21066function getUseId() {
21067  // We need fully clone React function here to avoid webpack warning React 17 do not export `useId`
21068  var fullClone = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)({}, react__WEBPACK_IMPORTED_MODULE_2__);
21069  return fullClone.useId;
21070}
21071var uuid = 0;
21072
21073/** @private Note only worked in develop env. Not work in production. */
21074function resetUuid() {
21075  if (false) // removed by dead control flow
21076{}
21077}
21078var useOriginId = getUseId();
21079/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useOriginId ?
21080// Use React `useId`
21081function useId(id) {
21082  var reactId = useOriginId();
21083
21084  // Developer passed id is single source of truth
21085  if (id) {
21086    return id;
21087  }
21088
21089  // Test env always return mock id
21090  if (false) // removed by dead control flow
21091{}
21092  return reactId;
21093} :
21094// Use compatible of `useId`
21095function useCompatId(id) {
21096  // Inner id for accessibility usage. Only work in client side
21097  var _React$useState = react__WEBPACK_IMPORTED_MODULE_2__.useState('ssr-id'),
21098    _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(_React$useState, 2),
21099    innerId = _React$useState2[0],
21100    setInnerId = _React$useState2[1];
21101  react__WEBPACK_IMPORTED_MODULE_2__.useEffect(function () {
21102    var nextId = uuid;
21103    uuid += 1;
21104    setInnerId("rc_unique_".concat(nextId));
21105  }, []);
21106
21107  // Developer passed id is single source of truth
21108  if (id) {
21109    return id;
21110  }
21111
21112  // Test env always return mock id
21113  if (false) // removed by dead control flow
21114{}
21115
21116  // Return react native id or inner id
21117  return innerId;
21118});
21119
21120/***/ }),
21121
21122/***/ 76293:
21123/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
21124
21125"use strict";
21126/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21127/* harmony export */   A: () => (/* binding */ useStatus)
21128/* harmony export */ });
21129/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69740);
21130/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24586);
21131/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(79082);
21132/* harmony import */ var rc_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(99973);
21133/* harmony import */ var rc_util_es_hooks_useState__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(39348);
21134/* harmony import */ var rc_util_es_hooks_useSyncState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(86597);
21135/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(15442);
21136/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
21137/* harmony import */ var _interface__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(45480);
21138/* harmony import */ var _useDomMotionEvents__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(1680);
21139/* harmony import */ var _useIsomorphicLayoutEffect__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(25893);
21140/* harmony import */ var _useStepQueue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(78422);
21141
21142
21143
21144
21145
21146
21147
21148
21149
21150
21151
21152
21153function useStatus(supportMotion, visible, getElement, _ref) {
21154  var _ref$motionEnter = _ref.motionEnter,
21155    motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,
21156    _ref$motionAppear = _ref.motionAppear,
21157    motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,
21158    _ref$motionLeave = _ref.motionLeave,
21159    motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,
21160    motionDeadline = _ref.motionDeadline,
21161    motionLeaveImmediately = _ref.motionLeaveImmediately,
21162    onAppearPrepare = _ref.onAppearPrepare,
21163    onEnterPrepare = _ref.onEnterPrepare,
21164    onLeavePrepare = _ref.onLeavePrepare,
21165    onAppearStart = _ref.onAppearStart,
21166    onEnterStart = _ref.onEnterStart,
21167    onLeaveStart = _ref.onLeaveStart,
21168    onAppearActive = _ref.onAppearActive,
21169    onEnterActive = _ref.onEnterActive,
21170    onLeaveActive = _ref.onLeaveActive,
21171    onAppearEnd = _ref.onAppearEnd,
21172    onEnterEnd = _ref.onEnterEnd,
21173    onLeaveEnd = _ref.onLeaveEnd,
21174    onVisibleChanged = _ref.onVisibleChanged;
21175  // Used for outer render usage to avoid `visible: false & status: none` to render nothing
21176  var _useState = (0,rc_util_es_hooks_useState__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)(),
21177    _useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(_useState, 2),
21178    asyncVisible = _useState2[0],
21179    setAsyncVisible = _useState2[1];
21180  var _useSyncState = (0,rc_util_es_hooks_useSyncState__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)(_interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_NONE */ .SF),
21181    _useSyncState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(_useSyncState, 2),
21182    getStatus = _useSyncState2[0],
21183    setStatus = _useSyncState2[1];
21184  var _useState3 = (0,rc_util_es_hooks_useState__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)(null),
21185    _useState4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(_useState3, 2),
21186    style = _useState4[0],
21187    setStyle = _useState4[1];
21188  var currentStatus = getStatus();
21189  var mountedRef = (0,react__WEBPACK_IMPORTED_MODULE_6__.useRef)(false);
21190  var deadlineRef = (0,react__WEBPACK_IMPORTED_MODULE_6__.useRef)(null);
21191
21192  // =========================== Dom Node ===========================
21193  function getDomElement() {
21194    return getElement();
21195  }
21196
21197  // ========================== Motion End ==========================
21198  var activeRef = (0,react__WEBPACK_IMPORTED_MODULE_6__.useRef)(false);
21199
21200  /**
21201   * Clean up status & style
21202   */
21203  function updateMotionEndStatus() {
21204    setStatus(_interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_NONE */ .SF);
21205    setStyle(null, true);
21206  }
21207  var onInternalMotionEnd = (0,rc_util__WEBPACK_IMPORTED_MODULE_3__/* .useEvent */ ._q)(function (event) {
21208    var status = getStatus();
21209    // Do nothing since not in any transition status.
21210    // This may happen when `motionDeadline` trigger.
21211    if (status === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_NONE */ .SF) {
21212      return;
21213    }
21214    var element = getDomElement();
21215    if (event && !event.deadline && event.target !== element) {
21216      // event exists
21217      // not initiated by deadline
21218      // transitionEnd not fired by inner elements
21219      return;
21220    }
21221    var currentActive = activeRef.current;
21222    var canEnd;
21223    if (status === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_APPEAR */ .Tv && currentActive) {
21224      canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);
21225    } else if (status === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_ENTER */ .Wd && currentActive) {
21226      canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);
21227    } else if (status === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_LEAVE */ .dp && currentActive) {
21228      canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);
21229    }
21230
21231    // Only update status when `canEnd` and not destroyed
21232    if (currentActive && canEnd !== false) {
21233      updateMotionEndStatus();
21234    }
21235  });
21236  var _useDomMotionEvents = (0,_useDomMotionEvents__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(onInternalMotionEnd),
21237    _useDomMotionEvents2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(_useDomMotionEvents, 1),
21238    patchMotionEvents = _useDomMotionEvents2[0];
21239
21240  // ============================= Step =============================
21241  var getEventHandlers = function getEventHandlers(targetStatus) {
21242    switch (targetStatus) {
21243      case _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_APPEAR */ .Tv:
21244        return (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)({}, _interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_PREPARE */ .px, onAppearPrepare), _interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_START */ .Mv, onAppearStart), _interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_ACTIVE */ .m7, onAppearActive);
21245      case _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_ENTER */ .Wd:
21246        return (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)({}, _interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_PREPARE */ .px, onEnterPrepare), _interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_START */ .Mv, onEnterStart), _interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_ACTIVE */ .m7, onEnterActive);
21247      case _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_LEAVE */ .dp:
21248        return (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)({}, _interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_PREPARE */ .px, onLeavePrepare), _interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_START */ .Mv, onLeaveStart), _interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_ACTIVE */ .m7, onLeaveActive);
21249      default:
21250        return {};
21251    }
21252  };
21253  var eventHandlers = react__WEBPACK_IMPORTED_MODULE_6__.useMemo(function () {
21254    return getEventHandlers(currentStatus);
21255  }, [currentStatus]);
21256  var _useStepQueue = (0,_useStepQueue__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Ay)(currentStatus, !supportMotion, function (newStep) {
21257      // Only prepare step can be skip
21258      if (newStep === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_PREPARE */ .px) {
21259        var onPrepare = eventHandlers[_interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_PREPARE */ .px];
21260        if (!onPrepare) {
21261          return _useStepQueue__WEBPACK_IMPORTED_MODULE_10__/* .SkipStep */ .es;
21262        }
21263        return onPrepare(getDomElement());
21264      }
21265
21266      // Rest step is sync update
21267      if (step in eventHandlers) {
21268        var _eventHandlers$step;
21269        setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);
21270      }
21271      if (step === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_ACTIVE */ .m7 && currentStatus !== _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_NONE */ .SF) {
21272        // Patch events when motion needed
21273        patchMotionEvents(getDomElement());
21274        if (motionDeadline > 0) {
21275          clearTimeout(deadlineRef.current);
21276          deadlineRef.current = setTimeout(function () {
21277            onInternalMotionEnd({
21278              deadline: true
21279            });
21280          }, motionDeadline);
21281        }
21282      }
21283      if (step === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_PREPARED */ .LV) {
21284        updateMotionEndStatus();
21285      }
21286      return _useStepQueue__WEBPACK_IMPORTED_MODULE_10__/* .DoStep */ .qB;
21287    }),
21288    _useStepQueue2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(_useStepQueue, 2),
21289    startStep = _useStepQueue2[0],
21290    step = _useStepQueue2[1];
21291  var active = (0,_useStepQueue__WEBPACK_IMPORTED_MODULE_10__/* .isActive */ .$m)(step);
21292  activeRef.current = active;
21293
21294  // ============================ Status ============================
21295  var visibleRef = (0,react__WEBPACK_IMPORTED_MODULE_6__.useRef)(null);
21296
21297  // Update with new status
21298  (0,_useIsomorphicLayoutEffect__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(function () {
21299    // When use Suspense, the `visible` will repeat trigger,
21300    // But not real change of the `visible`, we need to skip it.
21301    // https://github.com/ant-design/ant-design/issues/44379
21302    if (mountedRef.current && visibleRef.current === visible) {
21303      return;
21304    }
21305    setAsyncVisible(visible);
21306    var isMounted = mountedRef.current;
21307    mountedRef.current = true;
21308
21309    // if (!supportMotion) {
21310    //   return;
21311    // }
21312
21313    var nextStatus;
21314
21315    // Appear
21316    if (!isMounted && visible && motionAppear) {
21317      nextStatus = _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_APPEAR */ .Tv;
21318    }
21319
21320    // Enter
21321    if (isMounted && visible && motionEnter) {
21322      nextStatus = _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_ENTER */ .Wd;
21323    }
21324
21325    // Leave
21326    if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {
21327      nextStatus = _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_LEAVE */ .dp;
21328    }
21329    var nextEventHandlers = getEventHandlers(nextStatus);
21330
21331    // Update to next status
21332    if (nextStatus && (supportMotion || nextEventHandlers[_interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_PREPARE */ .px])) {
21333      setStatus(nextStatus);
21334      startStep();
21335    } else {
21336      // Set back in case no motion but prev status has prepare step
21337      setStatus(_interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_NONE */ .SF);
21338    }
21339    visibleRef.current = visible;
21340  }, [visible]);
21341
21342  // ============================ Effect ============================
21343  // Reset when motion changed
21344  (0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
21345    if (
21346    // Cancel appear
21347    currentStatus === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_APPEAR */ .Tv && !motionAppear ||
21348    // Cancel enter
21349    currentStatus === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_ENTER */ .Wd && !motionEnter ||
21350    // Cancel leave
21351    currentStatus === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_LEAVE */ .dp && !motionLeave) {
21352      setStatus(_interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_NONE */ .SF);
21353    }
21354  }, [motionAppear, motionEnter, motionLeave]);
21355  (0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
21356    return function () {
21357      mountedRef.current = false;
21358      clearTimeout(deadlineRef.current);
21359    };
21360  }, []);
21361
21362  // Trigger `onVisibleChanged`
21363  var firstMountChangeRef = react__WEBPACK_IMPORTED_MODULE_6__.useRef(false);
21364  (0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
21365    // [visible & motion not end] => [!visible & motion end] still need trigger onVisibleChanged
21366    if (asyncVisible) {
21367      firstMountChangeRef.current = true;
21368    }
21369    if (asyncVisible !== undefined && currentStatus === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_NONE */ .SF) {
21370      // Skip first render is invisible since it's nothing changed
21371      if (firstMountChangeRef.current || asyncVisible) {
21372        onVisibleChanged === null || onVisibleChanged === void 0 || onVisibleChanged(asyncVisible);
21373      }
21374      firstMountChangeRef.current = true;
21375    }
21376  }, [asyncVisible, currentStatus]);
21377
21378  // ============================ Styles ============================
21379  var mergedStyle = style;
21380  if (eventHandlers[_interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_PREPARE */ .px] && step === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_START */ .Mv) {
21381    mergedStyle = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({
21382      transition: 'none'
21383    }, mergedStyle);
21384  }
21385  return [currentStatus, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];
21386}
21387
21388/***/ }),
21389
21390/***/ 77326:
21391/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
21392
21393"use strict";
21394/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21395/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
21396/* harmony export */ });
21397/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89575);
21398/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
21399/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
21400/* harmony import */ var rc_util_es_Children_toArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41747);
21401/* harmony import */ var rc_util_es_warning__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84445);
21402/* harmony import */ var _SingleObserver__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(47689);
21403/* harmony import */ var _Collection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23660);
21404/* harmony import */ var _utils_observerUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(22616);
21405
21406
21407
21408
21409
21410
21411var INTERNAL_PREFIX_KEY = 'rc-observer-key';
21412
21413
21414function ResizeObserver(props, ref) {
21415  var children = props.children;
21416  var childNodes = typeof children === 'function' ? [children] : (0,rc_util_es_Children_toArray__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(children);
21417  if (false) // removed by dead control flow
21418{}
21419  return childNodes.map(function (child, index) {
21420    var key = (child === null || child === void 0 ? void 0 : child.key) || "".concat(INTERNAL_PREFIX_KEY, "-").concat(index);
21421    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_SingleObserver__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, props, {
21422      key: key,
21423      ref: index === 0 ? ref : undefined
21424    }), child);
21425  });
21426}
21427var RefResizeObserver = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(ResizeObserver);
21428if (false) // removed by dead control flow
21429{}
21430RefResizeObserver.Collection = _Collection__WEBPACK_IMPORTED_MODULE_5__/* .Collection */ .p;
21431/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RefResizeObserver);
21432
21433/***/ }),
21434
21435/***/ 77427:
21436/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
21437
21438"use strict";
21439/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21440/* harmony export */   Q: () => (/* binding */ createInstance)
21441/* harmony export */ });
21442/* unused harmony export urlAddSlash */
21443/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62742);
21444/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_0__);
21445/* harmony import */ var _common_login_info_controller__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12097);
21446/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(81002);
21447/* harmony import */ var _cj_href__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84963);
21448/* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(93584);
21449/* harmony import */ var _common_toast__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50937);
21450var __assign = undefined && undefined.__assign || function () {
21451  __assign = Object.assign || function (t) {
21452    for (var s, i = 1, n = arguments.length; i < n; i++) {
21453      s = arguments[i];
21454      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
21455    }
21456    return t;
21457  };
21458  return __assign.apply(this, arguments);
21459};
21460var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
21461  function adopt(value) {
21462    return value instanceof P ? value : new P(function (resolve) {
21463      resolve(value);
21464    });
21465  }
21466  return new (P || (P = Promise))(function (resolve, reject) {
21467    function fulfilled(value) {
21468      try {
21469        step(generator.next(value));
21470      } catch (e) {
21471        reject(e);
21472      }
21473    }
21474    function rejected(value) {
21475      try {
21476        step(generator["throw"](value));
21477      } catch (e) {
21478        reject(e);
21479      }
21480    }
21481    function step(result) {
21482      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
21483    }
21484    step((generator = generator.apply(thisArg, _arguments || [])).next());
21485  });
21486};
21487var __generator = undefined && undefined.__generator || function (thisArg, body) {
21488  var _ = {
21489      label: 0,
21490      sent: function sent() {
21491        if (t[0] & 1) throw t[1];
21492        return t[1];
21493      },
21494      trys: [],
21495      ops: []
21496    },
21497    f,
21498    y,
21499    t,
21500    g;
21501  return g = {
21502    next: verb(0),
21503    "throw": verb(1),
21504    "return": verb(2)
21505  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
21506    return this;
21507  }), g;
21508  function verb(n) {
21509    return function (v) {
21510      return step([n, v]);
21511    };
21512  }
21513  function step(op) {
21514    if (f) throw new TypeError("Generator is already executing.");
21515    while (g && (g = 0, op[0] && (_ = 0)), _) try {
21516      if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
21517      if (y = 0, t) op = [op[0] & 2, t.value];
21518      switch (op[0]) {
21519        case 0:
21520        case 1:
21521          t = op;
21522          break;
21523        case 4:
21524          _.label++;
21525          return {
21526            value: op[1],
21527            done: false
21528          };
21529        case 5:
21530          _.label++;
21531          y = op[1];
21532          op = [0];
21533          continue;
21534        case 7:
21535          op = _.ops.pop();
21536          _.trys.pop();
21537          continue;
21538        default:
21539          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
21540            _ = 0;
21541            continue;
21542          }
21543          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
21544            _.label = op[1];
21545            break;
21546          }
21547          if (op[0] === 6 && _.label < t[1]) {
21548            _.label = t[1];
21549            t = op;
21550            break;
21551          }
21552          if (t && _.label < t[2]) {
21553            _.label = t[2];
21554            _.ops.push(op);
21555            break;
21556          }
21557          if (t[2]) _.ops.pop();
21558          _.trys.pop();
21559          continue;
21560      }
21561      op = body.call(thisArg, _);
21562    } catch (e) {
21563      op = [6, e];
21564      y = 0;
21565    } finally {
21566      f = t = 0;
21567    }
21568    if (op[0] & 5) throw op[1];
21569    return {
21570      value: op[0] ? op[1] : void 0,
21571      done: true
21572    };
21573  }
21574};
21575var __rest = undefined && undefined.__rest || function (s, e) {
21576  var t = {};
21577  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
21578  if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
21579    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
21580  }
21581  return t;
21582};
21583
21584
21585
21586
21587
21588
21589function resDataProcess(data) {
21590  var _a;
21591  var _data = data;
21592  try {
21593    if (typeof data.result === 'string') {
21594      _data.result = JSON.parse(data.result);
21595    }
21596  } catch (e) {
21597    console.error('resDataProcess error:', (_a = e === null || e === void 0 ? void 0 : e.message) !== null && _a !== void 0 ? _a : '');
21598  }
21599  return _data;
21600}
21601var To = function To(promise) {
21602  return promise.then(function (res) {
21603    return [null, res];
21604  })["catch"](function (err) {
21605    return [err];
21606  });
21607};
21608var urlAddSlash = function urlAddSlash(url) {
21609  return (url === null || url === void 0 ? void 0 : url.startsWith('http')) ? url : (url === null || url === void 0 ? void 0 : url.startsWith('/')) ? url : "/".concat(url);
21610};
21611var createInstance = function createInstance(token, getDomainByUrl) {
21612  return function (_a) {
21613    return __awaiter(void 0, void 0, void 0, function () {
21614      var requestErrorCount, error, response, _request, data, result;
21615      var url = _a.url,
21616        otherConfig = __rest(_a, ["url"]);
21617      return __generator(this, function (_b) {
21618        switch (_b.label) {
21619          case 0:
21620            requestErrorCount = 0;
21621            error = null;
21622            response = null;
21623            _request = function request() {
21624              return __awaiter(void 0, void 0, Promise, function () {
21625                var apiUrl, callerHeaders;
21626                var _a;
21627                var _b, _c, _d;
21628                return __generator(this, function (_e) {
21629                  switch (_e.label) {
21630                    case 0:
21631                      apiUrl = (0,_index__WEBPACK_IMPORTED_MODULE_2__/* .useVipPrefix */ .Bz)({
21632                        url: url
21633                      });
21634                      if (getDomainByUrl) {
21635                        apiUrl = getDomainByUrl(apiUrl);
21636                      } else {
21637                        apiUrl = urlAddSlash(apiUrl);
21638                      }
21639                      callerHeaders = otherConfig.headers || {};
21640                      return [4, To(axios__WEBPACK_IMPORTED_MODULE_0___default()(__assign(__assign({
21641                        url: apiUrl,
21642                        timeout: 15000
21643                      }, otherConfig), {
21644                        headers: __assign(__assign({
21645                          Accept: 'application/json;charset=utf-8',
21646                          'Content-Type': 'application/json;charset=utf-8'
21647                        }, callerHeaders), {
21648                          token: ((_b = callerHeaders.token) !== null && _b !== void 0 ? _b : !_index__WEBPACK_IMPORTED_MODULE_2__/* .isBrowser */ .Bd ? token : _common_login_info_controller__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A.info('token')) || '',
21649                          'cj-area': ((_c = callerHeaders['cj-area']) !== null && _c !== void 0 ? _c : !_index__WEBPACK_IMPORTED_MODULE_2__/* .isBrowser */ .Bd ? process.env.areacode : window.__AREACODE__) || '000000'
21650                        })
21651                      })))];
21652                    case 1:
21653                      _a = _e.sent(), error = _a[0], response = _a[1];
21654                      if (error || ((_d = otherConfig === null || otherConfig === void 0 ? void 0 : otherConfig.isRetry) === null || _d === void 0 ? void 0 : _d.call(otherConfig, response === null || response === void 0 ? void 0 : response.data))) {
21655                        if (requestErrorCount < 2) {
21656                          requestErrorCount++;
21657                          return [2, _request()];
21658                        }
21659                      }
21660                      return [2];
21661                  }
21662                });
21663              });
21664            };
21665            return [4, _request()];
21666          case 1:
21667            _b.sent();
21668            if ((response === null || response === void 0 ? void 0 : response.status) === 200) {
21669              data = response.data;
21670              if (data.data === null) data.data = {};
21671              result = resDataProcess(data);
21672              clearLoginStoreInfo(url, result);
21673              clearBlockedUser(result);
21674              return [2, [null, result]];
21675            }
21676            return [2, [error]];
21677        }
21678      });
21679    });
21680  };
21681};
21682function clearLoginStoreInfo(url, response) {
21683  var _a;
21684  if (typeof window === 'undefined') return;
21685  var codeNoLogin = (response === null || response === void 0 ? void 0 : response.code) == 601;
21686  var noLogin = (response === null || response === void 0 ? void 0 : response.message) == 'Sorry, you are not logged in';
21687  if (noLogin || codeNoLogin) {
21688    console.error('mf-component: 请求接口跳出登录=>', url, JSON.stringify(__assign({}, response || {})));
21689    window.__Sentry__ && window.__Sentry__.withScope(function (scope) {
21690      scope.setTags({
21691        apiUrl: url,
21692        apiError: true,
21693        errorType: 'client',
21694        isToCJ: !!_common_login_info_controller__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A.info('loginfromerp')
21695      });
21696      scope.setExtras({
21697        request: {
21698          url: url
21699        },
21700        response: response
21701      });
21702      window.__Sentry__.captureMessage("\u8BF7\u6C42\u63A5\u53E3\u8DF3\u51FA\u767B\u5F55(\u662F\u5426tocj\uFF1A".concat(!!_common_login_info_controller__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A.info('loginfromerp'), ")"));
21703    });
21704    var isInternalAccount = window.loginInfoController.info('internalAccount');
21705    _common_login_info_controller__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A.clear();
21706    (0,_common_toast__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)(response === null || response === void 0 ? void 0 : response.message);
21707    if (isInternalAccount) {
21708      window.location.href = '/authority-login.html';
21709      return;
21710    }
21711    if (location.pathname.indexOf('my.html') > -1 || location.pathname.indexOf('mine') > -1) {
21712      var loginHref = '/login.html';
21713      if ((_a = window.siteCheck) === null || _a === void 0 ? void 0 : _a.isSite('CJ')) {
21714        loginHref = (0,_cj_href__WEBPACK_IMPORTED_MODULE_3__/* .cjHref */ .F)(loginHref);
21715      }
21716      return location.href = "".concat(loginHref, "?target=") + js_base64__WEBPACK_IMPORTED_MODULE_4__/* .Base64 */ .o4.encode(location.href);
21717    }
21718    location.reload();
21719  }
21720}
21721function clearBlockedUser(response) {
21722  var _a;
21723  if (typeof window === 'undefined') return;
21724  var codeBlocked = (response === null || response === void 0 ? void 0 : response.code) == 8880014;
21725  if (codeBlocked) {
21726    _common_login_info_controller__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A.clear();
21727    var href = "/mine/intercept";
21728    if ((_a = window.siteCheck) === null || _a === void 0 ? void 0 : _a.isSite('CJ')) {
21729      href = (0,_cj_href__WEBPACK_IMPORTED_MODULE_3__/* .cjHref */ .F)(href);
21730    }
21731    location.href = href;
21732  }
21733}
21734
21735/***/ }),
21736
21737/***/ 77517:
21738/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
21739
21740"use strict";
21741/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21742/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
21743/* harmony export */ });
21744// extracted by mini-css-extract-plugin
21745/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({"tooltipOverlayBox":"tooltipOverlayBox--VYaHT","light":"light--gjfAs"});
21746
21747/***/ }),
21748
21749/***/ 78068:
21750/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
21751
21752"use strict";
21753/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21754/* harmony export */   Ay: () => (__WEBPACK_DEFAULT_EXPORT__)
21755/* harmony export */ });
21756/* unused harmony exports defaultUserMenu, helpMenuList */
21757/* harmony import */ var _common_login_info_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12097);
21758/* harmony import */ var _common_request__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(77427);
21759/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(81002);
21760var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
21761  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
21762    if (ar || !(i in from)) {
21763      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
21764      ar[i] = from[i];
21765    }
21766  }
21767  return to.concat(ar || Array.prototype.slice.call(from));
21768};
21769
21770
21771
21772var defaultUserMenu = function defaultUserMenu(isCommonTop, i18next, getDomainByUrl, isQk, siteCheck) {
21773  return __spreadArray(__spreadArray([{
21774    icon: 'gerenzhongxin',
21775    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-profile') : 'Profile',
21776    code: 'mycj_profile',
21777    route: '/my.html#/profile'
21778  }, {
21779    icon: 'zhanghu',
21780    code: 'mycj_wallet',
21781    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-wallet') : 'Wallet',
21782    route: '/mine/wallet'
21783  }], isQk ? [] : __spreadArray(__spreadArray([{
21784    icon: 'wuliu',
21785    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-tool') : 'Tool',
21786    children: __spreadArray(__spreadArray([], siteCheck && siteCheck.isShow('header-track-orders') ? [{
21787      name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-track-orders') : 'Track Orders',
21788      route: siteCheck && siteCheck.isShow('global-vp') ? 'https://cjpacket.com/' : 'https://cjpacket.com/',
21789      target: '_blank'
21790    }] : [], true), siteCheck && siteCheck.isShow('header-shipping-calculation') ? [{
21791      name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-shipping-calculation') : 'Shipping Calculation',
21792      route: '/calculation.html',
21793      target: '_blank'
21794    }] : [], true)
21795  }], siteCheck && siteCheck.isShow('header-user-account') ? [{
21796    icon: 'zizhanghu',
21797    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-account') : 'Account',
21798    code: 'mycj_account',
21799    route: '/my.html#/accountManage'
21800  }] : [], true), siteCheck && siteCheck.isShow('header-user-affiliate') ? [{
21801    icon: 'fenxiaoicon',
21802    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-affiliate') : 'Affiliate',
21803    route: 'https://affiliate.cjdropshipping.com/',
21804    target: '_blank'
21805  }] : [], true), true), [{
21806    icon: 'tuichu',
21807    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-log-out') : 'Log out',
21808    loginOut: function loginOut() {
21809      var token = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.info('token');
21810      var isInternalAccount = window.loginInfoController.info('internalAccount');
21811      var myAxios = (0,_common_request__WEBPACK_IMPORTED_MODULE_1__/* .createInstance */ .Q)(token, getDomainByUrl);
21812      myAxios({
21813        url: 'userCenterForeignWeb/foreign/signOut',
21814        method: 'POST',
21815        data: {
21816          token: token
21817        }
21818      }).then(function () {
21819        (0,_common__WEBPACK_IMPORTED_MODULE_2__/* .removeLogin */ ._$)();
21820        if (isInternalAccount) {
21821          window.location.href = '/authority-login.html';
21822          return;
21823        }
21824        location.href = '/';
21825      });
21826    }
21827  }], false);
21828};
21829function getElitesUrl() {
21830  var t = Date.now();
21831  var url = 'https://elites.cjdropshipping.com/cross';
21832  var token = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.info('token');
21833  if (token) {
21834    try {
21835      url = "".concat(url, "?_t=").concat(t, "&token=").concat(token);
21836    } catch (err) {
21837      console.error('ElitesUrl token decode err', err);
21838    }
21839  }
21840  return url;
21841}
21842var helpMenuList = function helpMenuList(isCommonTop, i18next, tipNumber, siteCheck) {
21843  return __spreadArray(__spreadArray([{
21844    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-ticket') : 'Ticket',
21845    icon: 'ticket',
21846    code: 'mycj_ticket',
21847    route: '/mine/ticket',
21848    isShowTips: true,
21849    tipNum: tipNumber
21850  }, {
21851    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-help-center') : 'Help Center',
21852    icon: 'tutorial',
21853    route: '/help-center',
21854    target: '_blank'
21855  }], siteCheck && siteCheck.isShow('header-help-elites') ? [{
21856    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-elites') : 'Elites',
21857    icon: 'elites',
21858    code: 'mycj_elites',
21859    route: getElitesUrl(),
21860    target: '_blank'
21861  }] : [], true), siteCheck && siteCheck.isShow('header-help-blog') ? [{
21862    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-blog') : 'Blog',
21863    icon: 'boke',
21864    route: 'https://www.cjdropshipping.com/blogs',
21865    target: '_blank'
21866  }] : [], true);
21867};
21868var createAuthTree = function createAuthTree() {
21869  var userMenu = defaultUserMenu(false);
21870  var helpMenu = helpMenuList(false);
21871  var authMapByRoute = [];
21872  var _fun = function fun(list) {
21873    return list.map(function (l) {
21874      if (l.route && l.code) authMapByRoute.push({
21875        name: l.name,
21876        code: l.code,
21877        route: l.route
21878      });
21879      return {
21880        name: l.name,
21881        code: l.code,
21882        route: l.route,
21883        children: l.children && _fun(l.children)
21884      };
21885    });
21886  };
21887  return [[{
21888    name: 'Management',
21889    children: _fun(userMenu)
21890  }, {
21891    name: 'Support Center',
21892    children: _fun(helpMenu)
21893  }], authMapByRoute];
21894};
21895/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAut
21895hTree);
21896
21897/***/ }),
21898
21899/***/ 78422:
21900/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
21901
21902"use strict";
21903/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21904/* harmony export */   $m: () => (/* binding */ isActive),
21905/* harmony export */   Ay: () => (__WEBPACK_DEFAULT_EXPORT__),
21906/* harmony export */   es: () => (/* binding */ SkipStep),
21907/* harmony export */   qB: () => (/* binding */ DoStep)
21908/* harmony export */ });
21909/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79082);
21910/* harmony import */ var rc_util_es_hooks_useState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39348);
21911/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15442);
21912/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
21913/* harmony import */ var _interface__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(45480);
21914/* harmony import */ var _useIsomorphicLayoutEffect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(25893);
21915/* harmony import */ var _useNextFrame__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(20181);
21916
21917
21918
21919
21920
21921
21922var FULL_STEP_QUEUE = [_interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_PREPARE */ .px, _interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_START */ .Mv, _interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_ACTIVE */ .m7, _interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_ACTIVATED */ .Hs];
21923var SIMPLE_STEP_QUEUE = [_interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_PREPARE */ .px, _interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_PREPARED */ .LV];
21924
21925/** Skip current step */
21926var SkipStep = false;
21927/** Current step should be update in */
21928var DoStep = true;
21929function isActive(step) {
21930  return step === _interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_ACTIVE */ .m7 || step === _interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_ACTIVATED */ .Hs;
21931}
21932/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function (status, prepareOnly, callback) {
21933  var _useState = (0,rc_util_es_hooks_useState__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_NONE */ .cE),
21934    _useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(_useState, 2),
21935    step = _useState2[0],
21936    setStep = _useState2[1];
21937  var _useNextFrame = (0,_useNextFrame__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)(),
21938    _useNextFrame2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(_useNextFrame, 2),
21939    nextFrame = _useNextFrame2[0],
21940    cancelNextFrame = _useNextFrame2[1];
21941  function startQueue() {
21942    setStep(_interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_PREPARE */ .px, true);
21943  }
21944  var STEP_QUEUE = prepareOnly ? SIMPLE_STEP_QUEUE : FULL_STEP_QUEUE;
21945  (0,_useIsomorphicLayoutEffect__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)(function () {
21946    if (step !== _interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_NONE */ .cE && step !== _interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_ACTIVATED */ .Hs) {
21947      var index = STEP_QUEUE.indexOf(step);
21948      var nextStep = STEP_QUEUE[index + 1];
21949      var result = callback(step);
21950      if (result === SkipStep) {
21951        // Skip when no needed
21952        setStep(nextStep, true);
21953      } else if (nextStep) {
21954        // Do as frame for step update
21955        nextFrame(function (info) {
21956          function doNext() {
21957            // Skip since current queue is ood
21958            if (info.isCanceled()) return;
21959            setStep(nextStep, true);
21960          }
21961          if (result === true) {
21962            doNext();
21963          } else {
21964            // Only promise should be async
21965            Promise.resolve(result).then(doNext);
21966          }
21967        });
21968      }
21969    }
21970  }, [status, step]);
21971  react__WEBPACK_IMPORTED_MODULE_2__.useEffect(function () {
21972    return function () {
21973      cancelNextFrame();
21974    };
21975  }, []);
21976  return [startQueue, step];
21977});
21978
21979/***/ }),
21980
21981/***/ 78942:
21982/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
21983
21984var freeGlobal = __webpack_require__(74967);
21985
21986/** Detect free variable `self`. */
21987var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
21988
21989/** Used as a reference to the global object. */
21990var root = freeGlobal || freeSelf || Function('return this')();
21991
21992module.exports = root;
21993
21994
21995/***/ }),
21996
21997/***/ 78977:
21998/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
21999
22000"use strict";
22001/* harmony export */ __webpack_require__.d(__webpack_exports__, {
22002/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
22003/* harmony export */ });
22004/* unused harmony export generateTrigger */
22005/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69740);
22006/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79082);
22007/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(39850);
22008/* harmony import */ var _rc_component_portal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42963);
22009/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(53373);
22010/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_4__);
22011/* harmony import */ var rc_resize_observer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(77326);
22012/* harmony import */ var rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(28299);
22013/* harmony import */ var rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(49116);
22014/* harmony import */ var rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(9449);
22015/* harmony import */ var rc_util_es_hooks_useId__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(75476);
22016/* harmony import */ var rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(84238);
22017/* harmony import */ var rc_util_es_isMobile__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(26651);
22018/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(15442);
22019/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_12__);
22020/* harmony import */ var _Popup__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(59788);
22021/* harmony import */ var _TriggerWrapper__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(36694);
22022/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(85086);
22023/* harmony import */ var _hooks_useAction__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(48043);
22024/* harmony import */ var _hooks_useAlign__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(24628);
22025/* harmony import */ var _hooks_useWatch__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(66318);
22026/* harmony import */ var _hooks_useWinClick__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(46783);
22027/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(61225);
22028
22029
22030
22031var _excluded = ["prefixCls", "children", "action", "showAction", "hideAction", "popupVisible", "defaultPopupVisible", "onPopupVisibleChange", "afterPopupVisibleChange", "mouseEnterDelay", "mouseLeaveDelay", "focusDelay", "blurDelay", "mask", "maskClosable", "getPopupContainer", "forceRender", "autoDestroy", "destroyPopupOnHide", "popup", "popupClassName", "popupStyle", "popupPlacement", "builtinPlacements", "popupAlign", "zIndex", "stretch", "getPopupClassNameFromAlign", "fresh", "alignPoint", "onPopupClick", "onPopupAlign", "arrow", "popupMotion", "maskMotion", "popupTransitionName", "popupAnimation", "maskTransitionName", "maskAnimation", "className", "getTriggerDOMNode"];
22032
22033
22034
22035
22036
22037
22038
22039
22040
22041
22042
22043
22044
22045
22046
22047
22048
22049
22050
22051// Removed Props List
22052// Seems this can be auto
22053// getDocument?: (element?: HTMLElement) => Document;
22054
22055// New version will not wrap popup with `rc-trigger-popup-content` when multiple children
22056
22057function generateTrigger() {
22058  var PortalComponent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _rc_component_portal__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A;
22059  var Trigger = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.forwardRef(function (props, ref) {
22060    var _props$prefixCls = props.prefixCls,
22061      prefixCls = _props$prefixCls === void 0 ? 'rc-trigger-popup' : _props$prefixCls,
22062      children = props.children,
22063      _props$action = props.action,
22064      action = _props$action === void 0 ? 'hover' : _props$action,
22065      showAction = props.showAction,
22066      hideAction = props.hideAction,
22067      popupVisible = props.popupVisible,
22068      defaultPopupVisible = props.defaultPopupVisible,
22069      onPopupVisibleChange = props.onPopupVisibleChange,
22070      afterPopupVisibleChange = props.afterPopupVisibleChange,
22071      mouseEnterDelay = props.mouseEnterDelay,
22072      _props$mouseLeaveDela = props.mouseLeaveDelay,
22073      mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,
22074      focusDelay = props.focusDelay,
22075      blurDelay = props.blurDelay,
22076      mask = props.mask,
22077      _props$maskClosable = props.maskClosable,
22078      maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,
22079      getPopupContainer = props.getPopupContainer,
22080      forceRender = props.forceRender,
22081      autoDestroy = props.autoDestroy,
22082      destroyPopupOnHide = props.destroyPopupOnHide,
22083      popup = props.popup,
22084      popupClassName = props.popupClassName,
22085      popupStyle = props.popupStyle,
22086      popupPlacement = props.popupPlacement,
22087      _props$builtinPlaceme = props.builtinPlacements,
22088      builtinPlacements = _props$builtinPlaceme === void 0 ? {} : _props$builtinPlaceme,
22089      popupAlign = props.popupAlign,
22090      zIndex = props.zIndex,
22091      stretch = props.stretch,
22092      getPopupClassNameFromAlign = props.getPopupClassNameFromAlign,
22093      fresh = props.fresh,
22094      alignPoint = props.alignPoint,
22095      onPopupClick = props.onPopupClick,
22096      onPopupAlign = props.onPopupAlign,
22097      arrow = props.arrow,
22098      popupMotion = props.popupMotion,
22099      maskMotion = props.maskMotion,
22100      popupTransitionName = props.popupTransitionName,
22101      popupAnimation = props.popupAnimation,
22102      maskTransitionName = props.maskTransitionName,
22103      maskAnimation = props.maskAnimation,
22104      className = props.className,
22105      getTriggerDOMNode = props.getTriggerDOMNode,
22106      restProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(props, _excluded);
22107    var mergedAutoDestroy = autoDestroy || destroyPopupOnHide || false;
22108
22109    // =========================== Mobile ===========================
22110    var _React$useState = react__WEBPACK_IMPORTED_MODULE_12__.useState(false),
22111      _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState, 2),
22112      mobile = _React$useState2[0],
22113      setMobile = _React$useState2[1];
22114    (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A)(function () {
22115      setMobile((0,rc_util_es_isMobile__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .A)());
22116    }, []);
22117
22118    // ========================== Context ===========================
22119    var subPopupElements = react__WEBPACK_IMPORTED_MODULE_12__.useRef({});
22120    var parentContext = react__WEBPACK_IMPORTED_MODULE_12__.useContext(_context__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .A);
22121    var context = react__WEBPACK_IMPORTED_MODULE_12__.useMemo(function () {
22122      return {
22123        registerSubPopup: function registerSubPopup(id, subPopupEle) {
22124          subPopupElements.current[id] = subPopupEle;
22125          parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, subPopupEle);
22126        }
22127      };
22128    }, [parentContext]);
22129
22130    // =========================== Popup ============================
22131    var id = (0,rc_util_es_hooks_useId__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)();
22132    var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_12__.useState(null),
22133      _React$useState4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState3, 2),
22134      popupEle = _React$useState4[0],
22135      setPopupEle = _React$useState4[1];
22136
22137    // Used for forwardRef popup. Not use internal
22138    var externalPopupRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef(null);
22139    var setPopupRef = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(function (node) {
22140      externalPopupRef.current = node;
22141      if ((0,rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_6__/* .isDOM */ .fk)(node) && popupEle !== node) {
22142        setPopupEle(node);
22143      }
22144      parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, node);
22145    });
22146
22147    // =========================== Target ===========================
22148    // Use state to control here since `useRef` update not trigger render
22149    var _React$useState5 = react__WEBPACK_IMPORTED_MODULE_12__.useState(null),
22150      _React$useState6 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState5, 2),
22151      targetEle = _React$useState6[0],
22152      setTargetEle = _React$useState6[1];
22153
22154    // Used for forwardRef target. Not use internal
22155    var externalForwardRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef(null);
22156    var setTargetRef = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(function (node) {
22157      if ((0,rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_6__/* .isDOM */ .fk)(node) && targetEle !== node) {
22158        setTargetEle(node);
22159        externalForwardRef.current = node;
22160      }
22161    });
22162
22163    // ========================== Children ==========================
22164    var child = react__WEBPACK_IMPORTED_MODULE_12__.Children.only(children);
22165    var originChildProps = (child === null || child === void 0 ? void 0 : child.props) || {};
22166    var cloneProps = {};
22167    var inPopupOrChild = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(function (ele) {
22168      var _getShadowRoot, _getShadowRoot2;
22169      var childDOM = targetEle;
22170      return (childDOM === null || childDOM === void 0 ? void 0 : childDOM.contains(ele)) || ((_getShadowRoot = (0,rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_7__/* .getShadowRoot */ .j)(childDOM)) === null || _getShadowRoot === void 0 ? void 0 : _getShadowRoot.host) === ele || ele === childDOM || (popupEle === null || popupEle === void 0 ? void 0 : popupEle.contains(ele)) || ((_getShadowRoot2 = (0,rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_7__/* .getShadowRoot */ .j)(popupEle)) === null || _getShadowRoot2 === void 0 ? void 0 : _getShadowRoot2.host) === ele || ele === popupEle || Object.values(subPopupElements.current).some(function (subPopupEle) {
22171        return (subPopupEle === null || subPopupEle === void 0 ? void 0 : subPopupEle.contains(ele)) || ele === subPopupEle;
22172      });
22173    });
22174
22175    // =========================== Motion ===========================
22176    var mergePopupMotion = (0,_util__WEBPACK_IMPORTED_MODULE_20__/* .getMotion */ .Vu)(prefixCls, popupMotion, popupAnimation, popupTransitionName);
22177    var mergeMaskMotion = (0,_util__WEBPACK_IMPORTED_MODULE_20__/* .getMotion */ .Vu)(prefixCls, maskMotion, maskAnimation, maskTransitionName);
22178
22179    // ============================ Open ============================
22180    var _React$useState7 = react__WEBPACK_IMPORTED_MODULE_12__.useState(defaultPopupVisible || false),
22181      _React$useState8 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState7, 2),
22182      internalOpen = _React$useState8[0],
22183      setInternalOpen = _React$useState8[1];
22184
22185    // Render still use props as first priority
22186    var mergedOpen = popupVisible !== null && popupVisible !== void 0 ? popupVisible : internalOpen;
22187
22188    // We use effect sync here in case `popupVisible` back to `undefined`
22189    var setMergedOpen = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(function (nextOpen) {
22190      if (popupVisible === undefined) {
22191        setInternalOpen(nextOpen);
22192      }
22193    });
22194    (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A)(function () {
22195      setInternalOpen(popupVisible || false);
22196    }, [popupVisible]);
22197    var openRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef(mergedOpen);
22198    openRef.current = mergedOpen;
22199    var lastTriggerRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef([]);
22200    lastTriggerRef.current = [];
22201    var internalTriggerOpen = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(function (nextOpen) {
22202      var _lastTriggerRef$curre;
22203      setMergedOpen(nextOpen);
22204
22205      // Enter or Pointer will both trigger open state change
22206      // We only need take one to avoid duplicated change event trigger
22207      // Use `lastTriggerRef` to record last open type
22208      if (((_lastTriggerRef$curre = lastTriggerRef.current[lastTriggerRef.current.length - 1]) !== null && _lastTriggerRef$curre !== void 0 ? _lastTriggerRef$curre : mergedOpen) !== nextOpen) {
22209        lastTriggerRef.current.push(nextOpen);
22210        onPopupVisibleChange === null || onPopupVisibleChange === void 0 || onPopupVisibleChange(nextOpen);
22211      }
22212    });
22213
22214    // Trigger for delay
22215    var delayRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef();
22216    var clearDelay = function clearDelay() {
22217      clearTimeout(delayRef.current);
22218    };
22219    var triggerOpen = function triggerOpen(nextOpen) {
22220      var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
22221      clearDelay();
22222      if (delay === 0) {
22223        internalTriggerOpen(nextOpen);
22224      } else {
22225        delayRef.current = setTimeout(function () {
22226          internalTriggerOpen(nextOpen);
22227        }, delay * 1000);
22228      }
22229    };
22230    react__WEBPACK_IMPORTED_MODULE_12__.useEffect(function () {
22231      return clearDelay;
22232    }, []);
22233
22234    // ========================== Motion ============================
22235    var _React$useState9 = react__WEBPACK_IMPORTED_MODULE_12__.useState(false),
22236      _React$useState10 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState9, 2),
22237      inMotion = _React$useState10[0],
22238      setInMotion = _React$useState10[1];
22239    (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A)(function (firstMount) {
22240      if (!firstMount || mergedOpen) {
22241        setInMotion(true);
22242      }
22243    }, [mergedOpen]);
22244    var _React$useState11 = react__WEBPACK_IMPORTED_MODULE_12__.useState(null),
22245      _React$useState12 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState11, 2),
22246      motionPrepareResolve = _React$useState12[0],
22247      setMotionPrepareResolve = _React$useState12[1];
22248
22249    // =========================== Align ============================
22250    var _React$useState13 = react__WEBPACK_IMPORTED_MODULE_12__.useState(null),
22251      _React$useState14 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState13, 2),
22252      mousePos = _React$useState14[0],
22253      setMousePos = _React$useState14[1];
22254    var setMousePosByEvent = function setMousePosByEvent(event) {
22255      setMousePos([event.clientX, event.clientY]);
22256    };
22257    var _useAlign = (0,_hooks_useAlign__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .A)(mergedOpen, popupEle, alignPoint && mousePos !== null ? mousePos : targetEle, popupPlacement, builtinPlacements, popupAlign, onPopupAlign),
22258      _useAlign2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_useAlign, 11),
22259      ready = _useAlign2[0],
22260      offsetX = _useAlign2[1],
22261      offsetY = _useAlign2[2],
22262      offsetR = _useAlign2[3],
22263      offsetB = _useAlign2[4],
22264      arrowX = _useAlign2[5],
22265      arrowY = _useAlign2[6],
22266      scaleX = _useAlign2[7],
22267      scaleY = _useAlign2[8],
22268      alignInfo = _useAlign2[9],
22269      onAlign = _useAlign2[10];
22270    var _useAction = (0,_hooks_useAction__WEBPACK_IMPORTED_MODULE_16__/* ["default"] */ .A)(mobile, action, showAction, hideAction),
22271      _useAction2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_useAction, 2),
22272      showActions = _useAction2[0],
22273      hideActions = _useAction2[1];
22274    var clickToShow = showActions.has('click');
22275    var clickToHide = hideActions.has('click') || hideActions.has('contextMenu');
22276    var triggerAlign = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(function () {
22277      if (!inMotion) {
22278        onAlign();
22279      }
22280    });
22281    var onScroll = function onScroll() {
22282      if (openRef.current && alignPoint && clickToHide) {
22283        triggerOpen(false);
22284      }
22285    };
22286    (0,_hooks_useWatch__WEBPACK_IMPORTED_MODULE_18__/* ["default"] */ .A)(mergedOpen, targetEle, popupEle, triggerAlign, onScroll);
22287    (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A)(function () {
22288      triggerAlign();
22289    }, [mousePos, popupPlacement]);
22290
22291    // When no builtinPlacements and popupAlign changed
22292    (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A)(function () {
22293      if (mergedOpen && !(builtinPlacements !== null && builtinPlacements !== void 0 && builtinPlacements[popupPlacement])) {
22294        triggerAlign();
22295      }
22296    }, [JSON.stringify(popupAlign)]);
22297    var alignedClassName = react__WEBPACK_IMPORTED_MODULE_12__.useMemo(function () {
22298      var baseClassName = (0,_util__WEBPACK_IMPORTED_MODULE_20__/* .getAlignPopupClassName */ .H1)(builtinPlacements, prefixCls, al
22298ignInfo, alignPoint);
22299      return classnames__WEBPACK_IMPORTED_MODULE_4___default()(baseClassName, getPopupClassNameFromAlign === null || getPopupClassNameFromAlign === void 0 ? void 0 : getPopupClassNameFromAlign(alignInfo));
22300    }, [alignInfo, getPopupClassNameFromAlign, builtinPlacements, prefixCls, alignPoint]);
22301
22302    // ============================ Refs ============================
22303    react__WEBPACK_IMPORTED_MODULE_12__.useImperativeHandle(ref, function () {
22304      return {
22305        nativeElement: externalForwardRef.current,
22306        popupElement: externalPopupRef.current,
22307        forceAlign: triggerAlign
22308      };
22309    });
22310
22311    // ========================== Stretch ===========================
22312    var _React$useState15 = react__WEBPACK_IMPORTED_MODULE_12__.useState(0),
22313      _React$useState16 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState15, 2),
22314      targetWidth = _React$useState16[0],
22315      setTargetWidth = _React$useState16[1];
22316    var _React$useState17 = react__WEBPACK_IMPORTED_MODULE_12__.useState(0),
22317      _React$useState18 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState17, 2),
22318      targetHeight = _React$useState18[0],
22319      setTargetHeight = _React$useState18[1];
22320    var syncTargetSize = function syncTargetSize() {
22321      if (stretch && targetEle) {
22322        var rect = targetEle.getBoundingClientRect();
22323        setTargetWidth(rect.width);
22324        setTargetHeight(rect.height);
22325      }
22326    };
22327    var onTargetResize = function onTargetResize() {
22328      syncTargetSize();
22329      triggerAlign();
22330    };
22331
22332    // ========================== Motion ============================
22333    var onVisibleChanged = function onVisibleChanged(visible) {
22334      setInMotion(false);
22335      onAlign();
22336      afterPopupVisibleChange === null || afterPopupVisibleChange === void 0 || afterPopupVisibleChange(visible);
22337    };
22338
22339    // We will trigger align when motion is in prepare
22340    var onPrepare = function onPrepare() {
22341      return new Promise(function (resolve) {
22342        syncTargetSize();
22343        setMotionPrepareResolve(function () {
22344          return resolve;
22345        });
22346      });
22347    };
22348    (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A)(function () {
22349      if (motionPrepareResolve) {
22350        onAlign();
22351        motionPrepareResolve();
22352        setMotionPrepareResolve(null);
22353      }
22354    }, [motionPrepareResolve]);
22355
22356    // =========================== Action ===========================
22357    /**
22358     * Util wrapper for trigger action
22359     */
22360    function wrapperAction(eventName, nextOpen, delay, preEvent) {
22361      cloneProps[eventName] = function (event) {
22362        var _originChildProps$eve;
22363        preEvent === null || preEvent === void 0 || preEvent(event);
22364        triggerOpen(nextOpen, delay);
22365
22366        // Pass to origin
22367        for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
22368          args[_key - 1] = arguments[_key];
22369        }
22370        (_originChildProps$eve = originChildProps[eventName]) === null || _originChildProps$eve === void 0 || _originChildProps$eve.call.apply(_originChildProps$eve, [originChildProps, event].concat(args));
22371      };
22372    }
22373
22374    // ======================= Action: Click ========================
22375    if (clickToShow || clickToHide) {
22376      cloneProps.onClick = function (event) {
22377        var _originChildProps$onC;
22378        if (openRef.current && clickToHide) {
22379          triggerOpen(false);
22380        } else if (!openRef.current && clickToShow) {
22381          setMousePosByEvent(event);
22382          triggerOpen(true);
22383        }
22384
22385        // Pass to origin
22386        for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
22387          args[_key2 - 1] = arguments[_key2];
22388        }
22389        (_originChildProps$onC = originChildProps.onClick) === null || _originChildProps$onC === void 0 || _originChildProps$onC.call.apply(_originChildProps$onC, [originChildProps, event].concat(args));
22390      };
22391    }
22392
22393    // Click to hide is special action since click popup element should not hide
22394    var onPopupPointerDown = (0,_hooks_useWinClick__WEBPACK_IMPORTED_MODULE_19__/* ["default"] */ .A)(mergedOpen, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen);
22395
22396    // ======================= Action: Hover ========================
22397    var hoverToShow = showActions.has('hover');
22398    var hoverToHide = hideActions.has('hover');
22399    var onPopupMouseEnter;
22400    var onPopupMouseLeave;
22401    if (hoverToShow) {
22402      // Compatible with old browser which not support pointer event
22403      wrapperAction('onMouseEnter', true, mouseEnterDelay, function (event) {
22404        setMousePosByEvent(event);
22405      });
22406      wrapperAction('onPointerEnter', true, mouseEnterDelay, function (event) {
22407        setMousePosByEvent(event);
22408      });
22409      onPopupMouseEnter = function onPopupMouseEnter(event) {
22410        // Only trigger re-open when popup is visible
22411        if ((mergedOpen || inMotion) && popupEle !== null && popupEle !== void 0 && popupEle.contains(event.target)) {
22412          triggerOpen(true, mouseEnterDelay);
22413        }
22414      };
22415
22416      // Align Point
22417      if (alignPoint) {
22418        cloneProps.onMouseMove = function (event) {
22419          var _originChildProps$onM;
22420          // setMousePosByEvent(event);
22421          (_originChildProps$onM = originChildProps.onMouseMove) === null || _originChildProps$onM === void 0 || _originChildProps$onM.call(originChildProps, event);
22422        };
22423      }
22424    }
22425    if (hoverToHide) {
22426      wrapperAction('onMouseLeave', false, mouseLeaveDelay);
22427      wrapperAction('onPointerLeave', false, mouseLeaveDelay);
22428      onPopupMouseLeave = function onPopupMouseLeave() {
22429        triggerOpen(false, mouseLeaveDelay);
22430      };
22431    }
22432
22433    // ======================= Action: Focus ========================
22434    if (showActions.has('focus')) {
22435      wrapperAction('onFocus', true, focusDelay);
22436    }
22437    if (hideActions.has('focus')) {
22438      wrapperAction('onBlur', false, blurDelay);
22439    }
22440
22441    // ==================== Action: ContextMenu =====================
22442    if (showActions.has('contextMenu')) {
22443      cloneProps.onContextMenu = function (event) {
22444        var _originChildProps$onC2;
22445        if (openRef.current && hideActions.has('contextMenu')) {
22446          triggerOpen(false);
22447        } else {
22448          setMousePosByEvent(event);
22449          triggerOpen(true);
22450        }
22451        event.preventDefault();
22452
22453        // Pass to origin
22454        for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
22455          args[_key3 - 1] = arguments[_key3];
22456        }
22457        (_originChildProps$onC2 = originChildProps.onContextMenu) === null || _originChildProps$onC2 === void 0 || _originChildProps$onC2.call.apply(_originChildProps$onC2, [originChildProps, event].concat(args));
22458      };
22459    }
22460
22461    // ========================= ClassName ==========================
22462    if (className) {
22463      cloneProps.className = classnames__WEBPACK_IMPORTED_MODULE_4___default()(originChildProps.className, className);
22464    }
22465
22466    // ============================ Perf ============================
22467    var renderedRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef(false);
22468    renderedRef.current || (renderedRef.current = forceRender || mergedOpen || inMotion);
22469
22470    // =========================== Render ===========================
22471    var mergedChildrenProps = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, originChildProps), cloneProps);
22472
22473    // Pass props into cloneProps for nest usage
22474    var passedProps = {};
22475    var passedEventList = ['onContextMenu', 'onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur'];
22476    passedEventList.forEach(function (eventName) {
22477      if (restProps[eventName]) {
22478        passedProps[eventName] = function () {
22479          var _mergedChildrenProps$;
22480          for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
22481            args[_key4] = arguments[_key4];
22482          }
22483          (_mergedChildrenProps$ = mergedChildrenProps[eventName]) === null || _mergedChildrenProps$ === void 0 || _mergedChildrenProps$.call.apply(_mergedChildrenProps$, [mergedChildrenProps].concat(args));
22484          restProps[eventName].apply(restProps, args);
22485        };
22486      }
22487    });
22488
22489    // Child Node
22490    var triggerNode = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.cloneElement(child, (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, mergedChildrenProps), passedProps));
22491    var arrowPos = {
22492      x: arrowX,
22493      y: arrowY
22494    };
22495    var innerArrow = arrow ? (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, arrow !== true ? arrow : {}) : null;
22496
22497    // Render
22498    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.createElement(react__WEBPACK_IMPORTED_MODULE_12__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.createElement(rc_resize_observer__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A, {
22499      disabled: !mergedOpen,
22500      ref: setTargetRef,
22501      onResize: onTargetResize
22502    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.createElement(_TriggerWrapper__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .A, {
22503      getTriggerDOMNode: getTriggerDOMNode
22504    }, triggerNode)), renderedRef.current && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.createElement(_context__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .A.Provider, {
22505      value: context
22506    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.createElement(_Popup__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .A, {
22507      portal: PortalComponent,
22508      ref: setPopupRef,
22509      prefixCls: prefixCls,
22510      popup: popup,
22511      className: classnames__WEBPACK_IMPORTED_MODULE_4___default()(popupClassName, alignedClassName),
22512      style: popupStyle,
22513      target: targetEle,
22514      onMouseEnter: onPopupMouseEnter,
22515      onMouseLeave: onPopupMouseLeave
22516      // https://github.com/ant-design/ant-design/issues/43924
22517      ,
22518      onPointerEnter: onPopupMouseEnter,
22519      zIndex: zIndex
22520      // Open
22521      ,
22522      open: mergedOpen,
22523      keepDom: inMotion,
22524      fresh: fresh
22525      // Click
22526      ,
22527      onClick: onPopupClick,
22528      onPointerDownCapture: onPopupPointerDown
22529      // Mask
22530      ,
22531      mask: mask
22532      // Motion
22533      ,
22534      motion: mergePopupMotion,
22535      maskMotion: mergeMaskMotion,
22536      onVisibleChanged: onVisibleChanged,
22537      onPrepare: onPrepare
22538      // Portal
22539      ,
22540      forceRender: forceRender,
22541      autoDestroy: mergedAutoDestroy,
22542      getPopupContainer: getPopupContainer
22543      // Arrow
22544      ,
22545      align: alignInfo,
22546      arrow: innerArrow,
22547      arrowPos: arrowPos
22548      // Align
22549      ,
22550      ready: ready,
22551      offsetX: offsetX,
22552      offsetY: offsetY,
22553      offsetR: offsetR,
22554      offsetB: offsetB,
22555      onAlign: triggerAlign
22556      // Stretch
22557      ,
22558      stretch: stretch,
22559      targetWidth: targetWidth / scaleX,
22560      targetHeight: targetHeight / scaleY
22561    })));
22562  });
22563  if (false) // removed by dead control flow
22564{}
22565  return Trigger;
22566}
22567/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (generateTrigger(_rc_component_portal__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A));
22568
22569/***/ }),
22570
22571/***/ 79082:
22572/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22573
22574"use strict";
22575/* harmony export */ __webpack_require__.d(__webpack_exports__, {
22576/* harmony export */   A: () => (/* binding */ _slicedToArray)
22577/* harmony export */ });
22578/* harmony import */ var _arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(96488);
22579/* harmony import */ var _iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23171);
22580/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27985);
22581/* harmony import */ var _nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5405);
22582
22583
22584
22585
22586function _slicedToArray(r, e) {
22587  return (0,_arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(r) || (0,_iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(r, e) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(r, e) || (0,_nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)();
22588}
22589
22590
22591/***/ }),
22592
22593/***/ 79191:
22594/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
22595
22596"use strict";
22597/* harmony export */ __webpack_require__.d(__webpack_exports__, {
22598/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__),
22599/* harmony export */   E: () => (/* binding */ STORAGE_GUIDE_DATA)
22600/* harmony export */ });
22601/* harmony import */ var _common_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4703);
22602/* harmony import */ var _components_CjHeader_contexts_PropsContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44148);
22603/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15442);
22604/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
22605/* harmony import */ var _common_request__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(77427);
22606var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
22607  function adopt(value) {
22608    return value instanceof P ? value : new P(function (resolve) {
22609      resolve(value);
22610    });
22611  }
22612  return new (P || (P = Promise))(function (resolve, reject) {
22613    function fulfilled(value) {
22614      try {
22615        step(generator.next(value));
22616      } catch (e) {
22617        reject(e);
22618      }
22619    }
22620    function rejected(value) {
22621      try {
22622        step(generator["throw"](value));
22623      } catch (e) {
22624        reject(e);
22625      }
22626    }
22627    function step(result) {
22628      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
22629    }
22630    step((generator = generator.apply(thisArg, _arguments || [])).next());
22631  });
22632};
22633var __generator = undefined && undefined.__generator || function (thisArg, body) {
22634  var _ = {
22635      label: 0,
22636      sent: function sent() {
22637        if (t[0] & 1) throw t[1];
22638        return t[1];
22639      },
22640      trys: [],
22641      ops: []
22642    },
22643    f,
22644    y,
22645    t,
22646    g;
22647  return g = {
22648    next: verb(0),
22649    "throw": verb(1),
22650    "return": verb(2)
22651  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
22652    return this;
22653  }), g;
22654  function verb(n) {
22655    return function (v) {
22656      return step([n, v]);
22657    };
22658  }
22659  function step(op) {
22660    if (f) throw new TypeError("Generator is already executing.");
22661    while (g && (g = 0, op[0] && (_ = 0)), _) try {
22662      if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
22663      if (y = 0, t) op = [op[0] & 2, t.value];
22664      switch (op[0]) {
22665        case 0:
22666        case 1:
22667          t = op;
22668          break;
22669        case 4:
22670          _.label++;
22671          return {
22672            value: op[1],
22673            done: false
22674          };
22675        case 5:
22676          _.label++;
22677          y = op[1];
22678          op = [0];
22679          continue;
22680        case 7:
22681          op = _.ops.pop();
22682          _.trys.pop();
22683          continue;
22684        default:
22685          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
22686            _ = 0;
22687            continue;
22688          }
22689          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
22690            _.label = op[1];
22691            break;
22692          }
22693          if (op[0] === 6 && _.label < t[1]) {
22694            _.label = t[1];
22695            t = op;
22696            break;
22697          }
22698          if (t && _.label < t[2]) {
22699            _.label = t[2];
22700            _.ops.push(op);
22701            break;
22702          }
22703          if (t[2]) _.ops.pop();
22704          _.trys.pop();
22705          continue;
22706      }
22707      op = body.call(thisArg, _);
22708    } catch (e) {
22709      op = [6, e];
22710      y = 0;
22711    } finally {
22712      f = t = 0;
22713    }
22714    if (op[0] & 5) throw op[1];
22715    return {
22716      value: op[0] ? op[1] : void 0,
22717      done: true
22718    };
22719  }
22720};
22721
22722
22723
22724
22725var STORAGE_GUIDE_DATA = 'cj_guide_data';
22726var useGuidShow = function useGuidShow(_a) {
22727  var _b = _a === void 0 ? {} : _a,
22728    _c = _b.getDomainByUrl,
22729    getDomainByUrl = _c === void 0 ? function (v) {
22730      return v;
22731    } : _c;
22732  var loginInfo = (0,_components_CjHeader_contexts_PropsContext__WEBPACK_IMPORTED_MODULE_1__/* .useGlobalProps */ .v)().loginInfo;
22733  var _d = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false),
22734    loading = _d[0],
22735    setLoading = _d[1];
22736  var axios = (0,_common_request__WEBPACK_IMPORTED_MODULE_3__/* .createInstance */ .Q)();
22737  var getIsShow = function getIsShow() {
22738    return __awaiter(void 0, void 0, void 0, function () {
22739      var data, _a, res;
22740      return __generator(this, function (_b) {
22741        switch (_b.label) {
22742          case 0:
22743            data = _common_store__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get(STORAGE_GUIDE_DATA);
22744            if (data) return [2];
22745            setLoading(true);
22746            return [4, axios({
22747              method: 'POST',
22748              url: 'chat-web/app/message/guide/getDspGuideNodeByLoginName',
22749              data: {
22750                accLoginName: loginInfo === null || loginInfo === void 0 ? void 0 : loginInfo.loginName
22751              }
22752            })];
22753          case 1:
22754            _a = _b.sent(), res = _a[1];
22755            setLoading(false);
22756            if (res === null || res === void 0 ? void 0 : res.data) {
22757              _common_store__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.set(STORAGE_GUIDE_DATA, res.data);
22758            }
22759            return [2];
22760        }
22761      });
22762    });
22763  };
22764  return {
22765    loading: loading,
22766    getIsShow: getIsShow
22767  };
22768};
22769/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useGuidShow);
22770
22771/***/ }),
22772
22773/***/ 79328:
22774/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
22775
22776"use strict";
22777/* harmony export */ __webpack_require__.d(__webpack_exports__, {
22778/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
22779/* harmony export */ });
22780/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__webpack_require__.p + "assets/nav-bg.38bd807e.png");
22781
22782/***/ }),
22783
22784/***/ 79824:
22785/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22786
22787"use strict";
22788/* harmony export */ __webpack_require__.d(__webpack_exports__, {
22789/* harmony export */   A: () => (/* binding */ toPrimitive)
22790/* harmony export */ });
22791/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17545);
22792
22793function toPrimitive(t, r) {
22794  if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(t) || !t) return t;
22795  var e = t[Symbol.toPrimitive];
22796  if (void 0 !== e) {
22797    var i = e.call(t, r || "default");
22798    if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(i)) return i;
22799    throw new TypeError("@@toPrimitive must return a primitive value.");
22800  }
22801  return ("string" === r ? String : Number)(t);
22802}
22803
22804
22805/***/ }),
22806
22807/***/ 80129:
22808/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
22809
22810"use strict";
22811/* harmony export */ __webpack_require__.d(__webpack_exports__, {
22812/* harmony export */   A: () => (/* binding */ contains)
22813/* harmony export */ });
22814function contains(root, n) {
22815  if (!root) {
22816    return false;
22817  }
22818
22819  // Use native if support
22820  if (root.contains) {
22821    return root.contains(n);
22822  }
22823
22824  // `document.contains` not support with IE11
22825  var node = n;
22826  while (node) {
22827    if (node === root) {
22828      return true;
22829    }
22830    node = node.parentNode;
22831  }
22832  return false;
22833}
22834
22835/***/ }),
22836
22837/***/ 80547:
22838/***/ ((module) => {
22839
22840/**
22841 * Checks if `value` is object-like. A value is object-like if it's not `null`
22842 * and has a `typeof` result of "object".
22843 *
22844 * @static
22845 * @memberOf _
22846 * @since 4.0.0
22847 * @category Lang
22848 * @param {*} value The value to check.
22849 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
22850 * @example
22851 *
22852 * _.isObjectLike({});
22853 * // => true
22854 *
22855 * _.isObjectLike([1, 2, 3]);
22856 * // => true
22857 *
22858 * _.isObjectLike(_.noop);
22859 * // => false
22860 *
22861 * _.isObjectLike(null);
22862 * // => false
22863 */
22864function isObjectLike(value) {
22865  return value != null && typeof value == 'object';
22866}
22867
22868module.exports = isObjectLike;
22869
22870
22871/***/ }),
22872
22873/***/ 80745:
22874/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
22875
22876"use strict";
22877/* harmony export */ __webpack_require__.d(__webpack_exports__, {
22878/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
22879/* harmony export */ });
22880/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15442);
22881/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
22882
22883var PopupContent = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (_ref) {
22884  var children = _ref.children;
22885  return children;
22886}, function (_, next) {
22887  return next.cache;
22888});
22889if (false) // removed by dead control flow
22890{}
22891/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PopupContent);
22892
22893/***/ }),
22894
22895/***/ 81002:
22896/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
22897
22898"use strict";
22899/* harmony export */ __webpack_require__.d(__webpack_exports__, {
22900/* harmony export */   Bd: () => (/* binding */ isBrowser),
22901/* harmony export */   Bz: () => (/* binding */ useVipPrefix),
22902/* harmony export */   Fr: () => (/* binding */ isMobile),
22903/* harmony export */   G3: () => (/* binding */ is1688),
22904/* harmony export */   GA: () => (/* binding */ statusCode200),
22905/* harmony export */   JE: () => (/* binding */ getQueryVariable),
22906/* harmony export */   Me: () => (/* binding */ httpsOptionsConfig),
22907/* harmony export */   SR: () => (/* binding */ getTopDomain),
22908/* harmony export */   Wc: () => (/* reexport safe */ _cookies_refact__WEBPACK_IMPORTED_MODULE_0__.W),
22909/* harmony export */   Wg: () => (/* binding */ unlockBodyScroll),
22910/* harmony export */   _$: () => (/* binding */ removeLogin),
22911/* harmony export */   cH: () => (/* binding */ isInViewport),
22912/* harmony export */   dn: () => (/* binding */ isSafeUser),
22913/* harmony export */   gQ: () => (/* binding */ handleAuthUrl),
22914/* harmony export */   hQ: () => (/* binding */ getRouteHref),
22915/* harmony export */   kJ: () => (/* binding */ isMobileFun),
22916/* harmony export */   sg: () => (/* binding */ debounce),
22917/* harmony export */   t_: () => (/* binding */ isShowNewFeatures),
22918/* harmony export */   zI: () => (/* binding */ lockBodyScroll)
22919/* harmony export */ });
22920/* unused harmony exports isSupportWebpFun, IMG_SIZE, HTTPS_PREFIX, isTabletFun, jumpMobileFun, handleServiceItemClick, cartesian, cookieGenerator, cookieParser, isPageType, toUnitShow, getProductHref, priceFormat, ratePrice, joinVideoScreenUrl, isNodeExist, isVip, goLogin, uniqueArr, isShowNewInventory, isOldNewInventory, isOldInventory, getVideoScreen, getSecureSameSiteCookiesOptions, isSku, setSearchSku, getVolume, getStandard, qsImageHostChange, goSupplierShopPage */
22921/* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(93584);
22922/* harmony import */ var _cookies_refact__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(84873);
22923/* harmony import */ var _common_login_info_controller__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12097);
22924/* harmony import */ var _authority_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25435);
22925/* harmony import */ var psl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67399);
22926/* harmony import */ var _replace_prefix_for_api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20000);
22927
22928
22929
22930
22931
22932
22933
22934var getRouteHref = function getRouteHref(router) {
22935  if (!router.route) return '#';
22936  if (!(0,_authority_utils__WEBPACK_IMPORTED_MODULE_2__/* .hasAuth */ .Vm)({
22937    code: router.code
22938  })) return _authority_utils__WEBPACK_IMPORTED_MODULE_2__/* .noAuthPath */ .Z7;
22939  return router.route;
22940};
22941function getTopDomain(host) {
22942  if (host === void 0) {
22943    host = location === null || location === void 0 ? void 0 : location.hostname;
22944  }
22945  var ip_pattern = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
22946  if (ip_pattern.test(host)) {
22947    return host;
22948  }
22949  var domain = '';
22950  var p = psl__WEBPACK_IMPORTED_MODULE_3__/* ["default"].parse */ .Ay.parse(host);
22951  if (p.listed) {
22952    domain = p.domain;
22953  } else {
22954    domain = host;
22955  }
22956  return domain === 'localhost' ? domain : ".".concat(domain);
22957}
22958function statusCode200(data) {
22959  var errormsg = 'api request error!';
22960  if (!data) {
22961    return [errormsg];
22962  }
22963  if (data.success) {
22964    return [null, data.data];
22965  }
22966  return +data.statusCode === 200 ? [null, data.result] : [data.message || errormsg];
22967}
22968var isBrowser = typeof window != 'undefined';
22969var getQueryVariable = function getQueryVariable(name) {
22970  var _a;
22971  try {
22972    var searchParams = new URLSearchParams(location.search);
22973    var query = Array.from(searchParams.entries()).reduce(function (obj, _a) {
22974      var key = _a[0],
22975        value = _a[1];
22976      obj[key] = value;
22977      return obj;
22978    }, {});
22979    if (name) {
22980      return (_a = query[name]) !== null && _a !== void 0 ? _a : '';
22981    }
22982    return query;
22983  } catch (e) {
22984    return name ? '' : {};
22985  }
22986};
22987function debounce(fn, wait, immediate) {
22988  if (immediate === void 0) {
22989    immediate = false;
22990  }
22991  var timer,
22992    startTimeStamp = 0;
22993  var context, args;
22994  var _run = function run(timerInterval) {
22995    timer = setTimeout(function () {
22996      var now = Date.now();
22997      var interval = now - startTimeStamp;
22998      if (interval < timerInterval) {
22999        startTimeStamp = now;
23000        _run(wait - interval);
23001      } else {
23002        if (!immediate) {
23003          fn.apply(context, args);
23004        }
23005        clearTimeout(timer);
23006        timer = null;
23007      }
23008    }, timerInterval);
23009  };
23010  return function () {
23011    context = this;
23012    args = arguments;
23013    var now = Date.now();
23014    startTimeStamp = now;
23015    if (!timer) {
23016      if (immediate) {
23017        fn.apply(context, args);
23018      }
23019      _run(wait);
23020    }
23021  };
23022}
23023function isSupportWebpFun() {
23024  if (typeof window === 'undefined') return false;
23025  try {
23026    return document.createElement('canvas').toDataURL('image/webp').indexOf('data:image/webp') == 0;
23027  } catch (err) {
23028    return false;
23029  }
23030}
23031var isSupportWebp = isSupportWebpFun();
23032var IMG_SIZE = function IMG_SIZE(url) {
23033  var args = [];
23034  for (var _i = 1; _i < arguments.length; _i++) {
23035    args[_i - 1] = arguments[_i];
23036  }
23037  if (isBrowser && is1688()) return url;
23038  if (typeof url !== 'string' || !url.trim()) return url;
23039  if (url.indexOf('data:image') > -1) return url;
23040  try {
23041    var _url = new URL(url);
23042    if (_url.searchParams.size > 0) {
23043      _url.search = '';
23044    }
23045    var webpT = 'image/format,webp,';
23046    var json = {};
23047    var size = 200;
23048    var xOssProcess = "".concat(isSupportWebp ? webpT : '', "image/resize,m_fill,m_pad");
23049    if (args.length === 1) json = {
23050      w: args[0]
23051    };else if (args.length === 2) json = {
23052      w: args[0],
23053      h: args[1]
23054    };else {
23055      json = {
23056        w: size,
23057        h: size
23058      };
23059    }
23060    for (var k in json) xOssProcess += ",".concat(k, "_").concat(json[k]);
23061    _url.search = "?x-oss-process=".concat(xOssProcess);
23062    return HTTPS_PREFIX(_url.toString());
23063  } catch (e) {
23064    console.error("\u56FE\u7247url: ".concat(url, " \u5904\u7406\u62A5\u9519"), JSON.stringify(e));
23065    return url;
23066  }
23067};
23068var HTTPS_PREFIX = function HTTPS_PREFIX(url) {
23069  var str = url;
23070  if (!(str === null || str === void 0 ? void 0 : str.startsWith('https'))) {
23071    var suffix = str.replace(/^http:\/\//, '');
23072    str = "https://".concat(suffix);
23073  }
23074  return str;
23075};
23076var handleAuthUrl = function handleAuthUrl(url) {
23077  var _href = url;
23078  if (_href.indexOf('my.html') > -1 || _href.indexOf('mine') > -1) {
23079    _href = "/login.html?target=".concat(js_base64__WEBPACK_IMPORTED_MODULE_5__/* .Base64 */ .o4.encode(url));
23080  }
23081  return _href;
23082};
23083var isMobileFun = function isMobileFun() {
23084  return window.innerWidth < 700;
23085};
23086var isTabletFun = function isTabletFun() {
23087  return window.innerWidth > 700 && window.innerWidth < 1200;
23088};
23089var jumpMobileFun = function jumpMobileFun(_a) {
23090  var _b;
23091  var url = _a.url,
23092    _c = _a._back_url,
23093    _back_url = _c === void 0 ? window.location.href : _c,
23094    _source_url = _a._source_url,
23095    isLogin = _a.isLogin,
23096    _d = _a.shouldJump,
23097    shouldJump = _d === void 0 ? true : _d,
23098    _e = _a.openInNewTab,
23099    openInNewTab = _e === void 0 ? false : _e,
23100    _f = _a.noBackUrl,
23101    noBackUrl = _f === void 0 ? false : _f;
23102  var m_host = (_b = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _b === void 0 ? void 0 : _b.data('m-host');
23103  if (!m_host || !url) {
23104    return shouldJump ? undefined : '';
23105  }
23106  var m_url = "".concat(m_host).concat(url);
23107  if (isLogin) {
23108    if (shouldJump) {
23109      if (openInNewTab) {
23110        window.open("".concat(m_url).concat(noBackUrl ? '' : "".concat(url.includes('?') ? '&' : '?', "_back_url=").concat(_back_url)), '_blank');
23111      } else {
23112        window.location.href = "".concat(m_url).concat(noBackUrl ? '' : "".concat(url.includes('?') ? '&' : '?', "_back_url=").concat(_back_url));
23113      }
23114      return;
23115    }
23116    return "".concat(m_url).concat(noBackUrl ? '' : "".concat(url.includes('?') ? '&' : '?', "_back_url=").concat(_back_url));
23117  }
23118  var loginUrl = "".concat(m_host, "/login-register?_source_url=").concat(_source_url || m_url).concat(noBackUrl ? '' : "&_back_url=".concat(_back_url));
23119  if (shouldJump) {
23120    if (openInNewTab) {
23121      window.open(loginUrl, '_blank');
23122    } else {
23123      window.location.href = loginUrl;
23124    }
23125    return;
23126  }
23127  return loginUrl;
23128};
23129var originalStyles = {
23130  html: {
23131    overflow: '',
23132    position: '',
23133    top: '',
23134    width: ''
23135  },
23136  body: {
23137    overflow: '',
23138    position: '',
23139    top: '',
23140    width: ''
23141  }
23142};
23143var isLocked = false;
23144var lockedScrollY = 0;
23145var lockBodyScroll = function lockBodyScroll() {
23146  if (isLocked) return;
23147  var html = document.documentElement;
23148  var body = document.body;
23149  originalStyles.html = {
23150    overflow: html.style.overflow,
23151    position: html.style.position,
23152    top: html.style.top,
23153    width: html.style.width
23154  };
23155  originalStyles.body = {
23156    overflow: body.style.overflow,
23157    position: body.style.position,
23158    top: body.style.top,
23159    width: body.style.width
23160  };
23161  lockedScrollY = window.scrollY || window.pageYOffset;
23162  html.style.overflow = 'hidden';
23163  html.style.position = 'fixed';
23164  html.style.top = "-".concat(lockedScrollY, "px");
23165  html.style.width = '100%';
23166  body.style.overflow = 'hidden';
23167  body.style.position = 'fixed';
23168  body.style.top = "-".concat(lockedScrollY, "px");
23169  body.style.width = '100%';
23170  if (/iPad|iPhone|iPod/.test(navigator.userAgent)) {
23171    body.style.position = 'fixed';
23172    body.style.top = "-".concat(lockedScrollY, "px");
23173  }
23174  isLocked = true;
23175};
23176var unlockBodyScroll = function unlockBodyScroll() {
23177  if (!isLocked) return;
23178  var html = document.documentElement;
23179  var body = document.body;
23180  html.style.overflow = originalStyles.html.overflow;
23181  html.style.position = originalStyles.html.position;
23182  html.style.top = originalStyles.html.top;
23183  html.style.width = originalStyles.html.width;
23184  body.style.overflow = originalStyles.body.overflow;
23185  body.style.position = originalStyles.body.position;
23186  body.style.top = originalStyles.body.top;
23187  body.style.width = originalStyles.body.width;
23188  window.scrollTo(0, lockedScrollY);
23189  isLocked = false;
23190};
23191var handleServiceItemClick = function handleServiceItemClick(service) {
23192  if (isMobileFun()) {
23193    if (service.isThirdLink) {
23194      if (service.openInNewTab) {
23195        window.open(service.mlink, '_blank');
23196      } else {
23197        window.location.href = service.mlink;
23198      }
23199      return;
23200    }
23201    jumpMobileFun({
23202      url: service.mlink,
23203      _back_url: window.location.href,
23204      isLogin: true,
23205      openInNewTab: service.openInNewTab
23206    });
23207    return;
23208  }
23209  if (service.openInNewTab) {
23210    window.open(service.link, '_blank');
23211  } else {
23212    window.location.href = service.link;
23213  }
23214};
23215var removeLogin = function removeLogin() {
23216  var _a;
23217  (_a = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A === null || _common_login_info_controller__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A === void 0 ? void 0 : _common_login_info_controller__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A.clear) === null || _a === void 0 ? void 0 : _a.call(_common_login_info_controller__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A);
23218};
23219function cartesian(arr) {
23220  if (arr.length < 2) return arr[0] || [];
23221  return [].reduce.call(arr, function (col, set) {
23222    var res = [];
23223    col.forEach(function (c) {
23224      set.forEach(function (s) {
23225        var t = [].concat(Array.isArray(c) ? c : [c]);
23226        t.push(s);
23227        res.push(t);
23228      });
23229    });
23230    return res;
23231  });
23232}
23233var cookieGenerator = function cookieGenerator(cookie) {
23234  if (cookie === void 0) {
23235    cookie = {};
23236  }
23237  var arr = Object.keys(cookie).filter(function (k) {
23238    return cookie[k];
23239  }).map(function (k) {
23240    var v = cookie[k];
23241    return "".concat(k, "=").concat(v);
23242  });
23243  return arr.join(';');
23244};
23245var cookieParser = function cookieParser(cookie) {
23246  var r = null;
23247  if (!cookie) {
23248    return null;
23249  }
23250  try {
23251    var tmp = decodeURIComponent(cookie);
23252    var arr = tmp.split(';');
23253    var obj_1 = {};
23254    arr.forEach(function (_) {
23255      var t = _.split('=');
23256      obj_1[t[0]] = t[1];
23257    });
23258    r = obj_1;
23259    return r;
23260  } catch (error) {
23261    console.log('error', error);
23262  }
23263};
23264var isPageType = function isPageType(_path) {
23265  var path = _path;
23266  switch (path) {
23267    case '/':
23268      path = '/home.html';
23269      break;
23270    default:
23271      break;
23272  }
23273  return {
23274    isHome: ['/home.html'].includes(path)
23275  };
23276};
23277var toUnitShow = function toUnitShow(num) {
23278  if (isNaN(num) || !num || num == null || num <= 0) return 0;
23279  if (num < 1000) return num;
23280  if (num < 100000) return "".concat((num / 1000).toFixed(1), "K");
23281  return "99K+";
23282};
23283var getProductHref = function getProductHref(id, name) {
23284  if (name === void 0) {
23285    name = '';
23286  }
23287  function urlQueryFormat(url, encode) {
23288    if (url === void 0) {
23289      url = '';
23290    }
23291    if (encode === void 0) {
23292      encode = true;
23293    }
23294    var _url = String(url);
23295    _url = _url.toLocaleLowerCase();
23296    function _(reg, value) {
23297      if (value === void 0) {
23298        value = '';
23299      }
23300      _url = _url.replace(reg, value);
23301    }
23302    _(/,/g);
23303    _(/( )?&/g);
23304    _(/'/g);
23305    _(/\?/g);
23306    _(/ /g, '-');
23307    _url = encode ? encodeURIComponent(_url) : decodeURIComponent(_url);
23308    return _url;
23309  }
23310  return "/product/".concat(urlQueryFormat(name), "-p-").concat(id, ".html");
23311};
23312function priceFormat(price) {
23313  if (!price) return '0.00';
23314  var _price = price.replace('--', '-');
23315  var arr = _price.split('-');
23316  if (arr.length == 1) {
23317    return "".concat(Number(arr[0]).toFixed(2));
23318  } else {
23319    return "".concat(Number(arr[0]).toFixed(2), "-").concat(Number(arr[1]).toFixed(2));
23320  }
23321}
23322function ratePrice(price, rate) {
23323  if (rate === void 0) {
23324    rate = 1;
23325  }
23326  var resultPrice = price * rate;
23327  return resultPrice.toFixed(2);
23328}
23329var joinVideoScreenUrl = function joinVideoScreenUrl(url, size) {
23330  if (size === void 0) {
23331    size = [];
23332  }
23333  var joinTemp = [];
23334  size[0] && joinTemp.push("w_".concat(size[0]));
23335  size[1] && joinTemp.push("h_".concat(size[1]));
23336  var joinStr = joinTemp.join(',');
23337  return "".concat(url, "?x-oss-process=video/snapshot,t_1,m_fast") + (joinStr ? ",".concat(joinStr) : '');
23338};
23339function isNodeExist(node) {
23340  if (!node) return false;
23341  return document.contains(node);
23342}
23343function isVip() {
23344  return loginInfoController.info('vip') == '1' && document.body.classList.contains('vip');
23345}
23346function goLogin(url) {
23347  if (url === void 0) {
23348    url = '';
23349  }
23350  var goUrl = url;
23351  if (!goUrl) {
23352    goUrl = location.origin + location.pathname + '?' + location.search;
23353  }
23354  location.href = '/login.html?target=' + Base64.encode(goUrl);
23355}
23356function uniqueArr(arr, key) {
23357  if (key === void 0) {
23358    key = '';
23359  }
23360  var res = new Map();
23361  return arr.filter(function (a) {
23362    var _key = key ? a[key] : a;
23363    return !res.has(_key) && res.set(_key, 1);
23364  });
23365}
23366function isInViewport(el, offsetHeight) {
23367  if (offsetHeight === void 0) {
23368    offsetHeight = 0;
23369  }
23370  if (!el) return true;
23371  var rect = el.getBoundingClientRect();
23372  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) - offsetHeight && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
23373}
23374function isSafeUser(SHOWMESSAGE, token) {
23375  var _a;
23376  if (SHOWMESSAGE === void 0) {
23377    SHOWMESSAGE = '';
23378  }
23379  if (token === void 0) {
23380    token = '';
23381  }
23382  if (typeof window !== 'undefined') {
23383    return ((_a = _cookies_refact__WEBPACK_IMPORTED_MODULE_0__/* .Cookies */ .W.get('SHOWMESSAGE')) === null || _a === void 0 ? void 0 : _a.indexOf('S')) > -1 && !!_cookies_refact__WEBPACK_IMPORTED_MODULE_0__/* .Cookies */ .W.get('token');
23384  }
23385  return (SHOWMESSAGE === null || SHOWMESSAGE === void 0 ? void 0 : SHOWMESSAGE.indexOf('S')) > -1 && !!token;
23386}
23387var noReplaceUrl = ['/order-center/proxyOrder/saveOrder/excelImportOrder', '/order-center/proxyOrder/saveOrder/excelImportOrderV2', '/order-center/proxyOrder/saveOrder/excelImportOrderV3', '/order-center/proxyOrder/saveOrder/excelImportOrderV4'];
23388function useVipPrefix(_a) {
23389  var _b;
23390  var _c = _a === void 0 ? {} : _a,
23391    _d = _c.SHOWMESSAGE,
23392    SHOWMESSAGE = _d === void 0 ? '' : _d,
23393    _e = _c.token,
23394    token = _e === void 0 ? '' : _e,
23395    _f = _c.url,
23396    url = _f === void 0 ? '' : _f;
23397  if (!url || url.startsWith('http')) return url;
23398  var hasPreLine = url === null || url === void 0 ? void 0 : url.startsWith('/');
23399  var diagonalLineUrl = hasPreLine ? url : "/".concat(url);
23400  if (noReplaceUrl.some(function (u) {
23401    return u === diagonalLineUrl;
23402  })) return url;
23403  var prefix = (_b = diagonalLineUrl === null || diagonalLineUrl === void 0 ? void 0 : diagonalLineUrl.split('/')) === null || _b === void 0 ? void 0 : _b[1];
23404  var _g = _replace_prefix_for_api__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A[prefix] || {},
23405    normalPrefix = _g.normal,
23406    vipPrefix = _g.vip;
23407  var _SHOWMESSAGE = SHOWMESSAGE;
23408  var _token = token;
23409  if (typeof window !== 'undefined') {
23410    _SHOWMESSAGE = _cookies_refact__WEBPACK_IMPORTED_MODULE_0__/* .Cookies */ .W.get('SHOWMESSAGE') || '';
23411    _token = _cookies_refact__WEBPACK_IMPORTED_MODULE_0__/* .Cookies */ .W.get('token') || '';
23412  }
23413  var needReplace = (_SHOWMESSAGE === null || _SHOWMESSAGE === void 0 ? void 0 : _SHOWMESSAGE.indexOf('V')) > -1 && !!_token;
23414  if (needReplace && vipPrefix) return url.replace("".concat(prefix), "".concat(vipPrefix));
23415  if (normalPrefix) return url.replace("".concat(prefix), "".concat(normalPrefix));
23416  return url;
23417}
23418function isMobile(ctx) {
23419  var _a;
23420  if (ctx === void 0) {
23421    ctx = null;
23422  }
23423  if (ctx) {
23424    var ua = ((_a = ctx === null || ctx === void 0 ? void 0 : ctx.req) === null || _a === void 0 ? void 0 : _a.headers['user-agent']) || '';
23425    return /Mobile|mobile|android|iphone|ipod|phone|blackberry|windows phone|ipad/i.test(ua);
23426  }
23427  if (typeof window === 'undefined') return false;
23428  return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
23429}
23430function isShowNewInventory(SHOWMESSAGE) {
23431  var _a, _b;
23432  if (SHOWMESSAGE === void 0) {
23433    SHOWMESSAGE = '';
23434  }
23435  if (typeof window !== 'undefined') {
23436    return ((_a = Cookies.get('SHOWMESSAGE')) === null || _a === void 0 ? void 0 : _a.indexOf('K')) > -1 && ((_b = Cookies.get('SHOWMESSAGE')) === null || _b === void 0 ? void 0 : _b.indexOf('k')) === -1;
23437  }
23438  return (SHOWMESSAGE === null || SHOWMESSAGE === void 0 ? void 0 : SHOWMESSAGE.indexOf('K')) > -1 && (SHOWMESSAGE === null || SHOWMESSAGE === void 0 ? void 0 : SHOWMESSAGE.indexOf('k')) === -1;
23439}
23440function isOldNewInventory(SHOWMESSAGE) {
23441  var _a, _b;
23442  if (SHOWMESSAGE === void 0) {
23443    SHOWMESSAGE = '';
23444  }
23445  if (typeof window !== 'undefined') {
23446    return ((_a = Cookies.get('SHOWMESSAGE')) === null || _a === void 0 ? void 0 : _a.indexOf('K')) > -1 && ((_b = Cookies.get('SHOWMESSAGE')) === null || _b === void 0 ? void 0 : _b.indexOf('k')) > -1;
23447  }
23448  return (SHOWMESSAGE === null || SHOWMESSAGE === void 0 ? void 0 : SHOWMESSAGE.indexOf('K')) > -1 && (SHOWMESSAGE === null || SHOWMESSAGE === void 0 ? void 0 : SHOWMESSAGE.indexOf('k')) > -1;
23449}
23450function isOldInventory(SHOWMESSAGE) {
23451  var _a, _b;
23452  if (SHOWMESSAGE === void 0) {
23453    SHOWMESSAGE = '';
23454  }
23455  if (typeof window !== 'undefined') {
23456    return ((_a = Cookies.get('SHOWMESSAGE')) === null || _a === void 0 ? void 0 : _a.indexOf('K')) === -1 && ((_b = Cookies.get('SHOWMESSAGE')) === null || _b === void 0 ? void 0 : _b.indexOf('k')) > -1;
23457  }
23458  return (SHOWMESSAGE === null || SHOWMESSAGE === void 0 ? void 0 : SHOWMESSAGE.indexOf('K')) === -1 && (SHOWMESSAGE === null || SHOWMESSAGE === void 0 ? void 0 : SHOWMESSAGE.indexOf('k')) > -1;
23459}
23460var parseSize = function parseSize(targetSize, size) {
23461  var t_width = targetSize[0],
23462    t_height = targetSize[1];
23463  var width = size[0],
23464    height = size[1];
23465  var newWidth = 0,
23466    newHeight = 0;
23467  var targetRatio = t_width / t_height;
23468  var ratio = width / height;
23469  if (targetRatio > ratio) {
23470    newWidth = ratio * t_height;
23471    newHeight = t_height;
23472  } else {
23473    newWidth = t_width;
23474    newHeight = t_width / ratio;
23475  }
23476  return [parseInt(newWidth + ''), parseInt(newHeight + '')];
23477};
23478function getVideoScreen(url, size) {
23479  if (size === void 0) {
23480    size = [200, 200];
23481  }
23482  var _a = parseSize(size, [200, 200]),
23483    width = _a[0],
23484    height = _a[1];
23485  return new Promise(function (resolve) {
23486    var video = document.createElement('video');
23487    video.crossOrigin = 'anonymous';
23488    video.src = url;
23489    video.width = width;
23490    video.height = height;
23491    video.preload = 'auto';
23492    video.currentTime = 2;
23493    video.onloadeddata = function () {
23494      var canvas = document.createElement('canvas');
23495      var t_w = size[0];
23496      var t_h = size[1];
23497      canvas.width = t_w;
23498      canvas.height = t_h;
23499      var x = 0;
23500      var y = 0;
23501      if (t_w === width) {
23502        y = (t_h - height) / 2;
23503      } else {
23504        x = (t_w - width) / 2;
23505      }
23506      var ctx = canvas.getContext('2d');
23507      ctx.drawImage(video, x, y, canvas.width, canvas.height);
23508      ctx.fillStyle = '#000';
23509      var fileType = 'image/jpeg';
23510      var base64Url = canvas.toDataURL(fileType);
23511      resolve(base64Url);
23512    };
23513  });
23514}
23515function is1688(_siteCheck) {
23516  var siteCheck = _siteCheck !== null && _siteCheck !== void 0 ? _siteCheck : window === null || window === void 0 ? void 0 : window.siteCheck;
23517  return (siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.isSite('TH', 'CF')) || (siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.isSite('EX')) || (siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.isSite('AR')) || (siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.isSite('RU')) || (siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.isSite('FT'));
23518}
23519function getSecureSameSiteCookiesOptions() {
23520  var cookieOptions = {};
23521  if (false) // removed by dead control flow
23522{}
23523  cookieOptions.secure = true;
23524  cookieOptions.sameSite = 'None';
23525  return cookieOptions;
23526}
23527function isSku(value) {
23528  var regSKU = /^[A-Za-z]{4}[A-Za-z0-9]*[0-9]{2}[A-Za-z]{2}$/;
23529  var regOldSKU = /^CJ[0-9A-Za-z]{3,11}-[0-9A-Za-z+]+.*$/;
23530  var packageSKU = /^BZ[0-9A-Za-z]{3,11}-[0-9A-Za-z+]+.*$/;
23531  return regSKU.test(value) || regOldSKU.test(value) || packageSKU.test(value);
23532}
23533function setSearchSku(value) {
23534  if (value === void 0) {
23535    value = '';
23536  }
23537  if (value && isSku(value)) {
23538    Cookies.set('searchSku', value);
23539  } else {
23540    Cookies.remove('searchSku');
23541  }
23542}
23543function isShowNewFeatures() {
23544  var maxNewTime = new Date('2025/5/20').getTime();
23545  var cacheNew = _cookies_refact__WEBPACK_IMPORTED_MODULE_0__/* .Cookies */ .W.get('view-cogs');
23546  var isShowNew = new Date().getTime() < maxNewTime && !cacheNew;
23547  return isShowNew;
23548}
23549function getVolume(_long, width, height, number) {
23550  _long = parseFloat(_long) || 0;
23551  width = parseFloat(width) || 0;
23552  height = parseFloat(height) || 0;
23553  number = parseInt(number) || 0;
23554  return _long * width * height * number;
23555}
23556function getStandard(name, content) {
23557  var reg = RegExp(name + '=(\\d+)', 'gi');
23558  var result = reg.exec(content);
23559  return Array.isArray(result) ? parseInt(result[1]) / 10 : null;
23560}
23561function qsImageHostChange(url) {
23562  return url.replace(/https:\/\/oss-cf.cjdropshipping.com/g, 'https://oss-cf.yesourcing.com');
23563}
23564function httpsOptionsConfig() {
23565  if (typeof window !== 'undefined' && location.href.includes('offline.pre')) {
23566    return {};
23567  }
23568  return {
23569    secure: true,
23570    sameSite: 'None'
23571  };
23572}
23573function goSupplierShopPage(shopId, domainName, siteName, openInNewTab) {
23574  if (siteName === void 0) {
23575    siteName = 'cj';
23576  }
23577  if (openInNewTab === void 0) {
23578    openInNewTab = false;
23579  }
23580  var host = {"qs":"https://shop.qksource.com","cj":"https://shop.cjdropshipping.com"}[siteName];
23581  if (domainName) {
23582    var hasDev = /dev-/.test(host);
23583    host = host.replace(/(dev-)?shop/i, (hasDev ? 'dev-' : '') + domainName);
23584    if (openInNewTab) {
23585      window.open(host, '_blank');
23586    } else {
23587      location.href = host;
23588    }
23589    return;
23590  }
23591  if (openInNewTab) {
23592    window.open("/seller/".concat(shopId), '_blank');
23593  } else {
23594    location.href = "/seller/".concat(shopId);
23595  }
23596}
23597
23598/***/ }),
23599
23600/***/ 81943:
23601/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23602
23603"use strict";
23604/* harmony export */ __webpack_require__.d(__webpack_exports__, {
23605/* harmony export */   Ay: () => (__WEBPACK_DEFAULT_EXPORT__),
23606/* harmony export */   DD: () => (/* binding */ menuPath),
23607/* harmony export */   T_: () => (/* binding */ menus),
23608/* harmony export */   Yn: () => (/* binding */ getPath)
23609/* harmony export */ });
23610/* unused harmony export menuNames */
23611/* harmony import */ var _common_platform_show__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(37597);
23612var __assign = undefined && undefined.__assign || function () {
23613  __assign = Object.assign || function (t) {
23614    for (var s, i = 1, n = arguments.length; i < n; i++) {
23615      s = arguments[i];
23616      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
23617    }
23618    return t;
23619  };
23620  return __assign.apply(this, arguments);
23621};
23622var _a;
23623
23624var menus = [{
23625  name: 'Catalog',
23626  nameTrans: function nameTrans() {
23627    return "".concat(window.i18next.t("common-mycj-menu-catalog", 'Catalog'));
23628  },
23629  iconclass: 'Catalog',
23630  active: true,
23631  childs: [],
23632  route: '/list/wholesale-all-categories-l-all.html'
23633}, {
23634  name: 'Products',
23635  nameTrans: function nameTrans() {
23636    return "".concat(window.i18next.t("common-mycj-menu-products", 'Products'));
23637  },
23638  iconclass: 'Products',
23639  active: false,
23640  code: 'mycj_products',
23641  childs: [{
23642    name: 'My Products',
23643    nameTrans: function nameTrans() {
23644      return "".concat(window.i18next.t("common-mycj-menu-my-products", 'My Products'));
23645    },
23646    code: 'mycj_my_products',
23647    route: '/mine/myQuotation',
23648    active: false
23649  }, {
23650    name: 'My Upsell',
23651    nameTrans: function nameTrans() {
23652      return "".concat(window.i18next.t("common-mycj-menu-my-upsell", 'My Upsell'));
23653    },
23654    code: 'mycj_my_upsell',
23655    route: '/mine/myUpsell',
23656    active: false
23657  }, {
23658    name: 'Store Products',
23659    nameTrans: function nameTrans() {
23660      return "".concat(window.i18next.t("common-mycj-menu-store-products", 'Store Products'));
23661    },
23662    code: 'mycj_store_products',
23663    route: '/mine/products/connection',
23664    active: false,
23665    tip: function tip() {
23666      return window.i18next.t("common-mycj-menu-store-products-tip");
23667    }
23668  }]
23669}, {
23670  name: 'Orders',
23671  nameTrans: function nameTrans() {
23672    return "".concat(window.i18next.t("common-mycj-menu-orders", 'Orders'));
23673  },
23674  iconclass: 'Orders1',
23675  active: false,
23676  code: 'mycj_orders',
23677  childs: [{
23678    name: 'Store Orders',
23679    nameTrans: function nameTrans() {
23680      return "".concat(window.i18next.t("common-mycj-menu-store-orders", 'Store Orders'));
23681    },
23682    active: false,
23683    code: 'mycj_store_orders',
23684    route: '/mine/dropshipping/zestyOrder'
23685  }, {
23686    name: 'Disputes',
23687    nameTrans: function nameTrans() {
23688      return "".concat(window.i18next.t("common-mycj-menu-disputes", 'Disputes'));
23689    },
23690    code: 'mycj_disputes',
23691    route: '/mine/dispute/list',
23692    active: false
23693  }, {
23694    name: 'Undelivered Orders',
23695    nameTrans: function nameTrans() {
23696      return "".concat(window.i18next.t("common-mycj-menu-undelivered-orders", 'Undelivered Orders'));
23697    },
23698    code: 'mycj_undelivered_orders',
23699    route: '/mine/undeliveredOrder',
23700    active: false
23701  }]
23702}, {
23703  name: 'Tracking',
23704  nameTrans: function nameTrans() {
23705    return "".concat(window.i18next.t("common-mycj-menu-tracking", 'Tracking'));
23706  },
23707  iconclass: 'Tracking',
23708  active: false,
23709  code: 'mycj_tracking',
23710  childs: [{
23711    name: 'Tracking List',
23712    nameTrans: function nameTrans() {
23713      return "".concat(window.i18next.t("common-mycj-menu-tracking-list", 'Tracking List'));
23714    },
23715    active: false,
23716    code: 'mycj_tracking',
23717    route: '/mine/tracking'
23718  }, {
23719    name: 'Tracking Changes',
23720    nameTrans: function nameTrans() {
23721      return "".concat(window.i18next.t("common-mycj-menu-tracking-changes", 'Tracking Changes'));
23722    },
23723    active: false,
23724    code: 'mycj_tracking_changes',
23725    route: '/mine/tracking/changes'
23726  }]
23727}, {
23728  name: 'Authorization',
23729  nameTrans: function nameTrans() {
23730    return "".concat(window.i18next.t("common-mycj-menu-authorization"));
23731  },
23732  iconclass: 'Authorization',
23733  active: false,
23734  special: true,
23735  code: 'mycj_authorization',
23736  childs: [__assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_0__/* .PLATFORM */ .i9.api), {
23737    nameTrans: function nameTrans() {
23738      return "".concat(window.i18next.t("common-mycj-menu-api"));
23739    },
23740    version: 2,
23741    type: 'authorize',
23742    active: false
23743  })]
23744}, {
23745  name: "My ".concat(typeof window !== 'undefined' && ((_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name'))),
23746  nameVal: "My CJ",
23747  nameTrans: function nameTrans() {
23748    var _a;
23749    return window.i18next.t("common-mycj-my-site", {
23750      siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('full-name')
23751    });
23752  },
23753  iconclass: 'a-MyCJZesty',
23754  active: false,
23755  childs: [{
23756    name: 'Dashboard',
23757    nameTrans: function nameTrans() {
23758      return "".concat(window.i18next.t("common-mycj-menu-dashboard", 'Dashboard'));
23759    },
23760    code: 'mycj_dashboard',
23761    route: '/mine/zestyDashboard',
23762    active: false
23763  }, {
23764    name: 'Profile',
23765    nameTrans: function nameTrans() {
23766      return "".concat(window.i18next.t("common-mycj-menu-profile"));
23767    },
23768    code: 'mycj_profile',
23769    route: '/my.html#/profile/info',
23770    active: false
23771  }, {
23772    name: 'Wallet',
23773    nameTrans: function nameTrans() {
23774      return "".concat(window.i18next.t("common-mycj-menu-wallet"));
23775    },
23776    code: 'mycj_wallet',
23777    route: '/mine/wallet',
23778    active: false
23779  }, {
23780    name: 'Ticket',
23781    nameTrans: function nameTrans() {
23782      return "".concat(window.i18next.t("common-mycj-menu-ticket"));
23783    },
23784    code: 'mycj_ticket',
23785    route: '/mine/ticket',
23786    active: false
23787  }, {
23788    name: 'Sub-account',
23789    nameTrans: function nameTrans() {
23790      return "".concat(window.i18next.t("common-mycj-menu-sub-account"));
23791    },
23792    code: 'mycj_sub_account',
23793    route: '/my.html#/accountManage',
23794    active: false
23795  }, {
23796    name: 'Export List',
23797    nameTrans: function nameTrans() {
23798      return "".concat(window.i18next.t("common-mycj-menu-export-list"));
23799    },
23800    iconclass: 'liwuicon_',
23801    code: 'mycj_export_list',
23802    route: '/mine/exportList',
23803    active: false
23804  }, {
23805    name: 'Warehouse Operation Video',
23806    nameTrans: function nameTrans() {
23807      return "".concat(window.i18next.t("common-mycj-menu-order-list-video"));
23808    },
23809    code: 'mycj_order-video',
23810    route: '/mine/orderVideo',
23811    active: false
23812  }]
23813}];
23814var menuPath = {};
23815var menuNames = {};
23816function loops(list, parent) {
23817  return (list || []).map(function (_a) {
23818    var route = _a.route,
23819      childs = _a.childs,
23820      name = _a.name,
23821      version = _a.version;
23822    var _route = route;
23823    var node = menuNames[name] = menuPath[_route] = {
23824      parent: parent,
23825      name: name,
23826      version: version,
23827      route: _route
23828    };
23829    node['childs'] = loops(childs, node);
23830    return node;
23831  });
23832}
23833function getPath(name) {
23834  var obj = menuNames[name];
23835  var arr = [];
23836  while (obj && obj.name) {
23837    if (obj.childs && obj.childs[0]) {
23838      arr.push(obj.name);
23839    } else {
23840      arr.push(obj.name);
23841    }
23842    if (!obj.parent) break;
23843    obj = obj.parent;
23844  }
23845  return arr;
23846}
23847loops(menus, null);
23848var createAuthTree = function createAuthTree() {
23849  var authMapByRoute = [];
23850  var _fun = function fun(list) {
23851    return list.map(function (l) {
23852      if (l.route && l.code) authMapByRoute.push({
23853        name: l.name,
23854        code: l.code,
23855        route: l.route
23856      });
23857      return {
23858        name: l.name,
23859        code: l.code,
23860        route: l.route,
23861        children: l.childs && _fun(l.childs)
23862      };
23863    });
23864  };
23865  return [_fun(menus), authMapByRoute];
23866};
23867/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAuthTree);
23868
23869/***/ }),
23870
23871/***/ 82058:
23872/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23873
23874"use strict";
23875/* harmony export */ __webpack_require__.d(__webpack_exports__, {
23876/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
23877/* harmony export */ });
23878/* harmony import */ var _components_CjHeader_contexts_PropsContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44148);
23879
23880/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function () {
23881  var siteCheck = (0,_components_CjHeader_contexts_PropsContext__WEBPACK_IMPORTED_MODULE_0__/* .useGlobalProps */ .v)().siteCheck;
23882  return siteCheck;
23883});
23884
23885/***/ }),
23886
23887/***/ 84238:
23888/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23889
23890"use strict";
23891/* harmony export */ __webpack_require__.d(__webpack_exports__, {
23892/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
23893/* harmony export */ });
23894/* unused harmony export useLayoutUpdateEffect */
23895/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15442);
23896/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
23897/* harmony import */ var _Dom_canUseDom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(47169);
23898
23899
23900
23901/**
23902 * Wrap `React.useLayoutEffect` which will not throw warning message in test env
23903 */
23904var useInternalLayoutEffect =  true && (0,_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)() ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;
23905var useLayoutEffect = function useLayoutEffect(callback, deps) {
23906  var firstMountRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(true);
23907  useInternalLayoutEffect(function () {
23908    return callback(firstMountRef.current);
23909  }, deps);
23910
23911  // We tell react that first mount has passed
23912  useInternalLayoutEffect(function () {
23913    firstMountRef.current = false;
23914    return function () {
23915      firstMountRef.current = true;
23916    };
23917  }, []);
23918};
23919var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {
23920  useLayoutEffect(function (firstMount) {
23921    if (!firstMount) {
23922      return callback();
23923    }
23924  }, deps);
23925};
23926/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useLayoutEffect);
23927
23928/***/ }),
23929
23930/***/ 84266:
23931/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23932
23933"use strict";
23934/* harmony export */ __webpack_require__.d(__webpack_exports__, {
23935/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
23936/* harmony export */ });
23937/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
23938  shopify: {
23939    Title: 'Shopify',
23940    value: 'shopify',
23941    otherValue: [],
23942    isAuthor: true,
23943    isShow: true
23944  },
23945  wed2c: {
23946    Title: 'WED2C',
23947    value: 'wed2c',
23948    otherValue: [],
23949    isAuthor: true,
23950    isShow: true
23951  },
23952  temu: {
23953    Title: 'Temu',
23954    value: 'temu',
23955    otherValue: [],
23956    isAuthor: true,
23957    isShow: true
23958  },
23959  temu_us_local: {
23960    Title: 'Temu US Local',
23961    value: 'temu_us_local',
23962    otherValue: [],
23963    isAuthor: true,
23964    isShow: true
23965  },
23966  temu_certified_overseas: {
23967    Title: 'Temu Cooperative Warehouse',
23968    value: 'temu_certified_overseas',
23969    otherValue: [],
23970    isAuthor: true,
23971    isShow: true
23972  },
23973  shein: {
23974    Title: 'Shein',
23975    value: 'shein',
23976    otherValue: [],
23977    isAuthor: true,
23978    isShow: true
23979  },
23980  whop: {
23981    Title: 'Whop',
23982    value: 'whop',
23983    otherValue: [],
23984    isAuthor: true,
23985    isShow: true
23986  },
23987  tiktok: {
23988    Title: 'TikTok',
23989    value: 'tikTok',
23990    otherValue: [],
23991    isAuthor: true,
23992    isShow: true
23993  },
23994  tiktok_us: {
23995    Title: 'TikTok_US',
23996    value: 'TikTok_US',
23997    otherValue: [],
23998    isAuthor: true,
23999    isShow: true
24000  },
24001  tiktok_us_cross: {
24002    Title: 'TikTok_US_Cross',
24003    value: 'TikTok_US_Cross',
24004    otherValue: [],
24005    isAuthor: true,
24006    isShow: true
24007  },
24008  woocommerce: {
24009    Title: 'Woocommerce',
24010    value: 'woocommerce',
24011    otherValue: [],
24012    isAuthor: true,
24013    isShow: true
24014  },
24015  ebay: {
24016    Title: 'Ebay',
24017    value: 'ebay',
24018    otherValue: [],
24019    isAuthor: true,
24020    isShow: true
24021  },
24022  api: {
24023    Title: 'API',
24024    value: 'api',
24025    otherValue: ['CJ API', 'cj api'],
24026    isAuthor: true,
24027    isShow: true
24028  },
24029  etsy: {
24030    Title: 'Etsy',
24031    value: 'etsy',
24032    otherValue: [],
24033    isAuthor: true,
24034    isShow: true
24035  },
24036  aliexpress: {
24037    Title: 'AliExpress',
24038    value: 'aliexpress',
24039    otherValue: [],
24040    isAuthor: true,
24041    isShow: true
24042  },
24043  wix: {
24044    Title: 'Wix',
24045    value: 'wix',
24046    otherValue: [],
24047    isAuthor: true,
24048    isShow: true
24049  },
24050  lazada: {
24051    Title: 'Lazada',
24052    value: 'lazada',
24053    otherValue: [],
24054    isAuthor: false,
24055    isShow: false
24056  },
24057  shopee: {
24058    Title: 'Shopee',
24059    value: 'shopee',
24060    otherValue: [],
24061    isAuthor: false,
24062    isShow: false
24063  },
24064  squarespace: {
24065    Title: 'Squarespace',
24066    value: 'squarespace',
24067    otherValue: [],
24068    isAuthor: true,
24069    isShow: true
24070  },
24071  shoplazza: {
24072    Title: 'Shoplazza',
24073    value: 'shoplazza',
24074    otherValue: [],
24075    isAuthor: true,
24076    isShow: true
24077  },
24078  magento: {
24079    Title: 'Magento',
24080    value: 'magento',
24081    otherValue: [],
24082    isAuthor: true,
24083    isShow: true
24084  },
24085  bigcommerce: {
24086    Title: 'Bigcommerce',
24087    value: 'bigcommerce',
24088    otherValue: [],
24089    isAuthor: true,
24090    isShow: true
24091  },
24092  prestashop: {
24093    Title: 'PrestaShop',
24094    value: 'prestaShop',
24095    otherValue: [],
24096    isAuthor: true,
24097    isShow: true
24098  },
24099  allvalue: {
24100    Title: 'AllValue',
24101    value: 'allValue',
24102    otherValue: [],
24103    isAuthor: true,
24104    isShow: true
24105  },
24106  nuvemshop: {
24107    Title: 'Nuvemshop',
24108    value: 'nuvemshop',
24109    otherValue: [],
24110    isAuthor: false,
24111    isShow: false
24112  },
24113  shipstation: {
24114    Title: 'Shipstation',
24115    value: 'shipstation',
24116    otherValue: [],
24117    isAuthor: true,
24118    isShow: true
24119  },
24120  mercado: {
24121    Title: 'Mercado',
24122    value: 'mercado',
24123    otherValue: [],
24124    isAuthor: true,
24125    isShow: true
24126  },
24127  others: {
24128    Title: 'Others',
24129    value: 'others',
24130    otherValue: [],
24131    isAuthor: false,
24132    isShow: false
24133  },
24134  mabang: {
24135    Title: 'MabangERP',
24136    value: 'mabang',
24137    otherValue: [],
24138    isAuthor: true,
24139    isShow: true
24140  },
24141  miaoshou: {
24142    Title: '妙手ERP',
24143    value: 'miaoshou',
24144    otherValue: [],
24145    isAuthor: true,
24146    isShow: true
24147  }
24148});
24149
24150/***/ }),
24151
24152/***/ 84445:
24153/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24154
24155"use strict";
24156/* unused harmony exports preMessage, warning, note, resetWarned, call, warningOnce, noteOnce */
24157/* eslint-disable no-console */
24158var warned = {};
24159var preWarningFns = [];
24160
24161/**
24162 * Pre warning enable you to parse content before console.error.
24163 * Modify to null will prevent warning.
24164 */
24165var preMessage = function preMessage(fn) {
24166  preWarningFns.push(fn);
24167};
24168
24169/**
24170 * Warning if condition not match.
24171 * @param valid Condition
24172 * @param message Warning message
24173 * @example
24174 * ```js
24175 * warning(false, 'some error'); // print some error
24176 * warning(true, 'some error'); // print nothing
24177 * warning(1 === 2, 'some error'); // print some error
24178 * ```
24179 */
24180function warning(valid, message) {
24181  if (false) // removed by dead control flow
24182{ var finalMessage; }
24183}
24184
24185/** @see Similar to {@link warning} */
24186function note(valid, message) {
24187  if (false) // removed by dead control flow
24188{ var finalMessage; }
24189}
24190function resetWarned() {
24191  warned = {};
24192}
24193function call(method, valid, message) {
24194  if (!valid && !warned[message]) {
24195    method(false, message);
24196    warned[message] = true;
24197  }
24198}
24199
24200/** @see Same as {@link warning}, but only warn once for the same message */
24201function warningOnce(valid, message) {
24202  call(warning, valid, message);
24203}
24204
24205/** @see Same as {@link warning}, but only warn once for the same message */
24206function noteOnce(valid, message) {
24207  call(note, valid, message);
24208}
24209warningOnce.preMessage = preMessage;
24210warningOnce.resetWarned = resetWarned;
24211warningOnce.noteOnce = noteOnce;
24212/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ((/* unused pure expression or super */ null && (warningOnce)));
24213
24214/***/ }),
24215
24216/***/ 84873:
24217/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24218
24219"use strict";
24220/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24221/* harmony export */   W: () => (/* reexport safe */ js_cookie__WEBPACK_IMPORTED_MODULE_0__.A)
24222/* harmony export */ });
24223/* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3478);
24224/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(81002);
24225var __assign = undefined && undefined.__assign || function () {
24226  __assign = Object.assign || function (t) {
24227    for (var s, i = 1, n = arguments.length; i < n; i++) {
24228      s = arguments[i];
24229      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
24230    }
24231    return t;
24232  };
24233  return __assign.apply(this, arguments);
24234};
24235
24236
24237js_cookie__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.set = function (set) {
24238  return function (key, value, options) {
24239    if (options === void 0) {
24240      options = {};
24241    }
24242    var _options = __assign({
24243      path: '/',
24244      domain: (0,___WEBPACK_IMPORTED_MODULE_1__/* .getTopDomain */ .SR)(),
24245      expires: 3
24246    }, options);
24247    return set.apply(this, [key, value, _options]);
24248  };
24249}(js_cookie__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.set);
24250js_cookie__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.remove = function (remove) {
24251  return function (key, options) {
24252    if (options === void 0) {
24253      options = {};
24254    }
24255    var _options = __assign({
24256      path: '/',
24257      domain: (0,___WEBPACK_IMPORTED_MODULE_1__/* .getTopDomain */ .SR)(),
24258      expires: -1
24259    }, options);
24260    return remove.apply(this, [key, _options]);
24261  };
24262}(js_cookie__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.remove);
24263
24264
24265/***/ }),
24266
24267/***/ 84963:
24268/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24269
24270"use strict";
24271/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24272/* harmony export */   F: () => (/* binding */ cjHref)
24273/* harmony export */ });
24274/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(81002);
24275
24276var cjHref = function cjHref(href, host) {
24277  var _a;
24278  if (href.indexOf('http') > -1 || href == '#') return href;
24279  var domain = host ? (0,_common__WEBPACK_IMPORTED_MODULE_0__/* .getTopDomain */ .SR)(host) : (0,_common__WEBPACK_IMPORTED_MODULE_0__/* .getTopDomain */ .SR)();
24280  var cjTestDomain = 'http://www.cjdropshipping.offline.pre.com';
24281  var todo = {
24282    localhost: cjTestDomain,
24283    '.pre.com': cjTestDomain,
24284    '.pre.cn': cjTestDomain,
24285    '.cjdropshipping.com': 'https://www.cjdropshipping.com',
24286    '.cjdropshipping.cn': 'https://app.cjdropshipping.cn',
24287    '.cj.com': cjTestDomain
24288  };
24289  if (domain.indexOf('localhost') > -1) domain = 'localhost';
24290  var centerText = '/';
24291  if (href.startsWith('/')) centerText = '';
24292  return ((_a = todo[domain]) !== null && _a !== void 0 ? _a : '') + centerText + href;
24293};
24294
24295/***/ }),
24296
24297/***/ 85086:
24298/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24299
24300"use strict";
24301/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24302/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
24303/* harmony export */ });
24304/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15442);
24305/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
24306
24307var TriggerContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createContext(null);
24308/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TriggerContext);
24309
24310/***/ }),
24311
24312/***/ 86284:
24313/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24314
24315"use strict";
24316/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24317/* harmony export */   A: () => (/* binding */ _arrayLikeToArray)
24318/* harmony export */ });
24319function _arrayLikeToArray(r, a) {
24320  (null == a || a > r.length) && (a = r.length);
24321  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
24322  return n;
24323}
24324
24325
24326/***/ }),
24327
24328/***/ 86403:
24329/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
24330
24331var trimmedEndIndex = __webpack_require__(62945);
24332
24333/** Used to match leading whitespace. */
24334var reTrimStart = /^\s+/;
24335
24336/**
24337 * The base implementation of `_.trim`.
24338 *
24339 * @private
24340 * @param {string} string The string to trim.
24341 * @returns {string} Returns the trimmed string.
24342 */
24343function baseTrim(string) {
24344  return string
24345    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')
24346    : string;
24347}
24348
24349module.exports = baseTrim;
24350
24351
24352/***/ }),
24353
24354/***/ 86488:
24355/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24356
24357"use strict";
24358/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24359/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
24360/* harmony export */ });
24361/* harmony import */ var _Popup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23294);
24362/* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(93607);
24363
24364
24365
24366/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_Tooltip__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A);
24367
24368/***/ }),
24369
24370/***/ 86597:
24371/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24372
24373"use strict";
24374/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24375/* harmony export */   A: () => (/* binding */ useSyncState)
24376/* harmony export */ });
24377/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79082);
24378/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
24379/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
24380/* harmony import */ var _useEvent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9449);
24381
24382
24383
24384/**
24385 * Same as React.useState but will always get latest state.
24386 * This is useful when React merge multiple state updates into one.
24387 * e.g. onTransitionEnd trigger multiple event at once will be merged state update in React.
24388 */
24389function useSyncState(defaultValue) {
24390  var _React$useReducer = react__WEBPACK_IMPORTED_MODULE_1__.useReducer(function (x) {
24391      return x + 1;
24392    }, 0),
24393    _React$useReducer2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(_React$useReducer, 2),
24394    forceUpdate = _React$useReducer2[1];
24395  var currentValueRef = react__WEBPACK_IMPORTED_MODULE_1__.useRef(defaultValue);
24396  var getValue = (0,_useEvent__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(function () {
24397    return currentValueRef.current;
24398  });
24399  var setValue = (0,_useEvent__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(function (updater) {
24400    currentValueRef.current = typeof updater === 'function' ? updater(currentValueRef.current) : updater;
24401    forceUpdate();
24402  });
24403  return [getValue, setValue];
24404}
24405
24406/***/ }),
24407
24408/***/ 87379:
24409/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
24410
24411var Symbol = __webpack_require__(65650),
24412    getRawTag = __webpack_require__(8870),
24413    objectToString = __webpack_require__(29005);
24414
24415/** `Object#toString` result references. */
24416var nullTag = '[object Null]',
24417    undefinedTag = '[object Undefined]';
24418
24419/** Built-in value references. */
24420var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
24421
24422/**
24423 * The base implementation of `getTag` without fallbacks for buggy environments.
24424 *
24425 * @private
24426 * @param {*} value The value to query.
24427 * @returns {string} Returns the `toStringTag`.
24428 */
24429function baseGetTag(value) {
24430  if (value == null) {
24431    return value === undefined ? undefinedTag : nullTag;
24432  }
24433  return (symToStringTag && symToStringTag in Object(value))
24434    ? getRawTag(value)
24435    : objectToString(value);
24436}
24437
24438module.exports = baseGetTag;
24439
24440
24441/***/ }),
24442
24443/***/ 89575:
24444/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24445
24446"use strict";
24447/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24448/* harmony export */   A: () => (/* binding */ _extends)
24449/* harmony export */ });
24450function _extends() {
24451  return _extends = Object.assign ? Object.assign.bind() : function (n) {
24452    for (var e = 1; e < arguments.length; e++) {
24453      var t = arguments[e];
24454      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
24455    }
24456    return n;
24457  }, _extends.apply(null, arguments);
24458}
24459
24460
24461/***/ }),
24462
24463/***/ 89614:
24464/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24465
24466"use strict";
24467/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24468/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
24469/* harmony export */ });
24470/* unused harmony export genCSSMotion */
24471/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24586);
24472/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(69740);
24473/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(79082);
24474/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17545);
24475/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(53373);
24476/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_4__);
24477/* harmony import */ var rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(28299);
24478/* harmony import */ var rc_util_es_ref__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(19284);
24479/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(15442);
24480/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);
24481/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(74568);
24482/* harmony import */ var _DomWrapper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(40484);
24483/* harmony import */ var _hooks_useStatus__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(76293);
24484/* harmony import */ var _hooks_useStepQueue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(78422);
24485/* harmony import */ var _interface__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(45480);
24486/* harmony import */ var _util_motion__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(73688);
24487
24488
24489
24490
24491/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */
24492
24493
24494
24495
24496
24497
24498
24499
24500
24501
24502
24503/**
24504 * `transitionSupport` is used for none transition test case.
24505 * Default we use browser transition event support check.
24506 */
24507function genCSSMotion(config) {
24508  var transitionSupport = config;
24509  if ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)(config) === 'object') {
24510    transitionSupport = config.transitionSupport;
24511  }
24512  function isSupportTransition(props, contextMotion) {
24513    return !!(props.motionName && transitionSupport && contextMotion !== false);
24514  }
24515  var CSSMotion = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.forwardRef(function (props, ref) {
24516    var _props$visible = props.visible,
24517      visible = _props$visible === void 0 ? true : _props$visible,
24518      _props$removeOnLeave = props.removeOnLeave,
24519      removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,
24520      forceRender = props.forceRender,
24521      children = props.children,
24522      motionName = props.motionName,
24523      leavedClassName = props.leavedClassName,
24524      eventProps = props.eventProps;
24525    var _React$useContext = react__WEBPACK_IMPORTED_MODULE_7__.useContext(_context__WEBPACK_IMPORTED_MODULE_8__/* .Context */ .o),
24526      contextMotion = _React$useContext.motion;
24527    var supportMotion = isSupportTransition(props, contextMotion);
24528
24529    // Ref to the react node, it may be a HTMLElement
24530    var nodeRef = (0,react__WEBPACK_IMPORTED_MODULE_7__.useRef)();
24531    // Ref to the dom wrapper in case ref can not pass to HTMLElement
24532    var wrapperNodeRef = (0,react__WEBPACK_IMPORTED_MODULE_7__.useRef)();
24533    function getDomElement() {
24534      try {
24535        // Here we're avoiding call for findDOMNode since it's deprecated
24536        // in strict mode. We're calling it only when node ref is not
24537        // an instance of DOM HTMLElement. Otherwise use
24538        // findDOMNode as a final resort
24539        return nodeRef.current instanceof HTMLElement ? nodeRef.current : (0,rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Ay)(wrapperNodeRef.current);
24540      } catch (e) {
24541        // Only happen when `motionDeadline` trigger but element removed.
24542        return null;
24543      }
24544    }
24545    var _useStatus = (0,_hooks_useStatus__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A)(supportMotion, visible, getDomElement, props),
24546      _useStatus2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(_useStatus, 4),
24547      status = _useStatus2[0],
24548      statusStep = _useStatus2[1],
24549      statusStyle = _useStatus2[2],
24550      mergedVisible = _useStatus2[3];
24551
24552    // Record whether content has rendered
24553    // Will return null for un-rendered even when `removeOnLeave={false}`
24554    var renderedRef = react__WEBPACK_IMPORTED_MODULE_7__.useRef(mergedVisible);
24555    if (mergedVisible) {
24556      renderedRef.current = true;
24557    }
24558
24559    // ====================== Refs ======================
24560    var setNodeRef = react__WEBPACK_IMPORTED_MODULE_7__.useCallback(function (node) {
24561      nodeRef.current = node;
24562      (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_6__/* .fillRef */ .Xf)(ref, node);
24563    }, [ref]);
24564
24565    // ===================== Render =====================
24566    var motionChildren;
24567    var mergedProps = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)({}, eventProps), {}, {
24568      visible: visible
24569    });
24570    if (!children) {
24571      // No children
24572      motionChildren = null;
24573    } else if (status === _interface__WEBPACK_IMPORTED_MODULE_12__/* .STATUS_NONE */ .SF) {
24574      // Stable children
24575      if (mergedVisible) {
24576        motionChildren = children((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)({}, mergedProps), setNodeRef);
24577      } else if (!removeOnLeave && renderedRef.current && leavedClassName) {
24578        motionChildren = children((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)({}, mergedProps), {}, {
24579          className: leavedClassName
24580        }), setNodeRef);
24581      } else if (forceRender || !removeOnLeave && !leavedClassName) {
24582        motionChildren = children((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)({}, mergedProps), {}, {
24583          style: {
24584            display: 'none'
24585          }
24586        }), setNodeRef);
24587      } else {
24588        motionChildren = null;
24589      }
24590    } else {
24591      // In motion
24592      var statusSuffix;
24593      if (statusStep === _interface__WEBPACK_IMPORTED_MODULE_12__/* .STEP_PREPARE */ .px) {
24594        statusSuffix = 'prepare';
24595      } else if ((0,_hooks_useStepQueue__WEBPACK_IMPORTED_MODULE_11__/* .isActive */ .$m)(statusStep)) {
24596        statusSuffix = 'active';
24597      } else if (statusStep === _interface__WEBPACK_IMPORTED_MODULE_12__/* .STEP_START */ .Mv) {
24598        statusSuffix = 'start';
24599      }
24600      var motionCls = (0,_util_motion__WEBPACK_IMPORTED_MODULE_13__/* .getTransitionName */ .by)(motionName, "".concat(status, "-").concat(statusSuffix));
24601      motionChildren = children((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)({}, mergedProps), {}, {
24602        className: classnames__WEBPACK_IMPORTED_MODULE_4___default()((0,_util_motion__WEBPACK_IMPORTED_MODULE_13__/* .getTransitionName */ .by)(motionName, status), (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, motionCls, motionCls && statusSuffix), motionName, typeof motionName === 'string')),
24603        style: statusStyle
24604      }), setNodeRef);
24605    }
24606
24607    // Auto inject ref if child node not have `ref` props
24608    if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.isValidElement(motionChildren) && (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_6__/* .supportRef */ .f3)(motionChildren)) {
24609      var originNodeRef = (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_6__/* .getNodeRef */ .A9)(motionChildren);
24610      if (!originNodeRef) {
24611        motionChildren = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.cloneElement(motionChildren, {
24612          ref: setNodeRef
24613        });
24614      }
24615    }
24616    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(_DomWrapper__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A, {
24617      ref: wrapperNodeRef
24618    }, motionChildren);
24619  });
24620  CSSMotion.displayName = 'CSSMotion';
24621  return CSSMotion;
24622}
24623/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (genCSSMotion(_util_motion__WEBPACK_IMPORTED_MODULE_13__/* .supportTransition */ .J1));
24624
24625/***/ }),
24626
24627/***/ 90857:
24628/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24629
24630"use strict";
24631/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24632/* harmony export */   A: () => (/* binding */ _createSuper)
24633/* harmony export */ });
24634/* harmony import */ var _getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72715);
24635/* harmony import */ var _isNativeReflectConstruct_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49105);
24636/* harmony import */ var _possibleConstructorReturn_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(95309);
24637
24638
24639
24640function _createSuper(t) {
24641  var r = (0,_isNativeReflectConstruct_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)();
24642  return function () {
24643    var e,
24644      o = (0,_getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(t);
24645    if (r) {
24646      var s = (0,_getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(this).constructor;
24647      e = Reflect.construct(o, arguments, s);
24648    } else e = o.apply(this, arguments);
24649    return (0,_possibleConstructorReturn_js__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(this, e);
24650  };
24651}
24652
24653
24654/***/ }),
24655
24656/***/ 92252:
24657/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24658
24659"use strict";
24660/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24661/* harmony export */   A: () => (/* binding */ useMyCjReactRoute)
24662/* harmony export */ });
24663/* harmony import */ var _hook_use_is_mycj__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71850);
24664/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
24665/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
24666
24667
24668function useMyCjReactRoute() {
24669  var isNew = (0,_hook_use_is_mycj__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)().isNew;
24670  var _a = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true),
24671    isNewCogs = _a[0],
24672    setIsNewCogs = _a[1];
24673  var changeRoute = function changeRoute(routeName) {
24674    var route = routeName.replace(/\/mine/, '');
24675    window.dispatchEvent(new CustomEvent('onUmiChangeRoute', {
24676      detail: route
24677    }));
24678  };
24679  var viewCogs = function viewCogs(childMenu) {
24680    window.addEventListener('viewcogs', function (e) {
24681      setIsNewCogs(e.detail);
24682      console.log(childMenu.isNew, 'childMenu.isNew');
24683    });
24684  };
24685  var isMyCjRoute = function isMyCjRoute(route) {
24686    return (route === null || route === void 0 ? void 0 : route.indexOf('mine')) > -1;
24687  };
24688  var canUseNewMyCjRouteJump = function canUseNewMyCjRouteJump(route) {
24689    return isMyCjRoute(route) && isNew;
24690  };
24691  var getAProps = function getAProps(route) {
24692    if (isMyCjRoute(route) && isNew) {
24693      return {
24694        onClick: function onClick(e) {
24695          e.preventDefault();
24696          changeRoute(route);
24697        }
24698      };
24699    }
24700    return {};
24701  };
24702  return {
24703    changeRoute: changeRoute,
24704    getAProps: getAProps,
24705    canUseNewMyCjRouteJump: canUseNewMyCjRouteJump,
24706    viewCogs: viewCogs,
24707    isNewCogs: isNewCogs
24708  };
24709}
24710
24711/***/ }),
24712
24713/***/ 92513:
24714/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24715
24716"use strict";
24717/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24718/* harmony export */   p: () => (/* binding */ getAxios),
24719/* harmony export */   q: () => (/* binding */ useAxios)
24720/* harmony export */ });
24721/* harmony import */ var _common_request__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77427);
24722/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
24723/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
24724
24725
24726var getAxios = function getAxios(token, getDomainByUrl) {
24727  if (token === void 0) {
24728    token = '';
24729  }
24730  return (0,_common_request__WEBPACK_IMPORTED_MODULE_0__/* .createInstance */ .Q)(token, getDomainByUrl);
24731};
24732var useAxios = function useAxios(getDomainByUrl) {
24733  return (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(function () {
24734    return (0,_common_request__WEBPACK_IMPORTED_MODULE_0__/* .createInstance */ .Q)('', getDomainByUrl);
24735  }, []);
24736};
24737
24738/***/ }),
24739
24740/***/ 92575:
24741/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24742
24743"use strict";
24744/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24745/* harmony export */   A: () => (/* binding */ useIsAiChat)
24746/* harmony export */ });
24747/* harmony import */ var _common_login_info_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12097);
24748
24749function hashCode(str) {
24750  var hash = 0;
24751  for (var i = 0; i < str.length; i++) {
24752    var _char = str.charCodeAt(i);
24753    hash = (hash << 5) - hash + _char | 0;
24754  }
24755  return Math.abs(hash);
24756}
24757function useIsAiChat(server_siteCheck) {
24758  var _a, _b, _c, _d, _e, _f, _g;
24759  var siteCheck = typeof window !== 'undefined' ? window === null || window === void 0 ? void 0 : window.siteCheck : server_siteCheck;
24760  var userId = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.info('userId') || '';
24761  if (!siteCheck) return false;
24762  if (!((_a = siteCheck.isSite) === null || _a === void 0 ? void 0 : _a.call(siteCheck, 'CJ'))) return false;
24763  if (((_b = siteCheck.isShow) === null || _b === void 0 ? void 0 : _b.call(siteCheck, 'use-old-chat')) === true) return false;
24764  if (((_c = siteCheck.isShow) === null || _c === void 0 ? void 0 : _c.call(siteCheck, 'use-ai-chat-full-user')) === true) return true;
24765  var aiChatUsers = ((_d = siteCheck.data) === null || _d === void 0 ? void 0 : _d.call(siteCheck, 'ai-chat-users')) || [];
24766  if (aiChatUsers.length > 0) {
24767    var customerNo = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.info('num') || '';
24768    if (customerNo && aiChatUsers.includes(customerNo)) {
24769      return true;
24770    }
24771  }
24772  var useHash = ((_e = siteCheck.isShow) === null || _e === void 0 ? void 0 : _e.call(siteCheck, 'ai-chat-use-hash')) === true;
24773  if (!userId || !useHash) return false;
24774  var threshold = (_g = (_f = siteCheck.data) === null || _f === void 0 ? void 0 : _f.call(siteCheck, 'ai-chat-hash-threshold')) !== null && _g !== void 0 ? _g : 5;
24775  var level = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.info('moneyLevelType');
24776  if (!level) return false;
24777  if (level && Number(level) < 2) {
24778    return hashCode(String(userId)) % 100 < threshold;
24779  }
24780  return false;
24781}
24782
24783/***/ }),
24784
24785/***/ 93584:
24786/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24787
24788"use strict";
24789/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24790/* harmony export */   D4: () => (/* binding */ decode),
24791/* harmony export */   lF: () => (/* binding */ encode),
24792/* harmony export */   o4: () => (/* binding */ gBase64)
24793/* harmony export */ });
24794/* unused harmony exports version, VERSION, atob, atobPolyfill, btoa, btoaPolyfill, fromBase64, toBase64, utob, encodeURI, encodeURL, btou, isValid, fromUint8Array, toUint8Array, extendString, extendUint8Array, extendBuiltins */
24795/**
24796 *  base64.ts
24797 *
24798 *  Licensed under the BSD 3-Clause License.
24799 *    http://opensource.org/licenses/BSD-3-Clause
24800 *
24801 *  References:
24802 *    http://en.wikipedia.org/wiki/Base64
24803 *
24804 * @author Dan Kogai (https://github.com/dankogai)
24805 */
24806const version = '3.7.7';
24807/**
24808 * @deprecated use lowercase `version`.
24809 */
24810const VERSION = version;
24811const _hasBuffer = typeof Buffer === 'function';
24812const _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;
24813const _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;
24814const b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
24815const b64chs = Array.prototype.slice.call(b64ch);
24816const b64tab = ((a) => {
24817    let tab = {};
24818    a.forEach((c, i) => tab[c] = i);
24819    return tab;
24820})(b64chs);
24821const b64re = /^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/;
24822const _fromCC = String.fromCharCode.bind(String);
24823const _U8Afrom = typeof Uint8Array.from === 'function'
24824    ? Uint8Array.from.bind(Uint8Array)
24825    : (it) => new Uint8Array(Array.prototype.slice.call(it, 0));
24826const _mkUriSafe = (src) => src
24827    .replace(/=/g, '').replace(/[+\/]/g, (m0) => m0 == '+' ? '-' : '_');
24828const _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\+\/]/g, '');
24829/**
24830 * polyfill version of `btoa`
24831 */
24832const btoaPolyfill = (bin) => {
24833    // console.log('polyfilled');
24834    let u32, c0, c1, c2, asc = '';
24835    const pad = bin.length % 3;
24836    for (let i = 0; i < bin.length;) {
24837        if ((c0 = bin.charCodeAt(i++)) > 255 ||
24838            (c1 = bin.charCodeAt(i++)) > 255 ||
24839            (c2 = bin.charCodeAt(i++)) > 255)
24840            throw new TypeError('invalid character found');
24841        u32 = (c0 << 16) | (c1 << 8) | c2;
24842        asc += b64chs[u32 >> 18 & 63]
24843            + b64chs[u32 >> 12 & 63]
24844            + b64chs[u32 >> 6 & 63]
24845            + b64chs[u32 & 63];
24846    }
24847    return pad ? asc.slice(0, pad - 3) + "===".substring(pad) : asc;
24848};
24849/**
24850 * does what `window.btoa` of web browsers do.
24851 * @param {String} bin binary string
24852 * @returns {string} Base64-encoded string
24853 */
24854const _btoa = typeof btoa === 'function' ? (bin) => btoa(bin)
24855    : _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64')
24856        : btoaPolyfill;
24857const _fromUint8Array = _hasBuffer
24858    ? (u8a) => Buffer.from(u8a).toString('base64')
24859    : (u8a) => {
24860        // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326
24861        const maxargs = 0x1000;
24862        let strs = [];
24863        for (let i = 0, l = u8a.length; i < l; i += maxargs) {
24864            strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));
24865        }
24866        return _btoa(strs.join(''));
24867    };
24868/**
24869 * converts a Uint8Array to a Base64 string.
24870 * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5
24871 * @returns {string} Base64 string
24872 */
24873const fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);
24874// This trick is found broken https://github.com/dankogai/js-base64/issues/130
24875// const utob = (src: string) => unescape(encodeURIComponent(src));
24876// reverting good old fationed regexp
24877const cb_utob = (c) => {
24878    if (c.length < 2) {
vendor: 4,637 bytes, lines 24879-25007
24879        var cc = c.charCodeAt(0);
24880        return cc < 0x80 ? c
24881            : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))
24882                + _fromCC(0x80 | (cc & 0x3f)))
24883                : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))
24884                    + _fromCC(0x80 | ((cc >>> 6) & 0x3f))
24885                    + _fromCC(0x80 | (cc & 0x3f)));
24886    }
24887    else {
24888        var cc = 0x10000
24889            + (c.charCodeAt(0) - 0xD800) * 0x400
24890            + (c.charCodeAt(1) - 0xDC00);
24891        return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))
24892            + _fromCC(0x80 | ((cc >>> 12) & 0x3f))
24893            + _fromCC(0x80 | ((cc >>> 6) & 0x3f))
24894            + _fromCC(0x80 | (cc & 0x3f)));
24895    }
24896};
24897const re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
24898/**
24899 * @deprecated should have been internal use only.
24900 * @param {string} src UTF-8 string
24901 * @returns {string} UTF-16 string
24902 */
24903const utob = (u) => u.replace(re_utob, cb_utob);
24904//
24905const _encode = _hasBuffer
24906    ? (s) => Buffer.from(s, 'utf8').toString('base64')
24907    : _TE
24908        ? (s) => _fromUint8Array(_TE.encode(s))
24909        : (s) => _btoa(utob(s));
24910/**
24911 * converts a UTF-8-encoded string to a Base64 string.
24912 * @param {boolean} [urlsafe] if `true` make the result URL-safe
24913 * @returns {string} Base64 string
24914 */
24915const encode = (src, urlsafe = false) => urlsafe
24916    ? _mkUriSafe(_encode(src))
24917    : _encode(src);
24918/**
24919 * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.
24920 * @returns {string} Base64 string
24921 */
24922const encodeURI = (src) => encode(src, true);
24923// This trick is found broken https://github.com/dankogai/js-base64/issues/130
24924// const btou = (src: string) => decodeURIComponent(escape(src));
24925// reverting good old fationed regexp
24926const re_btou = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g;
24927const cb_btou = (cccc) => {
24928    switch (cccc.length) {
24929        case 4:
24930            var cp = ((0x07 & cccc.charCodeAt(0)) << 18)
24931                | ((0x3f & cccc.charCodeAt(1)) << 12)
24932                | ((0x3f & cccc.charCodeAt(2)) << 6)
24933                | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;
24934            return (_fromCC((offset >>> 10) + 0xD800)
24935                + _fromCC((offset & 0x3FF) + 0xDC00));
24936        case 3:
24937            return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)
24938                | ((0x3f & cccc.charCodeAt(1)) << 6)
24939                | (0x3f & cccc.charCodeAt(2)));
24940        default:
24941            return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)
24942                | (0x3f & cccc.charCodeAt(1)));
24943    }
24944};
24945/**
24946 * @deprecated should have been internal use only.
24947 * @param {string} src UTF-16 string
24948 * @returns {string} UTF-8 string
24949 */
24950const btou = (b) => b.replace(re_btou, cb_btou);
24951/**
24952 * polyfill version of `atob`
24953 */
24954const atobPolyfill = (asc) => {
24955    // console.log('polyfilled');
24956    asc = asc.replace(/\s+/g, '');
24957    if (!b64re.test(asc))
24958        throw new TypeError('malformed base64.');
24959    asc += '=='.slice(2 - (asc.length & 3));
24960    let u24, bin = '', r1, r2;
24961    for (let i = 0; i < asc.length;) {
24962        u24 = b64tab[asc.charAt(i++)] << 18
24963            | b64tab[asc.charAt(i++)] << 12
24964            | (r1 = b64tab[asc.charAt(i++)]) << 6
24965            | (r2 = b64tab[asc.charAt(i++)]);
24966        bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)
24967            : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)
24968                : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);
24969    }
24970    return bin;
24971};
24972/**
24973 * does what `window.atob` of web browsers do.
24974 * @param {String} asc Base64-encoded string
24975 * @returns {string} binary string
24976 */
24977const _atob = typeof atob === 'function' ? (asc) => atob(_tidyB64(asc))
24978    : _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary')
24979        : atobPolyfill;
24980//
24981const _toUint8Array = _hasBuffer
24982    ? (a) => _U8Afrom(Buffer.from(a, 'base64'))
24983    : (a) => _U8Afrom(_atob(a).split('').map(c => c.charCodeAt(0)));
24984/**
24985 * converts a Base64 string to a Uint8Array.
24986 */
24987const toUint8Array = (a) => _toUint8Array(_unURI(a));
24988//
24989const _decode = _hasBuffer
24990    ? (a) => Buffer.from(a, 'base64').toString('utf8')
24991    : _TD
24992        ? (a) => _TD.decode(_toUint8Array(a))
24993        : (a) => btou(_atob(a));
24994const _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/'));
24995/**
24996 * converts a Base64 string to a UTF-8 string.
24997 * @param {String} src Base64 string.  Both normal and URL-safe are supported
24998 * @returns {string} UTF-8 string
24999 */
25000const decode = (src) => _decode(_unURI(src));
25001/**
25002 * check if a value is a valid Base64 string
25003 * @param {String} src a value to check
25004  */
25005const isValid = (src) => {
25006    if (typeof src !== 'string')
25007        return false;
25008    const s = src.replace(/\s+/g, '').replace(/={0,2}$/, '');
25009    return !/[^\s0-9a-zA-Z\+/]/.test(s) || !/[^\s0-9a-zA-Z\-_]/.test(s);
25010};
25011//
25012const _noEnum = (v) => {
25013    return {
25014        value: v, enumerable: false, writable: true, configurable: true
25015    };
25016};
25017/**
25018 * extend String.prototype with relevant methods
25019 */
25020const extendString = function () {
25021    const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body));
25022    _add('fromBase64', function () { return decode(this); });
25023    _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });
25024    _add('toBase64URI', function () { return encode(this, true); });
25025    _add('toBase64URL', function () { return encode(this, true); });
25026    _add('toUint8Array', function () { return toUint8Array(this); });
25027};
25028/**
25029 * extend Uint8Array.prototype with relevant methods
25030 */
25031const extendUint8Array = function () {
25032    const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body));
25033    _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });
25034    _add('toBase64URI', function () { return fromUint8Array(this, true); });
25035    _add('toBase64URL', function () { return fromUint8Array(this, true); });
25036};
25037/**
25038 * extend Builtin prototypes with relevant methods
25039 */
25040const extendBuiltins = () => {
25041    extendString();
25042    extendUint8Array();
25043};
25044const gBase64 = {
25045    version: version,
25046    VERSION: VERSION,
25047    atob: _atob,
25048    atobPolyfill: atobPolyfill,
25049    btoa: _btoa,
25050    btoaPolyfill: btoaPolyfill,
25051    fromBase64: decode,
25052    toBase64: encode,
25053    encode: encode,
25054    encodeURI: encodeURI,
25055    encodeURL: encodeURI,
25056    utob: utob,
25057    btou: btou,
25058    decode: decode,
25059    isValid: isValid,
25060    fromUint8Array: fromUint8Array,
25061    toUint8Array: toUint8Array,
25062    extendString: extendString,
25063    extendUint8Array: extendUint8Array,
25064    extendBuiltins: extendBuiltins
25065};
25066// makecjs:CUT //
25067
25068
25069
25070
25071
25072
25073
25074
25075
25076
25077
25078
25079
25080
25081
25082
25083
25084
25085
25086
25087// and finally,
25088
25089
25090
25091/***/ }),
25092
25093/***/ 93607:
25094/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25095
25096"use strict";
25097/* harmony export */ __webpack_require__.d(__webpack_exports__, {
25098/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
25099/* harmony export */ });
25100/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89575);
25101/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(69740);
25102/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(39850);
25103/* harmony import */ var _rc_component_trigger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(78977);
25104/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(53373);
25105/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_4__);
25106/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(15442);
25107/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);
25108/* harmony import */ var _placements__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(46538);
25109/* harmony import */ var _Popup__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(23294);
25110/* harmony import */ var rc_util_es_hooks_useId__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(75476);
25111
25112
25113
25114var _excluded = ["overlayClassName", "trigger", "mouseEnterDelay", "mouseLeaveDelay", "overlayStyle", "prefixCls", "children", "onVisibleChange", "afterVisibleChange", "transitionName", "animation", "motion", "placement", "align", "destroyTooltipOnHide", "defaultVisible", "getTooltipContainer", "overlayInnerStyle", "arrowContent", "overlay", "id", "showArrow", "classNames", "styles"];
25115
25116
25117
25118
25119
25120
25121
25122var Tooltip = function Tooltip(props, ref) {
25123  var overlayClassName = props.overlayClassName,
25124    _props$trigger = props.trigger,
25125    trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,
25126    _props$mouseEnterDela = props.mouseEnterDelay,
25127    mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,
25128    _props$mouseLeaveDela = props.mouseLeaveDelay,
25129    mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,
25130    overlayStyle = props.overlayStyle,
25131    _props$prefixCls = props.prefixCls,
25132    prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,
25133    children = props.children,
25134    onVisibleChange = props.onVisibleChange,
25135    afterVisibleChange = props.afterVisibleChange,
25136    transitionName = props.transitionName,
25137    animation = props.animation,
25138    motion = props.motion,
25139    _props$placement = props.placement,
25140    placement = _props$placement === void 0 ? 'right' : _props$placement,
25141    _props$align = props.align,
25142    align = _props$align === void 0 ? {} : _props$align,
25143    _props$destroyTooltip = props.destroyTooltipOnHide,
25144    destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,
25145    defaultVisible = props.defaultVisible,
25146    getTooltipContainer = props.getTooltipContainer,
25147    overlayInnerStyle = props.overlayInnerStyle,
25148    arrowContent = props.arrowContent,
25149    overlay = props.overlay,
25150    id = props.id,
25151    _props$showArrow = props.showArrow,
25152    showArrow = _props$showArrow === void 0 ? true : _props$showArrow,
25153    tooltipClassNames = props.classNames,
25154    tooltipStyles = props.styles,
25155    restProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(props, _excluded);
25156  var mergedId = (0,rc_util_es_hooks_useId__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(id);
25157  var triggerRef = (0,react__WEBPACK_IMPORTED_MODULE_5__.useRef)(null);
25158  (0,react__WEBPACK_IMPORTED_MODULE_5__.useImperativeHandle)(ref, function () {
25159    return triggerRef.current;
25160  });
25161  var extraProps = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)({}, restProps);
25162  if ('visible' in props) {
25163    extraProps.popupVisible = props.visible;
25164  }
25165  var getPopupElement = function getPopupElement() {
25166    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5__.createElement(_Popup__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A, {
25167      key: "content",
25168      prefixCls: prefixCls,
25169      id: mergedId,
25170      bodyClassName: tooltipClassNames === null || tooltipClassNames === void 0 ? void 0 : tooltipClassNames.body,
25171      overlayInnerStyle: (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)({}, overlayInnerStyle), tooltipStyles === null || tooltipStyles === void 0 ? void 0 : tooltipStyles.body)
25172    }, overlay);
25173  };
25174  var getChildren = function getChildren() {
25175    var child = react__WEBPACK_IMPORTED_MODULE_5__.Children.only(children);
25176    var originalProps = (child === null || child === void 0 ? void 0 : child.props) || {};
25177    var childProps = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)({}, originalProps), {}, {
25178      'aria-describedby': overlay ? mergedId : null
25179    });
25180    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5__.cloneElement(children, childProps);
25181  };
25182  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5__.createElement(_rc_component_trigger__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({
25183    popupClassName: classnames__WEBPACK_IMPORTED_MODULE_4___default()(overlayClassName, tooltipClassNames === null || tooltipClassNames === void 0 ? void 0 : tooltipClassNames.root),
25184    prefixCls: prefixCls,
25185    popup: getPopupElement,
25186    action: trigger,
25187    builtinPlacements: _placements__WEBPACK_IMPORTED_MODULE_6__/* .placements */ .D,
25188    popupPlacement: placement,
25189    ref: triggerRef,
25190    popupAlign: align,
25191    getPopupContainer: getTooltipContainer,
25192    onPopupVisibleChange: onVisibleChange,
25193    afterPopupVisibleChange: afterVisibleChange,
25194    popupTransitionName: transitionName,
25195    popupAnimation: animation,
25196    popupMotion: motion,
25197    defaultPopupVisible: defaultVisible,
25198    autoDestroy: destroyTooltipOnHide,
25199    mouseLeaveDelay: mouseLeaveDelay,
25200    popupStyle: (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)({}, overlayStyle), tooltipStyles === null || tooltipStyles === void 0 ? void 0 : tooltipStyles.root),
25201    mouseEnterDelay: mouseEnterDelay,
25202    arrow: showArrow
25203  }, extraProps), getChildren());
25204};
25205/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_5__.forwardRef)(Tooltip));
25206
25207/***/ }),
25208
25209/***/ 94495:
25210/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
25211
25212var root = __webpack_require__(78942);
25213
25214/**
25215 * Gets the timestamp of the number of milliseconds that have elapsed since
25216 * the Unix epoch (1 January 1970 00:00:00 UTC).
25217 *
25218 * @static
25219 * @memberOf _
25220 * @since 2.4.0
25221 * @category Date
25222 * @returns {number} Returns the timestamp.
25223 * @example
25224 *
25225 * _.defer(function(stamp) {
25226 *   console.log(_.now() - stamp);
25227 * }, _.now());
25228 * // => Logs the number of milliseconds it took for the deferred invocation.
25229 */
25230var now = function() {
25231  return root.Date.now();
25232};
25233
25234module.exports = now;
25235
25236
25237/***/ }),
25238
25239/***/ 95092:
25240/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25241
25242"use strict";
25243/* harmony export */ __webpack_require__.d(__webpack_exports__, {
25244/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
25245/* harmony export */ });
25246/* harmony import */ var _common_login_info_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12097);
25247
25248var useIsVip = function useIsVip() {
25249  var isVip = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.info('vip') == '1';
25250  return isVip;
25251};
25252/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useIsVip);
25253
25254/***/ }),
25255
25256/***/ 95309:
25257/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25258
25259"use strict";
25260/* harmony export */ __webpack_require__.d(__webpack_exports__, {
25261/* harmony export */   A: () => (/* binding */ _possibleConstructorReturn)
25262/* harmony export */ });
25263/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17545);
25264/* harmony import */ var _assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2474);
25265
25266
25267function _possibleConstructorReturn(t, e) {
25268  if (e && ("object" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(e) || "function" == typeof e)) return e;
25269  if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
25270  return (0,_assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(t);
25271}
25272
25273
25274/***/ }),
25275
25276/***/ 96488:
25277/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25278
25279"use strict";
25280/* harmony export */ __webpack_require__.d(__webpack_exports__, {
25281/* harmony export */   A: () => (/* binding */ _arrayWithHoles)
25282/* harmony export */ });
25283function _arrayWithHoles(r) {
25284  if (Array.isArray(r)) return r;
25285}
25286
25287
25288/***/ }),
25289
25290/***/ 96551:
25291/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25292
25293"use strict";
25294/* harmony export */ __webpack_require__.d(__webpack_exports__, {
25295/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
25296/* harmony export */ });
25297/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
25298  common: {
25299    module: {
25300      'mycj-menu': {
25301        'print-on-demand': false,
25302        orders: {
25303          'undelivered-orders': false,
25304          'orders-tracking': false
25305        },
25306        'store-authorization': {
25307          wed2c: false
25308        },
25309        'my-cj': {
25310          customization: false,
25311          'my-photography': false,
25312          dashboard: false,
25313          sourcing: false
25314        }
25315      },
25316      'mycj-header': {
25317        notice: false
25318      },
25319      header: {
25320        'check-list': false,
25321        'support-center': false,
25322        'user-account': false,
25323        'cart-count': false,
25324        'search-queue': false,
25325        'video-selection': false
25326      },
25327      'product-video': {
25328        'sell-and-earn': false,
25329        purchase: false,
25330        customize: false
25331      },
25332      'photography-request': false,
25333      'chat-body': false
25334    }
25335  },
25336  '/product': {
25337    module: {
25338      productdetail: {
25339        counseling: false,
25340        'photography-request': false,
25341        customize: false,
25342        reviews: false,
25343        'sell-and-earn': false,
25344        design: false,
25345        connect: false
25346      }
25347    }
25348  }
25349});
25350
25351/***/ }),
25352
25353/***/ 98331:
25354/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25355
25356"use strict";
25357/* harmony export */ __webpack_require__.d(__webpack_exports__, {
25358/* harmony export */   $: () => (/* binding */ isBodyOverflowing)
25359/* harmony export */ });
25360/**
25361 * Test usage export. Do not use in your production
25362 */
25363function isBodyOverflowing() {
25364  return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;
25365}
25366
25367/***/ }),
25368
25369/***/ 99126:
25370/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25371
25372"use strict";
25373/* harmony export */ __webpack_require__.d(__webpack_exports__, {
25374/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
25375/* harmony export */ });
25376/**
25377 * A collection of shims that provide minimal functionality of the ES6 collections.
25378 *
25379 * These implementations are not meant to be used outside of the ResizeObserver
25380 * modules as they cover only a limited range of use cases.
25381 */
25382/* eslint-disable require-jsdoc, valid-jsdoc */
25383var MapShim = (function () {
25384    if (typeof Map !== 'undefined') {
25385        return Map;
25386    }
25387    /**
25388     * Returns index in provided array that matches the specified key.
25389     *
25390     * @param {Array<Array>} arr
25391     * @param {*} key
25392     * @returns {number}
25393     */
25394    function getIndex(arr, key) {
25395        var result = -1;
25396        arr.some(function (entry, index) {
25397            if (entry[0] === key) {
25398                result = index;
25399                return true;
25400            }
25401            return false;
25402        });
25403        return result;
25404    }
25405    return /** @class */ (function () {
25406        function class_1() {
25407            this.__entries__ = [];
25408        }
25409        Object.defineProperty(class_1.prototype, "size", {
25410            /**
25411             * @returns {boolean}
25412             */
25413            get: function () {
25414                return this.__entries__.length;
25415            },
25416            enumerable: true,
25417            configurable: true
25418        });
25419        /**
25420         * @param {*} key
25421         * @returns {*}
25422         */
25423        class_1.prototype.get = function (key) {
25424            var index = getIndex(this.__entries__, key);
25425            var entry = this.__entries__[index];
25426            return entry && entry[1];
25427        };
25428        /**
25429         * @param {*} key
25430         * @param {*} value
25431         * @returns {void}
25432         */
25433        class_1.prototype.set = function (key, value) {
25434            var index = getIndex(this.__entries__, key);
25435            if (~index) {
25436                this.__entries__[index][1] = value;
25437            }
25438            else {
25439                this.__entries__.push([key, value]);
25440            }
25441        };
25442        /**
25443         * @param {*} key
25444         * @returns {void}
25445         */
25446        class_1.prototype.delete = function (key) {
25447            var entries = this.__entries__;
25448            var index = getIndex(entries, key);
25449            if (~index) {
vendor: 1,332 bytes, lines 25450-25490
25450                entries.splice(index, 1);
25451            }
25452        };
25453        /**
25454         * @param {*} key
25455         * @returns {void}
25456         */
25457        class_1.prototype.has = function (key) {
25458            return !!~getIndex(this.__entries__, key);
25459        };
25460        /**
25461         * @returns {void}
25462         */
25463        class_1.prototype.clear = function () {
25464            this.__entries__.splice(0);
25465        };
25466        /**
25467         * @param {Function} callback
25468         * @param {*} [ctx=null]
25469         * @returns {void}
25470         */
25471        class_1.prototype.forEach = function (callback, ctx) {
25472            if (ctx === void 0) { ctx = null; }
25473            for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {
25474                var entry = _a[_i];
25475                callback.call(ctx, entry[1], entry[0]);
25476            }
25477        };
25478        return class_1;
25479    }());
25480})();
25481
25482/**
25483 * Detects whether window and document objects are available in current environment.
25484 */
25485var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;
25486
25487// Returns global object of a current environment.
25488var global$1 = (function () {
25489    if (typeof __webpack_require__.g !== 'undefined' && __webpack_require__.g.Math === Math) {
25490        return __webpack_require__.g
vendor: 30,103 bytes, lines 25490-26302
25490;
25491    }
25492    if (typeof self !== 'undefined' && self.Math === Math) {
25493        return self;
25494    }
25495    if (typeof window !== 'undefined' && window.Math === Math) {
25496        return window;
25497    }
25498    // eslint-disable-next-line no-new-func
25499    return Function('return this')();
25500})();
25501
25502/**
25503 * A shim for the requestAnimationFrame which falls back to the setTimeout if
25504 * first one is not supported.
25505 *
25506 * @returns {number} Requests' identifier.
25507 */
25508var requestAnimationFrame$1 = (function () {
25509    if (typeof requestAnimationFrame === 'function') {
25510        // It's required to use a bounded function because IE sometimes throws
25511        // an "Invalid calling object" error if rAF is invoked without the global
25512        // object on the left hand side.
25513        return requestAnimationFrame.bind(global$1);
25514    }
25515    return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };
25516})();
25517
25518// Defines minimum timeout before adding a trailing call.
25519var trailingTimeout = 2;
25520/**
25521 * Creates a wrapper function which ensures that provided callback will be
25522 * invoked only once during the specified delay period.
25523 *
25524 * @param {Function} callback - Function to be invoked after the delay period.
25525 * @param {number} delay - Delay after which to invoke callback.
25526 * @returns {Function}
25527 */
25528function throttle (callback, delay) {
25529    var leadingCall = false, trailingCall = false, lastCallTime = 0;
25530    /**
25531     * Invokes the original callback function and schedules new invocation if
25532     * the "proxy" was called during current request.
25533     *
25534     * @returns {void}
25535     */
25536    function resolvePending() {
25537        if (leadingCall) {
25538            leadingCall = false;
25539            callback();
25540        }
25541        if (trailingCall) {
25542            proxy();
25543        }
25544    }
25545    /**
25546     * Callback invoked after the specified delay. It will further postpone
25547     * invocation of the original function delegating it to the
25548     * requestAnimationFrame.
25549     *
25550     * @returns {void}
25551     */
25552    function timeoutCallback() {
25553        requestAnimationFrame$1(resolvePending);
25554    }
25555    /**
25556     * Schedules invocation of the original function.
25557     *
25558     * @returns {void}
25559     */
25560    function proxy() {
25561        var timeStamp = Date.now();
25562        if (leadingCall) {
25563            // Reject immediately following calls.
25564            if (timeStamp - lastCallTime < trailingTimeout) {
25565                return;
25566            }
25567            // Schedule new call to be in invoked when the pending one is resolved.
25568            // This is important for "transitions" which never actually start
25569            // immediately so there is a chance that we might miss one if change
25570            // happens amids the pending invocation.
25571            trailingCall = true;
25572        }
25573        else {
25574            leadingCall = true;
25575            trailingCall = false;
25576            setTimeout(timeoutCallback, delay);
25577        }
25578        lastCallTime = timeStamp;
25579    }
25580    return proxy;
25581}
25582
25583// Minimum delay before invoking the update of observers.
25584var REFRESH_DELAY = 20;
25585// A list of substrings of CSS properties used to find transition events that
25586// might affect dimensions of observed elements.
25587var transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];
25588// Check if MutationObserver is available.
25589var mutationObserverSupported = typeof MutationObserver !== 'undefined';
25590/**
25591 * Singleton controller class which handles updates of ResizeObserver instances.
25592 */
25593var ResizeObserverController = /** @class */ (function () {
25594    /**
25595     * Creates a new instance of ResizeObserverController.
25596     *
25597     * @private
25598     */
25599    function ResizeObserverController() {
25600        /**
25601         * Indicates whether DOM listeners have been added.
25602         *
25603         * @private {boolean}
25604         */
25605        this.connected_ = false;
25606        /**
25607         * Tells that controller has subscribed for Mutation Events.
25608         *
25609         * @private {boolean}
25610         */
25611        this.mutationEventsAdded_ = false;
25612        /**
25613         * Keeps reference to the instance of MutationObserver.
25614         *
25615         * @private {MutationObserver}
25616         */
25617        this.mutationsObserver_ = null;
25618        /**
25619         * A list of connected observers.
25620         *
25621         * @private {Array<ResizeObserverSPI>}
25622         */
25623        this.observers_ = [];
25624        this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);
25625        this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);
25626    }
25627    /**
25628     * Adds observer to observers list.
25629     *
25630     * @param {ResizeObserverSPI} observer - Observer to be added.
25631     * @returns {void}
25632     */
25633    ResizeObserverController.prototype.addObserver = function (observer) {
25634        if (!~this.observers_.indexOf(observer)) {
25635            this.observers_.push(observer);
25636        }
25637        // Add listeners if they haven't been added yet.
25638        if (!this.connected_) {
25639            this.connect_();
25640        }
25641    };
25642    /**
25643     * Removes observer from observers list.
25644     *
25645     * @param {ResizeObserverSPI} observer - Observer to be removed.
25646     * @returns {void}
25647     */
25648    ResizeObserverController.prototype.removeObserver = function (observer) {
25649        var observers = this.observers_;
25650        var index = observers.indexOf(observer);
25651        // Remove observer if it's present in registry.
25652        if (~index) {
25653            observers.splice(index, 1);
25654        }
25655        // Remove listeners if controller has no connected observers.
25656        if (!observers.length && this.connected_) {
25657            this.disconnect_();
25658        }
25659    };
25660    /**
25661     * Invokes the update of observers. It will continue running updates insofar
25662     * it detects changes.
25663     *
25664     * @returns {void}
25665     */
25666    ResizeObserverController.prototype.refresh = function () {
25667        var changesDetected = this.updateObservers_();
25668        // Continue running updates if changes have been detected as there might
25669        // be future ones caused by CSS transitions.
25670        if (changesDetected) {
25671            this.refresh();
25672        }
25673    };
25674    /**
25675     * Updates every observer from observers list and notifies them of queued
25676     * entries.
25677     *
25678     * @private
25679     * @returns {boolean} Returns "true" if any observer has detected changes in
25680     *      dimensions of it's elements.
25681     */
25682    ResizeObserverController.prototype.updateObservers_ = function () {
25683        // Collect observers that have active observations.
25684        var activeObservers = this.observers_.filter(function (observer) {
25685            return observer.gatherActive(), observer.hasActive();
25686        });
25687        // Deliver notifications in a separate cycle in order to avoid any
25688        // collisions between observers, e.g. when multiple instances of
25689        // ResizeObserver are tracking the same element and the callback of one
25690        // of them changes content dimensions of the observed target. Sometimes
25691        // this may result in notifications being blocked for the rest of observers.
25692        activeObservers.forEach(function (observer) { return observer.broadcastActive(); });
25693        return activeObservers.length > 0;
25694    };
25695    /**
25696     * Initializes DOM listeners.
25697     *
25698     * @private
25699     * @returns {void}
25700     */
25701    ResizeObserverController.prototype.connect_ = function () {
25702        // Do nothing if running in a non-browser environment or if listeners
25703        // have been already added.
25704        if (!isBrowser || this.connected_) {
25705            return;
25706        }
25707        // Subscription to the "Transitionend" event is used as a workaround for
25708        // delayed transitions. This way it's possible to capture at least the
25709        // final state of an element.
25710        document.addEventListener('transitionend', this.onTransitionEnd_);
25711        window.addEventListener('resize', this.refresh);
25712        if (mutationObserverSupported) {
25713            this.mutationsObserver_ = new MutationObserver(this.refresh);
25714            this.mutationsObserver_.observe(document, {
25715                attributes: true,
25716                childList: true,
25717                characterData: true,
25718                subtree: true
25719            });
25720        }
25721        else {
25722            document.addEventListener('DOMSubtreeModified', this.refresh);
25723            this.mutationEventsAdded_ = true;
25724        }
25725        this.connected_ = true;
25726    };
25727    /**
25728     * Removes DOM listeners.
25729     *
25730     * @private
25731     * @returns {void}
25732     */
25733    ResizeObserverController.prototype.disconnect_ = function () {
25734        // Do nothing if running in a non-browser environment or if listeners
25735        // have been already removed.
25736        if (!isBrowser || !this.connected_) {
25737            return;
25738        }
25739        document.removeEventListener('transitionend', this.onTransitionEnd_);
25740        window.removeEventListener('resize', this.refresh);
25741        if (this.mutationsObserver_) {
25742            this.mutationsObserver_.disconnect();
25743        }
25744        if (this.mutationEventsAdded_) {
25745            document.removeEventListener('DOMSubtreeModified', this.refresh);
25746        }
25747        this.mutationsObserver_ = null;
25748        this.mutationEventsAdded_ = false;
25749        this.connected_ = false;
25750    };
25751    /**
25752     * "Transitionend" event handler.
25753     *
25754     * @private
25755     * @param {TransitionEvent} event
25756     * @returns {void}
25757     */
25758    ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {
25759        var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;
25760        // Detect whether transition may affect dimensions of an element.
25761        var isReflowProperty = transitionKeys.some(function (key) {
25762            return !!~propertyName.indexOf(key);
25763        });
25764        if (isReflowProperty) {
25765            this.refresh();
25766        }
25767    };
25768    /**
25769     * Returns instance of the ResizeObserverController.
25770     *
25771     * @returns {ResizeObserverController}
25772     */
25773    ResizeObserverController.getInstance = function () {
25774        if (!this.instance_) {
25775            this.instance_ = new ResizeObserverController();
25776        }
25777        return this.instance_;
25778    };
25779    /**
25780     * Holds reference to the controller's instance.
25781     *
25782     * @private {ResizeObserverController}
25783     */
25784    ResizeObserverController.instance_ = null;
25785    return ResizeObserverController;
25786}());
25787
25788/**
25789 * Defines non-writable/enumerable properties of the provided target object.
25790 *
25791 * @param {Object} target - Object for which to define properties.
25792 * @param {Object} props - Properties to be defined.
25793 * @returns {Object} Target object.
25794 */
25795var defineConfigurable = (function (target, props) {
25796    for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {
25797        var key = _a[_i];
25798        Object.defineProperty(target, key, {
25799            value: props[key],
25800            enumerable: false,
25801            writable: false,
25802            configurable: true
25803        });
25804    }
25805    return target;
25806});
25807
25808/**
25809 * Returns the global object associated with provided element.
25810 *
25811 * @param {Object} target
25812 * @returns {Object}
25813 */
25814var getWindowOf = (function (target) {
25815    // Assume that the element is an instance of Node, which means that it
25816    // has the "ownerDocument" property from which we can retrieve a
25817    // corresponding global object.
25818    var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;
25819    // Return the local global object if it's not possible extract one from
25820    // provided element.
25821    return ownerGlobal || global$1;
25822});
25823
25824// Placeholder of an empty content rectangle.
25825var emptyRect = createRectInit(0, 0, 0, 0);
25826/**
25827 * Converts provided string to a number.
25828 *
25829 * @param {number|string} value
25830 * @returns {number}
25831 */
25832function toFloat(value) {
25833    return parseFloat(value) || 0;
25834}
25835/**
25836 * Extracts borders size from provided styles.
25837 *
25838 * @param {CSSStyleDeclaration} styles
25839 * @param {...string} positions - Borders positions (top, right, ...)
25840 * @returns {number}
25841 */
25842function getBordersSize(styles) {
25843    var positions = [];
25844    for (var _i = 1; _i < arguments.length; _i++) {
25845        positions[_i - 1] = arguments[_i];
25846    }
25847    return positions.reduce(function (size, position) {
25848        var value = styles['border-' + position + '-width'];
25849        return size + toFloat(value);
25850    }, 0);
25851}
25852/**
25853 * Extracts paddings sizes from provided styles.
25854 *
25855 * @param {CSSStyleDeclaration} styles
25856 * @returns {Object} Paddings box.
25857 */
25858function getPaddings(styles) {
25859    var positions = ['top', 'right', 'bottom', 'left'];
25860    var paddings = {};
25861    for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {
25862        var position = positions_1[_i];
25863        var value = styles['padding-' + position];
25864        paddings[position] = toFloat(value);
25865    }
25866    return paddings;
25867}
25868/**
25869 * Calculates content rectangle of provided SVG element.
25870 *
25871 * @param {SVGGraphicsElement} target - Element content rectangle of which needs
25872 *      to be calculated.
25873 * @returns {DOMRectInit}
25874 */
25875function getSVGContentRect(target) {
25876    var bbox = target.getBBox();
25877    return createRectInit(0, 0, bbox.width, bbox.height);
25878}
25879/**
25880 * Calculates content rectangle of provided HTMLElement.
25881 *
25882 * @param {HTMLElement} target - Element for which to calculate the content rectangle.
25883 * @returns {DOMRectInit}
25884 */
25885function getHTMLElementContentRect(target) {
25886    // Client width & height properties can't be
25887    // used exclusively as they provide rounded values.
25888    var clientWidth = target.clientWidth, clientHeight = target.clientHeight;
25889    // By this condition we can catch all non-replaced inline, hidden and
25890    // detached elements. Though elements with width & height properties less
25891    // than 0.5 will be discarded as well.
25892    //
25893    // Without it we would need to implement separate methods for each of
25894    // those cases and it's not possible to perform a precise and performance
25895    // effective test for hidden elements. E.g. even jQuery's ':visible' filter
25896    // gives wrong results for elements with width & height less than 0.5.
25897    if (!clientWidth && !clientHeight) {
25898        return emptyRect;
25899    }
25900    var styles = getWindowOf(target).getComputedStyle(target);
25901    var paddings = getPaddings(styles);
25902    var horizPad = paddings.left + paddings.right;
25903    var vertPad = paddings.top + paddings.bottom;
25904    // Computed styles of width & height are being used because they are the
25905    // only dimensions available to JS that contain non-rounded values. It could
25906    // be possible to utilize the getBoundingClientRect if only it's data wasn't
25907    // affected by CSS transformations let alone paddings, borders and scroll bars.
25908    var width = toFloat(styles.width), height = toFloat(styles.height);
25909    // Width & height include paddings and borders when the 'border-box' box
25910    // model is applied (except for IE).
25911    if (styles.boxSizing === 'border-box') {
25912        // Following conditions are required to handle Internet Explorer which
25913        // doesn't include paddings and borders to computed CSS dimensions.
25914        //
25915        // We can say that if CSS dimensions + paddings are equal to the "client"
25916        // properties then it's either IE, and thus we don't need to subtract
25917        // anything, or an element merely doesn't have paddings/borders styles.
25918        if (Math.round(width + horizPad) !== clientWidth) {
25919            width -= getBordersSize(styles, 'left', 'right') + horizPad;
25920        }
25921        if (Math.round(height + vertPad) !== clientHeight) {
25922            height -= getBordersSize(styles, 'top', 'bottom') + vertPad;
25923        }
25924    }
25925    // Following steps can't be applied to the document's root element as its
25926    // client[Width/Height] properties represent viewport area of the window.
25927    // Besides, it's as well not necessary as the <html> itself neither has
25928    // rendered scroll bars nor it can be clipped.
25929    if (!isDocumentElement(target)) {
25930        // In some browsers (only in Firefox, actually) CSS width & height
25931        // include scroll bars size which can be removed at this step as scroll
25932        // bars are the only difference between rounded dimensions + paddings
25933        // and "client" properties, though that is not always true in Chrome.
25934        var vertScrollbar = Math.round(width + horizPad) - clientWidth;
25935        var horizScrollbar = Math.round(height + vertPad) - clientHeight;
25936        // Chrome has a rather weird rounding of "client" properties.
25937        // E.g. for an element with content width of 314.2px it sometimes gives
25938        // the client width of 315px and for the width of 314.7px it may give
25939        // 314px. And it doesn't happen all the time. So just ignore this delta
25940        // as a non-relevant.
25941        if (Math.abs(vertScrollbar) !== 1) {
25942            width -= vertScrollbar;
25943        }
25944        if (Math.abs(horizScrollbar) !== 1) {
25945            height -= horizScrollbar;
25946        }
25947    }
25948    return createRectInit(paddings.left, paddings.top, width, height);
25949}
25950/**
25951 * Checks whether provided element is an instance of the SVGGraphicsElement.
25952 *
25953 * @param {Element} target - Element to be checked.
25954 * @returns {boolean}
25955 */
25956var isSVGGraphicsElement = (function () {
25957    // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement
25958    // interface.
25959    if (typeof SVGGraphicsElement !== 'undefined') {
25960        return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };
25961    }
25962    // If it's so, then check that element is at least an instance of the
25963    // SVGElement and that it has the "getBBox" method.
25964    // eslint-disable-next-line no-extra-parens
25965    return function (target) { return (target instanceof getWindowOf(target).SVGElement &&
25966        typeof target.getBBox === 'function'); };
25967})();
25968/**
25969 * Checks whether provided element is a document element (<html>).
25970 *
25971 * @param {Element} target - Element to be checked.
25972 * @returns {boolean}
25973 */
25974function isDocumentElement(target) {
25975    return target === getWindowOf(target).document.documentElement;
25976}
25977/**
25978 * Calculates an appropriate content rectangle for provided html or svg element.
25979 *
25980 * @param {Element} target - Element content rectangle of which needs to be calculated.
25981 * @returns {DOMRectInit}
25982 */
25983function getContentRect(target) {
25984    if (!isBrowser) {
25985        return emptyRect;
25986    }
25987    if (isSVGGraphicsElement(target)) {
25988        return getSVGContentRect(target);
25989    }
25990    return getHTMLElementContentRect(target);
25991}
25992/**
25993 * Creates rectangle with an interface of the DOMRectReadOnly.
25994 * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly
25995 *
25996 * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.
25997 * @returns {DOMRectReadOnly}
25998 */
25999function createReadOnlyRect(_a) {
26000    var x = _a.x, y = _a.y, width = _a.width, height = _a.height;
26001    // If DOMRectReadOnly is available use it as a prototype for the rectangle.
26002    var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;
26003    var rect = Object.create(Constr.prototype);
26004    // Rectangle's properties are not writable and non-enumerable.
26005    defineConfigurable(rect, {
26006        x: x, y: y, width: width, height: height,
26007        top: y,
26008        right: x + width,
26009        bottom: height + y,
26010        left: x
26011    });
26012    return rect;
26013}
26014/**
26015 * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.
26016 * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit
26017 *
26018 * @param {number} x - X coordinate.
26019 * @param {number} y - Y coordinate.
26020 * @param {number} width - Rectangle's width.
26021 * @param {number} height - Rectangle's height.
26022 * @returns {DOMRectInit}
26023 */
26024function createRectInit(x, y, width, height) {
26025    return { x: x, y: y, width: width, height: height };
26026}
26027
26028/**
26029 * Class that is responsible for computations of the content rectangle of
26030 * provided DOM element and for keeping track of it's changes.
26031 */
26032var ResizeObservation = /** @class */ (function () {
26033    /**
26034     * Creates an instance of ResizeObservation.
26035     *
26036     * @param {Element} target - Element to be observed.
26037     */
26038    function ResizeObservation(target) {
26039        /**
26040         * Broadcasted width of content rectangle.
26041         *
26042         * @type {number}
26043         */
26044        this.broadcastWidth = 0;
26045        /**
26046         * Broadcasted height of content rectangle.
26047         *
26048         * @type {number}
26049         */
26050        this.broadcastHeight = 0;
26051        /**
26052         * Reference to the last observed content rectangle.
26053         *
26054         * @private {DOMRectInit}
26055         */
26056        this.contentRect_ = createRectInit(0, 0, 0, 0);
26057        this.target = target;
26058    }
26059    /**
26060     * Updates content rectangle and tells whether it's width or height properties
26061     * have changed since the last broadcast.
26062     *
26063     * @returns {boolean}
26064     */
26065    ResizeObservation.prototype.isActive = function () {
26066        var rect = getContentRect(this.target);
26067        this.contentRect_ = rect;
26068        return (rect.width !== this.broadcastWidth ||
26069            rect.height !== this.broadcastHeight);
26070    };
26071    /**
26072     * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data
26073     * from the corresponding properties of the last observed content rectangle.
26074     *
26075     * @returns {DOMRectInit} Last observed content rectangle.
26076     */
26077    ResizeObservation.prototype.broadcastRect = function () {
26078        var rect = this.contentRect_;
26079        this.broadcastWidth = rect.width;
26080        this.broadcastHeight = rect.height;
26081        return rect;
26082    };
26083    return ResizeObservation;
26084}());
26085
26086var ResizeObserverEntry = /** @class */ (function () {
26087    /**
26088     * Creates an instance of ResizeObserverEntry.
26089     *
26090     * @param {Element} target - Element that is being observed.
26091     * @param {DOMRectInit} rectInit - Data of the element's content rectangle.
26092     */
26093    function ResizeObserverEntry(target, rectInit) {
26094        var contentRect = createReadOnlyRect(rectInit);
26095        // According to the specification following properties are not writable
26096        // and are also not enumerable in the native implementation.
26097        //
26098        // Property accessors are not being used as they'd require to define a
26099        // private WeakMap storage which may cause memory leaks in browsers that
26100        // don't support this type of collections.
26101        defineConfigurable(this, { target: target, contentRect: contentRect });
26102    }
26103    return ResizeObserverEntry;
26104}());
26105
26106var ResizeObserverSPI = /** @class */ (function () {
26107    /**
26108     * Creates a new instance of ResizeObserver.
26109     *
26110     * @param {ResizeObserverCallback} callback - Callback function that is invoked
26111     *      when one of the observed elements changes it's content dimensions.
26112     * @param {ResizeObserverController} controller - Controller instance which
26113     *      is responsible for the updates of observer.
26114     * @param {ResizeObserver} callbackCtx - Reference to the public
26115     *      ResizeObserver instance which will be passed to callback function.
26116     */
26117    function ResizeObserverSPI(callback, controller, callbackCtx) {
26118        /**
26119         * Collection of resize observations that have detected changes in dimensions
26120         * of elements.
26121         *
26122         * @private {Array<ResizeObservation>}
26123         */
26124        this.activeObservations_ = [];
26125        /**
26126         * Registry of the ResizeObservation instances.
26127         *
26128         * @private {Map<Element, ResizeObservation>}
26129         */
26130        this.observations_ = new MapShim();
26131        if (typeof callback !== 'function') {
26132            throw new TypeError('The callback provided as parameter 1 is not a function.');
26133        }
26134        this.callback_ = callback;
26135        this.controller_ = controller;
26136        this.callbackCtx_ = callbackCtx;
26137    }
26138    /**
26139     * Starts observing provided element.
26140     *
26141     * @param {Element} target - Element to be observed.
26142     * @returns {void}
26143     */
26144    ResizeObserverSPI.prototype.observe = function (target) {
26145        if (!arguments.length) {
26146            throw new TypeError('1 argument required, but only 0 present.');
26147        }
26148        // Do nothing if current environment doesn't have the Element interface.
26149        if (typeof Element === 'undefined' || !(Element instanceof Object)) {
26150            return;
26151        }
26152        if (!(target instanceof getWindowOf(target).Element)) {
26153            throw new TypeError('parameter 1 is not of type "Element".');
26154        }
26155        var observations = this.observations_;
26156        // Do nothing if element is already being observed.
26157        if (observations.has(target)) {
26158            return;
26159        }
26160        observations.set(target, new ResizeObservation(target));
26161        this.controller_.addObserver(this);
26162        // Force the update of observations.
26163        this.controller_.refresh();
26164    };
26165    /**
26166     * Stops observing provided element.
26167     *
26168     * @param {Element} target - Element to stop observing.
26169     * @returns {void}
26170     */
26171    ResizeObserverSPI.prototype.unobserve = function (target) {
26172        if (!arguments.length) {
26173            throw new TypeError('1 argument required, but only 0 present.');
26174        }
26175        // Do nothing if current environment doesn't have the Element interface.
26176        if (typeof Element === 'undefined' || !(Element instanceof Object)) {
26177            return;
26178        }
26179        if (!(target instanceof getWindowOf(target).Element)) {
26180            throw new TypeError('parameter 1 is not of type "Element".');
26181        }
26182        var observations = this.observations_;
26183        // Do nothing if element is not being observed.
26184        if (!observations.has(target)) {
26185            return;
26186        }
26187        observations.delete(target);
26188        if (!observations.size) {
26189            this.controller_.removeObserver(this);
26190        }
26191    };
26192    /**
26193     * Stops observing all elements.
26194     *
26195     * @returns {void}
26196     */
26197    ResizeObserverSPI.prototype.disconnect = function () {
26198        this.clearActive();
26199        this.observations_.clear();
26200        this.controller_.removeObserver(this);
26201    };
26202    /**
26203     * Collects observation instances the associated element of which has changed
26204     * it's content rectangle.
26205     *
26206     * @returns {void}
26207     */
26208    ResizeObserverSPI.prototype.gatherActive = function () {
26209        var _this = this;
26210        this.clearActive();
26211        this.observations_.forEach(function (observation) {
26212            if (observation.isActive()) {
26213                _this.activeObservations_.push(observation);
26214            }
26215        });
26216    };
26217    /**
26218     * Invokes initial callback function with a list of ResizeObserverEntry
26219     * instances collected from active resize observations.
26220     *
26221     * @returns {void}
26222     */
26223    ResizeObserverSPI.prototype.broadcastActive = function () {
26224        // Do nothing if observer doesn't have active observations.
26225        if (!this.hasActive()) {
26226            return;
26227        }
26228        var ctx = this.callbackCtx_;
26229        // Create ResizeObserverEntry instance for every active observation.
26230        var entries = this.activeObservations_.map(function (observation) {
26231            return new ResizeObserverEntry(observation.target, observation.broadcastRect());
26232        });
26233        this.callback_.call(ctx, entries, ctx);
26234        this.clearActive();
26235    };
26236    /**
26237     * Clears the collection of active observations.
26238     *
26239     * @returns {void}
26240     */
26241    ResizeObserverSPI.prototype.clearActive = function () {
26242        this.activeObservations_.splice(0);
26243    };
26244    /**
26245     * Tells whether observer has active observations.
26246     *
26247     * @returns {boolean}
26248     */
26249    ResizeObserverSPI.prototype.hasActive = function () {
26250        return this.activeObservations_.length > 0;
26251    };
26252    return ResizeObserverSPI;
26253}());
26254
26255// Registry of internal observers. If WeakMap is not available use current shim
26256// for the Map collection as it has all required methods and because WeakMap
26257// can't be fully polyfilled anyway.
26258var observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();
26259/**
26260 * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation
26261 * exposing only those methods and properties that are defined in the spec.
26262 */
26263var ResizeObserver = /** @class */ (function () {
26264    /**
26265     * Creates a new instance of ResizeObserver.
26266     *
26267     * @param {ResizeObserverCallback} callback - Callback that is invoked when
26268     *      dimensions of the observed elements change.
26269     */
26270    function ResizeObserver(callback) {
26271        if (!(this instanceof ResizeObserver)) {
26272            throw new TypeError('Cannot call a class as a function.');
26273        }
26274        if (!arguments.length) {
26275            throw new TypeError('1 argument required, but only 0 present.');
26276        }
26277        var controller = ResizeObserverController.getInstance();
26278        var observer = new ResizeObserverSPI(callback, controller, this);
26279        observers.set(this, observer);
26280    }
26281    return ResizeObserver;
26282}());
26283// Expose public methods of ResizeObserver.
26284[
26285    'observe',
26286    'unobserve',
26287    'disconnect'
26288].forEach(function (method) {
26289    ResizeObserver.prototype[method] = function () {
26290        var _a;
26291        return (_a = observers.get(this))[method].apply(_a, arguments);
26292    };
26293});
26294
26295var index = (function () {
26296    // Export existing implementation if available.
26297    if (typeof global$1.ResizeObserver !== 'undefined') {
26298        return global$1.ResizeObserver;
26299    }
26300    return ResizeObserver;
26301})();
26302
vendor: 2,894 bytes, lines 26303-26312
26303/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (index);
26304
26305
26306/***/ }),
26307
26308/***/ 99437:
26309/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
26310
26311/*! For license information please see index.js.LICENSE.txt */
26312!function(e,t){ true?module.exports=t(__webpack_require__(15442),__webpack_require__(56003)):0}(this,((e,t)=>(()=>{"use strict";var r={320:e=>{var t=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(e){n[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(e){return!1}}()?Object.assign:function(e,a){for(var i,l,u=o(e),s=1;s<arguments.length;s++){for(var c in i=Object(arguments[s]))r.call(i,c)&&(u[c]=i[c]);if(t){l=t(i);for(var f=0;f<l.length;f++)n.call(i,l[f])&&(u[l[f]]=i[l[f]])}}return u}},418:(e,t,r)=>{var n=r(320),o=r(787);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var i="function"==typeof Symbol&&Symbol.for,l=i?Symbol.for("react.portal"):60106,u=i?Symbol.for("react.fragment"):60107,s=i?Symbol.for("react.strict_mode"):60108,c=i?Symbol.for("react.profiler"):60114,f=i?Symbol.for("react.provider"):60109,p=i?Symbol.for("react.context"):60110,d=i?Symbol.for("react.concurrent_mode"):60111,h=i?Symbol.for("react.forward_ref"):60112,m=i?Symbol.for("react.suspense"):60113,y=i?Symbol.for("react.suspense_list"):60120,v=i?Symbol.for("react.memo"):60115,w=i?Symbol.for("react.lazy"):60116,g=i?Symbol.for("react.block"):60121,b=i?Symbol.for("react.fundamental"):60117,x=i?Symbol.for("react.scope"):60119;function k(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case u:return"Fragment";case l:return"Portal";case c:return"Profiler";case s:return"StrictMode";case m:return"Suspense";case y:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case p:return"Context.Consumer";case f:return"Context.Provider";case h:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case v:return k(e.type);case g:return k(e.render);case w:if(e=1===e._status?e._result:null)return k(e)}return null}
vendor: 17,618 bytes, line 26312
26312var S=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;S.hasOwnProperty("ReactCurrentDispatcher")||(S.ReactCurrentDispatcher={current:null}),S.hasOwnProperty("ReactCurrentBatchConfig")||(S.ReactCurrentBatchConfig={suspense:null});var E={};function C(e,t){for(var r=0|e._threadCount;r<=t;r++)e[r]=e._currentValue2,e._threadCount=r+1}for(var O=new Uint16Array(16),F=0;15>F;F++)O[F]=F+1;O[15]=0;var D=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,_=Object.prototype.hasOwnProperty,N={},I={};function j(e){return!!_.call(I,e)||!_.call(N,e)&&(D.test(e)?I[e]=!0:(N[e]=!0,!1))}function P(e,t,r,n,o,a){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=n,this.attributeNamespace=o,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=a}var M={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){M[e]=new P(e,0,!1,e,null,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];M[t]=new P(t,1,!1,e[1],null,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){M[e]=new P(e,2,!1,e.toLowerCase(),null,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){M[e]=new P(e,2,!1,e,null,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){M[e]=new P(e,3,!1,e.toLowerCase(),null,!1)})),["checked","multiple","muted","selected"].forEach((function(e){M[e]=new P(e,3,!0,e,null,!1)})),["capture","download"].forEach((function(e){M[e]=new P(e,4,!1,e,null,!1)})),["cols","rows","size","span"].forEach((function(e){M[e]=new P(e,6,!1,e,null,!1)})),["rowSpan","start"].forEach((function(e){M[e]=new P(e,5,!1,e.toLowerCase(),null,!1)}));var R=/[\-:]([a-z])/g;function z(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(R,z);M[t]=new P(t,1,!1,e,null,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(R,z);M[t]=new P(t,1,!1,e,"http://www.w3.org/1999/xlink",!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(R,z);M[t]=new P(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)})),["tabIndex","crossOrigin"].forEach((function(e){M[e]=new P(e,1,!1,e.toLowerCase(),null,!1)})),M.xlinkHref=new P("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0),["src","href","action","formAction"].forEach((function(e){M[e]=new P(e,1,!1,e.toLowerCase(),null,!0)}));var T=/["'&<>]/;function L(e){if("boolean"==typeof e||"number"==typeof e)return""+e;e=""+e;var t=T.exec(e);if(t){var r,n="",o=0;for(r=t.index;r<e.length;r++){switch(e.charCodeAt(r)){case 34:t="&quot;";break;case 38:t="&amp;";break;case 39:t="&#x27;";break;case 60:t="&lt;";break;case 62:t="&gt;";break;default:continue}o!==r&&(n+=e.substring(o,r)),o=r+1,n+=t}e=o!==r?n+e.substring(o,r):n}return e}function V(e,t){var r,n=M.hasOwnProperty(e)?M[e]:null;return(r="style"!==e)&&(r=null!==n?0===n.type:2<e.length&&("o"===e[0]||"O"===e[0])&&("n"===e[1]||"N"===e[1])),r||function(e,t,r,n){if(null==t||function(e,t,r,n){if(null!==r&&0===r.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return null!==r?!r.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e;default:return!1}}(e,t,r))return!0;if(null!==r)switch(r.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(e,t,n)?"":null!==n?(e=n.attributeName,3===(r=n.type)||4===r&&!0===t?e+'=""':(n.sanitizeURL&&(t=""+t),e+'="'+L(t)+'"')):j(e)?e+'="'+L(t)+'"':""}var A="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},W=null,q=null,$=null,H=!1,U=!1,B=null,G=0;function Z(){if(null===W)throw Error(a(321));return W}function X(){if(0<G)throw Error(a(312));return{memoizedState:null,queue:null,next:null}}function Y(){return null===$?null===q?(H=!1,q=$=X()):(H=!0,$=q):null===$.next?(H=!1,$=$.next=X()):(H=!0,$=$.next),$}function J(e,t,r,n){for(;U;)U=!1,G+=1,$=null,r=e(t,n);return q=W=null,G=0,$=B=null,r}function K(e,t){return"function"==typeof t?t(e):t}function Q(e,t,r){if(W=Z(),$=Y(),H){var n=$.queue;if(t=n.dispatch,null!==B&&void 0!==(r=B.get(n))){B.delete(n),n=$.memoizedState;do{n=e(n,r.action),r=r.next}while(null!==r);return $.memoizedState=n,[n,t]}return[$.memoizedState,t]}return e=e===K?"function"==typeof t?t():t:void 0!==r?r(t):t,$.memoizedState=e,e=(e=$.queue={last:null,dispatch:null}).dispatch=ee.bind(null,W,e),[$.memoizedState,e]}function ee(e,t,r){if(!(25>G))throw Error(a(301));if(e===W)if(U=!0,e={action:r,next:null},null===B&&(B=new Map),void 0===(r=B.get(t)))B.set(t,e);else{for(t=r;null!==t.next;)t=t.next;t.next=e}}function te(){}var re=0,ne={readContext:function(e){var t=re;return C(e,t),e[t]},useContext:function(e){Z();var t=re;return C(e,t),e[t]},useMemo:function(e,t){if(W=Z(),t=void 0===t?null:t,null!==($=Y())){var r=$.memoizedState;if(null!==r&&null!==t){e:{var n=r[1];if(null===n)n=!1;else{for(var o=0;o<n.length&&o<t.length;o++)if(!A(t[o],n[o])){n=!1;break e}n=!0}}if(n)return r[0]}}return e=e(),$.memoizedState=[e,t],e},useReducer:Q,useRef:function(e){W=Z();var t=($=Y()).memoizedState;return null===t?(e={current:e},$.memoizedState=e):t},useState:function(e){return Q(K,e)},useLayoutEffect:function(){},useCallback:function(e){return e},useImperativeHandle:te,useEffect:te,useDebugValue:te,useResponder:function(e,t){return{props:t,responder:e}},useDeferredValue:function(e){return Z(),e},useTransition:function(){return Z(),[function(e){e()},!1]}},oe="http://www.w3.org/1999/xhtml";function ae(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}var ie={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},le=n({menuitem:!0},ie),ue={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},se=["Webkit","ms","Moz","O"];Object.keys(ue).forEach((function(e){se.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ue[t]=ue[e]}))}));var ce=/([A-Z])/g,fe=/^ms-/,pe=o.Children.toArray,de=S.ReactCurrentDispatcher,he={listing:!0,pre:!0,textarea:!0},me=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,ye={},ve={},we=Object.prototype.hasOwnProperty,ge={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null,suppressHydrationWarning:null};function be(e,t){if(void 0===e)throw Error(a(152,k(t)||"Component"))}var xe=function(){function e(e,t){o.isValidElement(e)?e.type!==u?e=[e]:(e=e.props.children,e=o.isValidElement(e)?[e]:pe(e)):e=pe(e),e={type:null,domNamespace:oe,children:e,childIndex:0,context:E,footer:""};var r=O[0];if(0===r){var n=O,i=2*(r=n.length);if(!(65536>=i))throw Error(a(304));var l=new Uint16Array(i);for(l.set(n),(O=l)[0]=r+1,n=r;n<i-1;n++)O[n]=n+1;O[i-1]=0}else O[0]=O[r];this.threadID=r,this.stack=[e],this.exhausted=!1,this.currentSelectValue=null,this.previousWasTextNode=!1,this.makeStaticMarkup=t,this.suspenseDepth=0,this.contextIndex=-1,this.contextStack=[],this.contextValueStack=[]}var t=e.prototype;return t.destroy=function(){if(!this.exhausted){this.exhausted=!0,this.clearProviders();var e=this.threadID;O[e]=O[0],O[0]=e}},t.pushProvider=function(e){var t=++this.contextIndex,r=e.type._context,n=this.threadID;C(r,n);var o=r[n];this.contextStack[t]=r,this.contextValueStack[t]=o,r[n]=e.props.value},t.popProvider=function(){var e=this.contextIndex,t=this.contextStack[e],r=this.contextValueStack[e];this.contextStack[e]=null,this.contextValueStack[e]=null,this.contextIndex--,t[this.threadID]=r},t.clearProviders=function(){for(var e=this.contextIndex;0<=e;e--)this.contextStack[e][this.threadID]=this.contextValueStack[e]},t.read=function(e){if(this.exhausted)return null;var t=re;re=this.threadID;var r=de.current;de.current=ne;try{for(var n=[""],o=!1;n[0].length<e;){if(0===this.stack.length){this.exhausted=!0;var i=this.threadID;O[i]=O[0],O[0]=i;break}var l=this.stack[this.stack.length-1];if(o||l.childIndex>=l.children.length){var u=l.footer;if(""!==u&&(this.previousWasTextNode=!1),this.stack.pop(),"select"===l.type)this.currentSelectValue=null;else if(null!=l.type&&null!=l.type.type&&l.type.type.$$typeof===f)this.popProvider(l.type);else if(l.type===m){this.suspenseDepth--;var s=n.pop();if(o){o=!1;var c=l.fallbackFrame;if(!c)throw Error(a(303));this.stack.push(c),n[this.suspenseDepth]+="\x3c!--$!--\x3e";continue}n[this.suspenseDepth]+=s}n[this.suspenseDepth]+=u}else{var p=l.children[l.childIndex++],d="";try{d+=this.render(p,l.context,l.domNamespace)}catch(e){if(null!=e&&"function"==typeof e.then)throw Error(a(294));throw e}n.length<=this.suspenseDepth&&n.push(""),n[this.suspenseDepth]+=d}}return n[0]}finally{de.current=r,re=t}},t.render=function(e,t,r){if("string"==typeof e||"number"==typeof e)return""==(r=""+e)?"":this.makeStaticMarkup?L(r):this.previousWasTextNode?"\x3c!-- --\x3e"+L(r):(this.previousWasTextNode=!0,L(r));if(e=(t=function(e,t,r){function i(o,i){var l=i.prototype&&i.prototype.isReactComponent,u=function(e,t,r,n){if(n&&"object"==typeof(n=e.contextType)&&null!==n)return C(n,r),n[r];if(e=e.contextTypes){for(var o in r={},e)r[o]=t[o];t=r}else t=E;return t}(i,t,r,l),s=[],c=!1,f={isMounted:function(){return!1},enqueueForceUpdate:function(){if(null===s)return null},enqueueReplaceState:function(e,t){c=!0,s=[t]},enqueueSetState:function(e,t){if(null===s)return null;s.push(t)}};if(l){if(l=new i(o.props,u,f),"function"==typeof i.getDerivedStateFromProps){var p=i.getDerivedStateFromProps.call(null,o.props,l.state);null!=p&&(l.state=n({},l.state,p))}}else if(W={},l=i(o.props,u,f),null==(l=J(i,o.props,l,u))||null==l.render)return void be(e=l,i);if(l.props=o.props,l.context=u,l.updater=f,void 0===(f=l.state)&&(l.state=f=null),"function"==typeof l.UNSAFE_componentWillMount||"function"==typeof l.componentWillMount)if("function"==typeof l.componentWillMount&&"function"!=typeof i.getDerivedStateFromProps&&l.componentWillMount(),"function"==typeof l.UNSAFE_componentWillMount&&"function"!=typeof i.getDerivedStateFromProps&&l.UNSAFE_componentWillMount(),s.length){f=s;var d=c;if(s=null,c=!1,d&&1===f.length)l.state=f[0];else{p=d?f[0]:l.state;var h=!0;for(d=d?1:0;d<f.length;d++){var m=f[d];null!=(m="function"==typeof m?m.call(l,p,o.props,u):m)&&(h?(h=!1,p=n({},p,m)):n(p,m))}l.state=p}}else s=null;if(be(e=l.render(),i),"function"==typeof l.getChildContext&&"object"==typeof(o=i.childContextTypes)){var y=l.getChildContext();for(var v in y)if(!(v in o))throw Error(a(108,k(i)||"Unknown",v))}y&&(t=n({},t,y))}for(;o.isValidElement(e);){var l=e,u=l.type;if("function"!=typeof u)break;i(l,u)}return{child:e,context:t}}(e,t,this.threadID)).child,t=t.context,null===e||!1===e)return"";if(!o.isValidElement(e)){if(null!=e&&null!=e.$$typeof){if((r=e.$$typeof)===l)throw Error(a(257));throw Error(a(258,r.toString()))}return e=pe(e),this.stack.push({type:null,domNamespace:r,children:e,childIndex:0,context:t,footer:""}),""}var i=e.type;if("string"==typeof i)return this.renderDOM(e,t,r);switch(i){case s:case d:case c:case y:case u:return e=pe(e.props.children),this.stack.push({type:null,domNamespace:r,children:e,childIndex:0,context:t,footer:""}),"";case m:throw Error(a(294))}if("object"==typeof i&&null!==i)switch(i.$$typeof){case h:W={};var g=i.render(e.props,e.ref);return g=J(i.render,e.props,g,e.ref),g=pe(g),this.stack.push({type:null,domNamespace:r,children:g,childIndex:0,context:t,footer:""}),"";case v:return e=[o.createElement(i.type,n({ref:e.ref},e.props))],this.stack.push({type:null,domNamespace:r,children:e,childIndex:0,context:t,footer:""}),"";case f:return r={type:e,domNamespace:r,children:i=pe(e.props.children),childIndex:0,context:t,footer:""},this.pushProvider(e),this.stack.push(r),"";case p:i=e.type,g=e.props;var S=this.threadID;return C(i,S),i=pe(g.children(i[S])),this.stack.push({type:e,domNamespace:r,children:i,childIndex:0,context:t,footer:""}),"";case b:throw Error(a(338));case w:switch(function(e){if(-1===e._status){e._status=0;var t=e._ctor;t=t(),e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}}(i=e.type),i._status){case 1:return e=[o.createElement(i._result,n({ref:e.ref},e.props))],this.stack.push({type:null,domNamespace:r,children:e,childIndex:0,context:t,footer:""}),"";case 2:throw i._result;default:throw Error(a(295))}case x:throw Error(a(343))}throw Error(a(130,null==i?i:typeof i,""))},t.renderDOM=function(e,t,r){var i=e.type.toLowerCase();if(r===oe&&ae(i),!ye.hasOwnProperty(i)){if(!me.test(i))throw Error(a(65,i));ye[i]=!0}var l=e.props;if("input"===i)l=n({type:void 0},l,{defaultChecked:void 0,defaultValue:void 0,value:null!=l.value?l.value:l.defaultValue,checked:null!=l.checked?l.checked:l.defaultChecked});else if("textarea"===i){var u=l.value;if(null==u){u=l.defaultValue;var s=l.children;if(null!=s){if(null!=u)throw Error(a(92));if(Array.isArray(s)){if(!(1>=s.length))throw Error(a(93));s=s[0]}u=""+s}null==u&&(u="")}l=n({},l,{value:void 0,children:""+u})}else if("select"===i)this.currentSelectValue=null!=l.value?l.value:l.defaultValue,l=n({},l,{value:void 0});else if("option"===i){s=this.currentSelectValue;var c=function(e){if(null==e)return e;var t="";return o.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(l.children);if(null!=s){var f=null!=l.value?l.value+"":c;if(u=!1,Array.isArray(s)){for(var p=0;p<s.length;p++)if(""+s[p]===f){u=!0;break}}else u=""+s===f;l=n({selected:void 0,children:void 0},l,{selected:u,children:c})}}if(u=l){if(le[i]&&(null!=u.children||null!=u.dangerouslySetInnerHTML))throw Error(a(137,i,""));if(null!=u.dangerouslySetInnerHTML){if(null!=u.children)throw Error(a(60));if("object"!=typeof u.dangerouslySetInnerHTML||!("__html"in u.dangerouslySetInnerHTML))throw Error(a(61))}if(null!=u.style&&"object"!=typeof u.style)throw Error(a(62,""))}for(b in u=l,s=this.makeStaticMarkup,c=1===this.stack.length,f="<"+e.type,u)if(we.call(u,b)){var d=u[b];if(null!=d){if("style"===b){p=void 0;var h="",m="";for(p in d)if(d.hasOwnProperty(p)){var y=0===p.indexOf("--"),v=d[p];if(null!=v){if(y)var w=p;else if(w=p,ve.hasOwnProperty(w))w=ve[w];else{var g=w.replace(ce,"-$1").toLowerCase().replace(fe,"-ms-");w=ve[w]=g}h+=m+w+":",m=p,h+=y=null==v||"boolean"==typeof v||""===v?"":y||"number"!=typeof v||0===v||ue.hasOwnProperty(m)&&ue[m]?(""+v).trim():v+"px",m=";"}}d=h||null}p=null;e:if(y=i,v=u,-1===y.indexOf("-"))y="string"==typeof v.is;else switch(y){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":y=!1;break e;default:y=!0}y?ge.hasOwnProperty(b)||(p=j(p=b)&&null!=d?p+'="'+L(d)+'"':""):p=V(b,d),p&&(f+=" "+p)}}s||c&&(f+=' data-reactroot=""');var b=f;u="",ie.hasOwnProperty(i)?b+="/>":(b+=">",u="</"+e.type+">");e:{if(null!=(s=l.dangerouslySetInnerHTML)){if(null!=s.__html){s=s.__html;break e}}else if("string"==typeof(s=l.children)||"number"==typeof s){s=L(s);break e}s=null}return null!=s?(l=[],he.hasOwnProperty(i)&&"\n"===s.charAt(0)&&(b+="\n"),b+=s):l=pe(l.children),e=e.type,r=null==r||"http://www.w3.org/1999/xhtml"===r?ae(e):"http://www.w3.org/2000/svg"===r&&"foreignObject"===e?"http://www.w3.org/1999/xhtml":r,this.stack.push({domNamespace:r,type:i,children:l,childIndex:0,context:t,footer
26312:u}),this.previousWasTextNode=!1,b},e}(),ke={renderToString:function(e){e=new xe(e,!1);try{return e.read(1/0)}finally{e.destroy()}},renderToStaticMarkup:function(e){e=new xe(e,!0);try{return e.read(1/0)}finally{e.destroy()}},renderToNodeStream:function(){throw Error(a(207))},renderToStaticNodeStream:function(){throw Error(a(208))},version:"16.14.0"};e.exports=ke.default||ke},90:(e,t,r)=>{e.exports=r(418)},787:t=>{t.exports=e},156:e=>{e.exports=t}},n={};function o(e){var t=n[e];if(void 0!==t)return t.exports;var a=n[e]={exports:{}};return r[e](a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};return(()=>{o.r(a),o.d(a,{DynamicComponent:()=>f,mfEvent:()=>e,reactSSRC:()=>b,renderComponent:()=>p,renderHydrate:()=>v,renderNormal:()=>y,renderString:()=>w,setGlobalConfig:()=>c});var e={};o.r(e),o.d(e,{$emit:()=>x,$on:()=>k});var t=o(787),r=o.n(t),n=o(156),i=o.n(n),l=function(){return l=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},l.apply(this,arguments)},u=null,s=null;function c(e,t){u&&s||(u=e,s=t)}var f=function(e){var t,n=function(e){var t=r().useState(!1),n=t[0],o=t[1],a=r().useState(!1),i=a[0],l=a[1];return r().useEffect((function(){if(e.url){var t=document.createElement("script");return t.src=e.url,t.type="text/javascript",t.async=!0,o(!1),l(!1),t.onload=function(){console.log("Dynamic Script Loaded: ".concat(e.url)),o(!0)},t.onerror=function(){console.error("Dynamic Script Error: ".concat(e.url)),o(!1),l(!0)},document.head.appendChild(t),function(){console.log("Dynamic Script Removed: ".concat(e.url)),document.head.removeChild(t)}}}),[e.url]),{ready:n,failed:i}}({url:e.system&&e.system.url}),o=n.ready,a=n.failed;if(!e.system)return e.skeletonNode?e.skeletonNode:r().createElement("h2",null,"Not system specified");if(!o)return e.skeletonNode?e.skeletonNode:r().createElement("h2",null,"Loa
26312ding dynamic script: ",e.system.url);if(a)return e.failedNode?e.failedNode:r().createElement("h2",null,"Failed to load dynamic script: ",e.system.url);var i=r().lazy(function(e,t){var r=this;return function(){return n=r,o=void 0,i=function(){return function(e,t){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(a){return function(l){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;i;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,n=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!((o=(o=i.trys).length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,l])}}}(this,(function(r){switch(r.label){case 0:if(!u||!s)throw new Error("you must use webpack module federation plugin before use dynamic component");return[4,u("default")];case 1:return r.sent(),[4,window[e].init(s.default)];case 2:return r.sent(),[4,window[e].get(t)];case 3:return[2,r.sent()()]}}))},new((a=void 0)||(a=Promise))((function(e,t){function r(e){try{u(i.next(e))}catch(e){t(e)}}function l(e){try{u(i.throw(e))}catch(e){t(e)}}function u(t){var n;t.done?e(t.value):(n=t.value,n instanceof a?n:new a((function(e){e(n)}))).then(r,l)}u((i=i.apply(n,o||[])).next())}));// removed by dead control flow
26313{ var n, o, a, i; }}}(e.system.scope,e.system.module)),c=null!==(t=e.skeletonNode)&&void 0!==t?t:r().createElement("span",null,"load dynamic component");return r().createElement(r().Suspense,{fallback:c},r().createElement(i,l({},e.data)))};function p(e){var t=e.el,n=e.data,o=e.system,a=e.component;if(!t)throw new Error("el is required");var u=function(){return r().createElement(f,{system:o,data:n})};o||(u=function(){return r().createElement(a,l({},n))}),i().render(r().createElement(u,null),document.getElementById(t))}var d=o(90),h=function(){return h=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},h.apply(this,arguments)},m=function(e){return function(t){var n=t.el,o=t.component,a=t.data,i=document.getElementById(n);e(r().createElement(o,h({},a)),i)}},y=m(n.render),v=m(n.hydrate),w=function(e,t){void 0===t&&(t={});var n=new Set,o=(0,d.renderToString)(r().createElement(e,h({},t,{insertCss:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return e.forEach((function(e){return""}))}})));return{html:o,css:n}},g=function(){return g=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},g.apply(this,arguments)},b=function(e){var n=e.Component,o=e.variableName;return function(e){var a=(0,t.useState)(g({},null===window||void 0===window?void 0:window[o])),i=a[0],l=a[1];return(0,t.useEffect)((function(){o&&(null===window||void 0===window?void 0:window[o])?l(window[o]):n.getInitialProps(g({},e)).then((function(e){l(g({},e))}))}),[]),r().createElement(n,g({},i))}},x=function(e,t){var r=new CustomEvent(e,{detail:t,bubbles:!0});window.dispatchEvent(r)},k=function(e,t){window.addEventListener(e,(function(e){t&&t(e.detail)}))}})(),a})()));
26314
26315/***/ }),
26316
26317/***/ 99973:
26318/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
26319
26320"use strict";
26321/* harmony export */ __webpack_require__.d(__webpack_exports__, {
26322/* harmony export */   _q: () => (/* reexport safe */ _hooks_useEvent__WEBPACK_IMPORTED_MODULE_0__.A)
26323/* harmony export */ });
26324/* harmony import */ var _hooks_useEvent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9449);
26325/* harmony import */ var _hooks_useMergedState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64948);
26326/* harmony import */ var _ref__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19284);
26327/* harmony import */ var _utils_set__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(53795);
26328/* harmony import */ var _warning__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84445);
26329
26330
26331
26332
26333
26334
26335
26336/***/ })
26337
26338/******/ 	});
26339/************************************************************************/
26340/******/ 	// The module cache
26341/******/ 	var __webpack_module_cache__ = {};
26342/******/ 	
26343/******/ 	// The require function
26344/******/ 	function __webpack_require__(moduleId) {
26345/******/ 		// Check if module is in cache
26346/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
26347/******/ 		if (cachedModule !== undefined) {
26348/******/ 			return cachedModule.exports;
26349/******/ 		}
26350/******/ 		// Create a new module (and put it into the cache)
26351/******/ 		var module = __webpack_module_cache__[moduleId] = {
26352/******/ 			// no module.id needed
26353/******/ 			// no module.loaded needed
26354/******/ 			exports: {}
26355/******/ 		};
26356/******/ 	
26357/******/ 		// Execute the module function
26358/******/ 		__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
26359/******/ 	
26360/******/ 		// Return the exports of the module
26361/******/ 		return module.exports;
26362/******/ 	}
26363/******/ 	
26364/******/ 	// expose the modules object (__webpack_modules__)
26365/******/ 	__webpack_require__.m = __webpack_modules__;
26366/******/ 	
26367/************************************************************************/
26368/******/ 	/* webpack/runtime/compat get default export */
26369/******/ 	(() => {
26370/******/ 		// getDefaultExport function for compatibility with non-harmony modules
26371/******/ 		__webpack_require__.n = (module) => {
vendor: 5,836 bytes, lines 26372-26502
26372/******/ 			var getter = module && module.__esModule ?
26373/******/ 				() => (module['default']) :
26374/******/ 				() => (module);
26375/******/ 			__webpack_require__.d(getter, { a: getter });
26376/******/ 			return getter;
26377/******/ 		};
26378/******/ 	})();
26379/******/ 	
26380/******/ 	/* webpack/runtime/create fake namespace object */
26381/******/ 	(() => {
26382/******/ 		var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);
26383/******/ 		var leafPrototypes;
26384/******/ 		// create a fake namespace object
26385/******/ 		// mode & 1: value is a module id, require it
26386/******/ 		// mode & 2: merge all properties of value into the ns
26387/******/ 		// mode & 4: return value when already ns object
26388/******/ 		// mode & 16: return value when it's Promise-like
26389/******/ 		// mode & 8|1: behave like require
26390/******/ 		__webpack_require__.t = function(value, mode) {
26391/******/ 			if(mode & 1) value = this(value);
26392/******/ 			if(mode & 8) return value;
26393/******/ 			if(typeof value === 'object' && value) {
26394/******/ 				if((mode & 4) && value.__esModule) return value;
26395/******/ 				if((mode & 16) && typeof value.then === 'function') return value;
26396/******/ 			}
26397/******/ 			var ns = Object.create(null);
26398/******/ 			__webpack_require__.r(ns);
26399/******/ 			var def = {};
26400/******/ 			leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];
26401/******/ 			for(var current = mode & 2 && value; (typeof current == 'object' || typeof current == 'function') && !~leafPrototypes.indexOf(current); current = getProto(current)) {
26402/******/ 				Object.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));
26403/******/ 			}
26404/******/ 			def['default'] = () => (value);
26405/******/ 			__webpack_require__.d(ns, def);
26406/******/ 			return ns;
26407/******/ 		};
26408/******/ 	})();
26409/******/ 	
26410/******/ 	/* webpack/runtime/define property getters */
26411/******/ 	(() => {
26412/******/ 		// define getter functions for harmony exports
26413/******/ 		__webpack_require__.d = (exports, definition) => {
26414/******/ 			for(var key in definition) {
26415/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
26416/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
26417/******/ 				}
26418/******/ 			}
26419/******/ 		};
26420/******/ 	})();
26421/******/ 	
26422/******/ 	/* webpack/runtime/ensure chunk */
26423/******/ 	(() => {
26424/******/ 		__webpack_require__.f = {};
26425/******/ 		// This file contains only the entry chunk.
26426/******/ 		// The chunk loading function for additional chunks
26427/******/ 		__webpack_require__.e = (chunkId) => {
26428/******/ 			return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {
26429/******/ 				__webpack_require__.f[key](chunkId, promises);
26430/******/ 				return promises;
26431/******/ 			}, []));
26432/******/ 		};
26433/******/ 	})();
26434/******/ 	
26435/******/ 	/* webpack/runtime/get javascript chunk filename */
26436/******/ 	(() => {
26437/******/ 		// This function allow to reference async chunks
26438/******/ 		__webpack_require__.u = (chunkId) => {
26439/******/ 			// return url for filenames based on template
26440/******/ 			return "" + chunkId + "." + {"326":"4bc08576","406":"1c8ef3fc","1261":"b693357c","1554":"3e96d156","2440":"3e7d73ab","4639":"5d1f2843","5503":"37fabb60","5579":"52682a8b","5772":"bd672acd","6164":"27d93440","9506":"badb7e25"}[chunkId] + ".js";
26441/******/ 		};
26442/******/ 	})();
26443/******/ 	
26444/******/ 	/* webpack/runtime/get mini-css chunk filename */
26445/******/ 	(() => {
26446/******/ 		// This function allow to reference async chunks
26447/******/ 		__webpack_require__.miniCssF = (chunkId) => {
26448/******/ 			// return url for filenames based on template
26449/******/ 			return "" + chunkId + "." + {"326":"5a7b3210","2440":"f5b2275a","5579":"2b74cea0","6164":"813fff74"}[chunkId] + ".css";
26450/******/ 		};
26451/******/ 	})();
26452/******/ 	
26453/******/ 	/* webpack/runtime/global */
26454/******/ 	(() => {
26455/******/ 		__webpack_require__.g = (function() {
26456/******/ 			if (typeof globalThis === 'object') return globalThis;
26457/******/ 			try {
26458/******/ 				return this || new Function('return this')();
26459/******/ 			} catch (e) {
26460/******/ 				if (typeof window === 'object') return window;
26461/******/ 			}
26462/******/ 		})();
26463/******/ 	})();
26464/******/ 	
26465/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
26466/******/ 	(() => {
26467/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
26468/******/ 	})();
26469/******/ 	
26470/******/ 	/* webpack/runtime/load script */
26471/******/ 	(() => {
26472/******/ 		var inProgress = {};
26473/******/ 		var dataWebpackPrefix = "@cckj/mf-mycj-components:";
26474/******/ 		// loadScript function to load a script via script tag
26475/******/ 		__webpack_require__.l = (url, done, key, chunkId) => {
26476/******/ 			if(inProgress[url]) { inProgress[url].push(done); return; }
26477/******/ 			var script, needAttach;
26478/******/ 			if(key !== undefined) {
26479/******/ 				var scripts = document.getElementsByTagName("script");
26480/******/ 				for(var i = 0; i < scripts.length; i++) {
26481/******/ 					var s = scripts[i];
26482/******/ 					if(s.getAttribute("src") == url || s.getAttribute("data-webpack") == dataWebpackPrefix + key) { script = s; break; }
26483/******/ 				}
26484/******/ 			}
26485/******/ 			if(!script) {
26486/******/ 				needAttach = true;
26487/******/ 				script = document.createElement('script');
26488/******/ 		
26489/******/ 				script.charset = 'utf-8';
26490/******/ 				script.timeout = 120;
26491/******/ 				if (__webpack_require__.nc) {
26492/******/ 					script.setAttribute("nonce", __webpack_require__.nc);
26493/******/ 				}
26494/******/ 				script.setAttribute("data-webpack", dataWebpackPrefix + key);
26495/******/ 		
26496/******/ 				script.src = url;
26497/******/ 			}
26498/******/ 			inProgress[url] = [done];
26499/******/ 			var onScriptComplete = (prev, event) => {
26500/******/ 				// avoid mem leaks in IE.
26501/******/ 				script.onerror = script.onload = null;
26502/******/ 				clearTimeout(timeout);
26503/******/ 				var doneFns = inProgress[url];
26504/******/ 				delete inProgress[url];
26505/******/ 				script.parentNode && script.parentNode.removeChild(script);
26506/******/ 				doneFns && doneFns.forEach((fn) => (fn(event)));
26507/******/ 				if(prev) return prev(event);
26508/******/ 			}
26509/******/ 			var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);
26510/******/ 			script.onerror = onScriptComplete.bind(null, script.onerror);
26511/******/ 			script.onload = onScriptComplete.bind(null, script.onload);
26512/******/ 			needAttach && document.head.appendChild(script);
26513/******/ 		};
26514/******/ 	})();
26515/******/ 	
26516/******/ 	/* webpack/runtime/make namespace object */
26517/******/ 	(() => {
26518/******/ 		// define __esModule on exports
26519/******/ 		__webpack_require__.r = (exports) => {
26520/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
26521/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
26522/******/ 			}
26523/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
26524/******/ 		};
26525/******/ 	})();
26526/******/ 	
26527/******/ 	/* webpack/runtime/publicPath */
26528/******/ 	(() => {
26529/******/ 		__webpack_require__.p = "https://sv-resource.oss-accelerate.aliyuncs.com/mf-components-v3/";
26530/******/ 	})();
26531/******/ 	
26532/******/ 	/* webpack/runtime/css loading */
26533/******/ 	(() => {
26534/******/ 		if (typeof document === "undefined") return;
26535/******/ 		var createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {
26536/******/ 			var linkTag = document.createElement("link");
26537/******/ 		
26538/******/ 			linkTag.rel = "stylesheet";
26539/******/ 			linkTag.type = "text/css";
26540/******/ 			if (__webpack_require__.nc) {
26541/******/ 				linkTag.nonce = __webpack_require__.nc;
26542/******/ 			}
26543/******/ 			var onLinkComplete = (event) => {
26544/******/ 				// avoid mem leaks.
26545/******/ 				linkTag.onerror = linkTag.onload = null;
26546/******/ 				if (event.type === 'load') {
26547/******/ 					resolve();
26548/******/ 				} else {
26549/******/ 					var errorType = event && event.type;
26550/******/ 					var realHref = event && event.target && event.target.href || fullhref;
26551/******/ 					var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + errorType + ": " + realHref + ")");
26552/******/ 					err.name = "ChunkLoadError";
26553/******/ 					err.code = "CSS_CHUNK_LOAD_FAILED";
26554/******/ 					err.type = errorType;
26555/******/ 					err.request = realHref;
26556/******/ 					if (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)
26557/******/ 					reject(err);
26558/******/ 				}
26559/******/ 			}
26560/******/ 			linkTag.onerror = linkTag.onload = onLinkComplete;
26561/******/ 			linkTag.href = fullhref;
26562/******/ 		
26563/******/ 		
26564/******/ 			if (oldTag) {
26565/******/ 				oldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);
26566/******/ 			} else {
26567/******/ 				document.head.appendChild(linkTag);
26568/******/ 			}
26569/******/ 			return linkTag;
26570/******/ 		};
26571/******/ 		var findStylesheet = (href, fullhref) => {
26572/******/ 			var existingLinkTags = document.getElementsByTagName("link");
26573/******/ 			for(var i = 0; i < existingLinkTags.length; i++) {
26574/******/ 				var tag = existingLinkTags[i];
26575/******/ 				var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");
26576/******/ 				if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag;
26577/******/ 			}
26578/******/ 			var existingStyleTags = document.getElementsByTagName("style");
26579/******/ 			for(var i = 0; i < existingStyleTags.length; i++) {
26580/******/ 				var tag = existingStyleTags[i];
26581/******/ 				var dataHref = tag.getAttribute("data-href");
26582/******/ 				if(dataHref === href || dataHref === fullhref) return tag;
26583/******/ 			}
26584/******/ 		};
26585/******/ 		var loadStylesheet = (chunkId) => {
26586/******/ 			return new Promise((resolve, reject) => {
26587/******/ 				var href = __webpack_require__.miniCssF(chunkId);
26588/******/ 				var fullhref = __webpack_require__.p + href;
26589/******/ 				if(findStylesheet(href, fullhref)) return resolve();
26590/******/ 				createStylesheet(chunkId, fullhref, null, resolve, reject);
26591/******/ 			});
26592/******/ 		}
26593/******/ 		// object to store loaded CSS chunks
26594/******/ 		var installedCssChunks = {
26595/******/ 			6488: 0,
26596/******/ 			7420: 0,
26597/******/ 			8430: 0
26598/******/ 		};
26599/******/ 		
26600/******/ 		__webpack_require__.f.miniCss = (chunkId, promises) => {
26601/******/ 			var cssChunks = {"326":1,"2440":1,"5579":1,"6164":1};
26602/******/ 			if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
26603/******/ 			else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
26604/******/ 				promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {
26605/******/ 					installedCssChunks[chunkId] = 0;
26606/******/ 				}, (e) => {
26607/******/ 					delete installedCssChunks[chunkId];
26608/******/ 					throw e;
26609/******/ 				}));
26610/******/ 			}
26611/******/ 		};
26612/******/ 		
26613/******/ 		// no hmr
26614/******/ 		
26615/******/ 		// no prefetching
26616/******/ 		
26617/******/ 		// no preloaded
vendor: 4,947 bytes, lines 26618-26729
26618/******/ 	})();
26619/******/ 	
26620/******/ 	/* webpack/runtime/jsonp chunk loading */
26621/******/ 	(() => {
26622/******/ 		// no baseURI
26623/******/ 		
26624/******/ 		// object to store loaded and loading chunks
26625/******/ 		// undefined = chunk not loaded, null = chunk preloaded/prefetched
26626/******/ 		// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
26627/******/ 		var installedChunks = {
26628/******/ 			6488: 0,
26629/******/ 			7420: 0,
26630/******/ 			8430: 0
26631/******/ 		};
26632/******/ 		
26633/******/ 		__webpack_require__.f.j = (chunkId, promises) => {
26634/******/ 				// JSONP chunk loading for javascript
26635/******/ 				var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;
26636/******/ 				if(installedChunkData !== 0) { // 0 means "already installed".
26637/******/ 		
26638/******/ 					// a Promise means "currently loading".
26639/******/ 					if(installedChunkData) {
26640/******/ 						promises.push(installedChunkData[2]);
26641/******/ 					} else {
26642/******/ 						if(true) { // all chunks have JS
26643/******/ 							// setup Promise in chunk cache
26644/******/ 							var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));
26645/******/ 							promises.push(installedChunkData[2] = promise);
26646/******/ 		
26647/******/ 							// start chunk loading
26648/******/ 							var url = __webpack_require__.p + __webpack_require__.u(chunkId);
26649/******/ 							// create error before stack unwound to get useful stacktrace later
26650/******/ 							var error = new Error();
26651/******/ 							var loadingEnded = (event) => {
26652/******/ 								if(__webpack_require__.o(installedChunks, chunkId)) {
26653/******/ 									installedChunkData = installedChunks[chunkId];
26654/******/ 									if(installedChunkData !== 0) installedChunks[chunkId] = undefined;
26655/******/ 									if(installedChunkData) {
26656/******/ 										var errorType = event && (event.type === 'load' ? 'missing' : event.type);
26657/******/ 										var realSrc = event && event.target && event.target.src;
26658/******/ 										error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
26659/******/ 										error.name = 'ChunkLoadError';
26660/******/ 										error.type = errorType;
26661/******/ 										error.request = realSrc;
26662/******/ 										installedChunkData[1](error);
26663/******/ 									}
26664/******/ 								}
26665/******/ 							};
26666/******/ 							__webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId);
26667/******/ 						}
26668/******/ 					}
26669/******/ 				}
26670/******/ 		};
26671/******/ 		
26672/******/ 		// no prefetching
26673/******/ 		
26674/******/ 		// no preloaded
26675/******/ 		
26676/******/ 		// no HMR
26677/******/ 		
26678/******/ 		// no HMR manifest
26679/******/ 		
26680/******/ 		// no on chunks loaded
26681/******/ 		
26682/******/ 		// install a JSONP callback for chunk loading
26683/******/ 		var webpackJsonpCallback = (parentChunkLoadingFunction, data) => {
26684/******/ 			var [chunkIds, moreModules, runtime] = data;
26685/******/ 			// add "moreModules" to the modules object,
26686/******/ 			// then flag all "chunkIds" as loaded and fire callback
26687/******/ 			var moduleId, chunkId, i = 0;
26688/******/ 			if(chunkIds.some((id) => (installedChunks[id] !== 0))) {
26689/******/ 				for(moduleId in moreModules) {
26690/******/ 					if(__webpack_require__.o(moreModules, moduleId)) {
26691/******/ 						__webpack_require__.m[moduleId] = moreModules[moduleId];
26692/******/ 					}
26693/******/ 				}
26694/******/ 				if(runtime) var result = runtime(__webpack_require__);
26695/******/ 			}
26696/******/ 			if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
26697/******/ 			for(;i < chunkIds.length; i++) {
26698/******/ 				chunkId = chunkIds[i];
26699/******/ 				if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
26700/******/ 					installedChunks[chunkId][0]();
26701/******/ 				}
26702/******/ 				installedChunks[chunkId] = 0;
26703/******/ 			}
26704/******/ 		
26705/******/ 		}
26706/******/ 		
26707/******/ 		var chunkLoadingGlobal = this["webpackChunk_cckj_mf_mycj_components"] = this["webpackChunk_cckj_mf_mycj_components"] || [];
26708/******/ 		chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
26709/******/ 		chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
26710/******/ 	})();
26711/******/ 	
26712/************************************************************************/
26713var __webpack_exports__ = {};
26714// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
26715(() => {
26716"use strict";
26717/* harmony import */ var _common_oss_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44190);
26718
26719(function setRuntimePublicPath() {
26720  var host = _common_oss_controller__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Ay && _common_oss_controller__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Ay.host;
26721  if (host) {
26722    __webpack_require__.p = String(host).replace(/\/+$/, '') + '/mf-components-v3/';
26723  }
26724})();
26725})();
26726
26727// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
26728(() => {
26729"use strict";
26730// ESM COMPAT FLAG
26731__webpack_require__.r(__webpack_exports__);
26732
26733// EXPORTS
26734__webpack_require__.d(__webpack_exports__, {
26735  "default": () => (/* binding */ Menu_Menu),
26736  fetchAuth: () => (/* reexport */ authority_utils/* fetchAuth */.tw),
26737  goNoAuthPath: () => (/* reexport */ authority_utils/* goNoAuthPath */.lU),
26738  hasAuth: () => (/* reexport */ authority_utils/* hasAuth */.Vm)
26739});
26740
26741// EXTERNAL MODULE: external {"root":"React","commonjs2":"react","commonjs":"react","amd":"react"}
26742var external_root_React_commonjs2_react_commonjs_react_amd_react_ = __webpack_require__(15442);
26743var external_root_React_commonjs2_react_commonjs_react_amd_react_default = /*#__PURE__*/__webpack_require__.n(external_root_React_commonjs2_react_commonjs_react_amd_react_);
26744// EXTERNAL MODULE: ./src/common/index.ts
26745var common = __webpack_require__(81002);
26746// EXTERNAL MODULE: ./src/universalComps/Iconfont/index.tsx
26747var Iconfont = __webpack_require__(12191);
26748// EXTERNAL MODULE: ./src/common/login-info-controller.ts
26749var login_info_controller = __webpack_require__(12097);
26750;// ./src/components/Menu/hooks/useIsShowMenuItem.ts
26751
26752var useIsShowOrangeConnex = function useIsShowOrangeConnex(routerName) {
26753  if (!/orangeconnex/i.test(routerName)) return true;
26754  var flag = login_info_controller/* default */.A.info('loginName') == 'EbayOC001';
26755  return flag;
26756};
26757var useIsShowMiaoshou = function useIsShowMiaoshou(routerName, siteCheck) {
26758  if (!/miaoshou/i.test(routerName)) return true;
26759  var flag = (siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.isSite('CJCN')) || siteCheck.isSite('CJ') && (window === null || window === void 0 ? void 0 : window.isChina);
26760  return flag;
26761};
26762var popoverFixed = function popoverFixed(boxDom) {
26763  var popoverDom = boxDom === null || boxDom === void 0 ? void 0 : boxDom.getElementsByClassName('popoverDom')[0];
26764  var height = popoverDom === null || popoverDom === void 0 ? void 0 : popoverDom.clientHeight;
26765  var getBoundingClientRect = boxDom.getBoundingClientRect();
26766  if (!popoverDom) return;
26767  popoverDom.style.position = 'fixed';
26768  popoverDom.style.left = getBoundingClientRect.left + boxDom.offsetWidth / 2 + 'px';
26769  popoverDom.style.top = getBoundingClientRect.top - height + 'px';
26770  popoverDom.style.bottom = 'auto';
26771};
26772var isShowAuthorizeType = function isShowAuthorizeType(showAuthorizeListData, routeName) {
26773  if (showAuthorizeListData === void 0) {
26774    showAuthorizeListData = {};
26775  }
26776  var type = String(routeName).toLocaleLowerCase();
26777  if (showAuthorizeListData[type]) {
26778    return showAuthorizeListData[type].isAuthor;
26779  } else {
26780    for (var key in showAuthorizeListData) {
26781      if (Object.prototype.hasOwnProperty.call(showAuthorizeListData, key) && showAuthorizeListData[key].otherValue.includes(type)) {
26782        return showAuthorizeListData[key].isAuthor;
26783      }
26784    }
26785  }
26786  return true;
26787};
26788// EXTERNAL MODULE: ./src/components/Menu/hooks/useIsVip.ts
26789var useIsVip = __webpack_require__(95092);
26790;// ./src/components/Menu/MenuCollapsed/index.less
26791// extracted by mini-css-extract-plugin
26792/* harmony default export */ const Menu_MenuCollapsed = ({"menuCollapsed":"menuCollapsed--b_k3E","zs":"zs--rCLA8","subMenu":"subMenu--WLGbc","activeLeftLine":"activeLeftLine--YOCDq","box":"box--xSm1_","active":"active--dUYom","icon":"icon--vjhqg","fixedTitle":"fixedTitle--PftDx","arrow":"arrow--AEWrh","childBox":"childBox--FWuuo","lastActive":"lastActive--ViUl3","cjSpecial":"cjSpecial--f8xaJ","menuDivider":"menuDivider--aNIge","childItem":"childItem--SnOOe","childItemBox":"childItemBox--TH0SS","name":"name--eNgvs","nameTitle":"nameTitle--ux0Zn","addStoreBox":"addStoreBox--jdia3","arrowRight":"arrowRight--E_xic","addIcon":"addIcon--zC9yb","childItemThree":"childItemThree--Y4Jx_","childItemBoxThree":"childItemBoxThree--SAGhO","nameThree":"nameThree--wZduG","specialMenuItem":"specialMenuItem--mE_CB","newfeatures":"newfeatures--PC3lP"});
26793// EXTERNAL MODULE: ../../node_modules/classnames/index.js
26794var classnames = __webpack_require__(53373);
26795var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
26796// EXTERNAL MODULE: ./src/hook/use-platform-href.ts
26797var use_platform_href = __webpack_require__(50137);
26798// EXTERNAL MODULE: ./src/components/Menu/hooks/useMyCjReactRoute.ts
26799var useMyCjReactRoute = __webpack_require__(92252);
26800;// ./src/components/Menu/MenuNormal/index.less
26801// extracted by mini-css-extract-plugin
26802/* harmony default export */ const Menu_MenuNormal = ({"menuNormal":"menuNormal--gsYO8","subMenu":"subMenu--z6J6p","box":"box--yZN6g","zs":"zs--OHCP7","left":"left--x__zs","title":"title--BkhmX","active":"active--JjwvC","activeLeftLine":"activeLeftLine--UdWBB","arrow":"arrow--TsouQ","expand":"expand--c1Tbh","popover":"popover--sI3_q","popoverBox":"popoverBox--FjnYQ","text":"text--cy6yi","reverseTriangle":"reverseTriangle--cl3I1","childsBox":"childsBox--JzrE3","menuDivider":"menuDivider--DEr8g","specialMenuItem":"specialMenuItem--_POsH","MenuItem":"MenuItem--LMN0B","titleSpan":"titleSpan--Og1GR","addStoreBox":"addStoreBox--lCxL4","addIcon":"addIcon--hdTkF","activeLeftLineMenuItem":"activeLeftLineMenuItem--YvMU6","childBoxThree":"childBoxThree--v428M","threeMenu":"threeMenu--sKPxL","newfeatures":"newfeatures--BHtjS","menuTip":"menuTip--qyPbc"});
26803;// ./src/components/Menu/hooks/useMenuChilds.ts
26804function useMenuChilds(_a) {
26805  var selector = _a.selector,
26806    _b = _a.useNewLogic,
26807    useNewLogic = _b === void 0 ? false : _b;
26808  var handlerMouseMove = function handlerMouseMove(e, addTop, isCjSpecial) {
26809    if (addTop === void 0) {
26810      addTop = 0;
26811    }
26812    var shouldUseNewLogic = isCjSpecial !== undefined ? isCjSpecial : useNewLogic;
26813    var target = e.currentTarget;
26814    var specialMenuBox = target.querySelector(selector);
26815    var rect = target.getBoundingClientRect();
26816    if (!specialMenuBox) return;
26817    if (shouldUseNewLogic) {
26818      specialMenuBox.style.position = 'fixed';
26819      specialMenuBox.style.left = "".concat(rect.left + target.offsetWidth, "px");
26820      specialMenuBox.style.display = 'block';
26821      specialMenuBox.style.visibility = 'hidden';
26822      var windowHeight_1 = window.innerHeight;
26823      specialMenuBox.style.maxHeight = "".concat(windowHeight_1, "px");
26824      specialMenuBox.style.overflow = 'auto';
26825      specialMenuBox.style.overflowY = 'auto';
26826      specialMenuBox.style.overflowX = 'hidden';
26827      requestAnimationFrame(function () {
26828        requestAnimationFrame(function () {
26829          var boxHeight = specialMenuBox.scrollHeight;
26830          var actualHeight = Math.min(boxHeight, windowHeight_1);
26831          var top = rect.top - 10 + addTop;
26832          if (top + actualHeight > windowHeight_1) {
26833            top = windowHeight_1 - actualHeight;
26834            if (top < 0) {
26835              top = 0;
26836            }
26837          }
26838          if (top < 0) {
26839            top = 0;
26840          }
26841          specialMenuBox.style.top = "".concat(top, "px");
26842          specialMenuBox.style.visibility = 'visible';
26843        });
26844      });
26845    } else {
26846      specialMenuBox.style.position = 'fixed';
26847      specialMenuBox.style.left = "".concat(rect.left + target.offsetWidth, "px");
26848      var windowHeight = window.innerHeight;
26849      var boxHeight = specialMenuBox.offsetHeight;
26850      if (boxHeight + rect.top > windowHeight) {
26851        specialMenuBox.style.top = "".concat(windowHeight - boxHeight, "px");
26852      } else {
26853        specialMenuBox.style.top = "".concat(rect.top - 10 + addTop, "px");
26854      }
26855      specialMenuBox.style.display = 'block';
26856    }
26857  };
26858  var handlerMouseLeave = function handlerMouseLeave(target) {
26859    var childBoxThree = target.querySelector(selector);
26860    if (!childBoxThree) return;
26861    childBoxThree.style.display = 'none';
26862    childBoxThree.style.maxHeight = '';
26863    childBoxThree.style.overflowY = '';
26864    childBoxThree.style.overflow = '';
26865    childBoxThree.style.overflowX = '';
26866    childBoxThree.style.visibility = '';
26867  };
26868  return {
26869    handlerMouseMove: handlerMouseMove,
26870    handlerMouseLeave: handlerMouseLeave
26871  };
26872}
26873// EXTERNAL MODULE: ./src/universalComps/Tooltip/index.tsx
26874var Tooltip = __webpack_require__(59912);
26875// EXTERNAL MODULE: ./src/components/Menu/MenuNormal/MultipleMenuItem.tsx + 3 modules
26876var MultipleMenuItem = __webpack_require__(16754);
26877// EXTERNAL MODULE: ./src/common/gtag.ts
26878var gtag = __webpack_require__(11543);
26879;// ./src/components/ExtensionGuide/detect.ts
26880var CRX_ATTR = 'data-cjcrx';
26881var CRX_INSTALLED_VALUE = 'addYes';
26882var EXTENSION_STORE_URL = 'https://chrome.google.com/webstore/detail/cjdropshipping/mbndljkgaoailfnpeodnlejigmkdpokb?utm_source=chrome-ntp-icon';
26883var SOURCE_PLATFORM_URLS = {
26884  '1688': 'https://www.1688.com/',
26885  taobao: 'https://www.taobao.com/',
26886  aliexpress: 'https://alitems.com/g/1e8d11449400282ca80416525dc3e8/',
26887  ebay: 'https://www.ebay.com/'
26888};
26889var isExtensionInstalled = function isExtensionInstalled() {
26890  var _a;
26891  return ((_a = document === null || document === void 0 ? void 0 : document.body) === null || _a === void 0 ? void 0 : _a.getAttribute(CRX_ATTR)) === CRX_INSTALLED_VALUE;
26892};
26893var DEFAULT_WAIT_MS = 3000;
26894var defaultWaitMs = function defaultWaitMs() {
26895  try {
26896    var raw = typeof process !== 'undefined' && process.env && process.env.EXT_GUIDE_WAIT_MS;
26897    var n = Number(raw);
26898    return raw && !Number.isNaN(n) && n >= 0 ? n : DEFAULT_WAIT_MS;
26899  } catch (e) {
26900    return DEFAULT_WAIT_MS;
26901  }
26902};
26903var detect_waitForExtension = function waitForExtension(timeoutMs) {
26904  if (timeoutMs === void 0) {
26905    timeoutMs = defaultWaitMs();
26906  }
26907  return new Promise(function (resolve) {
26908    if (isExtensionInstalled()) return resolve(true);
26909    if (typeof MutationObserver === 'undefined' || !(document === null || document === void 0 ? void 0 : document.body)) return resolve(false);
26910    var settled = false;
26911    var finish = function finish(installed) {
26912      if (settled) return;
26913      settled = true;
26914      observer.disconnect();
26915      document.removeEventListener('DOMContentLoaded', check);
26916      window.removeEventListener('load', check);
26917      clearTimeout(timer);
26918      resolve(installed);
26919    };
26920    var check = function check() {
26921      if (isExtensionInstalled()) finish(true);
26922    };
26923    var observer = new MutationObserver(check);
26924    observer.observe(document.body, {
26925      attributes: true,
26926      attributeFilter: [CRX_ATTR]
26927    });
26928    document.addEventListener('DOMContentLoaded', check);
26929    window.addEventListener('load', check);
26930    var timer = setTimeout(function () {
26931      return finish(false);
26932    }, timeoutMs);
26933  });
26934};
26935var isChromeBrowser = function isChromeBrowser() {
26936  return /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
26937};
26938var detect_isAllowedTargetUrl = function isAllowedTargetUrl(url) {
26939  return !!url && Object.values(SOURCE_PLATFORM_URLS).indexOf(url) > -1;
26940};
26941// EXTERNAL MODULE: external {"root":"ReactDOM","commonjs2":"react-dom","commonjs":"react-dom","amd":"react-dom"}
26942var external_root_ReactDOM_commonjs2_react_dom_commonjs_react_dom_amd_react_dom_ = __webpack_require__(56003);
26943var external_root_ReactDOM_commonjs2_react_dom_commonjs_react_dom_amd_react_dom_default = /*#__PURE__*/__webpack_require__.n(external_root_ReactDOM_commonjs2_react_dom_commonjs_react_dom_amd_react_dom_);
26944// EXTERNAL MODULE: ./src/universalComps/button/index.tsx
26945var universalComps_button = __webpack_require__(37183);
26946;// ./src/components/ExtensionGuide/storage.ts
26947var RESUME_STORAGE_KEY = 'sourcingUrl';
26948var saveResumeUrl = function saveResumeUrl(targetUrl) {
26949  try {
26950    sessionStorage.setItem(RESUME_STORAGE_KEY, targetUrl);
26951  } catch (e) {}
26952};
26953var storage_takeResumeUrl = function takeResumeUrl() {
26954  try {
26955    var value = sessionStorage.getItem(RESUME_STORAGE_KEY);
26956    sessionStorage.removeItem(RESUME_STORAGE_KEY);
26957    return value;
26958  } catch (e) {
26959    return null;
26960  }
26961};
26962;// ./src/components/ExtensionGuide/index.less
26963// extracted by mini-css-extract-plugin
26964/* harmony default export */ const ExtensionGuide = ({"mask":"mask--rGfYk","box":"box--l7olb","title":"title--QbR7E","text":"text--eByoV","footer":"footer--yKQKt","btn":"btn--a0nM5"});
26965;// ./src/components/ExtensionGuide/ExtensionGuideModal.tsx
26966
26967
26968
26969
26970
26971var COPY = {
26972  install: {
26973    title: function title() {
26974      return window.i18next.t('common-top-install-cj-chrome-extension', 'Install CJ Chrome Extension');
26975    },
26976    text: function text() {
26977      return window.i18next.t('common-top-we-found-you-have-not-installed-cj-chrome-extension-do-you-want-to-install-it', 'We found you have not installed CJ Chrome Extension, do you want to install it?');
26978    }
26979  },
26980  refresh: {
26981    title: function title() {
26982      return window.i18next.t('common-top-refresh-page-required', 'Refresh Page Required:');
26983    },
26984    text: function text() {
26985      return window.i18next.t('common-top-if-you-had-installed-the-extension-please-click-refresh-button', 'If you had installed the extension, please click Refresh button.');
26986    }
26987  },
26988  noChrome: {
26989    title: function title() {
26990      return window.i18next.t('common-top-browser-not-supported', 'Browser Not Supported');
26991    },
26992    text: function text() {
26993      return window.i18next.t('common-top-cj-chrome-extension-is-only-available-on-google-chrome', 'CJ Chrome Extension is only available on Google Chrome. Please switch to Chrome and try again.');
26994    }
26995  },
26996  resume: {
26997    title: function title() {
26998      return window.i18next.t('common-top-extension-ready', 'CJ Chrome Extension Is Ready');
26999    },
27000    text: function text() {
27001      return window.i18next.t('common-top-extension-ready-continue-to-the-platform-you
27001-selected', 'The extension is installed. Continue to the platform you selected.');
27002    }
27003  }
27004};
27005var ExtensionGuideModal = function ExtensionGuideModal(_a) {
27006  var targetUrl = _a.targetUrl,
27007    onClose = _a.onClose,
27008    initialStep = _a.initialStep;
27009  var _b = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(initialStep || (isChromeBrowser() ? 'install' : 'noChrome')),
27010    step = _b[0],
27011    setStep = _b[1];
27012  var handleInstall = function handleInstall() {
27013    window.open(EXTENSION_STORE_URL, '_blank', 'noreferrer');
27014    setStep('refresh');
27015  };
27016  var handleRefresh = function handleRefresh() {
27017    if (targetUrl) saveResumeUrl(targetUrl);
27018    onClose();
27019    window.location.reload();
27020  };
27021  var handleContinue = function handleContinue() {
27022    if (targetUrl) window.open(targetUrl, '_blank', 'noreferrer');
27023    onClose();
27024  };
27025  var copy = COPY[step];
27026  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27027    className: ExtensionGuide.mask,
27028    "data-testid": "extension-guide-modal",
27029    onClick: function onClick(e) {
27030      if (e.target === e.currentTarget) onClose();
27031    }
27032  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27033    className: ExtensionGuide.box
27034  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("h3", {
27035    className: ExtensionGuide.title,
27036    "data-testid": "extension-guide-title"
27037  }, copy.title()), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("p", {
27038    className: ExtensionGuide.text,
27039    "data-testid": "extension-guide-text"
27040  }, copy.text()), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27041    className: ExtensionGuide.footer
27042  }, step === 'install' && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, null, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(universalComps_button/* default */.A, {
27043    type: "primary",
27044    title: window.i18next.t('common-top-install-now', 'Install Now'),
27045    onClick: handleInstall,
27046    className: ExtensionGuide.btn,
27047    "data-testid": "extension-guide-install",
27048    "data-gtag-element": "plugin_install"
27049  }), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(universalComps_button/* default */.A, {
27050    type: "ghost",
27051    title: window.i18next.t('common-top-cancel', 'Cancel'),
27052    onClick: onClose,
27053    className: ExtensionGuide.btn,
27054    "data-testid": "extension-guide-cancel",
27055    "data-gtag-element": "plugin_modal_cancel"
27056  }))), step === 'refresh' && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, null, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(universalComps_button/* default */.A, {
27057    type: "primary",
27058    title: window.i18next.t('common-top-refresh', 'Refresh'),
27059    onClick: handleRefresh,
27060    className: ExtensionGuide.btn,
27061    "data-testid": "extension-guide-refresh",
27062    "data-gtag-element": "plugin_refresh"
27063  }), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(universalComps_button/* default */.A, {
27064    type: "ghost",
27065    title: window.i18next.t('common-top-later', 'Later'),
27066    onClick: onClose,
27067    className: ExtensionGuide.btn,
27068    "data-testid": "extension-guide-later",
27069    "data-gtag-element": "plugin_refresh_later"
27070  }))), step === 'resume' && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, null, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(universalComps_button/* default */.A, {
27071    type: "primary",
27072    title: window.i18next.t('common-top-continue', 'Continue'),
27073    onClick: handleContinue,
27074    className: ExtensionGuide.btn,
27075    "data-testid": "extension-guide-continue",
27076    "data-gtag-element": "plugin_resume_continue"
27077  }), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(universalComps_button/* default */.A, {
27078    type: "ghost",
27079    title: window.i18next.t('common-top-later', 'Later'),
27080    onClick: onClose,
27081    className: ExtensionGuide.btn,
27082    "data-testid": "extension-guide-later",
27083    "data-gtag-element": "plugin_resume_later"
27084  }))), step === 'noChrome' && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(universalComps_button/* default */.A, {
27085    type: "primary",
27086    title: window.i18next.t('common-top-close', 'Close'),
27087    onClick: onClose,
27088    className: ExtensionGuide.btn,
27089    "data-testid": "extension-guide-close",
27090    "data-gtag-element": "plugin_no_chrome_close"
27091  })))));
27092};
27093/* harmony default export */ const ExtensionGuide_ExtensionGuideModal = (ExtensionGuideModal);
27094;// ./src/components/ExtensionGuide/show.tsx
27095
27096
27097
27098
27099var SINGLETON_KEY = '__CJ_EXTENSION_GUIDE_CONTAINER__';
27100var getActiveContainer = function getActiveContainer() {
27101  var container = window[SINGLETON_KEY];
27102  return container && container.isConnected ? container : null;
27103};
27104var mount = function mount(targetUrl, initialStep) {
27105  if (getActiveContainer()) return;
27106  var container = document.createElement('div');
27107  document.body.appendChild(container);
27108  window[SINGLETON_KEY] = container;
27109  var close = function close() {
27110    external_root_ReactDOM_commonjs2_react_dom_commonjs_react_dom_amd_react_dom_default().unmountComponentAtNode(container);
27111    if (container.parentNode) container.parentNode.removeChild(container);
27112    window[SINGLETON_KEY] = null;
27113  };
27114  external_root_ReactDOM_commonjs2_react_dom_commonjs_react_dom_amd_react_dom_default().render(/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(ExtensionGuide_ExtensionGuideModal, {
27115    targetUrl: targetUrl,
27116    initialStep: initialStep,
27117    onClose: close
27118  }), container);
27119};
27120var show_showExtensionGuide = function showExtensionGuide(targetUrl) {
27121  if (isExtensionInstalled()) {
27122    if (targetUrl) window.open(targetUrl, '_blank', 'noreferrer');
27123    return;
27124  }
27125  mount(targetUrl);
27126};
27127var show_showResumePrompt = function showResumePrompt(targetUrl) {
27128  mount(targetUrl, 'resume');
27129};
27130;// ./src/components/ExtensionGuide/resume.ts
27131
27132
27133
27134
27135var consumeResumeUrl = function consumeResumeUrl() {
27136  var targetUrl = takeResumeUrl();
27137  if (!isAllowedTargetUrl(targetUrl)) return;
27138  waitForExtension().then(function (installed) {
27139    if (installed) {
27140      showResumePrompt(targetUrl);
27141    } else {
27142      showExtensionGuide(targetUrl);
27143    }
27144  });
27145};
27146;// ./src/components/ExtensionGuide/menu.ts
27147
27148
27149var interceptExtensionMenuClick = function interceptExtensionMenuClick(event, menu) {
27150  var _a;
27151  if (!(menu === null || menu === void 0 ? void 0 : menu.requireExtension)) return false;
27152  if (!detect_isAllowedTargetUrl(menu.route)) return false;
27153  if (isExtensionInstalled()) return false;
27154  (_a = event === null || event === void 0 ? void 0 : event.preventDefault) === null || _a === void 0 ? void 0 : _a.call(event);
27155  show_showExtensionGuide(menu.route);
27156  return true;
27157};
27158;// ./src/components/ExtensionGuide/index.ts
27159
27160
27161
27162
27163;// ./src/components/Menu/MenuNormal/MenuItem.tsx
27164var __assign = undefined && undefined.__assign || function () {
27165  __assign = Object.assign || function (t) {
27166    for (var s, i = 1, n = arguments.length; i < n; i++) {
27167      s = arguments[i];
27168      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
27169    }
27170    return t;
27171  };
27172  return __assign.apply(this, arguments);
27173};
27174
27175
27176
27177
27178
27179
27180
27181
27182
27183
27184
27185
27186
27187
27188var TipWrap = function TipWrap(_a) {
27189  var children = _a.children,
27190    tip = _a.tip;
27191  if (!tip) return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, null, children);
27192  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Tooltip/* default */.A, {
27193    content: tip,
27194    className: Menu_MenuNormal.menuTip,
27195    immediateHide: true,
27196    noImmediateShow: true,
27197    noImmediateShowDelay: 300
27198  }, children);
27199};
27200var MenuItem = function MenuItem(_a) {
27201  var _b, _c;
27202  var _d, _e;
27203  var childMenu = _a.childMenu,
27204    isActive = _a.isActive,
27205    _f = _a.showAuthorizeListData,
27206    showAuthorizeListData = _f === void 0 ? {} : _f,
27207    isSpecial = _a.isSpecial;
27208  var isVip = (0,useIsVip/* default */.A)();
27209  var isShowOrange = useIsShowOrangeConnex(childMenu.name);
27210  var isShowAuthorize = isShowAuthorizeType(showAuthorizeListData, childMenu.name);
27211  var hookMenusChilds = useMenuChilds({
27212    selector: '.childBoxThree'
27213  });
27214  var hookMyCjRoute = (0,useMyCjReactRoute/* default */.A)();
27215  hookMyCjRoute.viewCogs(childMenu);
27216  var isPopover = !!(childMenu === null || childMenu === void 0 ? void 0 : childMenu.tip);
27217  var isShowNew = (0,common/* isShowNewFeatures */.t_)() && hookMyCjRoute.isNewCogs;
27218  var hasChilds = childMenu.childs && childMenu.childs.length > 0;
27219  var platformHref = (0,use_platform_href/* default */.A)();
27220  var leaveTimer = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef();
27221  var isZesty = window.siteCheck.isSite('ZS');
27222  if (!isShowOrange || !isShowAuthorize) return null;
27223  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27224    className: classnames_default()(Menu_MenuNormal.MenuItem, (_b = {}, _b[Menu_MenuNormal.vip] = isVip, _b[Menu_MenuNormal.zs] = isZesty, _b)),
27225    onMouseEnter: function onMouseEnter(event) {
27226      leaveTimer.current && clearTimeout(leaveTimer.current);
27227      hasChilds && hookMenusChilds.handlerMouseMove(event);
27228    },
27229    onMouseLeave: function onMouseLeave(event) {
27230      var target = event.currentTarget;
27231      leaveTimer.current = setTimeout(function () {
27232        hasChilds && hookMenusChilds.handlerMouseLeave(target);
27233      }, 200);
27234    }
27235  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(TipWrap, {
27236    tip: ((_d = childMenu === null || childMenu === void 0 ? void 0 : childMenu.tip) === null || _d === void 0 ? void 0 : _d.call(childMenu)) || ''
27237  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27238    className: classnames_default()(Menu_MenuNormal.box, (_c = {}, _c[Menu_MenuNormal.active] = isActive(childMenu.name), _c[Menu_MenuNormal.zs] = isZesty, _c)),
27239    onClick: function onClick(e) {
27240      e.stopPropagation();
27241    },
27242    onMouseMove: function onMouseMove(event) {
27243      if (isPopover) {
27244        popoverFixed(event.currentTarget);
27245      }
27246    },
27247    "data-route": childMenu.name,
27248    "data-gtag-element": (0,gtag/* toGtagElement */.l)(childMenu.name)
27249  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27250    className: Menu_MenuNormal.title
27251  }
27251, hasChilds && !childMenu.route && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
27252    className: Menu_MenuNormal.titleSpan
27253  }, childMenu.nameTrans())), hasChilds && childMenu.route && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("a", __assign({
27254    href: platformHref((0,common/* getRouteHref */.hQ)(childMenu)),
27255    target: childMenu.target || '_self'
27256  }, hookMyCjRoute.getAProps(childMenu.route)), childMenu.nameTrans())), !hasChilds && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("a", __assign({
27257    href: platformHref((0,common/* getRouteHref */.hQ)(childMenu)),
27258    target: childMenu.target || '_self'
27259  }, hookMyCjRoute.getAProps(childMenu.route), childMenu.trackingClick ? {
27260    'data-tracking-element-click': childMenu.trackingClick
27261  } : {}, {
27262    "data-gtag-element": (0,gtag/* toGtagElement */.l)(childMenu.name)
27263  }), isSpecial ? (0,MultipleMenuItem/* showName */.$)({
27264    key: childMenu.key,
27265    name: (_e = childMenu.nameTrans) === null || _e === void 0 ? void 0 : _e.call(childMenu),
27266    count: childMenu.count
27267  }) : childMenu.nameTrans(), childMenu.isNew && isShowNew && /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
27268    className: Menu_MenuNormal.newfeatures
27269  }, "New")))), hasChilds && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27270    className: classnames_default()(Menu_MenuNormal.arrow),
27271    style: {
27272      transform: 'rotate(-90deg)'
27273    }
27274  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
27275    type: "xiangxia"
27276  }))), isZesty && isActive(childMenu.name) && /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27277    className: Menu_MenuNormal.activeLeftLineMenuItem
27278  }))), hasChilds && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27279    className: classnames_default()(Menu_MenuNormal.childBoxThree, 'childBoxThree')
27280  }, childMenu.childs.map(function (threeMenu) {
27281    var _a;
27282    if (typeof threeMenu.isHide === 'function' ? threeMenu.isHide() : threeMenu.isHide) return null;
27283    return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27284      key: threeMenu.name,
27285      className: classnames_default()(Menu_MenuNormal.threeMenu, (_a = {}, _a[Menu_MenuNormal.active] = isActive(threeMenu.name), _a)),
27286      onClick: function onClick(e) {
27287        e.stopPropagation();
27288      }
27289    }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("a", __assign({
27290      href: platformHref((0,common/* getRouteHref */.hQ)(threeMenu)),
27291      target: threeMenu.target || '_self'
27292    }, hookMyCjRoute.getAProps(threeMenu.route), {
27293      "data-gtag-element": (0,gtag/* toGtagElement */.l)(threeMenu.name),
27294      onClick: function onClick(e) {
27295        var _a, _b;
27296        if (interceptExtensionMenuClick(e, threeMenu)) return;
27297        (_b = (_a = hookMyCjRoute.getAProps(threeMenu.route)).onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);
27298      }
27299    }), threeMenu.nameTrans()));
27300  }))));
27301};
27302/* harmony default export */ const MenuNormal_MenuItem = (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().memo(MenuItem));
27303// EXTERNAL MODULE: ./src/hook/use-site-check.ts
27304var use_site_check = __webpack_require__(82058);
27305;// ./src/components/Menu/MenuCollapsed/MenuItem.tsx
27306var MenuItem_assign = undefined && undefined.__assign || function () {
27307  MenuItem_assign = Object.assign || function (t) {
27308    for (var s, i = 1, n = arguments.length; i < n; i++) {
27309      s = arguments[i];
27310      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
27311    }
27312    return t;
27313  };
27314  return MenuItem_assign.apply(this, arguments);
27315};
27316var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
27317  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
27318    if (ar || !(i in from)) {
27319      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
27320      ar[i] = from[i];
27321    }
27322  }
27323  return to.concat(ar || Array.prototype.slice.call(from));
27324};
27325
27326
27327
27328
27329
27330
27331
27332
27333
27334
27335
27336
27337
27338
27339
27340var MenuItem_MenuItem = function MenuItem(_a) {
27341  var _b, _c, _d, _e;
27342  var _f, _g;
27343  var childMenu = _a.childMenu,
27344    isActive = _a.isActive,
27345    showAuthorizeListData = _a.showAuthorizeListData,
27346    isSpecial = _a.isSpecial;
27347  var isVip = (0,useIsVip/* default */.A)();
27348  var siteCheck = (0,use_site_check/* default */.A)();
27349  var isShowOrange = useIsShowOrangeConnex(childMenu.name);
27350  var isShowAuthorize = isShowAuthorizeType(showAuthorizeListData, childMenu.name);
27351  var isZesty = siteCheck.isSite('ZS');
27352  var _h = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)([classnames_default()(Menu_MenuCollapsed.childBox, (_b = {}, _b[Menu_MenuCollapsed.zs] = isZesty, _b))]),
27353    threeClass = _h[0],
27354    setThreeClass = _h[1];
27355  var hookMenusChilds = useMenuChilds({
27356    selector: '.childBoxThree',
27357    useNewLogic: true
27358  });
27359  var leaveTimer = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef();
27360  var hookMyCjRoute = (0,useMyCjReactRoute/* default */.A)();
27361  hookMyCjRoute.viewCogs(childMenu);
27362  var hasChilds = childMenu.childs && childMenu.childs.length > 0;
27363  var platformHref = (0,use_platform_href/* default */.A)();
27364  var isShowNew = (0,common/* isShowNewFeatures */.t_)() && hookMyCjRoute.isNewCogs;
27365  var childCurrentRoute = (childMenu === null || childMenu === void 0 ? void 0 : childMenu.name) || '';
27366  if (!isShowOrange || !isShowAuthorize) return null;
27367  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27368    className: classnames_default()(Menu_MenuCollapsed.childItem, (_c = {}, _c[Menu_MenuCollapsed.vip] = isVip, _c[Menu_MenuCollapsed.active] = isActive(childCurrentRoute), _c[Menu_MenuCollapsed.zs] = isZesty, _c)),
27369    onMouseEnter: function onMouseEnter(event) {
27370      leaveTimer.current && clearTimeout(leaveTimer.current);
27371      setThreeClass(__spreadArray(__spreadArray([], threeClass, true), [Menu_MenuCollapsed.active], false));
27372      hasChilds && hookMenusChilds.handlerMouseMove(event);
27373    },
27374    onMouseLeave: function onMouseLeave(event) {
27375      var target = event.currentTarget;
27376      setThreeClass(__spreadArray([], threeClass.filter(function (_) {
27377        return _ !== Menu_MenuCollapsed.active;
27378      }), true));
27379      leaveTimer.current = setTimeout(function () {
27380        hasChilds && hookMenusChilds.handlerMouseLeave(target);
27381      }, 200);
27382    },
27383    onClick: function onClick(e) {
27384      e.stopPropagation();
27385      if (childMenu.name === childCurrentRoute) return;
27386    }
27387  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(TipWrap, {
27388    tip: ((_f = childMenu === null || childMenu === void 0 ? void 0 : childMenu.tip) === null || _f === void 0 ? void 0 : _f.call(childMenu)) || ''
27389  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27390    className: Menu_MenuCollapsed.childItemBox
27391  }
27391, hasChilds && !childMenu.route ? (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
27392    className: classnames_default()(Menu_MenuCollapsed.nameTitle, (_d = {}, _d[Menu_MenuCollapsed.zs] = isZesty, _d))
27393  }, childMenu.nameTrans())) : (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("a", MenuItem_assign({
27394    href: platformHref((0,common/* getRouteHref */.hQ)(childMenu)),
27395    className: classnames_default()(hasChilds ? Menu_MenuCollapsed.nameTitle : Menu_MenuCollapsed.name, (_e = {}, _e[Menu_MenuCollapsed.zs] = isZesty, _e)),
27396    target: childMenu.target || '_self'
27397  }, hookMyCjRoute.getAProps(childMenu.route), childMenu.trackingClick ? {
27398    'data-tracking-element-click': childMenu.trackingClick
27399  } : {}, {
27400    "data-gtag-element": (0,gtag/* toGtagElement */.l)(childMenu.name)
27401  }), isSpecial ? (0,MultipleMenuItem/* showName */.$)({
27402    key: childMenu.key,
27403    name: (_g = childMenu.nameTrans) === null || _g === void 0 ? void 0 : _g.call(childMenu),
27404    count: childMenu.count
27405  }) : childMenu.nameTrans(), childMenu.isNew && isShowNew && /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
27406    className: Menu_MenuCollapsed.newfeatures
27407  }, "New"))), hasChilds && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27408    className: Menu_MenuCollapsed.arrowRight
27409  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
27410    type: "jiantou_you"
27411  }))))), hasChilds && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27412    className: classnames_default()(threeClass.join(' '), 'childBoxThree')
27413  }, childMenu.childs.map(function (threeMenu) {
27414    var _a, _b;
27415    if (typeof threeMenu.isHide === 'function' ? threeMenu.isHide() : threeMenu.isHide) return null;
27416    return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27417      key: threeMenu.name,
27418      className: classnames_default()(Menu_MenuCollapsed.childItemThree, (_a = {}, _a[Menu_MenuCollapsed.active] = isActive(threeMenu.name), _a[Menu_MenuCollapsed.vip] = isVip, _a)),
27419      onClick: function onClick(e) {
27420        e.stopPropagation();
27421      }
27422    }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27423      className: Menu_MenuCollapsed.childItemBoxThree
27424    }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("a", MenuItem_assign({
27425      href: platformHref((0,common/* getRouteHref */.hQ)(threeMenu)),
27426      className: classnames_default()(Menu_MenuCollapsed.nameThree, (_b = {}, _b[Menu_MenuCollapsed.zs] = isZesty, _b)),
27427      target: threeMenu.target || '_self'
27428    }, hookMyCjRoute.getAProps(threeMenu.route), {
27429      "data-gtag-element": (0,gtag/* toGtagElement */.l)(threeMenu.name),
27430      onClick: function onClick(e) {
27431        var _a, _b;
27432        if (interceptExtensionMenuClick(e, threeMenu)) return;
27433        (_b = (_a = hookMyCjRoute.getAProps(threeMenu.route)).onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);
27434      }
27435    }), threeMenu.nameTrans())));
27436  }))));
27437};
27438/* harmony default export */ const MenuCollapsed_MenuItem = (MenuItem_MenuItem);
27439// EXTERNAL MODULE: ./src/common/cj-href.ts
27440var cj_href = __webpack_require__(84963);
27441// EXTERNAL MODULE: ./src/components/CjHeader/hooks/use-parent-platform.ts
27442var use_parent_platform = __webpack_require__(6925);
27443// EXTERNAL MODULE: ./src/common/oss-controller.ts
27444var oss_controller = __webpack_require__(44190);
27445// EXTERNAL MODULE: ./src/components/CjHeader/services.ts
27446var services = __webpack_require__(62934);
27447// EXTERNAL MODULE: ./src/components/CjHeader/const/show-authorize-list.ts
27448var show_authorize_list = __webpack_require__(84266);
27449;// ./src/components/CjHeader/const/show-authorize-all-list.ts
27450var show_authorize_all_list_assign = undefined && undefined.__assign || function () {
27451  show_authorize_all_list_assign = Object.assign || function (t) {
27452    for (var s, i = 1, n = arguments.length; i < n; i++) {
27453      s = arguments[i];
27454      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
27455    }
27456    return t;
27457  };
27458  return show_authorize_all_list_assign.apply(this, arguments);
27459};
27460var __rest = undefined && undefined.__rest || function (s, e) {
27461  var t = {};
27462  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
27463  if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
27464    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
27465  }
27466  return t;
27467};
27468
27469var mabang = show_authorize_list/* default */.A.mabang,
27470  otherShowAuthorizeList = __rest(show_authorize_list/* default */.A, ["mabang"]);
27471/* harmony default export */ const show_authorize_all_list = (show_authorize_all_list_assign(show_authorize_all_list_assign({}, otherShowAuthorizeList), {
27472  others: {
27473    Title: 'Others',
27474    value: 'others',
27475    otherValue: [],
27476    isAuthor: true,
27477    isShow: true
27478  },
27479  mabang: mabang
27480}));
27481// EXTERNAL MODULE: ../../node_modules/js-cookie/dist/js.cookie.mjs
27482var js_cookie = __webpack_require__(3478);
27483// EXTERNAL MODULE: ./src/common/platform-show.ts
27484var platform_show = __webpack_require__(37597);
27485;// ./src/components/Menu/bar.config.cf.ts
27486var bar_config_cf_assign = undefined && undefined.__assign || function () {
27487  bar_config_cf_assign = Object.assign || function (t) {
27488    for (var s, i = 1, n = arguments.length; i < n; i++) {
27489      s = arguments[i];
27490      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
27491    }
27492    return t;
27493  };
27494  return bar_config_cf_assign.apply(this, arguments);
27495};
27496var _a, _b;
27497
27498
27499var isNewUser = ((_a = js_cookie/* default */.A.get('SHOWMESSAGE')) === null || _a === void 0 ? void 0 : _a.indexOf('N')) > -1 || !js_cookie/* default */.A.get('token');
27500var isWarehouseOperationVideoUser = function isWarehouseOperationVideoUser() {
27501  return true;
27502};
27503var hideMyQuotationMenu = function hideMyQuotationMenu() {
27504  var _a, _b;
27505  var flag = true;
27506  if (typeof window !== 'undefined') {
27507    var cjNum = (_a = window === null || window === void 0 ? void 0 : window.loginInfoController) === null || _a === void 0 ? void 0 : _a.info('num');
27508    var users = ((_b = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _b === void 0 ? void 0 : _b.data('my-quotation-users')) || [];
27509    if (!users.includes('CJ10001')) {
27510      users.push('CJ10001');
27511    }
27512    flag = !users.includes(cjNum);
27513  }
27514  return flag;
27515};
27516var menus = [{
27517  name: 'Orders',
27518  nameTrans: function nameTrans() {
27519    return "".concat(window.i18next.t("common-mycj-menu-3pl-orders", 'Orders'));
27520  },
27521  iconclass: 'bianzu41',
27522  active: false,
27523  code: 'mycj_orders',
27524  childs: [{
27525    name: 'Sales Orders',
27526    nameTrans: function nameTrans() {
27527      return "".concat(window.i18next.t("common-mycj-menu-3pl-sales-orders", 'Sales Orders'));
27528    },
27529    active: false,
27530    code: 'mycj_sales_orders',
27531    route: '/mine/dropshipping/orderList?orderType=3&childType=1'
27532  }, {
27533    name: 'Inventory Orders',
27534    nameTrans: function nameTrans() {
27535      return "".concat(window.i18next.t("common-mycj-menu-3pl-inventory-orders", 'Inventory Orders'));
27536    },
27537    active: false,
27538    code: 'mycj_inventory_orders',
27539    route: '/mine/purchase/purchaseList?orderType=2'
27540  }]
27541}, {
27542  name: 'Fulfillment',
27543  nameTrans: function nameTrans() {
27544    return "".concat(window.i18next.t("common-mycj-menu-3pl-orders-fulfillment", 'Fulfillment Tracking'));
27545  },
27546  iconclass: 'lvyue',
27547  active: false,
27548  code: 'mycj_orders_fulfillment',
27549  childs: [{
27550    name: 'Fulfillment Status',
27551    nameTrans: function nameTrans() {
27552      return "".concat(window.i18next.t("common-mycj-menu-3pl-fulfillment-status", 'Fulfillment Status'));
27553    },
27554    code: 'mycj_orders_tracking',
27555    route: '/mine/orderTracing/list',
27556    active: false
27557  }, {
27558    name: 'Undelivered Orders',
27559    nameTrans: function nameTrans() {
27560      return "".concat(window.i18next.t("common-mycj-menu-3pl-undelivered-orders", 'Undelivered Orders'));
27561    },
27562    code: 'mycj_undelivered_orders',
27563    route: '/mine/undeliveredOrder',
27564    active: false
27565  }, {
27566    name: 'Disputes',
27567    nameTrans: function nameTrans() {
27568      return "".concat(window.i18next.t("common-mycj-menu-3pl-disputes", 'Disputes'));
27569    },
27570    code: 'mycj_disputes',
27571    route: '/mine/dispute/list',
27572    active: false
27573  }]
27574}, {
27575  name: 'Products',
27576  nameTrans: function nameTrans() {
27577    return "".concat(window.i18next.t("common-mycj-menu-3pl-products", 'Products'));
27578  },
27579  iconclass: 'bianzu62',
27580  active: false,
27581  code: 'mycj_products',
27582  childs: [{
27583    name: 'My Products',
27584    nameTrans: function nameTrans() {
27585      return "".concat(window.i18next.t("common-mycj-menu-3pl-my-products", 'My Products'));
27586    },
27587    code: 'mycj_3pl_products',
27588    route: '/my.html#/products-connection/goods',
27589    active: false
27590  }, {
27591    name: 'Store Products',
27592    nameTrans: function nameTrans() {
27593      return "".concat(window.i18next.t("common-mycj-menu-3pl-store-products", 'Store Products'));
27594    },
27595    code: 'mycj_store_products',
27596    route: '/mine/products/connection',
27597    active: false,
27598    tip: function tip() {
27599      return window.i18next.t("common-mycj-menu-3pl-store-products-tip", 'Check here for your store products, where you can make product connections.');
27600    }
27601  }, {
27602    name: 'Custom Packaging',
27603    nameTrans: function nameTrans() {
27604      return "".concat(window.i18next.t("common-mycj-menu-3pl-custom-packaging", 'Custom Packaging'));
27605    },
27606    code: 'mycj_custom_packaging',
27607    route: '/my.html#/regular-packaging',
27608    active: false,
27609    tip: function tip() {
27610      return window.i18next.t("common-mycj-menu-3pl-custom-packaging-tip", 'Purchase or design packaging and connect packages with your products.');
27611    }
27612  }]
27613}, {
27614  name: 'Inventory',
27615  nameTrans: function nameTrans() {
27616    return "".concat(window.i18next.t("common-mycj-menu-3pl-inventory", 'Inventory'));
27617  },
27618  iconclass: 'shouyecangku1',
27619  active: false,
27620  code: 'mycj_products',
27621  childs: [{
27622    name: 'My Inventory',
27623    nameTrans: function nameTrans() {
27624      return "".concat(window.i18next.t("common-mycj-menu-3pl-my-inventory", 'My Inventory'));
27625    },
27626    code: 'mycj_my_inventory',
27627    route: '/mine/myInventoryNew/productInventory',
27628    active: false,
27629    tip: function tip() {
27630      return window.i18next.t("common-mycj-menu-3pl-my-inventory-tip", 'Check your inventory here if you have brought private inventory, packaging, or deposit inventory.');
27631    }
27632  }, {
27633    name: 'Inventory Planner',
27634    nameTrans: function nameTrans() {
27635      return "".concat(window.i18next.t("common-mycj-menu-inventory-planner", 'Inventory Planner'));
27636    },
27637    code: 'mycj_inventory_planner',
27638    route: '/mine/inventoryPlanner',
27639    active: false
27640  }, {
27641    name: 'Shipment',
27642    nameTrans: function nameTrans() {
27643      return "".concat(window.i18next.t("common-mycj-menu-3pl-shipment", 'Shipment'));
27644    },
27645    code: 'mycj_3pl_shipment',
27646    route: '/mine/shipment',
27647    active: false
27648  }]
27649}, {
27650  name: 'Service',
27651  nameTrans: function nameTrans() {
27652    return "".concat(window.i18next.t("common-mycj-menu-3pl-partnership", 'Partnership'));
27653  },
27654  iconclass: 'bianzu71',
27655  active: false,
27656  code: 'mycj_service',
27657  childs: [{
27658    name: 'Credit Service',
27659    nameTrans: function nameTrans() {
27660      return "".concat(window.i18next.t("common-mycj-menu-3pl-credit-service", 'Credit Service'));
27661    },
27662    code: 'mycj_credit_service',
27663    route: '/loancredit',
27664    active: false,
27665    target: '_blank'
27666  }, {
27667    name: 'Affiliate',
27668    nameTrans: function nameTrans() {
27669      return "".concat(window.i18next.t("common-mycj-menu-3pl-affiliate", 'Affiliate'));
27670    },
27671    code: 'mycj_affiliate',
27672    route: 'https://affiliate.cjdropshipping.com/',
27673    active: false,
27674    target: '_blank'
27675  }]
27676}, {
27677  name: 'Authorization',
27678  nameTrans: function nameTrans() {
27679    return "".concat(window.i18next.t("common-mycj-menu-3pl-authorization-new", 'Apps'));
27680  },
27681  iconclass: 'dianpushouquan',
27682  active: false,
27683  special: true,
27684  code: 'mycj_authorization',
27685  childs: [bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.shopify), {
27686    nameTrans: function nameTrans() {
27687      return "".concat(window.i18next.t("common-mycj-menu-shopify"));
27688    },
27689    version: 2,
27690    active: false
27691  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.wed2c), {
27692    nameTrans: function nameTrans() {
27693      return "".concat(window.i18next.t("common-mycj-menu-wed2c"));
27694    },
27695    version: 2,
27696    active: false
27697  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.temu), {
27698    nameTrans: function nameTrans() {
27699      return "".concat(window.i18next.t("common-mycj-menu-temu"));
27700    },
27701    version: 2,
27702    type: 'authorize',
27703    active: false
27704  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.temu_us_local), {
27705    nameTrans: function nameTrans() {
27706      return "".concat(window.i18next.t("common-mycj-menu-temu-us-local"));
27707    },
27708    version: 2,
27709    type: 'authorize',
27710    active: false
27711  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.temu_certified_overseas), {
27712    nameTrans: function nameTrans() {
27713      return "".concat(window.i18next.t("common-mycj-menu-temu-certified-overseas"));
27714    },
27715    version: 2,
27716    type: 'authorize',
27717    active: false
27718  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.shein), {
27719    nameTrans: function nameTrans() {
27720      return "".concat(window.i18next.t("common-mycj-menu-shein"));
27721    },
27722    version: 2,
27723    type: 'authorize',
27724    active: false
27725  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.whop), {
27726    nameTrans: function nameTrans() {
27727      return "".concat(window.i18next.t("common-mycj-menu-whop", 'Whop'));
27728    },
27729    version: 2,
27730    type: 'authorize',
27731    active: false
27732  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.tiktok), {
27733    nameTrans: function nameTrans() {
27734      return "".concat(window.i18next.t("common-mycj-menu-tiktok"));
27735    },
27736    version: 2,
27737    type: 'authorize',
27738    active: false
27739  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.tiktok_us), {
27740    nameTrans: function nameTrans() {
27741      return "".concat(window.i18next.t("common-mycj-menu-tiktok-us"));
27742    },
27743    version: 2,
27744    type: 'authorize',
27745    active: false
27746  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.tiktok_us_cross), {
27747    nameTrans: function nameTrans() {
27748      return "".concat(window.i18next.t("common-mycj-menu-tiktok-us-cross"));
27749    },
27750    version: 2,
27751    type: 'authorize',
27752    active: false
27753  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.woocommerce), {
27754    nameTrans: function nameTrans() {
27755      return "".concat(window.i18next.t("common-mycj-menu-woocommerce"));
27756    },
27757    version: 2,
27758    type: 'authorize',
27759    active: false
27760  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.ebay), {
27761    nameTrans: function nameTrans() {
27762      return "".concat(window.i18next.t("common-mycj-menu-ebay"));
27763    },
27764    version: 2,
27765    type: 'authorize',
27766    active: false
27767  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.api), {
27768    nameTrans: function nameTrans() {
27769      return "".concat(window.i18next.t("common-mycj-menu-api"));
27770    },
27771    version: 2,
27772    type: 'authorize',
27773    active: false
27774  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.etsy), {
27775    nameTrans: function nameTrans() {
27776      return "".concat(window.i18next.t("common-mycj-menu-etsy"));
27777    },
27778    version: 2,
27779    type: 'authorize',
27780    active: false
27781  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.aliexpress), {
27782    nameTrans: function nameTrans() {
27783      return "".concat(window.i18next.t("common-mycj-menu-aliexpress"));
27784    },
27785    version: 2,
27786    type: 'authorize',
27787    active: false
27788  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.wix), {
27789    nameTrans: function nameTrans() {
27790      return "".concat(window.i18next.t("common-mycj-menu-wix"));
27791    },
27792    version: 2,
27793    type: 'authorize',
27794    active: false
27795  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.lazada), {
27796    nameTrans: function nameTrans() {
27797      return "".concat(window.i18next.t("common-mycj-menu-lazada"));
27798    },
27799    version: 2,
27800    type: 'authorize',
27801    active: false
27802  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.shopee), {
27803    nameTrans: function nameTrans() {
27804      return "".concat(window.i18next.t("common-mycj-menu-shopee"));
27805    },
27806    version: 2,
27807    type: 'authorize',
27808    active: false
27809  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.squarespace), {
27810    nameTrans: function nameTrans() {
27811      return "".concat(window.i18next.t("common-mycj-menu-squarespace"));
27812    },
27813    version: 2,
27814    type: 'authorize',
27815    active: false
27816  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.shoplazza), {
27817    nameTrans: function nameTrans() {
27818      return "".concat(window.i18next.t("common-mycj-menu-shoplazza"));
27819    },
27820    version: 2,
27821    type: 'authorize',
27822    active: false
27823  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.magento), {
27824    nameTrans: function nameTrans() {
27825      return "".concat(window.i18next.t("common-mycj-menu-magento"));
27826    },
27827    version: 2,
27828    type: 'authorize',
27829    active: false
27830  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.bigcommerce), {
27831    nameTrans: function nameTrans() {
27832      return "".concat(window.i18next.t("common-mycj-menu-bigcommerce"));
27833    },
27834    version: 2,
27835    type: 'authorize',
27836    active: false
27837  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.prestashop), {
27838    nameTrans: function nameTrans() {
27839      return "".concat(window.i18next.t("common-mycj-menu-prestashop"));
27840    },
27841    version: 2,
27842    type: 'authorize',
27843    active: false
27844  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.allvalue), {
27845    nameTrans: function nameTrans() {
27846      return "".concat(window.i18next.t("common-mycj-menu-allvalue"));
27847    },
27848    version: 2,
27849    type: 'authorize',
27850    active: false
27851  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.nuvemshop), {
27852    nameTrans: function nameTrans() {
27853      return "".concat(window.i18next.t("common-mycj-menu-nuvemshop"));
27854    },
27855    version: 2,
27856    type: 'authorize',
27857    active: false
27858  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.mercado), {
27859    nameTrans: function nameTrans() {
27860      return "".concat(window.i18next.t("common-mycj-menu-mercado"));
27861    },
27862    version: 2,
27863    type: 'authorize',
27864    active: false
27865  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.shipstation), {
27866    nameTrans: function nameTrans() {
27867      return "".concat(window.i18next.t("common-mycj-menu-shipstation"));
27868    },
27869    version: 2,
27870    type: 'authorize',
27871    active: false
27872  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.orangeconnex), {
27873    nameTrans: function nameTrans() {
27874      return "".concat(window.i18next.t("common-mycj-menu-orangeconnex"));
27875    },
27876    version: 2,
27877    type: 'authorize',
27878    active: false
27879  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORMAll */.Z8.others), {
27880    nameTrans: function nameTrans() {
27881      return "".concat(window.i18next.t("common-mycj-menu-others"));
27882    },
27883    version: 2,
27884    type: 'authorize',
27885    active: false
27886  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.mabang), {
27887    nameTrans: function nameTrans() {
27888      return "".concat(window.i18next.t("common-mycj-menu-mabang"));
27889    },
27890    version: 2,
27891    type: 'authorize',
27892    active: false
27893  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.miaoshou), {
27894    nameTrans: function nameTrans() {
27895      return "".concat(window.i18next.t("common-mycj-menu-miaoshou"));
27896    },
27897    version: 2,
27898    type: 'authorize',
27899    active: false
27900  })]
27901}, {
27902  name: "My ".concat(typeof window !== 'undefined' && ((_b = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _b === void 0 ? void 0 : _b.data('name'))),
27903  nameVal: "My CJ",
27904  nameTrans: function nameTrans() {
27905    return window.i18next.t("common-mycj-3pl-my-account", 'My Account');
27906  },
27907  iconclass: 'bianzu32',
27908  active: false,
27909  childs: [{
27910    name: 'Settings',
27911    nameTrans: function nameTrans() {
27912      return "".concat(window.i18next.t("common-mycj-menu-3pl-setting", 'Settings'));
27913    },
27914    code: 'mycj_profile',
27915    route: '/my.html#/profile/info',
27916    active: false
27917  }, {
27918    name: 'Ticket',
27919    nameTrans: function nameTrans() {
27920      return "".concat(window.i18next.t("common-mycj-menu-3pl-ticket", 'Ticket'));
27921    },
27922    code: 'mycj_ticket',
27923    route: '/mine/ticket',
27924    active: false
27925  }, {
27926    name: 'Wallet',
27927    nameTrans: function nameTrans() {
27928      return "".concat(window.i18next.t("common-mycj-menu-3pl-wallet", 'Wallet'));
27929    },
27930    code: 'mycj_wallet',
27931    route: '/mine/wallet',
27932    active: false
27933  }, {
27934    name: 'Export List',
27935    nameTrans: function nameTrans() {
27936      return "".concat(window.i18next.t("common-mycj-menu-3pl-export-list", 'Export List'));
27937    },
27938    iconclass: 'liwuicon_',
27939    code: 'mycj_export_list',
27940    route: '/mine/exportList',
27941    active: false
27942  }]
27943}];
27944var menuPath = {};
27945var menuNames = {};
27946function loops(list, parent) {
27947  return (list || []).map(function (_a) {
27948    var route = _a.route,
27949      childs = _a.childs,
27950      name = _a.name,
27951      version = _a.version;
27952    var _route = route;
27953    var node = menuNames[name] = menuPath[_route] = {
27954      parent: parent,
27955      name: name,
27956      version: version,
27957      route: _route
27958    };
27959    node['childs'] = loops(childs, node);
27960    return node;
27961  });
27962}
27963function getPath(name) {
27964  var obj = menuNames[name];
27965  var arr = [];
27966  while (obj && obj.name) {
27967    if (obj.childs && obj.childs[0]) {
27968      arr.push(obj.name);
27969    } else {
27970      arr.push(obj.name);
27971    }
27972    if (!obj.parent) break;
27973    obj = obj.parent;
27974  }
27975  return arr;
27976}
27977loops(menus, null);
27978var createAuthTree = function createAuthTree() {
27979  var authMapByRoute = [];
27980  var _fun = function fun(list) {
27981    return list.map(function (l) {
27982      if (l.route && l.code) authMapByRoute.push({
27983        name: l.name,
27984        code: l.code,
27985        route: l.route
27986      });
27987      return {
27988        name: l.name,
27989        code: l.code,
27990        route: l.route,
27991        children: l.childs && _fun(l.childs)
27992      };
27993    });
27994  };
27995  return [_fun(menus), authMapByRoute];
27996};
27997/* harmony default export */ const bar_config_cf = ((/* unused pure expression or super */ null && (createAuthTree)));
27998// EXTERNAL MODULE: ./src/components/Menu/bar.config.ts
27999var bar_config = __webpack_require__(34692);
28000;// ./src/components/Menu/hooks/useShopifyUser.ts
28001
28002function useShopifyUser(server_siteCheck) {
28003  var _a, _b, _c, _d;
28004  var isQSShopify = ((_a = js_cookie/* default */.A.get('SHOWMESSAGE')) === null || _a === void 0 ? void 0 : _a.indexOf('B')) > -1;
28005  if (typeof window === 'undefined') return isQSShopify && ((_b = server_siteCheck === null || server_siteCheck === void 0 ? void 0 : server_siteCheck.isSite) === null || _b === void 0 ? void 0 : _b.call(server_siteCheck, 'QS'));
28006  return isQSShopify && ((_d = (_c = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _c === void 0 ? void 0 : _c.isSite) === null || _d === void 0 ? void 0 : _d.call(_c, 'QS'));
28007}
28008// EXTERNAL MODULE: ./src/common/store.ts
28009var store = __webpack_require__(4703);
28010;// ./src/components/Menu/bar.config.qs.ts
28011var bar_config_qs_assign = undefined && undefined.__assign || function () {
28012  bar_config_qs_assign = Object.assign || function (t) {
28013    for (var s, i = 1, n = arguments.length; i < n; i++) {
28014      s = arguments[i];
28015      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
28016    }
28017    return t;
28018  };
28019  return bar_config_qs_assign.apply(this, arguments);
28020};
28021var bar_config_qs_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
28022  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
28023    if (ar || !(i in from)) {
28024      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
28025      ar[i] = from[i];
28026    }
28027  }
28028  return to.concat(ar || Array.prototype.slice.call(from));
28029};
28030var bar_config_qs_a;
28031
28032
28033
28034
28035var isFromErp = store/* default */.A.get('loginfromerp');
28036var showInventoryOrder = function showInventoryOrder() {
28037  var _a, _b;
28038  if (typeof window === 'undefined') {
28039    return false;
28040  }
28041  var inventoryUser = ((_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('inventory-user')) || [];
28042  var cjNum = (_b = window === null || window === void 0 ? void 0 : window.loginInfoController) === null || _b === void 0 ? void 0 : _b.info('num');
28043  return inventoryUser.includes(cjNum);
28044};
28045var bar_config_qs_menus = [{
28046  name: 'Products',
28047  nameTrans: function nameTrans() {
28048    return "".concat(window.i18next.t("common-mycj-menu-products"));
28049  },
28050  iconclass: 'zuocedaohangshangpin-QS',
28051  active: false,
28052  code: 'mycj_products',
28053  childs: bar_config_qs_spreadArray([{
28054    name: 'My Products',
28055    nameTrans: function nameTrans() {
28056      return "".concat(window.i18next.t("common-mycj-menu-my-products"));
28057    },
28058    code: 'mycj_my_products',
28059    route: '/mine/products/myproducts',
28060    active: false
28061  }, {
28062    name: 'Store Products',
28063    nameTrans: function nameTrans() {
28064      return "".concat(window.i18next.t("common-mycj-menu-store-products"));
28065    },
28066    code: 'mycj_store_products',
28067    route: '/mine/products/connection',
28068    active: false,
28069    tip: function tip() {
28070      return window.i18next.t("common-mycj-menu-store-products-tip");
28071    }
28072  }, {
28073    name: 'Listing Records',
28074    nameTrans: function nameTrans() {
28075      return "".concat(window.i18next.t("common-mycj-menu-listing-records"));
28076    },
28077    active: false,
28078    childs: [{
28079      name: 'Products Records',
28080      nameTrans: function nameTrans() {
28081        return "".concat(window.i18next.t("common-mycj-menu-products-records"));
28082      },
28083      route: '/my.html#/products-connection/history',
28084      code: 'mycj_products_records',
28085      active: false
28086    }, {
28087      name: 'Video Records',
28088      nameTrans: function nameTrans() {
28089        return "".concat(window.i18next.t("common-mycj-menu-video-records"));
28090      },
28091      code: 'mycj_video_list',
28092      route: '/mine/listVideos',
28093      active: false
28094    }]
28095  }], isFromErp || showInventoryOrder() ? [{
28096    name: 'My Inventory',
28097    nameTrans: function nameTrans() {
28098      return "".concat(window.i18next.t("common-mycj-menu-my-inventory"));
28099    },
28100    code: 'mycj_my_inventory',
28101    route: '/mine/myInventoryNew/productInventory',
28102    active: false,
28103    tip: function tip() {
28104      return window.i18next.t("common-mycj-menu-my-inventory-tip");
28105    }
28106  }, {
28107    name: 'Inventory Planner',
28108    nameTrans: function nameTrans() {
28109      return "".concat(window.i18next.t("common-mycj-menu-inventory-planner", 'Inventory Planner'));
28110    },
28111    code: 'mycj_inventory_planner',
28112    route: '/mine/inventoryPlanner',
28113    active: false
28114  }] : [], true)
28115}, {
28116  name: 'Orders',
28117  nameTrans: function nameTrans() {
28118    return "".concat(window.i18next.t("common-mycj-menu-orders"));
28119  },
28120  iconclass: 'zuocedaohangdingdan-QS',
28121  active: false,
28122  code: 'mycj_orders',
28123  childs: bar_config_qs_spreadArray(bar_config_qs_spreadArray([{
28124    name: 'Store Orders',
28125    nameTrans: function nameTrans() {
28126      return "".concat(window.i18next.t("common-mycj-menu-store-orders"));
28127    },
28128    active: false,
28129    code: 'mycj_store_orders',
28130    route: '/mine/dropshipping/orderList?orderType=3&childType=1'
28131  }, {
28132    name: 'Sample Orders',
28133    nameTrans: function nameTrans() {
28134      return "".concat(window.i18next.t("common-mycj-menu-sample-orders"));
28135    },
28136    active: false,
28137    code: 'mycj_sample_orders',
28138    route: '/mine/purchase/purchaseList?orderType=1'
28139  }, {
28140    name: 'Wholesale Orders',
28141    nameTrans: function nameTrans() {
28142      return "".concat(window.i18next.t("common-mycj-menu-wholesale-orders"));
28143    },
28144    active: false,
28145    code: 'mycj_wholesale_orders',
28146    route: '/mine/purchase/purchaseList?orderType=3'
28147  }], isFromErp || showInventoryOrder() ? [{
28148    name: 'Inventory Orders',
28149    nameTrans: function nameTrans() {
28150      return "".concat(window.i18next.t("common-mycj-menu-inventory-orders"));
28151    },
28152    active: false,
28153    code: 'mycj_inventory_orders',
28154    route: '/mine/purchase/purchaseList?orderType=2'
28155  }] : [], true), [{
28156    name: 'Undelivered Orders',
28157    nameTrans: function nameTrans() {
28158      return "".concat(window.i18next.t("common-mycj-menu-undelivered-orders"));
28159    },
28160    code: 'mycj_undelivered_orders',
28161    route: '/mine/undeliveredOrder',
28162    active: false
28163  }, {
28164    name: 'Disputes',
28165    nameTrans: function nameTrans() {
28166      return "".concat(window.i18next.t("common-mycj-menu-disputes"));
28167    },
28168    code: 'mycj_disputes',
28169    route: '/mine/dispute/list',
28170    active: false
28171  }], false)
28172}, {
28173  name: 'Service',
28174  nameTrans: function nameTrans() {
28175    return "".concat(window.i18next.t("common-mycj-menu-service"));
28176  },
28177  iconclass: 'zuocedaohangfuwu-QS',
28178  active: false,
28179  code: 'mycj_service',
28180  childs: bar_config_qs_spreadArray(bar_config_qs_spreadArray([], isFromErp ? [{
28181    name: '3PL Fulfillment',
28182    nameTrans: function nameTrans() {
28183      return "".concat(window.i18next.t("common-mycj-menu-3pl"));
28184    },
28185    code: 'mycj_3pl',
28186    active: false,
28187    tip: function tip() {
28188      var _a;
28189      return window.i18next.t("common-mycj-menu-3pl-tip", {
28190        siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
28191      });
28192    },
28193    childs: [{
28194      name: 'Products',
28195      nameTrans: function nameTrans() {
28196        return "".concat(window.i18next.t("common-mycj-menu-products"));
28197      },
28198      code: 'mycj_3pl_products',
28199      route: '/my.html#/products-connection/goods',
28200      active: false
28201    }, {
28202      name: 'Shipment',
28203      nameTrans: function nameTrans() {
28204        return "".concat(window.i18next.t("common-mycj-menu-shipment"));
28205      },
28206      code: 'mycj_3pl_shipment',
28207      route: '/mine/shipment',
28208      active: false
28209    }, {
28210      name: '24h Fulfillment',
28211      nameTrans: function nameTrans() {
28212        return "".concat(window.i18next.t("common-mycj-menu-24h-fulfillment", '24h Fulfillment'));
28213      },
28214      code: 'mycj_24h_fulfillment',
28215      route: '/fulfillmentservice',
28216      active: false
28217    }]
28218  }] : [], true), [{
28219    name: 'Sourcing',
28220    nameTrans: function nameTrans() {
28221      return "".concat(window.i18next.t("common-mycj-menu-sourcing"));
28222    },
28223    code: 'mycj_sourcing',
28224    route: '/mine/sourcing/list',
28225    active: false,
28226    tip: function tip() {
28227      return window.i18next.t("common-mycj-menu-sourcing-tip");
28228    }
28229  }, {
28230    name: 'Custom Packaging',
28231    nameTrans: function nameTrans() {
28232      return "".concat(window.i18next.t("common-mycj-menu-custom-packaging"));
28233    },
28234    code: 'mycj_custom_packaging',
28235    route: '/my.html#/regular-packaging',
28236    active: false,
28237    tip: function tip() {
28238      return window.i18next.t("common-mycj-menu-custom-packaging-tip");
28239    }
28240  }, {
28241    name: 'Print on Demand',
28242    nameTrans: function nameTrans() {
28243      return "".concat(window.i18next.t("common-mycj-menu-print-on-demand"));
28244    },
28245    active: false,
28246    tip: function tip() {
28247      return window.i18next.t("common-mycj-menu-print-on-demand-tip");
28248    },
28249    childs: [{
28250      name: "Buyer's Design",
28251      nameTrans: function nameTrans() {
28252        return "".concat(window.i18next.t("common-mycj-menu-buyers-design"));
28253      },
28254      iconclass: 'maijiaxinxi',
28255      code: 'mycj_buyers_design',
28256      route: '/my.html#/pod/buyer-design',
28257      active: false,
28258      tipName: 'Connected POD products in your store.'
28259    }, {
28260      name: 'Design Myself',
28261      nameTrans: function nameTrans() {
28262        return "".concat(window.i18next.t("common-mycj-menu-design-myself"));
28263      },
28264      iconclass: 'maijiazhongxin_chanpinkumingjiangku',
28265      code: 'mycj_design_myself',
28266      route: '/my.html#/pod/design-myself',
28267      active: false,
28268      tipName: 'Your designed products on CJ.'
28269    }]
28270  }], false)
28271}, {
28272  name: 'Authorization',
28273  nameTrans: function nameTrans() {
28274    return "".concat(window.i18next.t("common-mycj-menu-authorization"));
28275  },
28276  iconclass: 'zuocedaohangshouquandianpu-QS',
28277  active: false,
28278  special: true,
28279  code: 'mycj_authorization',
28280  childs: [bar_config_qs_assign(bar_config_qs_assign({}, platform_show/* PLATFORM */.i9.shopify), {
28281    nameTrans: function nameTrans() {
28282      return "".concat(window.i18next.t("common-mycj-menu-shopify"));
28283    },
28284    version: 2,
28285    active: false
28286  })]
28287}, {
28288  name: "My ".concat(typeof window !== 'undefined' && ((bar_config_qs_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || bar_config_qs_a === void 0 ? void 0 : bar_config_qs_a.data('name'))),
28289  nameVal: "My CJ",
28290  nameTrans: function nameTrans() {
28291    var _a;
28292    return window.i18next.t("common-mycj-my-site", {
28293      siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
28294    });
28295  },
28296  iconclass: 'a-zuocedaohangMYQS-QS',
28297  active: false,
28298  childs: bar_config_qs_spreadArray(bar_config_qs_spreadArray([{
28299    name: 'Profile',
28300    nameTrans: function nameTrans() {
28301      return "".concat(window.i18next.t("common-mycj-menu-profile"));
28302    },
28303    code: 'mycj_profile',
28304    route: '/my.html#/profile/info',
28305    active: false
28306  }, {
28307    name: 'Ticket',
28308    nameTrans: function nameTrans() {
28309      return "".concat(window.i18next.t("common-mycj-menu-ticket"));
28310    },
28311    code: 'mycj_ticket',
28312    route: '/mine/ticket',
28313    active: false
28314  }], !useShopifyUser() ? [{
28315    name: 'Wallet',
28316    nameTrans: function nameTrans() {
28317      return "".concat(window.i18next.t("common-mycj-menu-wallet"));
28318    },
28319    code: 'mycj_wallet',
28320    route: '/mine/wallet',
28321    active: false
28322  }] : [], true), [{
28323    name: 'Browsing History',
28324    nameTrans: function nameTrans() {
28325      return "".concat(window.i18next.t("common-mycj-menu-browsing-history"));
28326    },
28327    code: 'mycj_browsing_history',
28328    route: '/viewHistory',
28329    active: false
28330  }, {
28331    name: 'Export List',
28332    nameTrans: function nameTrans() {
28333      return "".concat(window.i18next.t("common-mycj-menu-export-list"));
28334    },
28335    iconclass: 'liwuicon_',
28336    code: 'mycj_export_list',
28337    route: '/mine/exportList',
28338    active: false
28339  }, {
28340    name: 'Sub-account',
28341    nameTrans: function nameTrans() {
28342      return "".concat(window.i18next.t("common-mycj-menu-sub-account"));
28343    },
28344    code: 'mycj_sub_account',
28345    route: '/my.html#/accountManage',
28346    active: false
28347  }, {
28348    name: 'Order-video',
28349    nameTrans: function nameTrans() {
28350      return "".concat(window.i18next.t("common-mycj-menu-order-list-video"));
28351    },
28352    code: 'mycj_order-video',
28353    route: '/mine/orderVideo',
28354    active: false,
28355    isHide: bar_config/* isWarehouseOperationVideoUser */.fO
28356  }], false)
28357}];
28358var bar_config_qs_menuPath = {};
28359var bar_config_qs_menuNames = {};
28360function bar_config_qs_loops(list, parent) {
28361  return (list || []).map(function (_a) {
28362    var route = _a.route,
28363      childs = _a.childs,
28364      name = _a.name,
28365      version = _a.version;
28366    var _route = route;
28367    var node = bar_config_qs_menuNames[name] = bar_config_qs_menuPath[_route] = {
28368      parent: parent,
28369      name: name,
28370      version: version,
28371      route: _route
28372    };
28373    node['childs'] = bar_config_qs_loops(childs, node);
28374    return node;
28375  });
28376}
28377function bar_config_qs_getPath(name) {
28378  var obj = bar_config_qs_menuNames[name];
28379  var arr = [];
28380  while (obj && obj.name) {
28381    if (obj.childs && obj.childs[0]) {
28382      arr.push(obj.name);
28383    } else {
28384      arr.push(obj.name);
28385    }
28386    if (!obj.parent) break;
28387    obj = obj.parent;
28388  }
28389  return arr;
28390}
28391bar_config_qs_loops(bar_config_qs_menus, null);
28392var bar_config_qs_createAuthTree = function createAuthTree() {
28393  var authMapByRoute = [];
28394  var _fun = function fun(list) {
28395    return list.map(function (l) {
28396      if (l.route && l.code) authMapByRoute.push({
28397        name: l.name,
28398        code: l.code,
28399        route: l.route
28400      });
28401      return {
28402        name: l.name,
28403        code: l.code,
28404        route: l.route,
28405        children: l.childs && _fun(l.childs)
28406      };
28407    });
28408  };
28409  return [_fun(bar_config_qs_menus), authMapByRoute];
28410};
28411/* harmony default export */ const bar_config_qs = ((/* unused pure expression or super */ null && (bar_config_qs_createAuthTree)));
28412;// ./src/components/CjProductDetail/common/isQs.ts
28413
28414function isQs(siteCheck) {
28415  if (siteCheck === void 0) {
28416    siteCheck = null;
28417  }
28418  if (common/* isBrowser */.Bd) return window.siteCheck.isSite('QS');
28419  return siteCheck.isSite('QS');
28420}
28421;// ./src/components/CjProductDetail/common/isAr.ts
28422
28423function isAr(siteCheck) {
28424  if (siteCheck === void 0) {
28425    siteCheck = null;
28426  }
28427  if (isBrowser) return window.siteCheck.isSite('AR');
28428  return siteCheck.isSite('AR');
28429}
28430;// ./src/components/CjProductDetail/common/isZs.ts
28431
28432function isZs(siteCheck) {
28433  if (siteCheck === void 0) {
28434    siteCheck = null;
28435  }
28436  if (isBrowser) return window.siteCheck.isSite('ZS');
28437  return siteCheck.isSite('ZS');
28438}
28439;// ./src/components/CjProductDetail/common/index.ts
28440
28441
28442
28443
28444;// ./src/components/Menu/hooks/useIsCF.ts
28445function useIsCf(server_siteCheck) {
28446  var _a, _b, _c;
28447  if (typeof window === 'undefined') return server_siteCheck ? ((_a = server_siteCheck === null || server_siteCheck === void 0 ? void 0 : server_siteCheck.data) === null || _a === void 0 ? void 0 : _a.call(server_siteCheck, 'source-name')) === '3pl' : false;
28448  return ((_c = (_b = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.call(_b, 'source-name')) === '3pl';
28449}
28450;// ./src/common/deep-clone.ts
28451function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
28452var isObject = function isObject(obj) {
28453  return obj && _typeof(obj) === 'object' && !isArray(obj);
28454};
28455var isFunction = function isFunction(obj) {
28456  return obj && typeof obj === 'function';
28457};
28458var isArray = function isArray(obj) {
28459  return obj && Array.isArray(obj);
28460};
28461var isRegExp = function isRegExp(obj) {
28462  return obj && obj instanceof RegExp;
28463};
28464var _deepClone = function deepClone(obj) {
28465  var res;
28466  if (isArray(obj)) {
28467    res = [];
28468    for (var _i = 0, obj_1 = obj; _i < obj_1.length; _i++) {
28469      var item = obj_1[_i];
28470      if ((isObject(item) || isArray(item)) && !isRegExp(item)) {
28471        res.push(_deepClone(item));
28472      } else {
28473        res.push(item);
28474      }
28475    }
28476  } else if (isObject(obj)) {
28477    res = {};
28478    var _keys = Object.keys(obj);
28479    for (var _a = 0, _keys_1 = _keys; _a < _keys_1.length; _a++) {
28480      var key = _keys_1[_a];
28481      var item = obj[key];
28482      if ((isObject(item) || isArray(item)) && !isRegExp(item)) {
28483        res[key] = _deepClone(item);
28484      } else {
28485        res[key] = item;
28486      }
28487    }
28488  }
28489  return res;
28490};
28491/* harmony default export */ const deep_clone = (_deepClone);
28492// EXTERNAL MODULE: ./src/components/Menu/hooks/useIsZS.ts
28493var useIsZS = __webpack_require__(60488);
28494// EXTERNAL MODULE: ./src/components/Menu/bar.config.zs.ts
28495var bar_config_zs = __webpack_require__(81943);
28496;// ./src/common/platforms-sort-show.ts
28497var platforms_sort_show_assign = undefined && undefined.__assign || function () {
28498  platforms_sort_show_assign = Object.assign || function (t) {
28499    for (var s, i = 1, n = arguments.length; i < n; i++) {
28500      s = arguments[i];
28501      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
28502    }
28503    return t;
28504  };
28505  return platforms_sort_show_assign.apply(this, arguments);
28506};
28507var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
28508  function adopt(value) {
28509    return value instanceof P ? value : new P(function (resolve) {
28510      resolve(value);
28511    });
28512  }
28513  return new (P || (P = Promise))(function (resolve, reject) {
28514    function fulfilled(value) {
28515      try {
28516        step(generator.next(value));
28517      } catch (e) {
28518        reject(e);
28519      }
28520    }
28521    function rejected(value) {
28522      try {
28523        step(generator["throw"](value));
28524      } catch (e) {
28525        reject(e);
28526      }
28527    }
28528    function step(result) {
28529      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
28530    }
28531    step((generator = generator.apply(thisArg, _arguments || [])).next());
28532  });
28533};
28534var __generator = undefined && undefined.__generator || function (thisArg, body) {
28535  var _ = {
28536      label: 0,
28537      sent: function sent() {
28538        if (t[0] & 1) throw t[1];
28539        return t[1];
28540      },
28541      trys: [],
28542      ops: []
28543    },
28544    f,
28545    y,
28546    t,
28547    g;
28548  return g = {
28549    next: verb(0),
28550    "throw": verb(1),
28551    "return": verb(2)
28552  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
28553    return this;
28554  }), g;
28555  function verb(n) {
28556    return function (v) {
28557      return step([n, v]);
28558    };
28559  }
28560  function step(op) {
28561    if (f) throw new TypeError("Generator is already executing.");
28562    while (g && (g = 0, op[0] && (_ = 0)), _) try {
28563      if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
28564      if (y = 0, t) op = [op[0] & 2, t.value];
28565      switch (op[0]) {
28566        case 0:
28567        case 1:
28568          t = op;
28569          break;
28570        case 4:
28571          _.label++;
28572          return {
28573            value: op[1],
28574            done: false
28575          };
28576        case 5:
28577          _.label++;
28578          y = op[1];
28579          op = [0];
28580          continue;
28581        case 7:
28582          op = _.ops.pop();
28583          _.trys.pop();
28584          continue;
28585        default:
28586          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
28587            _ = 0;
28588            continue;
28589          }
28590          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
28591            _.label = op[1];
28592            break;
28593          }
28594          if (op[0] === 6 && _.label < t[1]) {
28595            _.label = t[1];
28596            t = op;
28597            break;
28598          }
28599          if (t && _.label < t[2]) {
28600            _.label = t[2];
28601            _.ops.push(op);
28602            break;
28603          }
28604          if (t[2]) _.ops.pop();
28605          _.trys.pop();
28606          continue;
28607      }
28608      op = body.call(thisArg, _);
28609    } catch (e) {
28610      op = [6, e];
28611      y = 0;
28612    } finally {
28613      f = t = 0;
28614    }
28615    if (op[0] & 5) throw op[1];
28616    return {
28617      value: op[0] ? op[1] : void 0,
28618      done: true
28619    };
28620  }
28621};
28622var platforms_sort_show_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
28623  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
28624    if (ar || !(i in from)) {
28625      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
28626      ar[i] = from[i];
28627    }
28628  }
28629  return to.concat(ar || Array.prototype.slice.call(from));
28630};
28631
28632
28633
28634
28635
28636
28637
28638
28639
28640
28641
28642
28643
28644var EBusinessType;
28645(function (EBusinessType) {
28646  EBusinessType[EBusinessType["ERP"] = 0] = "ERP";
28647  EBusinessType[EBusinessType["CROSS"] = 1] = "CROSS";
28648})(EBusinessType || (EBusinessType = {}));
28649var PlatformSortShow = function () {
28650  function PlatformSortShow(axios) {
28651    var _a, _b, _c;
28652    this.platforms = [];
28653    this.allPlatforms = [];
28654    this.platformsResponse = [];
28655    this.showAuthorizeData = show_authorize_list/* default */.A;
28656    this.showAuthorizeAllData = show_authorize_all_list;
28657    var initialMenus = isQs() ? bar_config_qs_menus : bar_config/* menus */.T_;
28658    if ((0,useIsZS/* default */.A)()) initialMenus = bar_config_zs/* menus */.T_;
28659    if (useIsCf()) initialMenus = menus;
28660    this.platforms = ((_b = (_a = initialMenus === null || initialMenus === void 0 ? void 0 : initialMenus.find(function (ele) {
28661      return ele.name === 'Authorization';
28662    })) === null || _a === void 0 ? void 0 : _a.childs) === null || _b === void 0 ? void 0 : _b.filter(function (item) {
28663      return !['others'].includes(item.key);
28664    })) || [];
28665    this.allPlatforms = ((_c = initialMenus === null || initialMenus === void 0 ? void 0 : initialMenus.find(function (ele) {
28666      return ele.name === 'Authorization';
28667    })) === null || _c === void 0 ? void 0 : _c.childs) || [];
28668    this.axios = axios;
28669  }
28670  PlatformSortShow.prototype.handler = function () {
28671    return __awaiter(this, void 0, void 0, function () {
28672      var data, keys, platformCount, i, item;
28673      return __generator(this, function (_a) {
28674        switch (_a.label) {
28675          case 0:
28676            return [4, this.getPlatformsByUser()];
28677          case 1:
28678            data = _a.sent();
28679            if (data.length > 0) {
28680              this.platformsResponse = data === null || data === void 0 ? void 0 : data.map(function (ele) {
28681                return platforms_sort_show_assign(platforms_sort_show_assign({}, ele), platform_show/* PLATFORMAll */.Z8[ele.shopPlatformType] || {});
28682              });
28683              keys = [];
28684              platformCount = {};
28685              for (i = 0; i < data.length; i++) {
28686                item = data[i];
28687                if (this.showAuthorizeAllData[item.shopPlatformType]) {
28688                  this.showAuthorizeAllData[item.shopPlatformType].isAuthor = item.isAuthor;
28689                  this.showAuthorizeAllData[item.shopPlatformType].isShow = item.isShow;
28690                  keys.push(item.shopPlatformType);
28691                  platformCount[item.shopPlatformType] = item.count;
28692                }
28693              }
28694              this.modifiedPlatformSort(keys, data, platformCount);
28695              this.handlerFilterPlatforms();
28696            }
28697            return [2];
28698        }
28699      });
28700    });
28701  };
28702  PlatformSortShow.prototype.getPlatformsByUser = function () {
28703    return __awaiter(this, void 0, void 0, function () {
28704      var data;
28705      return __generator(this, function (_a) {
28706        switch (_a.label) {
28707          case 0:
28708            return [4, (0,services/* getAuthorizeShowList */.vG)(this.axios)];
28709          case 1:
28710            data = _a.sent();
28711            if (!data || (data === null || data === void 0 ? void 0 : data.length) == 0) return [2, []];
28712            return [2, data];
28713        }
28714      });
28715    });
28716  };
28717  PlatformSortShow.prototype.modifiedPlatformSort = function (keys, data, platformCount) {
28718    if (keys === void 0) {
28719      keys = [];
28720    }
28721    if (data === void 0) {
28722      data = [];
28723    }
28724    var oldPlatforms = platforms_sort_show_spreadArray([], this.allPlatforms, true);
28725    if (keys.length > 0) {
28726      var temp = [];
28727      var _loop_1 = function _loop_1(i) {
28728        var item = oldPlatforms.find(function (ele) {
28729          if (keys[i] == 'tiktok_us' || keys[i] == 'tiktok_us_cross') {
28730            return ele.name.toLocaleLowerCase().replaceAll('-', '_') == keys[i];
28731          }
28732          return ele.name.toLocaleLowerCase() == keys[i];
28733        });
28734        if (item) {
28735          item.count = keys[i] === 'etsy' ? 0 : platformCount[keys[i]];
28736          var userData = data.find(function (ele) {
28737            return ele.shopPlatformType == keys[i];
28738          });
28739          temp.push(platforms_sort_show_assign({
28740            businessType: userData === null || userData === void 0 ? void 0 : userData.businessType
28741          }, item));
28742        }
28743      };
28744      for (var i = 0; i < keys.length; i++) {
28745        _loop_1(i);
28746      }
28747      this.platforms = platforms_sort_show_spreadArray([], temp, true);
28748    }
28749  };
28750  PlatformSortShow.prototype.handlerFilterPlatforms = function () {
28751    var _this = this;
28752    var oldPlatforms = platforms_sort_show_spreadArray([], this.platforms, true);
28753    this.platforms = oldPlatforms.filter(function (ele) {
28754      var isShowAuthorize = isShowAuthorizeType(_this.showAuthorizeData, ele.name);
28755      return isShowAuthorize;
28756    });
28757    this.allPlatforms = oldPlatforms.filter(function (ele) {
28758      var isShowAuthorize = isShowAuthorizeType(_this.showAuthorizeAllData, ele.name);
28759      return isShowAuthorize;
28760    });
28761  };
28762  PlatformSortShow.prototype.showAppStore = function () {
28763    var _a, _b;
28764    return __awaiter(this, void 0, void 0, function () {
28765      var data, initialMenus, oldAllPlatforms, temp, _loop_2, this_1, i, shopifyIndex, shopify;
28766      return __generator(this, function (_c) {
28767        switch (_c.label) {
28768          case 0:
28769            return [4, (0,services/* getAppStoreList */.Jv)(this.axios)];
28770          case 1:
28771            data = _c.sent();
28772            if ((data === null || data === void 0 ? void 0 : data.length) > 0) {
28773              this.platformsResponse = data === null || data === void 0 ? void 0 : data.filter(function (ele) {
28774                return !!ele.isAuthor;
28775              }).map(function (ele) {
28776                return platforms_sort_show_assign(platforms_sort_show_assign({}, ele), platform_show/* PLATFORMAll */.Z8[ele.shopPlatformType] || {});
28777              });
28778              initialMenus = isQs() ? bar_config_qs_menus : bar_config/* menus */.T_;
28779              oldAllPlatforms = ((_b = (_a = deep_clone(initialMenus)) === null || _a === void 0 ? void 0 : _a.find(function (ele) {
28780                return ele.name === 'Authorization';
28781              })) === null || _b === void 0 ? void 0 : _b.childs) || [];
28782              temp = [];
28783              _loop_2 = function _loop_2(i) {
28784                var _d = data[i],
28785                  isAuthor = _d.isAuthor,
28786                  platformCode = _d.platformCode,
28787                  count = _d.count;
28788                var platformCodeLower = platformCode === null || platformCode === void 0 ? void 0 : platformCode.toLowerCase();
28789                if (this_1.showAuthorizeAllData[platformCodeLower]) {
28790                  this_1.showAuthorizeAllData[platformCodeLower].isAuthor = isAuthor;
28791                }
28792                var item = oldAllPlatforms.find(function (ele) {
28793                  return ele.key == platformCodeLower;
28794                });
28795                if (item && isAuthor) {
28796                  item.count = platformCodeLower === 'etsy' ? 0 : count;
28797                  temp.push(platforms_sort_show_assign(platforms_sort_show_assign({}, item), data[i]));
28798                }
28799              };
28800              this_1 = this;
28801              for (i = 0; i < data.length; i++) {
28802                _loop_2(i);
28803              }
28804              temp.sort(function (a, b) {
28805                if (a.installTime && b.installTime) {
28806                  return Number(a.installTime) - Number(b.installTime);
28807                }
28808                return 0;
28809              });
28810              shopifyIndex = temp.findIndex(function (ele) {
28811                return ele.key === 'shopify';
28812              });
28813              if (shopifyIndex > -1) {
28814                shopify = temp.splice(shopifyIndex, 1);
28815                temp.unshift(shopify[0]);
28816              }
28817              this.allPlatforms = platforms_sort_show_spreadArray([], temp, true);
28818            }
28819            return [2];
28820        }
28821      });
28822    });
28823  };
28824  return PlatformSortShow;
28825}();
28826/* harmony default export */ const platforms_sort_show = (PlatformSortShow);
28827;// ./src/components/Menu/MenuCollapsed/SubMenu.tsx
28828var SubMenu_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
28829  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
28830    if (ar || !(i in from)) {
28831      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
28832      ar[i] = from[i];
28833    }
28834  }
28835  return to.concat(ar || Array.prototype.slice.call(from));
28836};
28837
28838
28839
28840
28841
28842
28843
28844
28845
28846
28847
28848
28849
28850
28851
28852
28853
28854var SubMenu = function SubMenu(_a) {
28855  var _b, _c, _d;
28856  var _e;
28857  var item = _a.item,
28858    isActive = _a.isActive,
28859    isParentActive = _a.isParentActive,
28860    showAuthorizeListData = _a.showAuthorizeListData,
28861    _f = _a.isLastMenu,
28862    isLastMenu = _f === void 0 ? false : _f,
28863    openAddStore = _a.openAddStore,
28864    openServiceCenter = _a.openServiceCenter;
28865  var siteCheck = (0,use_site_check/* default */.A)();
28866  var isVip = (0,useIsVip/* default */.A)();
28867  var isCj = (0,use_parent_platform/* default */.A)().isCj;
28868  var isCJSite = siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.isSite('CJ');
28869  var isZesty = siteCheck.isSite('ZS');
28870  var _g = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)([classnames_default()(Menu_MenuCollapsed.childBox, (_b = {}, _b[Menu_MenuCollapsed.zs] = isZesty, _b))]),
28871    childClass = _g[0],
28872    setChildClass = _g[1];
28873  var hookMenuChilds = useMenuChilds({
28874    selector: '.specialMenuItem'
28875  });
28876  var hookMenusNormalChilds = useMenuChilds({
28877    selector: '.childBoxThree'
28878  });
28879  var i18next = window === null || window === void 0 ? void 0 : window.i18next;
28880  var hookMyCjRoute = (0,useMyCjReactRoute/* default */.A)();
28881  var hasChilds = item.childs && item.childs.length > 0;
28882  var leaveTimer = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef();
28883  var normalSpecial = item.special && !isCJSite;
28884  var cjSpecial = item.special && isCJSite;
28885  var getAddTop = function getAddTop(name, childs) {
28886    var _a;
28887    if (name === void 0) {
28888      name = '';
28889    }
28890    if (childs === void 0) {
28891      childs = [];
28892    }
28893    if (normalSpecial) {
28894      var hasMiaoshou = ((_a = childs.filter(function (child) {
28895        return child.key === 'miaoshou';
28896      })) === null || _a === void 0 ? void 0 : _a.length) > 0;
28897      return hasMiaoshou ? -50 : 0;
28898    }
28899    return 0;
28900  };
28901  var hideBodyScroll = function hideBodyScroll(bol) {
28902    if (bol) {
28903      document.body.style.overflow = 'hidden';
28904    } else {
28905      document.body.style.overflow = 'auto';
28906    }
28907  };
28908  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28909    className: classnames_default()(Menu_MenuCollapsed.subMenu, (_c = {}, _c[Menu_MenuCollapsed.active] = isParentActive(item.name), _c[Menu_MenuCollapsed.vip] = isVip, _c[Menu_MenuCollapsed.zs] = isZesty, _c)),
28910    onMouseEnter: function onMouseEnter(e) {
28911      leaveTimer.current && clearTimeout(leaveTimer.current);
28912      setChildClass(SubMenu_spreadArray(SubMenu_spreadArray([], childClass, true), [isLastMenu ? Menu_MenuCollapsed.lastActive : Menu_MenuCollapsed.active, cjSpecial ? Menu_MenuCollapsed.cjSpecial : ''], false));
28913      var addTop = getAddTop(item.name, item.childs);
28914      hasChilds && normalSpecial && hookMenuChilds.handlerMouseMove(e, addTop);
28915      hasChilds && !normalSpecial && hookMenusNormalChilds.handlerMouseMove(e, 0, cjSpecial);
28916      hideBodyScroll(true);
28917    },
28918    onMouseLeave: function onMouseLeave(e) {
28919      var target = e.currentTarget;
28920      leaveTimer.current = setTimeout(function () {
28921        setChildClass(SubMenu_spreadArray([], childClass.filter(function (_) {
28922          return _ !== Menu_MenuCollapsed.active;
28923        }).filter(function (_) {
28924          return _ !== Menu_MenuCollapsed.lastActive;
28925        }), true));
28926        hasChilds && normalSpecial && hookMenuChilds.handlerMouseLeave(target);
28927        hasChilds && !normalSpecial && hookMenusNormalChilds.handlerMouseLeave(target);
28928      }, 200);
28929      hideBodyScroll(false);
28930    }
28931  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28932    className: classnames_default()(Menu_MenuCollapsed.box, (_d = {}, _d[Menu_MenuCollapsed.zs] = isZesty, _d)),
28933    onClick: function onClick() {
28934      if (!hasChilds) {
28935        if (hookMyCjRoute.canUseNewMyCjRouteJump(item.route)) {
28936          return hookMyCjRoute.changeRoute(item.route);
28937        }
28938        var _href = (0,common/* getRouteHref */.hQ)(item);
28939        location.href = isCj ? _href : (0,cj_href/* cjHref */.F)(_href);
28940      }
28941    },
28942    "data-route": item.name,
28943    "data-gtag-element": (0,gtag/* toGtagElement */.l)(item.name)
28944  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
28945    type: item.iconclass,
28946    className: Menu_MenuCollapsed.icon
28947  })), !isZesty && /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28948    className: Menu_MenuCollapsed.activeLeftLine
28949  }), !hasChilds && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28950    className: Menu_MenuCollapsed.fixedTitle
28951  }, item.nameTrans(), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28952    className: Menu_MenuCollapsed.arrow
28953  }))), hasChilds && !normalSpecial && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28954    className: classnames_default()(childClass.join(' '), 'childBoxThree')
28955  }, item.special && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28956    className: Menu_MenuCollapsed.childItem,
28957    onClick: openAddStore,
28958    "data-gtag-element": "install_app"
28959  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28960    className: "".concat(Menu_MenuCollapsed.childItemBox, " ").concat(Menu_MenuCollapsed.addStoreBox)
28961  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
28962    className: Menu_MenuCollapsed.name
28963  }, i18next === null || i18next === void 0 ? void 0 : i18next.t('common-mycj-menu-install-app', 'Install App')), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28964    className: Menu_MenuCollapsed.addIcon
28965  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
28966    type: "jiahao1"
28967  }))))), item.name === 'Service' && openServiceCenter && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28968    className: Menu_MenuCollapsed.childItem,
28969    onClick: openServiceCenter,
28970    "data-gtag-element": "subscribe_service"
28971  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28972    className: "".concat(Menu_MenuCollapsed.childItemBox, " ").concat(Menu_MenuCollapsed.addStoreBox)
28973  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
28974    className: Menu_MenuCollapsed.name
28975  }, i18next === null || i18next === void 0 ? void 0 : i18next.t('common-mycj-menu-subscribe-service', 'Subscribe Service')), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28976    className: Menu_MenuCollapsed.addIcon
28977  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
28978    type: "jiahao1"
28979  }))))), item.childs.map(function (childMenu) {
28980    if (childMenu.isDivider) {
28981      return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28982        key: childMenu.name,
28983        className: Menu_MenuCollapsed.menuDivider
28984      });
28985    }
28986    if (typeof childMenu.isHide === 'function' ? childMenu.isHide() : childMenu.isHide) return null;
28987    if (!siteCheck.isShow("mycj-menu-".concat(item.nameVal || item.name, "-").concat(childMenu.name))) return null;
28988    return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(MenuCollapsed_MenuItem, {
28989      key: childMenu.name,
28990      childMenu: childMenu,
28991      isActive: isActive,
28992      showAuthorizeListData: showAuthorizeListData,
28993      isSpecial: item.special
28994    });
28995  }))), hasChilds && normalSpecial && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28996    className: classnames_default()(Menu_MenuCollapsed.specialMenuItem, 'specialMenuItem')
28997  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(MultipleMenuItem/* default */.A, {
28998    list: (_e = item.childs) === null || _e === void 0 ? void 0 : _e.map(function (item) {
28999      return {
29000        key: item.key,
29001        name: item.nameTrans(),
29002        imageUrl: oss_controller/* default */.Ay.join((0,oss_controller/* createPlatform */.Q_)(String(item.imageName || item.name).toLocaleLowerCase())),
29003        count: item.count,
29004        link: isCj ? item.route : (0,cj_href/* cjHref */.F)(item.route),
29005        isActive: isActive(item.name),
29006        isShow: useIsShowOrangeConnex(item.name) && isShowAuthorizeType(showAuthorizeListData, item.name) && useIsShowMiaoshou(item.name, siteCheck),
29007        isErpPlatform: item.businessType === EBusinessType.ERP
29008      };
29009    })
29010  }))));
29011};
29012/* harmony default export */ const MenuCollapsed_SubMenu = (SubMenu);
29013// EXTERNAL MODULE: ./src/components/Menu/assets/nav-bg.png
29014var nav_bg = __webpack_require__(79328);
29015;// ./src/components/Menu/MenuCollapsed/index.tsx
29016
29017
29018
29019
29020
29021
29022var MenuCollapsed = function MenuCollapsed(_a) {
29023  var _b;
29024  var isActive = _a.isActive,
29025    isParentActive = _a.isParentActive,
29026    showAuthorizeListData = _a.showAuthorizeListData,
29027    menus = _a.menus,
29028    openAddStore = _a.openAddStore,
29029    openServiceCenter = _a.openServiceCenter;
29030  var siteCheck = (0,use_site_check/* default */.A)();
29031  var isZesty = siteCheck.isSite('ZS');
29032  var menuCollapsedStyle = {
29033    backgroundImage: "url(".concat(siteCheck.data('menu-bg-image') || nav_bg/* default */.A, ")")
29034  };
29035  if (isZesty) {
29036    menuCollapsedStyle = {
29037      backgroundColor: '#fff'
29038    };
29039  }
29040  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
29041    className: classnames_default()(Menu_MenuCollapsed.menuCollapsed, (_b = {}, _b[Menu_MenuCollapsed.zs] = isZesty, _b)),
29042    style: menuCollapsedStyle
29043  }, menus.map(function (menu, i) {
29044    if (!siteCheck.isShow("mycj-menu-".concat(menu.nameVal || menu.name))) return null;
29045    return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(MenuCollapsed_SubMenu, {
29046      key: menu.name,
29047      item: menu,
29048      isActive: isActive,
29049      isParentActive: isParentActive,
29050      showAuthorizeListData: showAuthorizeListData,
29051      isLastMenu: i === menus.length - 1,
29052      openAddStore: openAddStore,
29053      openServiceCenter: openServiceCenter
29054    });
29055  }));
29056};
29057/* harmony default export */ const components_Menu_MenuCollapsed = (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().memo(MenuCollapsed));
29058// EXTERNAL MODULE: ./src/components/Menu/index.less
29059var Menu = __webpack_require__(65555);
29060// EXTERNAL MODULE: ../../node_modules/js-base64/base64.mjs
29061var base64 = __webpack_require__(93584);
29062;// ./src/components/Menu/bar.config.qk.ts
29063var bar_config_qk_assign = undefined && undefined.__assign || function () {
29064  bar_config_qk_assign = Object.assign || function (t) {
29065    for (var s, i = 1, n = arguments.length; i < n; i++) {
29066      s = arguments[i];
29067      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
29068    }
29069    return t;
29070  };
29071  return bar_config_qk_assign.apply(this, arguments);
29072};
29073var bar_config_qk_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
29074  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
29075    if (ar || !(i in from)) {
29076      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
29077      ar[i] = from[i];
29078    }
29079  }
29080  return to.concat(ar || Array.prototype.slice.call(from));
29081};
29082var bar_config_qk_a, bar_config_qk_b, _c;
29083
29084
29085
29086
29087
29088
29089var bar_config_qk_isFromErp = store/* default */.A.get('loginfromerp');
29090var isShowProducts = (0,common/* isSafeUser */.dn)() || bar_config_qk_isFromErp;
29091var isShowSourcingAndStoreProducts = function isShowSourcingAndStoreProducts() {
29092  var testUserIds = ['QK2522152', 'QK3056156'];
29093  var specialUserIds = bar_config_qk_spreadArray(['QK37757', 'QK3156419'], testUserIds, true);
29094  return login_info_controller/* default */.A.info('num') && specialUserIds.includes(login_info_controller/* default */.A.info('num'));
29095};
29096var menus1 = bar_config_qk_spreadArray(bar_config_qk_spreadArray(bar_config_qk_spreadArray(bar_config_qk_spreadArray([{
29097  name: 'Find Products',
29098  nameTrans: function nameTrans() {
29099    return "".concat(window.i18next.t("common-mycj-menu-find-products"));
29100  },
29101  iconclass: 'cedaohang-soupin',
29102  active: false,
29103  childs: [],
29104  route: '/home.html'
29105}, {
29106  name: 'Orders Creation',
29107  nameTrans: function nameTrans() {
29108    return "".concat(window.i18next.t("common-mycj-menu-orders-creation"));
29109  },
29110  iconclass: 'qk_chuangjiandingdan',
29111  route: '/mine/dropshipping/untreatedOrder/CreateOrder',
29112  active: false,
29113  childs: []
29114}], isShowProducts ? [{
29115  name: 'Products',
29116  nameTrans: function nameTrans() {
29117    return "".concat(window.i18next.t("common-mycj-menu-products"));
29118  },
29119  iconclass: 'zuocedaohangshangpin-QS',
29120  active: false,
29121  childs: bar_config_qk_spreadArray(bar_config_qk_spreadArray(bar_config_qk_spreadArray([], bar_config_qk_isFromErp ? [{
29122    name: 'Added Products',
29123    nameTrans: function nameTrans() {
29124      return "".concat(window.i18next.t("common-mycj-menu-added-products", 'Added Products'));
29125    },
29126    code: 'mycj_my_products',
29127    route: '/mine/products/myproducts',
29128    active: false
29129  }] : [], true), bar_config_qk_isFromErp || isShowSourcingAndStoreProducts() ? [{
29130    name: 'Store Products',
29131    nameTrans: function nameTrans() {
29132      return "".concat(window.i18next.t("common-mycj-menu-store-products"));
29133    },
29134    iconclass: 'guanlian',
29135    code: 'mycj_store_products',
29136    route: '/mine/products/connection',
29137    active: false,
29138    childs: []
29139  }] : [], true), (0,common/* isSafeUser */.dn)() ? [{
29140    name: 'My Inventory',
29141    nameTrans: function nameTrans() {
29142      return "".concat(window.i18next.t("common-mycj-menu-my-inventory"));
29143    },
29144    iconclass: 'a-qk_OrdersPicking',
29145    code: 'mycj_my_inventory',
29146    route: '/mine/myInventoryNew/productInventory',
29147    active: false,
29148    childs: []
29149  }, {
29150    name: 'Inventory Planner',
29151    nameTrans: function nameTrans() {
29152      return "".concat(window.i18next.t("common-mycj-menu-inventory-planner", 'Inventory Planner'));
29153    },
29154    code: 'mycj_inventory_planner',
29155    route: '/mine/inventoryPlanner',
29156    active: false
29157  }] : [], true)
29158}] : [], true), [{
29159  name: 'Orders',
29160  nameTrans: function nameTrans() {
29161    return "".concat(window.i18next.t("common-mycj-menu-orders"));
29162  },
29163  iconclass: 'bianzu41',
29164  active: false,
29165  code: 'mycj_orders',
29166  childs: bar_config_qk_spreadArray(bar_config_qk_spreadArray([{
29167    name: 'Store Orders',
29168    nameTrans: function nameTrans() {
29169      return "".concat(window.i18next.t("common-mycj-menu-store-orders"));
29170    },
29171    active: false,
29172    code: 'mycj_store_orders',
29173    route: '/mine/dropshipping/orderList?orderType=3&childType=1'
29174  }], (0,common/* isSafeUser */.dn)() ? [{
29175    name: 'Inventory Orders',
29176    nameTrans: function nameTrans() {
29177      return "".concat(window.i18next.t("common-mycj-menu-inventory-orders"));
29178    },
29179    active: false,
29180    code: 'mycj_inventory_orders',
29181    route: '/mine/purchase/purchaseList?orderType=2'
29182  }] : [], true), [{
29183    name: 'Undelivered Orders',
29184    nameTrans: function nameTrans() {
29185      return "".concat(window.i18next.t("common-mycj-menu-undelivered-orders"));
29186    },
29187    code: 'mycj_undelivered_orders',
29188    route: '/mine/undeliveredOrder',
29189    active: false
29190  }, {
29191    name: 'Disputes',
29192    nameTrans: function nameTrans() {
29193      return "".concat(window.i18next.t("common-mycj-menu-disputes"));
29194    },
29195    code: 'mycj_disputes',
29196    route: '/mine/dispute/list',
29197    active: false
29198  }], false)
29199}], false), (0,common/* isSafeUser */.dn)() ? [{
29200  name: 'Service',
29201  nameTrans: function nameTrans() {
29202    return "".concat(window.i18next.t("common-mycj-menu-service"));
29203  },
29204  iconclass: 'bianzu71',
29205  active: false,
29206  code: 'mycj_service',
29207  childs: bar_config_qk_spreadArray(bar_config_qk_spreadArray([], isShowSourcingAndStoreProducts() ? [{
29208    name: 'Sourcing',
29209    nameTrans: function nameTrans() {
29210      return "".concat(window.i18next.t("common-mycj-menu-sourcing"));
29211    },
29212    code: 'mycj_sourcing',
29213    route: '/mine/sourcing/list',
29214    active: false,
29215    tip: function tip() {
29216      return window.i18next.t("common-mycj-menu-sourcing-tip");
29217    }
29218  }] : [], true), [{
29219    name: 'Custom Packaging',
29220    nameTrans: function nameTrans() {
29221      return "".concat(window.i18next.t("common-mycj-menu-custom-packaging"));
29222    },
29223    code: 'mycj_custom_packaging',
29224    route: '/my.html#/regular-packaging',
29225    active: false,
29226    tip: function tip() {
29227      return window.i18next.t("common-mycj-menu-custom-packaging-tip");
29228    }
29229  }, {
29230    name: '3PL Fulfillment',
29231    nameTrans: function nameTrans() {
29232      return "".concat(window.i18next.t("common-mycj-menu-3pl"));
29233    },
29234    active: false,
29235    tip: function tip() {
29236      var _a;
29237      return window.i18next.t("common-mycj-menu-3pl-tip", {
29238        siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
29239      });
29240    },
29241    childs: [{
29242      name: 'Products',
29243      nameTrans: function nameTrans() {
29244        return "".concat(window.i18next.t("common-mycj-menu-products"));
29245      },
29246      code: 'mycj_3pl_products',
29247      route: '/my.html#/products-connection/goods',
29248      active: false
29249    }, {
29250      name: 'Shipment',
29251      nameTrans: function nameTrans() {
29252        return "".concat(window.i18next.t("common-mycj-menu-shipment"));
29253      },
29254      code: 'mycj_3pl_shipment',
29255      route: '/mine/shipment',
29256      active: false
29257    }]
29258  }], false)
29259}] : [], true), [{
29260  name: "My ".concat(typeof window !== 'undefined' && ((bar_config_qk_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || bar_config_qk_a === void 0 ? void 0 : bar_config_qk_a.data('name'))),
29261  nameVal: "My CJ",
29262  nameTrans: function nameTrans() {
29263    var _a;
29264    return window.i18next.t("common-mycj-my-site", {
29265      siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
29266    });
29267  },
29268  iconclass: 'bianzu32',
29269  active: false,
29270  childs: bar_config_qk_spreadArray(bar_config_qk_spreadArray([{
29271    name: 'Dashboard',
29272    nameTrans: function nameTrans() {
29273      return "".concat(window.i18next.t("common-mycj-menu-dashboard"));
29274    },
29275    code: 'mycj_dashboard',
29276    route: '/my.html#/dashboard',
29277    active: false,
29278    isNew: true
29279  }, {
29280    name: 'Profile',
29281    nameTrans: function nameTrans() {
29282      return "".concat(window.i18next.t("common-mycj-menu-profile"));
29283    },
29284    code: 'mycj_profile',
29285    route: '/my.html#/profile/info',
29286    active: false
29287  }], login_info_controller/* default */.A.info('num') === 'QK3156419' ? [{
29288    name: 'Ticket',
29289    nameTrans: function nameTrans() {
29290      return "".concat(window.i18next.t("common-mycj-menu-ticket"));
29291    },
29292    code: 'mycj_ticket',
29293    route: '/mine/ticket',
29294    active: false
29295  }] : [], true), [{
29296    name: 'Wallet',
29297    nameTrans: function nameTrans() {
29298      return "".concat(window.i18next.t("common-mycj-menu-wallet"));
29299    },
29300    code: 'mycj_wallet',
29301    route: '/mine/wallet',
29302    active: false
29303  }, {
29304    name: 'Export List',
29305    nameTrans: function nameTrans() {
29306      return "".concat(window.i18next.t("common-mycj-menu-export-list"));
29307    },
29308    iconclass: 'liwuicon_',
29309    code: 'mycj_export_list',
29310    route: '/mine/exportList',
29311    active: false
29312  }, {
29313    name: 'Sub-account',
29314    nameTrans: function nameTrans() {
29315      return "".concat(window.i18next.t("common-mycj-menu-sub-account"));
29316    },
29317    code: 'mycj_sub_account',
29318    route: '/my.html#/accountManage',
29319    active: false
29320  }, {
29321    name: 'Order-video',
29322    nameTrans: function nameTrans() {
29323      return "".concat(window.i18next.t("common-mycj-menu-order-list-video"));
29324    },
29325    code: 'mycj_order-video',
29326    route: '/mine/orderVideo',
29327    active: false,
29328    isHide: bar_config/* isWarehouseOperationVideoUser */.fO
29329  }], false)
29330}], false);
29331var menus2 = [{
29332  name: 'Find Products',
29333  nameTrans: function nameTrans() {
29334    return "".concat(window.i18next.t("common-mycj-menu-find-products"));
29335  },
29336  iconclass: 'cedaohang-soupin',
29337  active: false,
29338  childs: [],
29339  route: '/home.html'
29340}, {
29341  name: 'Cart',
29342  nameTrans: function nameTrans() {
29343    return "".concat(window.i18next.t("common-mycj-menu-cart"));
29344  },
29345  iconclass: 'bianzu51',
29346  active: false,
29347  route: '/mine/purchase/purchaseCart',
29348  childs: [],
29349  code: 'mycj_cart'
29350}, {
29351  name: 'Products',
29352  nameTrans: function nameTrans() {
29353    return "".concat(window.i18next.t("common-mycj-menu-products"));
29354  },
29355  iconclass: 'bianzu62',
29356  active: false,
29357  code: 'mycj_products',
29358  childs: [{
29359    name: 'Added Products',
29360    nameTrans: function nameTrans() {
29361      return "".concat(window.i18next.t("common-mycj-menu-added-products", 'Added Products'));
29362    },
29363    code: 'mycj_my_products',
29364    route: '/mine/products/myproducts',
29365    active: false
29366  }, {
29367    name: 'Store Products',
29368    nameTrans: function nameTrans() {
29369      return "".concat(window.i18next.t("common-mycj-menu-store-products"));
29370    },
29371    code: 'mycj_store_products',
29372    route: '/mine/products/connection',
29373    active: false,
29374    tip: function tip() {
29375      return window.i18next.t("common-mycj-menu-store-products-tip");
29376    }
29377  }, {
29378    name: 'Listing Records',
29379    nameTrans: function nameTrans() {
29380      return "".concat(window.i18next.t("common-mycj-menu-listing-records"));
29381    },
29382    active: false,
29383    childs: [{
29384      name: 'Products Records',
29385      nameTrans: function nameTrans() {
29386        return "".concat(window.i18next.t("common-mycj-menu-products-records"));
29387      },
29388      route: '/my.html#/products-connection/history',
29389      code: 'mycj_products_records',
29390      active: false
29391    }, {
29392      name: 'Video Records',
29393      nameTrans: function nameTrans() {
29394        return "".concat(window.i18next.t("common-mycj-menu-video-records"));
29395      },
29396      code: 'mycj_video_list',
29397      route: '/mine/listVideos',
29398      active: false
29399    }]
29400  }, {
29401    name: 'My Inventory',
29402    nameTrans: function nameTrans() {
29403      return "".concat(window.i18next.t("common-mycj-menu-my-inventory"));
29404    },
29405    code: 'mycj_my_inventory',
29406    route: '/mine/myInventoryNew/productInventory',
29407    active: false,
29408    tip: function tip() {
29409      return window.i18next.t("common-mycj-menu-my-inventory-tip");
29410    }
29411  }, {
29412    name: 'Inventory Planner',
29413    nameTrans: function nameTrans() {
29414      return "".concat(window.i18next.t("common-mycj-menu-inventory-planner", 'Inventory Planner'));
29415    },
29416    code: 'mycj_inventory_planner',
29417    route: '/mine/inventoryPlanner',
29418    active: false
29419  }]
29420}, {
29421  name: 'Orders',
29422  nameTrans: function nameTrans() {
29423    return "".concat(window.i18next.t("common-mycj-menu-orders"));
29424  },
29425  iconclass: 'bianzu41',
29426  active: false,
29427  code: 'mycj_orders',
29428  childs: bar_config_qk_spreadArray(bar_config_qk_spreadArray([{
29429    name: 'Store Orders',
29430    nameTrans: function nameTrans() {
29431      return "".concat(window.i18next.t("common-mycj-menu-store-orders"));
29432    },
29433    active: false,
29434    code: 'mycj_store_orders',
29435    route: '/mine/dropshipping/orderList?orderType=3&childType=1'
29436  }, {
29437    name: 'Sample Orders',
29438    nameTrans: function nameTrans() {
29439      return "".concat(window.i18next.t("common-mycj-menu-sample-orders"));
29440    },
29441    active: false,
29442    code: 'mycj_sample_orders',
29443    route: '/mine/purchase/purchaseList?orderType=1'
29444  }, {
29445    name: 'Wholesale Orders',
29446    nameTrans: function nameTrans() {
29447      return "".concat(window.i18next.t("common-mycj-menu-wholesale-orders"));
29448    },
29449    active: false,
29450    code: 'mycj_wholesale_orders',
29451    route: '/mine/purchase/purchaseList?orderType=3'
29452  }, {
29453    name: 'Inventory Orders',
29454    nameTrans: function nameTrans() {
29455      return "".concat(window.i18next.t("common-mycj-menu-inventory-orders"));
29456    },
29457    active: false,
29458    code: 'mycj_inventory_orders',
29459    route: '/mine/purchase/purchaseList?orderType=2'
29460  }], (0,common/* isSafeUser */.dn)() ? [{
29461    name: 'Undelivered Orders',
29462    nameTrans: function nameTrans() {
29463      return "".concat(window.i18next.t("common-mycj-menu-undelivered-orders"));
29464    },
29465    code: 'mycj_undelivered_orders',
29466    route: '/mine/undeliveredOrder',
29467    active: false
29468  }, {
29469    name: 'Fulfillment Status',
29470    nameTrans: function nameTrans() {
29471      return "".concat(window.i18next.t("common-mycj-menu-fulfillment-status"));
29472    },
29473    code: 'mycj_orders_tracking',
29474    route: '/mine/orderTracing/list',
29475    active: false
29476  }] : [], true), [{
29477    name: 'Disputes',
29478    nameTrans: function nameTrans() {
29479      return "".concat(window.i18next.t("common-mycj-menu-disputes"));
29480    },
29481    code: 'mycj_disputes',
29482    route: '/mine/dispute/list',
29483    active: false
29484  }], false)
29485}, {
29486  name: 'Service',
29487  nameTrans: function nameTrans() {
29488    return "".concat(window.i18next.t("common-mycj-menu-service"));
29489  },
29490  iconclass: 'bianzu71',
29491  active: false,
29492  code: 'mycj_service',
29493  childs: bar_config_qk_spreadArray(bar_config_qk_spreadArray(bar_config_qk_spreadArray(bar_config_qk_spreadArray([], (0,common/* isSafeUser */.dn)() || isShowSourcingAndStoreProducts() ? [{
29494    name: 'Sourcing',
29495    nameTrans: function nameTrans() {
29496      return "".concat(window.i18next.t("common-mycj-menu-sourcing"));
29497    },
29498    code: 'mycj_sourcing',
29499    route: '/mine/sourcing/list',
29500    active: false,
29501    tip: function tip() {
29502      return window.i18next.t("common-mycj-menu-sourcing-tip");
29503    }
29504  }] : [], true), [{
29505    name: 'Custom Packaging',
29506    nameTrans: function nameTrans() {
29507      return "".concat(window.i18next.t("common-mycj-menu-custom-packaging"));
29508    },
29509    code: 'mycj_custom_packaging',
29510    route: '/my.html#/regular-packaging',
29511    active: false,
29512    tip: function tip() {
29513      return window.i18next.t("common-mycj-menu-custom-packaging-tip");
29514    }
29515  }], false), (0,common/* isSafeUser */.dn)() ? [{
29516    name: 'Customization',
29517    nameTrans: function nameTrans() {
29518      return "".concat(window.i18next.t("common-mycj-menu-customization"));
29519    },
29520    code: 'mycj_customization',
29521    route: '/mine/customization',
29522    active: false,
29523    tip: function tip() {
29524      var _a;
29525      return window.i18next.t("common-mycj-menu-customization-tip", {
29526        siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
29527      });
29528    }
29529  }, {
29530    name: 'Print on Demand',
29531    nameTrans: function nameTrans() {
29532      return "".concat(window.i18next.t("common-mycj-menu-print-on-demand"));
29533    },
29534    active: false,
29535    tip: function tip() {
29536      return window.i18next.t("common-mycj-menu-print-on-demand-tip");
29537    },
29538    childs: [{
29539      name: 'POD Products',
29540      nameTrans: function nameTrans() {
29541        return "".concat(window.i18next.t("common-mycj-menu-pod-products"));
29542      },
29543      route: '/printonDemand/home',
29544      active: false
29545    }, {
29546      name: "Buyer's Design",
29547      nameTrans: function nameTrans() {
29548        return "".concat(window.i18next.t("common-mycj-menu-buyers-design"));
29549      },
29550      iconclass: 'maijiaxinxi',
29551      code: 'mycj_buyers_design',
29552      route: '/my.html#/pod/buyer-design',
29553      active: false,
29554      tipName: 'Connected POD products in your store.'
29555    }, {
29556      name: 'Design Myself',
29557      nameTrans: function nameTrans() {
29558        return "".concat(window.i18next.t("common-mycj-menu-design-myself"));
29559      },
29560      iconclass: 'maijiazhongxin_chanpinkumingjiangku',
29561      code: 'mycj_design_myself',
29562      route: '/my.html#/pod/design-myself',
29563      active: false,
29564      tipName: 'Your designed products on CJ.'
29565    }]
29566  }] : [], true), [{
29567    name: '3PL Fulfillment',
29568    nameTrans: function nameTrans() {
29569      return "".concat(window.i18next.t("common-mycj-menu-3pl"));
29570    },
29571    active: false,
29572    tip: function tip() {
29573      var _a;
29574      return window.i18next.t("common-mycj-menu-3pl-tip", {
29575        siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
29576      });
29577    },
29578    childs: [{
29579      name: 'Products',
29580      nameTrans: function nameTrans() {
29581        return "".concat(window.i18next.t("common-mycj-menu-products"));
29582      },
29583      code: 'mycj_3pl_products',
29584      route: '/my.html#/products-connection/goods',
29585      active: false
29586    }, {
29587      name: 'Shipment',
29588      nameTrans: function nameTrans() {
29589        return "".concat(window.i18next.t("common-mycj-menu-shipment"));
29590      },
29591      code: 'mycj_3pl_shipment',
29592      route: '/mine/shipment',
29593      active: false
29594    }]
29595  }], false)
29596}, {
29597  name: 'Authorization',
29598  nameTrans: function nameTrans() {
29599    return "".concat(window.i18next.t("common-mycj-menu-authorization"));
29600  },
29601  iconclass: 'dianpushouquan',
29602  active: false,
29603  special: true,
29604  code: 'mycj_authorization',
29605  childs: [bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.shopify), {
29606    nameTrans: function nameTrans() {
29607      return "".concat(window.i18next.t("common-mycj-menu-shopify"));
29608    },
29609    version: 2,
29610    active: false
29611  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.wed2c), {
29612    nameTrans: function nameTrans() {
29613      return "".concat(window.i18next.t("common-mycj-menu-wed2c"));
29614    },
29615    version: 2,
29616    active: false
29617  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.temu), {
29618    nameTrans: function nameTrans() {
29619      return "".concat(window.i18next.t("common-mycj-menu-temu"));
29620    },
29621    version: 2,
29622    type: 'authorize',
29623    active: false
29624  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.temu_us_local), {
29625    nameTrans: function nameTrans() {
29626      return "".concat(window.i18next.t("common-mycj-menu-temu-us-local"));
29627    },
29628    version: 2,
29629    type: 'authorize',
29630    active: false
29631  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.temu_certified_overseas), {
29632    nameTrans: function nameTrans() {
29633      return "".concat(window.i18next.t("common-mycj-menu-temu-certified-overseas"));
29634    },
29635    version: 2,
29636    type: 'authorize',
29637    active: false
29638  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.shein), {
29639    nameTrans: function nameTrans() {
29640      return "".concat(window.i18next.t("common-mycj-menu-shein"));
29641    },
29642    version: 2,
29643    type: 'authorize',
29644    active: false
29645  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.whop), {
29646    nameTrans: function nameTrans() {
29647      return "".concat(window.i18next.t("common-mycj-menu-whop", 'Whop'));
29648    },
29649    version: 2,
29650    type: 'authorize',
29651    active: false
29652  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.tiktok), {
29653    nameTrans: function nameTrans() {
29654      return "".concat(window.i18next.t("common-mycj-menu-tiktok"));
29655    },
29656    version: 2,
29657    type: 'authorize',
29658    active: false
29659  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.tiktok_us), {
29660    nameTrans: function nameTrans() {
29661      return "".concat(window.i18next.t("common-mycj-menu-tiktok-us"));
29662    },
29663    version: 2,
29664    type: 'authorize',
29665    active: false
29666  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.tiktok_us_cross), {
29667    nameTrans: function nameTrans() {
29668      return "".concat(window.i18next.t("common-mycj-menu-tiktok-us-cross"));
29669    },
29670    version: 2,
29671    type: 'authorize',
29672    active: false
29673  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.woocommerce), {
29674    nameTrans: function nameTrans() {
29675      return "".concat(window.i18next.t("common-mycj-menu-woocommerce"));
29676    },
29677    version: 2,
29678    type: 'authorize',
29679    active: false
29680  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.ebay), {
29681    nameTrans: function nameTrans() {
29682      return "".concat(window.i18next.t("common-mycj-menu-ebay"));
29683    },
29684    version: 2,
29685    type: 'authorize',
29686    active: false
29687  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.api), {
29688    nameTrans: function nameTrans() {
29689      return "".concat(window.i18next.t("common-mycj-menu-api"));
29690    },
29691    version: 2,
29692    type: 'authorize',
29693    active: false
29694  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.etsy), {
29695    nameTrans: function nameTrans() {
29696      return "".concat(window.i18next.t("common-mycj-menu-etsy"));
29697    },
29698    version: 2,
29699    type: 'authorize',
29700    active: false
29701  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.aliexpress), {
29702    nameTrans: function nameTrans() {
29703      return "".concat(window.i18next.t("common-mycj-menu-aliexpress"));
29704    },
29705    version: 2,
29706    type: 'authorize',
29707    active: false
29708  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.wix), {
29709    nameTrans: function nameTrans() {
29710      return "".concat(window.i18next.t("common-mycj-menu-wix"));
29711    },
29712    version: 2,
29713    type: 'authorize',
29714    active: false
29715  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.lazada), {
29716    nameTrans: function nameTrans() {
29717      return "".concat(window.i18next.t("common-mycj-menu-lazada"));
29718    },
29719    version: 2,
29720    type: 'authorize',
29721    active: false
29722  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.shopee), {
29723    nameTrans: function nameTrans() {
29724      return "".concat(window.i18next.t("common-mycj-menu-shopee"));
29725    },
29726    version: 2,
29727    type: 'authorize',
29728    active: false
29729  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.squarespace), {
29730    nameTrans: function nameTrans() {
29731      return "".concat(window.i18next.t("common-mycj-menu-squarespace"));
29732    },
29733    version: 2,
29734    type: 'authorize',
29735    active: false
29736  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.shoplazza), {
29737    nameTrans: function nameTrans() {
29738      return "".concat(window.i18next.t("common-mycj-menu-shoplazza"));
29739    },
29740    version: 2,
29741    type: 'authorize',
29742    active: false
29743  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.magento), {
29744    nameTrans: function nameTrans() {
29745      return "".concat(window.i18next.t("common-mycj-menu-magento"));
29746    },
29747    version: 2,
29748    type: 'authorize',
29749    active: false
29750  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.bigcommerce), {
29751    nameTrans: function nameTrans() {
29752      return "".concat(window.i18next.t("common-mycj-menu-bigcommerce"));
29753    },
29754    version: 2,
29755    type: 'authorize',
29756    active: false
29757  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.prestashop), {
29758    nameTrans: function nameTrans() {
29759      return "".concat(window.i18next.t("common-mycj-menu-prestashop"));
29760    },
29761    version: 2,
29762    type: 'authorize',
29763    active: false
29764  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.allvalue), {
29765    nameTrans: function nameTrans() {
29766      return "".concat(window.i18next.t("common-mycj-menu-allvalue"));
29767    },
29768    version: 2,
29769    type: 'authorize',
29770    active: false
29771  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.nuvemshop), {
29772    nameTrans: function nameTrans() {
29773      return "".concat(window.i18next.t("common-mycj-menu-nuvemshop"));
29774    },
29775    version: 2,
29776    type: 'authorize',
29777    active: false
29778  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.mercado), {
29779    nameTrans: function nameTrans() {
29780      return "".concat(window.i18next.t("common-mycj-menu-mercado"));
29781    },
29782    version: 2,
29783    type: 'authorize',
29784    active: false
29785  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.shipstation), {
29786    nameTrans: function nameTrans() {
29787      return "".concat(window.i18next.t("common-mycj-menu-shipstation"));
29788    },
29789    version: 2,
29790    type: 'authorize',
29791    active: false
29792  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.orangeconnex), {
29793    nameTrans: function nameTrans() {
29794      return "".concat(window.i18next.t("common-mycj-menu-orangeconnex"));
29795    },
29796    version: 2,
29797    type: 'authorize',
29798    active: false
29799  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.mabang), {
29800    nameTrans: function nameTrans() {
29801      return "".concat(window.i18next.t("common-mycj-menu-mabang"));
29802    },
29803    version: 2,
29804    type: 'authorize',
29805    active: false
29806  })]
29807}, {
29808  name: "My ".concat(typeof window !== 'undefined' && ((bar_config_qk_b = window === null || window === void 0 ? void 0 : window.siteCheck) === null || bar_config_qk_b === void 0 ? void 0 : bar_config_qk_b.data('name'))),
29809  nameVal: "My CJ",
29810  nameTrans: function nameTrans() {
29811    var _a;
29812    return window.i18next.t("common-mycj-my-site", {
29813      siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
29814    });
29815  },
29816  iconclass: 'bianzu32',
29817  active: false,
29818  childs: [{
29819    name: 'Dashboard',
29820    nameTrans: function nameTrans() {
29821      return "".concat(window.i18next.t("common-mycj-menu-dashboard"));
29822    },
29823    code: 'mycj_dashboard',
29824    route: '/my.html#/dashboard',
29825    active: false,
29826    isNew: true
29827  }, {
29828    name: 'Profile',
29829    nameTrans: function nameTrans() {
29830      return "".concat(window.i18next.t("common-mycj-menu-profile"));
29831    },
29832    code: 'mycj_profile',
29833    route: '/my.html#/profile/info',
29834    active: false
29835  }, {
29836    name: 'Ticket',
29837    nameTrans: function nameTrans() {
29838      return "".concat(window.i18next.t("common-mycj-menu-ticket"));
29839    },
29840    code: 'mycj_ticket',
29841    route: '/mine/ticket',
29842    active: false
29843  }, {
29844    name: 'Wallet',
29845    nameTrans: function nameTrans() {
29846      return "".concat(window.i18next.t("common-mycj-menu-wallet"));
29847    },
29848    code: 'mycj_wallet',
29849    route: '/mine/wallet',
29850    active: false
29851  }, {
29852    name: 'Browsing History',
29853    nameTrans: function nameTrans() {
29854      return "".concat(window.i18next.t("common-mycj-menu-browsing-history"));
29855    },
29856    code: 'mycj_browsing_history',
29857    route: '/viewHistory',
29858    active: false
29859  }, {
29860    name: 'Export List',
29861    nameTrans: function nameTrans() {
29862      return "".concat(window.i18next.t("common-mycj-menu-export-list"));
29863    },
29864    iconclass: 'liwuicon_',
29865    code: 'mycj_export_list',
29866    route: '/mine/exportList',
29867    active: false
29868  }, {
29869    name: 'Sub-account',
29870    nameTrans: function nameTrans() {
29871      return "".concat(window.i18next.t("common-mycj-menu-sub-account"));
29872    },
29873    code: 'mycj_sub_account',
29874    route: '/my.html#/accountManage',
29875    active: false
29876  }, {
29877    name: 'Order-video',
29878    nameTrans: function nameTrans() {
29879      return "".concat(window.i18next.t("common-mycj-menu-order-list-video"));
29880    },
29881    code: 'mycj_order-video',
29882    route: '/mine/orderVideo',
29883    active: false,
29884    isHide: bar_config/* isWarehouseOperationVideoUser */.fO
29885  }]
29886}];
29887var omenus = [];
29888if (((_c = js_cookie/* default */.A.get('SHOWMESSAGE')) === null || _c === void 0 ? void 0 : _c.indexOf('Q')) > -1) {
29889  omenus = menus2;
29890} else {
29891  omenus = menus1;
29892}
29893var bar_config_qk_menus = omenus;
29894var bar_config_qk_menuPath = {};
29895var bar_config_qk_menuNames = {};
29896function bar_config_qk_loops(list, parent) {
29897  return (list || []).map(function (_a) {
29898    var route = _a.route,
29899      childs = _a.childs,
29900      name = _a.name,
29901      version = _a.version;
29902    var _route = route;
29903    var node = bar_config_qk_menuNames[name] = bar_config_qk_menuPath[_route] = {
29904      parent: parent,
29905      name: name,
29906      version: version,
29907      route: _route
29908    };
29909    node['childs'] = bar_config_qk_loops(childs, node);
29910    return node;
29911  });
29912}
29913function bar_config_qk_getPath(name) {
29914  var obj = bar_config_qk_menuNames[name];
29915  var arr = [];
29916  while (obj && obj.name) {
29917    if (obj.childs && obj.childs[0]) {
29918      arr.push(obj.name);
29919    } else {
29920      arr.push(obj.name);
29921    }
29922    if (!obj.parent) break;
29923    obj = obj.parent;
29924  }
29925  return arr;
29926}
29927bar_config_qk_loops(bar_config_qk_menus, null);
29928var bar_config_qk_createAuthTree = function createAuthTree() {
29929  var authMapByRoute = [];
29930  var _fun = function fun(list) {
29931    return list.map(function (l) {
29932      if (l.route && l.code) authMapByRoute.push({
29933        name: l.name,
29934        code: l.code,
29935        route: l.route
29936      });
29937      return {
29938        name: l.name,
29939        code: l.code,
29940        route: l.route,
29941        children: l.childs && _fun(l.childs)
29942      };
29943    });
29944  };
29945  return [_fun(bar_config_qk_menus), authMapByRoute];
29946};
29947/* harmony default export */ const bar_config_qk = ((/* unused pure expression or super */ null && (bar_config_qk_createAuthTree)));
29948;// ./src/components/Menu/bar.config.vp.ts
29949var bar_config_vp_assign = undefined && undefined.__assign || function () {
29950  bar_config_vp_assign = Object.assign || function (t) {
29951    for (var s, i = 1, n = arguments.length; i < n; i++) {
29952      s = arguments[i];
29953      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
29954    }
29955    return t;
29956  };
29957  return bar_config_vp_assign.apply(this, arguments);
29958};
29959var bar_config_vp_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
29960  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
29961    if (ar || !(i in from)) {
29962      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
29963      ar[i] = from[i];
29964    }
29965  }
29966  return to.concat(ar || Array.prototype.slice.call(from));
29967};
29968var bar_config_vp_a;
29969
29970
29971
29972var bar_config_vp_menus = [{
29973  name: 'Find Products',
29974  nameTrans: function nameTrans() {
29975    return "".concat(window.i18next.t("common-mycj-menu-find-products"));
29976  },
29977  iconclass: 'cedaohang-soupin',
29978  active: false,
29979  childs: [],
29980  route: '/home.html'
29981}, {
29982  name: 'Community',
29983  nameTrans: function nameTrans() {
29984    return "".concat(window.i18next.t("common-mycj-menu-community", 'Community'));
29985  },
29986  iconclass: 'Community',
29987  active: false,
29988  code: 'mycj_community',
29989  childs: [{
29990    name: 'Agents',
29991    nameTrans: function nameTrans() {
29992      return "".concat(window.i18next.t("common-mycj-menu-agent", 'Agents'));
29993    },
29994    active: false,
29995    route: '/agents'
29996  }]
29997}, {
29998  name: 'Cart',
29999  nameTrans: function nameTrans() {
30000    return "".concat(window.i18next.t("common-mycj-menu-cart"));
30001  },
30002  iconclass: 'bianzu51',
30003  active: false,
30004  route: '/mine/purchase/purchaseCart',
30005  childs: [],
30006  code: 'mycj_cart'
30007}, {
30008  name: 'Products',
30009  nameTrans: function nameTrans() {
30010    return "".concat(window.i18next.t("common-mycj-menu-products"));
30011  },
30012  iconclass: 'bianzu62',
30013  active: false,
30014  code: 'mycj_products',
30015  childs: [{
30016    name: 'My Products',
30017    nameTrans: function nameTrans() {
30018      return "".concat(window.i18next.t("common-mycj-menu-my-products"));
30019    },
30020    code: 'mycj_my_products',
30021    route: '/mine/products/myproducts',
30022    active: false
30023  }, {
30024    name: 'Store Products',
30025    nameTrans: function nameTrans() {
30026      return "".concat(window.i18next.t("common-mycj-menu-store-products"));
30027    },
30028    code: 'mycj_store_products',
30029    route: '/mine/products/connection',
30030    active: false,
30031    tip: function tip() {
30032      return window.i18next.t("common-mycj-menu-store-products-tip");
30033    }
30034  }, {
30035    name: 'Listing Records',
30036    nameTrans: function nameTrans() {
30037      return "".concat(window.i18next.t("common-mycj-menu-listing-records"));
30038    },
30039    active: false,
30040    childs: [{
30041      name: 'Products Records',
30042      nameTrans: function nameTrans() {
30043        return "".concat(window.i18next.t("common-mycj-menu-products-records"));
30044      },
30045      route: '/my.html#/products-connection/history',
30046      code: 'mycj_products_records',
30047      active: false
30048    }, {
30049      name: 'Video Records',
30050      nameTrans: function nameTrans() {
30051        return "".concat(window.i18next.t("common-mycj-menu-video-records"));
30052      },
30053      code: 'mycj_video_list',
30054      route: '/mine/listVideos',
30055      active: false
30056    }]
30057  }, {
30058    name: 'My Inventory',
30059    nameTrans: function nameTrans() {
30060      return "".concat(window.i18next.t("common-mycj-menu-my-inventory"));
30061    },
30062    code: 'mycj_my_inventory',
30063    route: '/mine/myInventoryNew/productInventory',
30064    active: false,
30065    tip: function tip() {
30066      return window.i18next.t("common-mycj-menu-my-inventory-tip");
30067    }
30068  }, {
30069    name: 'Inventory Planner',
30070    nameTrans: function nameTrans() {
30071      return "".concat(window.i18next.t("common-mycj-menu-inventory-planner", 'Inventory Planner'));
30072    },
30073    code: 'mycj_inventory_planner',
30074    route: '/mine/inventoryPlanner',
30075    active: false
30076  }]
30077}, {
30078  name: 'Orders',
30079  nameTrans: function nameTrans() {
30080    return "".concat(window.i18next.t("common-mycj-menu-orders"));
30081  },
30082  iconclass: 'bianzu41',
30083  active: false,
30084  code: 'mycj_orders',
30085  childs: bar_config_vp_spreadArray(bar_config_vp_spreadArray([{
30086    name: 'Store Orders',
30087    nameTrans: function nameTrans() {
30088      return "".concat(window.i18next.t("common-mycj-menu-store-orders"));
30089    },
30090    active: false,
30091    code: 'mycj_store_orders',
30092    route: '/mine/dropshipping/orderList?orderType=3&childType=1'
30093  }, {
30094    name: 'Sample Orders',
30095    nameTrans: function nameTrans() {
30096      return "".concat(window.i18next.t("common-mycj-menu-sample-orders"));
30097    },
30098    active: false,
30099    code: 'mycj_sample_orders',
30100    route: '/mine/purchase/purchaseList?orderType=1'
30101  }, {
30102    name: 'Wholesale Orders',
30103    nameTrans: function nameTrans() {
30104      return "".concat(window.i18next.t("common-mycj-menu-wholesale-orders"));
30105    },
30106    active: false,
30107    code: 'mycj_wholesale_orders',
30108    route: '/mine/purchase/purchaseList?orderType=3'
30109  }, {
30110    name: 'Inventory Orders',
30111    nameTrans: function nameTrans() {
30112      return "".concat(window.i18next.t("common-mycj-menu-inventory-orders"));
30113    },
30114    active: false,
30115    code: 'mycj_inventory_orders',
30116    route: '/mine/purchase/purchaseList?orderType=2'
30117  }], (0,common/* isSafeUser */.dn)() ? [{
30118    name: 'Undelivered Orders',
30119    nameTrans: function nameTrans() {
30120      return "".concat(window.i18next.t("common-mycj-menu-undelivered-orders"));
30121    },
30122    code: 'mycj_undelivered_orders',
30123    route: '/mine/undeliveredOrder',
30124    active: false
30125  }, {
30126    name: 'Fulfillment Status',
30127    nameTrans: function nameTrans() {
30128      return "".concat(window.i18next.t("common-mycj-menu-fulfillment-status"));
30129    },
30130    code: 'mycj_orders_tracking',
30131    route: '/mine/orderTracing/list',
30132    active: false
30133  }] : [], true), [{
30134    name: 'Disputes',
30135    nameTrans: function nameTrans() {
30136      return "".concat(window.i18next.t("common-mycj-menu-disputes"));
30137    },
30138    code: 'mycj_disputes',
30139    route: '/mine/dispute/list',
30140    active: false
30141  }], false)
30142}, {
30143  name: 'Service',
30144  nameTrans: function nameTrans() {
30145    return "".concat(window.i18next.t("common-mycj-menu-service"));
30146  },
30147  iconclass: 'bianzu71',
30148  active: false,
30149  code: 'mycj_service',
30150  childs: bar_config_vp_spreadArray(bar_config_vp_spreadArray(bar_config_vp_spreadArray(bar_config_vp_spreadArray([], (0,common/* isSafeUser */.dn)() ? [{
30151    name: 'Sourcing',
30152    nameTrans: function nameTrans() {
30153      return "".concat(window.i18next.t("common-mycj-menu-sourcing"));
30154    },
30155    code: 'mycj_sourcing',
30156    route: '/mine/sourcing/list',
30157    active: false,
30158    tip: function tip() {
30159      return window.i18next.t("common-mycj-menu-sourcing-tip");
30160    }
30161  }] : [], true), [{
30162    name: 'Custom Packaging',
30163    nameTrans: function nameTrans() {
30164      return "".concat(window.i18next.t("common-mycj-menu-custom-packaging"));
30165    },
30166    code: 'mycj_custom_packaging',
30167    route: '/my.html#/regular-packaging',
30168    active: false,
30169    tip: function tip() {
30170      return window.i18next.t("common-mycj-menu-custom-packaging-tip");
30171    }
30172  }], false), (0,common/* isSafeUser */.dn)() ? [{
30173    name: 'Customization',
30174    nameTrans: function nameTrans() {
30175      return "".concat(window.i18next.t("common-mycj-menu-customization"));
30176    },
30177    code: 'mycj_customization',
30178    route: '/mine/customization',
30179    active: false,
30180    tip: function tip() {
30181      var _a;
30182      return window.i18next.t("common-mycj-menu-customization-tip", {
30183        siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
30184      });
30185    }
30186  }, {
30187    name: 'Print on Demand',
30188    nameTrans: function nameTrans() {
30189      return "".concat(window.i18next.t("common-mycj-menu-print-on-demand"));
30190    },
30191    active: false,
30192    tip: function tip() {
30193      return window.i18next.t("common-mycj-menu-print-on-demand-tip");
30194    },
30195    childs: [{
30196      name: 'POD Products',
30197      nameTrans: function nameTrans() {
30198        return "".concat(window.i18next.t("common-mycj-menu-pod-products"));
30199      },
30200      route: '/printonDemand/home',
30201      active: false
30202    }, {
30203      name: "Buyer's Design",
30204      nameTrans: function nameTrans() {
30205        return "".concat(window.i18next.t("common-mycj-menu-buyers-design"));
30206      },
30207      iconclass: 'maijiaxinxi',
30208      code: 'mycj_buyers_design',
30209      route: '/my.html#/pod/buyer-design',
30210      active: false,
30211      tipName: 'Connected POD products in your store.'
30212    }, {
30213      name: 'Design Myself',
30214      nameTrans: function nameTrans() {
30215        return "".concat(window.i18next.t("common-mycj-menu-design-myself"));
30216      },
30217      iconclass: 'maijiazhongxin_chanpinkumingjiangku',
30218      code: 'mycj_design_myself',
30219      route: '/my.html#/pod/design-myself',
30220      active: false,
30221      tipName: 'Your designed products on CJ.'
30222    }]
30223  }] : [], true), [{
30224    name: '3PL Fulfillment',
30225    nameTrans: function nameTrans() {
30226      return "".concat(window.i18next.t("common-mycj-menu-3pl"));
30227    },
30228    active: false,
30229    tip: function tip() {
30230      var _a;
30231      return window.i18next.t("common-mycj-menu-3pl-tip", {
30232        siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
30233      });
30234    },
30235    childs: [{
30236      name: 'Products',
30237      nameTrans: function nameTrans() {
30238        return "".concat(window.i18next.t("common-mycj-menu-products"));
30239      },
30240      code: 'mycj_3pl_products',
30241      route: '/my.html#/products-connection/goods',
30242      active: false
30243    }, {
30244      name: 'Shipment',
30245      nameTrans: function nameTrans() {
30246        return "".concat(window.i18next.t("common-mycj-menu-shipment"));
30247      },
30248      code: 'mycj_3pl_shipment',
30249      route: '/mine/shipment',
30250      active: false
30251    }]
30252  }], false)
30253}, {
30254  name: 'Authorization',
30255  nameTrans: function nameTrans() {
30256    return "".concat(window.i18next.t("common-mycj-menu-authorization"));
30257  },
30258  iconclass: 'dianpushouquan',
30259  active: false,
30260  special: true,
30261  code: 'mycj_authorization',
30262  childs: [bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.shopify), {
30263    nameTrans: function nameTrans() {
30264      return "".concat(window.i18next.t("common-mycj-menu-shopify"));
30265    },
30266    version: 2,
30267    active: false
30268  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.wed2c), {
30269    nameTrans: function nameTrans() {
30270      return "".concat(window.i18next.t("common-mycj-menu-wed2c"));
30271    },
30272    version: 2,
30273    active: false
30274  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.temu), {
30275    nameTrans: function nameTrans() {
30276      return "".concat(window.i18next.t("common-mycj-menu-temu"));
30277    },
30278    version: 2,
30279    type: 'authorize',
30280    active: false
30281  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.temu_us_local), {
30282    nameTrans: function nameTrans() {
30283      return "".concat(window.i18next.t("common-mycj-menu-temu-us-local"));
30284    },
30285    version: 2,
30286    type: 'authorize',
30287    active: false
30288  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.temu_certified_overseas), {
30289    nameTrans: function nameTrans() {
30290      return "".concat(window.i18next.t("common-mycj-menu-temu-certified-overseas"));
30291    },
30292    version: 2,
30293    type: 'authorize',
30294    active: false
30295  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.shein), {
30296    nameTrans: function nameTrans() {
30297      return "".concat(window.i18next.t("common-mycj-menu-shein"));
30298    },
30299    version: 2,
30300    type: 'authorize',
30301    active: false
30302  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.whop), {
30303    nameTrans: function nameTrans() {
30304      return "".concat(window.i18next.t("common-mycj-menu-whop", 'Whop'));
30305    },
30306    version: 2,
30307    type: 'authorize',
30308    active: false
30309  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.tiktok), {
30310    nameTrans: function nameTrans() {
30311      return "".concat(window.i18next.t("common-mycj-menu-tiktok"));
30312    },
30313    version: 2,
30314    type: 'authorize',
30315    active: false
30316  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.tiktok_us), {
30317    nameTrans: function nameTrans() {
30318      return "".concat(window.i18next.t("common-mycj-menu-tiktok-us"));
30319    },
30320    version: 2,
30321    type: 'authorize',
30322    active: false
30323  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.tiktok_us_cross), {
30324    nameTrans: function nameTrans() {
30325      return "".concat(window.i18next.t("common-mycj-menu-tiktok-us-cross"));
30326    },
30327    version: 2,
30328    type: 'authorize',
30329    active: false
30330  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.woocommerce), {
30331    nameTrans: function nameTrans() {
30332      return "".concat(window.i18next.t("common-mycj-menu-woocommerce"));
30333    },
30334    version: 2,
30335    type: 'authorize',
30336    active: false
30337  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.ebay), {
30338    nameTrans: function nameTrans() {
30339      return "".concat(window.i18next.t("common-mycj-menu-ebay"));
30340    },
30341    version: 2,
30342    type: 'authorize',
30343    active: false
30344  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.api), {
30345    nameTrans: function nameTrans() {
30346      return "".concat(window.i18next.t("common-mycj-menu-api"));
30347    },
30348    version: 2,
30349    type: 'authorize',
30350    active: false
30351  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.etsy), {
30352    nameTrans: function nameTrans() {
30353      return "".concat(window.i18next.t("common-mycj-menu-etsy"));
30354    },
30355    version: 2,
30356    type: 'authorize',
30357    active: false
30358  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.aliexpress), {
30359    nameTrans: function nameTrans() {
30360      return "".concat(window.i18next.t("common-mycj-menu-aliexpress"));
30361    },
30362    version: 2,
30363    type: 'authorize',
30364    active: false
30365  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.wix), {
30366    nameTrans: function nameTrans() {
30367      return "".concat(window.i18next.t("common-mycj-menu-wix"));
30368    },
30369    version: 2,
30370    type: 'authorize',
30371    active: false
30372  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.lazada), {
30373    nameTrans: function nameTrans() {
30374      return "".concat(window.i18next.t("common-mycj-menu-lazada"));
30375    },
30376    version: 2,
30377    type: 'authorize',
30378    active: false
30379  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.shopee), {
30380    nameTrans: function nameTrans() {
30381      return "".concat(window.i18next.t("common-mycj-menu-shopee"));
30382    },
30383    version: 2,
30384    type: 'authorize',
30385    active: false
30386  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.squarespace), {
30387    nameTrans: function nameTrans() {
30388      return "".concat(window.i18next.t("common-mycj-menu-squarespace"));
30389    },
30390    version: 2,
30391    type: 'authorize',
30392    active: false
30393  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.shoplazza), {
30394    nameTrans: function nameTrans() {
30395      return "".concat(window.i18next.t("common-mycj-menu-shoplazza"));
30396    },
30397    version: 2,
30398    type: 'authorize',
30399    active: false
30400  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.magento), {
30401    nameTrans: function nameTrans() {
30402      return "".concat(window.i18next.t("common-mycj-menu-magento"));
30403    },
30404    version: 2,
30405    type: 'authorize',
30406    active: false
30407  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.bigcommerce), {
30408    nameTrans: function nameTrans() {
30409      return "".concat(window.i18next.t("common-mycj-menu-bigcommerce"));
30410    },
30411    version: 2,
30412    type: 'authorize',
30413    active: false
30414  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.prestashop), {
30415    nameTrans: function nameTrans() {
30416      return "".concat(window.i18next.t("common-mycj-menu-prestashop"));
30417    },
30418    version: 2,
30419    type: 'authorize',
30420    active: false
30421  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.allvalue), {
30422    nameTrans: function nameTrans() {
30423      return "".concat(window.i18next.t("common-mycj-menu-allvalue"));
30424    },
30425    version: 2,
30426    type: 'authorize',
30427    active: false
30428  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.nuvemshop), {
30429    nameTrans: function nameTrans() {
30430      return "".concat(window.i18next.t("common-mycj-menu-nuvemshop"));
30431    },
30432    version: 2,
30433    type: 'authorize',
30434    active: false
30435  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.mercado), {
30436    nameTrans: function nameTrans() {
30437      return "".concat(window.i18next.t("common-mycj-menu-mercado"));
30438    },
30439    version: 2,
30440    type: 'authorize',
30441    active: false
30442  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.shipstation), {
30443    nameTrans: function nameTrans() {
30444      return "".concat(window.i18next.t("common-mycj-menu-shipstation"));
30445    },
30446    version: 2,
30447    type: 'authorize',
30448    active: false
30449  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.orangeconnex), {
30450    nameTrans: function nameTrans() {
30451      return "".concat(window.i18next.t("common-mycj-menu-orangeconnex"));
30452    },
30453    version: 2,
30454    type: 'authorize',
30455    active: false
30456  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.mabang), {
30457    nameTrans: function nameTrans() {
30458      return "".concat(window.i18next.t("common-mycj-menu-mabang"));
30459    },
30460    version: 2,
30461    type: 'authorize',
30462    active: false
30463  })]
30464}, {
30465  name: "My ".concat(typeof window !== 'undefined' && ((bar_config_vp_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || bar_config_vp_a === void 0 ? void 0 : bar_config_vp_a.data('name'))),
30466  nameVal: "My CJ",
30467  nameTrans: function nameTrans() {
30468    var _a;
30469    return window.i18next.t("common-mycj-my-site", {
30470      siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('source-name')
30471    });
30472  },
30473  iconclass: 'bianzu32',
30474  active: false,
30475  childs: [{
30476    name: 'Dashboard',
30477    nameTrans: function nameTrans() {
30478      return "".concat(window.i18next.t("common-mycj-menu-dashboard"));
30479    },
30480    code: 'mycj_dashboard',
30481    route: '/my.html#/dashboard',
30482    active: false,
30483    isNew: true
30484  }, {
30485    name: 'Profile',
30486    nameTrans: function nameTrans() {
30487      return "".concat(window.i18next.t("common-mycj-menu-profile"));
30488    },
30489    code: 'mycj_profile',
30490    route: '/my.html#/profile/info',
30491    active: false
30492  }, {
30493    name: 'Ticket',
30494    nameTrans: function nameTrans() {
30495      return "".concat(window.i18next.t("common-mycj-menu-ticket"));
30496    },
30497    code: 'mycj_ticket',
30498    route: '/mine/ticket',
30499    active: false
30500  }, {
30501    name: 'Wallet',
30502    nameTrans: function nameTrans() {
30503      return "".concat(window.i18next.t("common-mycj-menu-wallet"));
30504    },
30505    code: 'mycj_wallet',
30506    route: '/mine/wallet',
30507    active: false
30508  }, {
30509    name: 'Browsing History',
30510    nameTrans: function nameTrans() {
30511      return "".concat(window.i18next.t("common-mycj-menu-browsing-history"));
30512    },
30513    code: 'mycj_browsing_history',
30514    route: '/viewHistory',
30515    active: false
30516  }, {
30517    name: 'Export List',
30518    nameTrans: function nameTrans() {
30519      return "".concat(window.i18next.t("common-mycj-menu-export-list"));
30520    },
30521    iconclass: 'liwuicon_',
30522    code: 'mycj_export_list',
30523    route: '/mine/exportList',
30524    active: false
30525  }, {
30526    name: 'Sub-account',
30527    nameTrans: function nameTrans() {
30528      return "".concat(window.i18next.t("common-mycj-menu-sub-account"));
30529    },
30530    code: 'mycj_sub_account',
30531    route: '/my.html#/accountManage',
30532    active: false
30533  }, {
30534    name: 'Order-video',
30535    nameTrans: function nameTrans() {
30536      return "".concat(window.i18next.t("common-mycj-menu-order-list-video"));
30537    },
30538    code: 'mycj_order-video',
30539    route: '/mine/orderVideo',
30540    active: false,
30541    isHide: bar_config/* isWarehouseOperationVideoUser */.fO
30542  }]
30543}];
30544var bar_config_vp_menuPath = {};
30545var bar_config_vp_menuNames = {};
30546function bar_config_vp_loops(list, parent) {
30547  return (list || []).map(function (_a) {
30548    var route = _a.route,
30549      childs = _a.childs,
30550      name = _a.name,
30551      version = _a.version;
30552    var _route = route;
30553    var node = bar_config_vp_menuNames[name] = bar_config_vp_menuPath[_route] = {
30554      parent: parent,
30555      name: name,
30556      version: version,
30557      route: _route
30558    };
30559    node['childs'] = bar_config_vp_loops(childs, node);
30560    return node;
30561  });
30562}
30563function bar_config_vp_getPath(name) {
30564  var obj = bar_config_vp_menuNames[name];
30565  var arr = [];
30566  while (obj && obj.name) {
30567    if (obj.childs && obj.childs[0]) {
30568      arr.push(obj.name);
30569    } else {
30570      arr.push(obj.name);
30571    }
30572    if (!obj.parent) break;
30573    obj = obj.parent;
30574  }
30575  return arr;
30576}
30577bar_config_vp_loops(bar_config_vp_menus, null);
30578var bar_config_vp_createAuthTree = function createAuthTree() {
30579  var authMapByRoute = [];
30580  var _fun = function fun(list) {
30581    return list.map(function (l) {
30582      if (l.route && l.code) authMapByRoute.push({
30583        name: l.name,
30584        code: l.code,
30585        route: l.route
30586      });
30587      return {
30588        name: l.name,
30589        code: l.code,
30590        route: l.route,
30591        children: l.childs && _fun(l.childs)
30592      };
30593    });
30594  };
30595  return [_fun(bar_config_vp_menus), authMapByRoute];
30596};
30597/* harmony default export */ const bar_config_vp = ((/* unused pure expression or super */ null && (bar_config_vp_createAuthTree)));
30598;// ./src/components/Menu/bar.config.th.ts
30599var bar_config_th_a, bar_config_th_b;
30600
30601
30602var bar_config_th_isNewUser = ((bar_config_th_a = js_cookie/* default */.A.get('SHOWMESSAGE')) === null || bar_config_th_a === void 0 ? void 0 : bar_config_th_a.indexOf('N')) > -1 || !js_cookie/* default */.A.get('token');
30603var bar_config_th_menus = [{
30604  name: 'Cart',
30605  nameTrans: function nameTrans() {
30606    return "".concat(window.i18next.t("common-mycj-menu-cart"));
30607  },
30608  iconclass: 'gouwuche',
30609  active: false,
30610  route: '/mine/purchase/purchaseCart?cartType=3',
30611  childs: [],
30612  code: 'mycj_cart'
30613}, {
30614  name: 'Orders',
30615  nameTrans: function nameTrans() {
30616    return "".concat(window.i18next.t("common-mycj-menu-orders"));
30617  },
30618  iconclass: 'Orders',
30619  active: false,
30620  code: 'mycj_orders',
30621  childs: [{
30622    name: 'My Orders',
30623    nameTrans: function nameTrans() {
30624      return "".concat(window.i18next.t("common-mycj-menu-my-orders", 'My Orders'));
30625    },
30626    active: false,
30627    code: 'mycj_wholesale_orders',
30628    route: '/mine/purchase/purchaseList?orderType=3'
30629  }, {
30630    name: 'Undelivered Orders',
30631    nameTrans: function nameTrans() {
30632      return "".concat(window.i18next.t("common-mycj-menu-undelivered-orders"));
30633    },
30634    code: 'mycj_undelivered_orders',
30635    route: '/mine/undeliveredOrder',
30636    active: false
30637  }, {
30638    name: 'Disputes',
30639    nameTrans: function nameTrans() {
30640      return "".concat(window.i18next.t("common-mycj-menu-disputes"));
30641    },
30642    code: 'mycj_disputes',
30643    route: '/mine/dispute/list',
30644    active: false
30645  }]
30646}, {
30647  name: "My ".concat(typeof window !== 'undefined' && ((bar_config_th_b = window === null || window === void 0 ? void 0 : window.siteCheck) === null || bar_config_th_b === void 0 ? void 0 : bar_config_th_b.data('name'))),
30648  nameVal: "My CJ",
30649  nameTrans: function nameTrans() {
30650    var _a;
30651    return window.i18next.t("common-mycj-my-site", {
30652      siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
30653    });
30654  },
30655  iconclass: 'MonTH',
30656  active: false,
30657  childs: [{
30658    name: 'Profile',
30659    nameTrans: function nameTrans() {
30660      return "".concat(window.i18next.t("common-mycj-menu-profile"));
30661    },
30662    code: 'mycj_profile',
30663    route: '/my.html#/profile/info',
30664    active: false
30665  }, {
30666    name: 'Wallet',
30667    nameTrans: function nameTrans() {
30668      return "".concat(window.i18next.t("common-mycj-menu-wallet"));
30669    },
30670    code: 'mycj_wallet',
30671    route: '/mine/wallet',
30672    active: false
30673  }, {
30674    name: 'Order-video',
30675    nameTrans: function nameTrans() {
30676      return "".concat(window.i18next.t("common-mycj-menu-order-list-video"));
30677    },
30678    code: 'mycj_order-video',
30679    route: '/mine/orderVideo',
30680    active: false,
30681    isHide: bar_config/* isWarehouseOperationVideoUser */.fO
30682  }]
30683}];
30684var bar_config_th_menuPath = {};
30685var bar_config_th_menuNames = {};
30686function bar_config_th_loops(list, parent) {
30687  return (list || []).map(function (_a) {
30688    var route = _a.route,
30689      childs = _a.childs,
30690      name = _a.name,
30691      version = _a.version,
30692      nameTrans = _a.nameTrans;
30693    var _route = route;
30694    var node = bar_config_th_menuNames[name] = bar_config_th_menuPath[_route] = {
30695      parent: parent,
30696      nameTrans: nameTrans,
30697      name: name,
30698      version: version,
30699      route: _route
30700    };
30701    node['childs'] = bar_config_th_loops(childs, node);
30702    return node;
30703  });
30704}
30705function bar_config_th_getPath(name) {
30706  var obj = bar_config_th_menuNames[name];
30707  var arr = [];
30708  while (obj && obj.name) {
30709    if (obj.childs && obj.childs[0]) {
30710      arr.push(obj.name);
30711    } else {
30712      arr.push(obj.name);
30713    }
30714    if (!obj.parent) break;
30715    obj = obj.parent;
30716  }
30717  return arr;
30718}
30719function getTransPath(name) {
30720  var obj = bar_config_th_menuNames[name];
30721  var arr = [];
30722  while (obj && obj.nameTrans) {
30723    if (obj.childs && obj.childs[0]) {
30724      arr.push(obj.nameTrans);
30725    } else {
30726      arr.push(obj.nameTrans);
30727    }
30728    if (!obj.parent) break;
30729    obj = obj.parent;
30730  }
30731  return arr;
30732}
30733bar_config_th_loops(bar_config_th_menus, null);
30734var bar_config_th_createAuthTree = function createAuthTree() {
30735  var authMapByRoute = [];
30736  var _fun = function fun(list) {
30737    return list.map(function (l) {
30738      if (l.route && l.code) authMapByRoute.push({
30739        name: l.name,
30740        code: l.code,
30741        route: l.route
30742      });
30743      return {
30744        name: l.name,
30745        code: l.code,
30746        route: l.route,
30747        children: l.childs && _fun(l.childs)
30748      };
30749    });
30750  };
30751  return [_fun(bar_config_th_menus), authMapByRoute];
30752};
30753/* harmony default export */ const bar_config_th = ((/* unused pure expression or super */ null && (bar_config_th_createAuthTree)));
30754// EXTERNAL MODULE: ./node_modules/@cckj/mf-tools/dist/index.js
30755var dist = __webpack_require__(99437);
30756;// ./src/components/Menu/hooks/useNoMenuActiveRoute.ts
30757
30758var noMenuRouteConfig = [{
30759  routes: [/\/improperProductsReport/i, /\/global-warehouses/i, /\/temu-y2-products/i, /\/ready-to-ship/i, /\/list\/(.*?)\.html/i, /\/product\//i, /\/productReport\/list/i, /\/PrintonDemand.html/i, /\/search(.*?).html/i, /\/view-more/i, /\/seller/i, /\/boards.html/i, /\/recommendations/i, /\/zone\//i],
30760  activeMenu: 'Find Products'
30761}, {
30762  routes: [/\/mine\/purchase\/purchaseConfirmation/i],
30763  activeMenu: 'Cart'
30764}, {
30765  routes: [/\/mine\/dropshipping\/orderManage\/orderDetial/i, /\/mine\/orderImport/i],
30766  activeMenu: 'Store Orders'
30767}, {
30768  routes: [/\/mine\/purchase\/detial(.*?)type=1/i, /\/mine\/dispute\/createDispute(.*?)purchaseOrderType=1/i],
30769  activeMenu: 'Sample Orders'
30770}, {
30771  routes: [/\/mine\/purchase\/detial(.*?)type=3/i, /\/mine\/dispute\/createDispute(.*?)purchaseOrderType=3/i],
30772  activeMenu: 'Wholesale Orders'
30773}, {
30774  routes: [/\/mine\/purchase\/detial(.*?)type=(2|4)/i, /\/mine\/purchase\/purchaseList(.*?)orderType=4/i],
30775  activeMenu: 'Inventory Orders'
30776}, {
30777  routes: [/\/mine\/orderTracing\/detail/i],
30778  activeMenu: 'Fulfillment Status'
30779}, {
30780  routes: [/\/mine\/sourcing\/postSourcing/i, /\/mine\/quickSourcing/i],
30781  activeMenu: 'Sourcing'
30782}, {
30783  routes: [/\/mine\/marketing\/cards/i, /\/my.html#\/all-message/i, /\/points-mall/i],
30784  activeMenu: 'Home'
30785}, {
30786  routes: [/\/viewHistory/i],
30787  activeMenu: 'Browsing History'
30788}, {
30789  routes: [/\/mine\/myInventoryNew/i, /\/mine\/myInventory\/deposit\?type=2/i, /\/mine\/myInventory\/depositBySPU\?type=2/i
30789],
30790  activeMenu: 'My Inventory'
30791}];
30792function useNoMenuActiveRoute(_a) {
30793  var setActive = _a.setActive,
30794    _b = _a.autoRun,
30795    autoRun = _b === void 0 ? true : _b;
30796  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
30797    if (!autoRun) return;
30798    noMenuRouteConfig.some(function (config) {
30799      var path = location.href;
30800      var match = config.routes.find(function (_) {
30801        return _.test(path);
30802      });
30803      if (match) {
30804        setActive(config.activeMenu);
30805      }
30806      return match;
30807    });
30808  }, []);
30809}
30810// EXTERNAL MODULE: ./src/components/CjHeader/contexts/PropsContext.ts
30811var PropsContext = __webpack_require__(44148);
30812// EXTERNAL MODULE: ./src/hook/use-is-mycj.ts
30813var use_is_mycj = __webpack_require__(71850);
30814;// ./src/components/Menu/hooks/useWindowTitle.ts
30815var useWindowTitle_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
30816  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
30817    if (ar || !(i in from)) {
30818      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
30819      ar[i] = from[i];
30820    }
30821  }
30822  return to.concat(ar || Array.prototype.slice.call(from));
30823};
30824
30825
30826
30827function useWindowTitle(_a) {
30828  var activeRoutes = _a.activeRoutes,
30829    activeTransRoutes = _a.activeTransRoutes;
30830  var siteCheck = (0,PropsContext/* useGlobalProps */.v)().siteCheck;
30831  var isMyCJPage = (0,use_is_mycj/* default */.A)().isMyCJPage;
30832  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
30833    if (activeTransRoutes && activeTransRoutes.length && isMyCJPage) {
30834      var trans = useWindowTitle_spreadArray([], activeTransRoutes, true).shift();
30835      var transTitle = trans ? trans() : '';
30836      transTitle && (document.title = transTitle);
30837      return;
30838    }
30839    if (activeRoutes.length > 0 && isMyCJPage) {
30840      var routeName = useWindowTitle_spreadArray([], activeRoutes, true).shift();
30841      if ((routeName === null || routeName === void 0 ? void 0 : routeName.toLowerCase()) === 'tiktok_us_cross') {
30842        routeName = 'TikTok Shop US (Cross Border)';
30843      } else if ((routeName === null || routeName === void 0 ? void 0 : routeName.toLowerCase()) === 'tiktok_us') {
30844        routeName = 'TikTok Shop US (Local)';
30845      } else if ((routeName === null || routeName === void 0 ? void 0 : routeName.toLowerCase()) === 'tiktok') {
30846        routeName = 'TikTok Shop (Non-US)';
30847      } else if ((routeName === null || routeName === void 0 ? void 0 : routeName.toLowerCase()) === 'temu') {
30848        routeName = 'Temu Semi-Managed';
30849      } else if ((routeName === null || routeName === void 0 ? void 0 : routeName.toLowerCase()) === 'temu_us_local') {
30850        routeName = 'Temu Local';
30851      } else if ((routeName === null || routeName === void 0 ? void 0 : routeName.toLowerCase()) === 'temu_certified_overseas') {
30852        routeName = 'Temu Cooperative Warehouse';
30853      } else if ((routeName === null || routeName === void 0 ? void 0 : routeName.toLowerCase()) === 'shein') {
30854        routeName = 'Shein Semi-Managed';
30855      }
30856      routeName && (document.title = routeName);
30857    }
30858    if (activeRoutes.length == 0 && isMyCJPage) {
30859      document.title = "My".concat(siteCheck.data('name') || 'CJ');
30860    }
30861  }, [activeRoutes]);
30862}
30863// EXTERNAL MODULE: ./src/components/Menu/hooks/useIsQk.ts
30864var useIsQk = __webpack_require__(69055);
30865// EXTERNAL MODULE: ./src/components/Menu/hooks/useIsVP.ts
30866var useIsVP = __webpack_require__(63301);
30867;// ./src/components/Menu/hooks/useActiveRoute.ts
30868function useActiveRoute_typeof(o) { "@babel/helpers - typeof"; return useActiveRoute_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, useActiveRoute_typeof(o); }
30869var useActiveRoute_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
30870  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
30871    if (ar || !(i in from)) {
30872      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
30873      ar[i] = from[i];
30874    }
30875  }
30876  return to.concat(ar || Array.prototype.slice.call(from));
30877};
30878
30879
30880
30881
30882
30883
30884
30885
30886
30887
30888
30889
30890
30891
30892
30893
30894
30895
30896
30897
30898
30899var useActiveRoute = function useActiveRoute() {
30900  var _a = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)([]),
30901    activeRoutes = _a[0],
30902    setActiveRoutes = _a[1];
30903  var _b = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)([]),
30904    activeTransRoutes = _b[0],
30905    setActiveTransRoutes = _b[1];
30906  var _c = (0,use_parent_platform/* default */.A)(),
30907    isCj = _c.isCj,
30908    isGlobalWarehouse = _c.isGlobalWarehouse,
30909    isSupplier = _c.isSupplier;
30910  var siteCheck = (0,use_site_check/* default */.A)();
30911  var _menuPath = isQs() ? bar_config_qs_menuPath : bar_config/* menuPath */.DD;
30912  if (useIsCf()) _menuPath = menuPath;
30913  if ((0,useIsQk/* default */.A)()) _menuPath = bar_config_qk_menuPath;
30914  if ((0,useIsVP/* default */.A)()) _menuPath = bar_config_vp_menuPath;
30915  if ((0,common/* is1688 */.G3)(siteCheck)) _menuPath = bar_config_th_menuPath;
30916  if ((0,useIsZS/* default */.A)(siteCheck)) _menuPath = bar_config_zs/* menuPath */.DD;
30917  var currentMenuNames = Object.keys(_menuPath).map(function (route) {
30918    var _a;
30919    return (_a = _menuPath[route]) === null || _a === void 0 ? void 0 : _a.name;
30920  }).filter(Boolean);
30921  var pickMenuName = function pickMenuName() {
30922    var names = [];
30923    for (var _i = 0; _i < arguments.length; _i++) {
30924      names[_i] = arguments[_i];
30925    }
30926    return names.find(function (name) {
30927      return currentMenuNames.includes(name);
30928    });
30929  };
30930  var normalizeRouteName = function normalizeRouteName(routeName) {
30931    if (routeName === 'Profile' || routeName === 'Settings') {
30932      return pickMenuName(routeName, routeName === 'Profile' ? 'Settings' : 'Profile') || routeName;
30933    }
30934    if (routeName === 'Home') {
30935      return pickMenuName('Home', 'Find Products', 'Dashboard') || routeName;
30936    }
30937    if (routeName === 'Shipping Calculation') {
30938      return pickMenuName('Shipping Calculation', 'Find Products') || routeName;
30939    }
30940    return routeName;
30941  };
30942  useWindowTitle({
30943    activeRoutes: activeRoutes,
30944    activeTransRoutes: activeTransRoutes
30945  });
30946  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
30947    var token = login_info_controller/* default */.A.info('token');
30948    var pathname = location.pathname;
30949    var isMycj = pathname.indexOf('my.html') > -1 || pathname.indexOf('/mine') > -1;
30950    if (token.includes('@VP:') && !location.href.includes('fulfillvip') && isMycj) {
30951      var url = location.hostname.includes('offline.pre') ? 'http://www.fulfillvip.offline.pre.com' : 'https://www.fulfillvip.com';
30952      location.href = "".concat(url, "/toLogin.html?jumpVP=true&token=").concat(base64/* Base64 */.o4.encode(token));
30953    }
30954    var path = location.pathname || '';
30955    dist.mfEvent.$on('on-url-changed', function (data) {
30956      var _a, _b, _c;
30957      if ((path === null || path === void 0 ? void 0 : path.indexOf('my.html')) === -1) return;
30958      var name = data.name || data.names;
30959      var child = data.child || '';
30960      if (name && useActiveRoute_typeof(name) === 'object') {
30961        var path_1 = location.pathname || '';
30962        if (path_1.indexOf('my.html') > -1) {
30963          var url = (_c = (_b = (_a = location.hash) === null || _a === void 0 ? void 0 : _a.split('?')[0]) === null || _b === void 0 ? void 0 : _b.replace('#', '')) !== null && _c !== void 0 ? _c : '';
30964          if (url.indexOf('/authorize') > -1) name = name[url];
30965        }
30966      }
30967      if (child) name = child;
30968      if (name == 'Queue') {
30969        if (location.hash.indexOf('/products-connection/history/0') === -1) name = 'Products Records';
30970      }
30971      if (/products-connection\/.*?-connection/i.test(location.hash)) {
30972        name = 'Store Products';
30973      }
30974      if (useIsCf()) {
30975        if (name === 'Products') {
30976          name = 'My Products';
30977        }
30978      }
30979      setActive(normalizeRouteName(name));
30980    });
30981    if (!path || path === '/') {
30982      if (isCj || isGlobalWarehouse) setActive((0,useIsZS/* default */.A)(siteCheck) ? 'Store Orders' : pickMenuName('Catalog', 'Find Products', 'Home', 'Dashboard') || 'Find Products');
30983    }
30984    if (path === '/home') {
30985      setActive(normalizeRouteName('Home'));
30986    }
30987    if (path === '/home.html') {
30988      setActive(pickMenuName('Catalog', 'Find Products', 'Home', 'Dashboard') || 'Find Products');
30989    }
30990    if (path === '/calculation.html') {
30991      setActive(normalizeRouteName('Shipping Calculation'));
30992    }
30993    if (path === '/mentors') {
30994      setActive('Academy');
30995    } else if (path === '/savedFactories') {
30996      setActive('Saved Factories');
30997    } else if (path === '/factories' || path === '/factoryDetail') {
30998      setActive('Factories');
30999    }
31000    if (['/agents', '/agents/detail', '/mine/agents/serviceOrders', '/mine/agents/serviceComplaints'].includes(path) || /agents\/\d+/i.test(path)) {
31001      setActive('Agents');
31002    }
31003    if (isSupplier) {
31004      setActive('Brands');
31005    }
31006    if ((0,useIsZS/* default */.A)(siteCheck) && (path == '/list/wholesale-all-categories-l-all.html' || path.indexOf('/search/') > -1)) {
31007      setActive('Catalog');
31008    }
31009    if (/\/intelligence/i.test(path)) {
31010      setActive('Intelligence');
31011    }
31012  }, []);
31013  var path = location.pathname || '';
31014  var verifyWidthUS = function verifyWidthUS(lcPath, lcName) {
31015    var verifyTTUS = lcPath.toLowerCase().indexOf('tiktok_us') > -1 ? lcPath.toLowerCase().indexOf('tiktok_us_cross') > -1 ? lcName == 'tiktok_us_cross' : lcName == 'tiktok_us' : true;
31016    var verifyTemu = lcPath.toLowerCase().indexOf('temu') > -1 ? lcPath.toLowerCase().indexOf('temu_us_local') > -1 ? lcName == 'temu_us_local' : lcPath.toLowerCase().indexOf('temu_certified_overseas') > -1 ? lcName == 'temu_certified_overseas' : lcName == 'temu' : true;
31017    return verifyTTUS && verifyTemu;
31018  };
31019  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
31020    if (path.startsWith('/mine')) {
31021      var findRouteName = '';
31022      var bestRouteLen = -1;
31023      var routes = Object.keys(_menuPath);
31024      for (var _i = 0, routes_1 = routes; _i < routes_1.length; _i++) {
31025        var route = routes_1[_i];
31026        var pureRoute = route.split('?')[0];
31027        if (path.indexOf(pureRoute) > -1 || _menuPath[route].version === 2) {
31028          if (_menuPath[route].version === 2) {
31029            var lcPath = path.toLowerCase();
31030            var lcName = _menuPath[route].name.toLowerCase();
31031            if (lcPath.toLowerCase().indexOf(lcName) > -1 && verifyWidthUS(lcPath, lcName)) {
31032              findRouteName = _menuPath[route].name;
31033              break;
31034            }
31035            var lcName2 = lcName.replace(/\s+/g, '').replace('-', '_');
31036            if (lcPath.indexOf(lcName2) > -1 && verifyWidthUS(lcPath, lcName2)) {
31037              findRouteName = _menuPath[route].name;
31038              break;
31039            }
31040          } else if ((pureRoute || '').length > bestRouteLen) {
31041            bestRouteLen = (pureRoute || '').length;
31042            findRouteName = _menuPath[route].name;
31043          }
31044        }
31045      }
31046      if (path.indexOf('/mine/purchase/purchaseList') > -1) {
31047        var search = location.search;
31048        var searchObj = search.slice(1).split('&').reduce(function (obj, item) {
31049          var _a = item.split('='),
31050            key = _a[0],
31051            value = _a[1];
31052          obj[key] = value;
31053          return obj;
31054        }, {});
31055        var orderType = searchObj.orderType;
31056        if (orderType) {
31057          findRouteName = {
31058            '1': 'Sample Orders',
31059            '2': 'Inventory Orders',
31060            '3': (0,common/* is1688 */.G3)(siteCheck) ? 'My Orders' : 'Wholesale Orders'
31061          }[orderType];
31062        }
31063      }
31064      if (path.indexOf('/products/patchPack') > -1) {
31065        var search = location.search;
31066        var params = new URLSearchParams(search);
31067        var from = params.get('from');
31068        if (from === 'AddedProducts') {
31069          findRouteName = 'Added Products';
31070        } else if (from === 'StoreProducts') {
31071          findRouteName = 'Store Products';
31072        } else {
31073          findRouteName = 'Cart';
31074        }
31075      }
31076      if (findRouteName) {
31077        setActive(findRouteName);
31078      }
31079    }
31080  }, [path, location.search]);
31081  var setActive = function setActive(routeName) {
31082    var _getPath = isQs() ? bar_config_qs_getPath : bar_config/* getPath */.Yn;
31083    if ((0,useIsZS/* default */.A)(siteCheck)) _getPath = bar_config_zs/* getPath */.Yn;
31084    if ((0,useIsQk/* default */.A)()) _getPath = bar_config_qk_getPath;
31085    if ((0,useIsVP/* default */.A)()) _getPath = bar_config_vp_getPath;
31086    if (useIsCf()) _getPath = getPath;
31087    if ((0,common/* is1688 */.G3)(siteCheck)) {
31088      _getPath = bar_config_th_getPath;
31089      var transPath = getTransPath(routeName);
31090      setActiveTransRoutes(transPath);
31091    }
31092    var arr = _getPath(routeName);
31093    setActiveRoutes(useActiveRoute_spreadArray([], arr, true));
31094  };
31095  var isZesty = (0,useIsZS/* default */.A)();
31096  var autoRun = isZesty ? false : true;
31097  useNoMenuActiveRoute({
31098    setActive: setActive,
31099    autoRun: autoRun
31100  });
31101  var isActive = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (routeName) {
31102    var arr = activeRoutes.slice(0, activeRoutes.length - 1);
31103    return arr.includes(routeName);
31104  }, [activeRoutes]);
31105  var isParentActive = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (routeName) {
31106    var len = activeRoutes.length;
31107    return activeRoutes[len - 1] === routeName;
31108  }, [activeRoutes]);
31109  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
31110    if (activeRoutes.length > 0) {
31111      var routeName = useActiveRoute_spreadArray([], activeRoutes, true).pop();
31112      var curRouteDom_1 = document.querySelector("[data-route=\"".concat(routeName, "\"]"));
31113      if ((0,common/* isInViewport */.cH)(curRouteDom_1, 134)) return;
31114      setTimeout(function () {
31115        curRouteDom_1 === null || curRouteDom_1 === void 0 ? void 0 : curRouteDom_1.scrollIntoView({
31116          block: 'start',
31117          behavior: 'smooth'
31118        });
31119      }, 500);
31120    }
31121  }, [activeRoutes]);
31122  return {
31123    isActive: isActive,
31124    isParentActive: isParentActive
31125  };
31126};
31127/* harmony default export */ const hooks_useActiveRoute = (useActiveRoute);
31128;// ./src/components/Menu/hooks/useIsCollapsed.ts
31129
31130
31131
31132
31133
31134var collapsedWidth = 65;
31135var expandedWidth = 220;
31136var zestyMenuCollapsedWidth = 80;
31137var useCollapsed = function useCollapsed() {
31138  var _a;
31139  var siteCheck = (0,PropsContext/* useGlobalProps */.v)().siteCheck;
31140  var menuCollapsed = (_a = js_cookie/* default */.A.get('menuCollapsed')) !== null && _a !== void 0 ? _a : siteCheck.data('default-menu-collapsed') || 'false';
31141  var _b = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(JSON.parse(menuCollapsed)),
31142    isCollapsed = _b[0],
31143    setIsCollapsed = _b[1];
31144  var _c = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)((0,common/* is1688 */.G3)(siteCheck) ? false : true),
31145    allowSwitch = _c[0],
31146    setAllowSwitch = _c[1];
31147  var isZesty = siteCheck.isSite('ZS');
31148  var theMenuCollapsedWidth = isZesty ? zestyMenuCollapsedWidth : collapsedWidth;
31149  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
31150    if ((0,common/* is1688 */.G3)(siteCheck)) return;
31151    var handleResize = function handleResize() {
31152      if (window.innerWidth < 1440) {
31153        toggle('1');
31154        setAllowSwitch(false);
31155      } else {
31156        setAllowSwitch(true);
31157      }
31158    };
31159    window.addEventListener('resize', handleResize);
31160    handleResize();
31161    return function () {
31162      return window.removeEventListener('resize', handleResize);
31163    };
31164  }, []);
31165  var toggle = function toggle(_collapsed) {
31166    if (_collapsed === void 0) {
31167      _collapsed = '';
31168    }
31169    var flag = _collapsed ? _collapsed === '1' : !isCollapsed;
31170    var httpsOptions = (0,common/* httpsOptionsConfig */.Me)();
31171    js_cookie/* default */.A.set('menuCollapsed', JSON.stringify(flag), httpsOptions);
31172    var menu = document.getElementById('cj-menu');
31173    if (menu) {
31174      menu.style.width = (flag ? theMenuCollapsedWidth : expandedWidth) + 'px';
31175    }
31176    setIsCollapsed(flag);
31177  };
31178  return {
31179    isCollapsed: isCollapsed,
31180    allowSwitch: allowSwitch,
31181    toggle: toggle
31182  };
31183};
31184/* harmony default export */ const useIsCollapsed = (useCollapsed);
31185// EXTERNAL MODULE: ./src/components/CjHeader/hooks/use-is-login.ts
31186var use_is_login = __webpack_require__(53905);
31187;// ./src/components/Menu/MenuNormal/SubMenu.tsx
31188
31189
31190
31191
31192
31193
31194
31195
31196
31197
31198
31199
31200
31201
31202
31203
31204
31205
31206
31207var SubMenu_SubMenu = function SubMenu(_a) {
31208  var _b, _c, _d;
31209  var _e;
31210  var item = _a.item,
31211    isActive = _a.isActive,
31212    isParentActive = _a.isParentActive,
31213    showAuthorizeListData = _a.showAuthorizeListData,
31214    openAddStore = _a.openAddStore,
31215    openServiceCenter = _a.openServiceCenter,
31216    guideVisible = _a.guideVisible;
31217  var isVip = (0,useIsVip/* default */.A)();
31218  var siteCheck = (0,use_site_check/* default */.A)();
31219  var loginInfo = (0,PropsContext/* useGlobalProps */.v)().loginInfo;
31220  var isLogin = (0,use_is_login/* default */.A)(loginInfo).isLogin;
31221  var isCJSite = siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.isSite('CJ');
31222  var isCj = (0,use_parent_platform/* default */.A)().isCj;
31223  var hookMenusChilds = useMenuChilds({
31224    selector: '.specialMenuItem'
31225  });
31226  var isZesty = siteCheck.isSite('ZS');
31227  var defaultExpand = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useMemo)(function () {
31228    if (isLogin) {
31229      if (isCJSite) {
31230        return item.name === 'Source' || item.name === 'Community';
31231      }
31232      return true;
31233    }
31234    return item.name === 'Products';
31235  }, [isLogin, item.name, isCJSite]);
31236  var _f = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(defaultExpand),
31237    expand = _f[0],
31238    setExpand = _f[1];
31239  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
31240    if (isParentActive(item.name) && !expand) {
31241      setExpand(true);
31242    }
31243  }, [isParentActive, item.name]);
31244  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
31245    var _a;
31246    if (guideVisible && ((_a = item.childs) === null || _a === void 0 ? void 0 : _a.length) > 0 && !expand) {
31247      setExpand(true);
31248    }
31249  }, [guideVisible]);
31250  var hookMyCjRoute = (0,useMyCjReactRoute/* default */.A)();
31251  var i18next = window === null || window === void 0 ? void 0 : window.i18next;
31252  var handleClick = function handleClick() {
31253    if (item.childs.length > 0) {
31254      setExpand(expand ? '' : item.name);
31255    } else {
31256      if (hookMyCjRoute.canUseNewMyCjRouteJump(item.route)) {
31257        return hookMyCjRoute.changeRoute(item.route);
31258      }
31259      var _href = (0,common/* getRouteHref */.hQ)(item);
31260      location.href = isCj ? _href : (0,cj_href/* cjHref */.F)(_href);
31261    }
31262  };
31263  var hasChilds = item.childs && item.childs.length > 0;
31264  var normalSpecial = item.special && !isCJSite;
31265  var leaveTimer = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef();
31266  var getAddTop = function getAddTop(name, childs) {
31267    var _a;
31268    if (name === void 0) {
31269      name = '';
31270    }
31271    if (childs === void 0) {
31272      childs = [];
31273    }
31274    if (name === 'Authorization' && !isCJSite) {
31275      var hasMiaoshou = ((_a = childs.filter(function (child) {
31276        return child.key === 'miaoshou';
31277      })) === null || _a === void 0 ? void 0 : _a.length) > 0;
31278      return hasMiaoshou ? -50 : 0;
31279    }
31280    return 0;
31281  };
31282  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31283    className: classnames_default()(Menu_MenuNormal.subMenu, (_b = {}, _b[Menu_MenuNormal.vip] = isVip, _b[Menu_MenuNormal.zs] = isZesty, _b)),
31284    onMouseMove: function onMouseMove(e) {
31285      leaveTimer.current && clearTimeout(leaveTimer.current);
31286      var addTop = getAddTop(item.name, item.childs);
31287      if (normalSpecial && hasChilds) hookMenusChilds.handlerMouseMove(e, addTop);
31288    },
31289    onMouseLeave: function onMouseLeave(e) {
31290      var target = e.currentTarget;
31291      leaveTimer.current = setTimeout(function () {
31292        if (normalSpecial && hasChilds) hookMenusChilds.handlerMouseLeave(target);
31293      }, 200);
31294    }
31295  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31296    className: classnames_default()(Menu_MenuNormal.box, (_c = {}, _c[Menu_MenuNormal.active] = isParentActive(item.name) ? normalSpecial || !hasChilds : false, _c[Menu_MenuNormal.zs] = isZesty, _c)),
31297    onClick: handleClick,
31298    "data-route": item.name,
31299    "data-gtag-element": (0,gtag/* toGtagElement */.l)(item.name)
31300  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31301    className: Menu_MenuNormal.left
31302  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
31303    type: item.iconclass
31304  }), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31305    className: Menu_MenuNormal.title
31306  }, item.nameTrans())), hasChilds && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31307    className: [Menu_MenuNormal.arrow, expand ? Menu_MenuNormal.expand : ''].join(' '),
31308    style: {
31309      transform: normalSpecial ? 'rotate(-90deg)' : ''
31310    }
31311  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
31312    type: "xiangxia"
31313  }))), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31314    className: Menu_MenuNormal.activeLeftLine
31315  })), hasChilds && !normalSpecial && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31316    className: classnames_default()(Menu_MenuNormal.childsBox, (_d = {}, _d[Menu_MenuNormal.expand] = expand, _d))
31317  }, item.special && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31318    className: Menu_MenuNormal.MenuItem,
31319    onClick: openAddStore,
31320    "data-gtag-element": "install_app"
31321  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31322    className: "".concat(Menu_MenuNormal.box, " ").concat(Menu_MenuNormal.addStoreBox)
31323  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
31324    className: Menu_MenuNormal.name
31325  }, i18next === null || i18next === void 0 ? void 0 : i18next.t('common-mycj-menu-install-app', 'Install App')), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31326    className: Menu_MenuNormal.addIcon
31327  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
31328    type: "jiahao1"
31329  }))))), item.name === 'Service' && openServiceCenter && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31330    className: Menu_MenuNormal.MenuItem,
31331    onClick: openServiceCenter,
31332    "data-gtag-element": "subscribe_service"
31333  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31334    className: "".concat(Menu_MenuNormal.box, " ").concat(Menu_MenuNormal.addStoreBox)
31335  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
31336    className: Menu_MenuNormal.name
31337  }, i18next === null || i18next === void 0 ? void 0 : i18next.t('common-mycj-menu-subscribe-service', 'Subscribe Service')), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31338    className: Menu_MenuNormal.addIcon
31339  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
31340    type: "jiahao1"
31341  }))))), item.childs.map(function (childMenu) {
31342    if (childMenu.isDivider) {
31343      return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31344        key: childMenu.name,
31345        className: Menu_MenuNormal.menuDivider
31346      });
31347    }
31348    if (typeof childMenu.isHide === 'function' ? childMenu.isHide() : childMenu.isHide) return null;
31349    if (!siteCheck.isShow("mycj-menu-".concat(item.nameVal || item.name, "-").concat(childMenu.name))) return null;
31350    return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(MenuNormal_MenuItem, {
31351      key: childMenu.name,
31352      childMenu: childMenu,
31353      isActive: isActive,
31354      showAuthorizeListData: showAuthorizeListData,
31355      isSpecial: item.special
31356    });
31357  }))), hasChilds && normalSpecial && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31358    className: classnames_default()(Menu_MenuNormal.specialMenuItem, 'specialMenuItem')
31359  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(MultipleMenuItem/* default */.A, {
31360    list: (_e = item.childs) === null || _e === void 0 ? void 0 : _e.map(function (item) {
31361      var _a;
31362      return {
31363        key: item.key,
31364        name: (_a = item.nameTrans) === null || _a === void 0 ? void 0 : _a.call(item),
31365        imageUrl: oss_controller/* default */.Ay.join((0,oss_controller/* createPlatform */.Q_)(String(item.imageName || item.name).toLocaleLowerCase())),
31366        count: item.count,
31367        link: isCj ? item.route : (0,cj_href/* cjHref */.F)(item.route),
31368        isActive: isActive(item.name),
31369        isShow: useIsShowOrangeConnex(item.name) && isShowAuthorizeType(showAuthorizeListData, item.name) && useIsShowMiaoshou(item.name, siteCheck),
31370        isErpPlatform: item.businessType === EBusinessType.ERP
31371      };
31372    })
31373  }))));
31374};
31375/* harmony default export */ const MenuNormal_SubMenu = (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().memo(SubMenu_SubMenu));
31376;// ./src/components/Menu/MenuNormal/index.tsx
31377var MenuNormal_assign = undefined && undefined.__assign || function () {
31378  MenuNormal_assign = Object.assign || function (t) {
31379    for (var s, i = 1, n = arguments.length; i < n; i++) {
31380      s = arguments[i];
31381      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
31382    }
31383    return t;
31384  };
31385  return MenuNormal_assign.apply(this, arguments);
31386};
31387
31388
31389
31390
31391
31392var MenuNormal = function MenuNormal(_a) {
31393  var isActive = _a.isActive,
31394    isParentActive = _a.isParentActive,
31395    showAuthorizeListData = _a.showAuthorizeListData,
31396    menus = _a.menus,
31397    openAddStore = _a.openAddStore,
31398    menuContainerRef = _a.menuContainerRef,
31399    openServiceCenter = _a.openServiceCenter,
31400    disableScroll = _a.disableScroll;
31401  var siteCheck = (0,use_site_check/* default */.A)();
31402  var backgroundImage = siteCheck.data('menu-bg-image') || nav_bg/* default */.A;
31403  var menuNormalStyle = {
31404    backgroundImage: "url(".concat(backgroundImage, ")")
31405  };
31406  if (siteCheck.isSite('ZS')) {
31407    menuNormalStyle = {
31408      backgroundColor: '#fff'
31409    };
31410  }
31411  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31412    ref: menuContainerRef,
31413    className: Menu_MenuNormal.menuNormal,
31414    style: MenuNormal_assign(MenuNormal_assign({}, menuNormalStyle), {
31415      overflowY: disableScroll ? 'hidden' : undefined
31416    })
31417  }, menus.map(function (menu) {
31418    if (!siteCheck.isShow("mycj-menu-".concat(menu.nameVal || menu.name))) return null;
31419    return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(MenuNormal_SubMenu, {
31420      key: menu.name,
31421      item: menu,
31422      isActive: isActive,
31423      isParentActive: isParentActive,
31424      showAuthorizeListData: showAuthorizeListData,
31425      openAddStore: openAddStore,
31426      openServiceCenter: openServiceCenter,
31427      guideVisible: disableScroll
31428    });
31429  }));
31430};
31431/* harmony default export */ const components_Menu_MenuNormal = (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().memo(MenuNormal));
31432// EXTERNAL MODULE: ./src/hook/useAxios.ts
31433var useAxios = __webpack_require__(92513);
31434;// ./src/components/Menu/hooks/useIsTH.ts
31435
31436function useIsTH(server_siteCheck) {
31437  if (typeof window === 'undefined') return server_siteCheck ? (0,common/* is1688 */.G3)(server_siteCheck) : false;
31438  return (0,common/* is1688 */.G3)(window === null || window === void 0 ? void 0 : window.siteCheck);
31439}
31440;// ./src/components/Menu/hooks/useHideAuthorize.ts
31441var useHideAuthorize_assign = undefined && undefined.__assign || function () {
31442  useHideAuthorize_assign = Object.assign || function (t) {
31443    for (var s, i = 1, n = arguments.length; i < n; i++) {
31444      s = arguments[i];
31445      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
31446    }
31447    return t;
31448  };
31449  return useHideAuthorize_assign.apply(this, arguments);
31450};
31451var useHideAuthorize_awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
31452  function adopt(value) {
31453    return value instanceof P ? value : new P(function (resolve) {
31454      resolve(value);
31455    });
31456  }
31457  return new (P || (P = Promise))(function (resolve, reject) {
31458    function fulfilled(value) {
31459      try {
31460        step(generator.next(value));
31461      } catch (e) {
31462        reject(e);
31463      }
31464    }
31465    function rejected(value) {
31466      try {
31467        step(generator["throw"](value));
31468      } catch (e) {
31469        reject(e);
31470      }
31471    }
31472    function step(result) {
31473      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
31474    }
31475    step((generator = generator.apply(thisArg, _arguments || [])).next());
31476  });
31477};
31478var useHideAuthorize_generator = undefined && undefined.__generator || function (thisArg, body) {
31479  var _ = {
31480      label: 0,
31481      sent: function sent() {
31482        if (t[0] & 1) throw t[1];
31483        return t[1];
31484      },
31485      trys: [],
31486      ops: []
31487    },
31488    f,
31489    y,
31490    t,
31491    g;
31492  return g = {
31493    next: verb(0),
31494    "throw": verb(1),
31495    "return": verb(2)
31496  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
31497    return this;
31498  }), g;
31499  function verb(n) {
31500    return function (v) {
31501      return step([n, v]);
31502    };
31503  }
31504  function step(op) {
31505    if (f) throw new TypeError("Generator is already executing.");
31506    while (g && (g = 0, op[0] && (_ = 0)), _) try {
31507      if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
31508      if (y = 0, t) op = [op[0] & 2, t.value];
31509      switch (op[0]) {
31510        case 0:
31511        case 1:
31512          t = op;
31513          break;
31514        case 4:
31515          _.label++;
31516          return {
31517            value: op[1],
31518            done: false
31519          };
31520        case 5:
31521          _.label++;
31522          y = op[1];
31523          op = [0];
31524          continue;
31525        case 7:
31526          op = _.ops.pop();
31527          _.trys.pop();
31528          continue;
31529        default:
31530          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
31531            _ = 0;
31532            continue;
31533          }
31534          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
31535            _.label = op[1];
31536            break;
31537          }
31538          if (op[0] === 6 && _.label < t[1]) {
31539            _.label = t[1];
31540            t = op;
31541            break;
31542          }
31543          if (t && _.label < t[2]) {
31544            _.label = t[2];
31545            _.ops.push(op);
31546            break;
31547          }
31548          if (t[2]) _.ops.pop();
31549          _.trys.pop();
31550          continue;
31551      }
31552      op = body.call(thisArg, _);
31553    } catch (e) {
31554      op = [6, e];
31555      y = 0;
31556    } finally {
31557      f = t = 0;
31558    }
31559    if (op[0] & 5) throw op[1];
31560    return {
31561      value: op[0] ? op[1] : void 0,
31562      done: true
31563    };
31564  }
31565};
31566var useHideAuthorize_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
31567  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
31568    if (ar || !(i in from)) {
31569      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
31570      ar[i] = from[i];
31571    }
31572  }
31573  return to.concat(ar || Array.prototype.slice.call(from));
31574};
31575
31576
31577
31578
31579
31580
31581
31582
31583
31584
31585
31586
31587
31588
31589
31590
31591
31592/* harmony default export */ const useHideAuthorize = (function ($axios, isCj) {
31593  var _a = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(useHideAuthorize_assign({}, show_authorize_list/* default */.A)),
31594    showAuthorizeListData = _a[0],
31595    setShowAuthorizeList = _a[1];
31596  var initialMenus = isQs() ? bar_config_qs_menus : bar_config/* menus */.T_;
31597  if ((0,useIsQk/* default */.A)()) initialMenus = bar_config_qk_menus;
31598  if ((0,useIsVP/* default */.A)()) initialMenus = bar_config_vp_menus;
31599  if (useIsTH()) initialMenus = bar_config_th_menus;
31600  if (useIsCf()) initialMenus = menus;
31601  if ((0,useIsZS/* default */.A)()) initialMenus = bar_config_zs/* menus */.T_;
31602  var _b = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(useHideAuthorize_spreadArray([], initialMenus, true)),
31603    newMenus = _b[0],
31604    setNewMenus = _b[1];
31605  var platformSortAndShow = new platforms_sort_show($axios);
31606  var getAppStoreByUser = function getAppStoreByUser() {
31607    return useHideAuthorize_awaiter(void 0, void 0, void 0, function () {
31608      var _newMenus, authorizationIndex;
31609      return useHideAuthorize_generator(this, function (_a) {
31610        _newMenus = deep_clone(initialMenus);
31611        authorizationIndex = _newMenus.findIndex(function (ele) {
31612          return ele.name === 'Authorization';
31613        });
31614        if (authorizationIndex > -1) {
31615          _newMenus[authorizationIndex].childs = useHideAuthorize_spreadArray([], platformSortAndShow.allPlatforms, true).filter(function (ele) {
31616            return ele.key == 'shopify';
31617          });
31618          platformSortAndShow.showAppStore().then(function () {
31619            var authorizationIndex = _newMenus.findIndex(function (ele) {
31620              return ele.name === 'Authorization';
31621            });
31622            if (authorizationIndex > -1) {
31623              _newMenus[authorizationIndex].childs = useHideAuthorize_spreadArray([], platformSortAndShow.allPlatforms, true);
31624            }
31625            setNewMenus(useHideAuthorize_spreadArray([], _newMenus, true));
31626            setShowAuthorizeList(useHideAuthorize_assign({}, platformSortAndShow.showAuthorizeAllData));
31627          });
31628        }
31629        return [2];
31630      });
31631    });
31632  };
31633  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
31634    if (isCj) {
31635      getAppStoreByUser();
31636      return;
31637    }
31638    platformSortAndShow.handler().then(function () {
31639      var _newMenus = useHideAuthorize_spreadArray([], newMenus, true);
31640      var authorizationIndex = _newMenus.findIndex(function (ele) {
31641        return ele.name === 'Authorization';
31642      });
31643      if (authorizationIndex > -1) {
31644        _newMenus[authorizationIndex].childs = useHideAuthorize_spreadArray([], platformSortAndShow.allPlatforms, true);
31645      }
31646      setNewMenus(useHideAuthorize_spreadArray([], _newMenus, true));
31647      setShowAuthorizeList(useHideAuthorize_assign({}, platformSortAndShow.showAuthorizeAllData));
31648    });
31649  }, []);
31650  return {
31651    showAuthorizeListData: showAuthorizeListData,
31652    menus: newMenus,
31653    updateMenus: getAppStoreByUser
31654  };
31655});
31656;// ./src/lang/pull/en/common.json
31657const en_common_namespaceObject = /*#__PURE__*/JSON.parse('{"common-footer-Our Offers":"Our Offers","common-footer-Overview":"footer-Overview","home-authorization-failed":"Authorization Failed","home-cancel":"Cancel","home-top":"TOP","home-video-products":"Video Products","home-super-deals":"Super Deals","home-reauthorize":"Reauthorize","home-view-more":"View More","footer-overview":"Overview","footer-contact-us":"Contact Us","footer-our-offers":"Our Offers","footer-about-us":"About Us","footer-ticket":"Ticket","product-card-free-shipping":"Free Shipping","common-top-go-to-taobao":"Go to Taobao","language-polish":"Polish","language-hungarian":"Hungarian","footer-custom-packaging":"Custom Packaging","language-swahili":"Swahili","language-lithuanian":"Lithuanian","footer-shipping-cost-and-delivery-time":"Shipping Cost and Delivery Time","common-top-elites":"Elites","common-top-shipping-calculation":"Shipping Calculation","language-maltese":"Maltese","language-slovak":"Slovak","product-card-added-to-queue-successfully.":"Added to Queue successfully.","common-top-rating":"Rating","top-nav-my-cj":"My CJ","product-card-added-to-queue":"Added to Queue","footer-user-agreement":"User Agreement","language-vietnamese":"Vietnamese","common-top-confirm":"Confirm","copyright-cjdropshipping.com-all-rights-reserved":"CJdropshipping.com All Rights Reserved","language-croatian":"Croatian","footer-payment-methods":"Payment Methods","language-german":"German","top-nav-print-on-demand":"Print on Demand","language-ukrainian":"Ukrainian","top-nav-warehouses":"Warehouses","top-nav-woocommerce":"Woocommerce","common-top-install-now":"Install Now","language-macedonian":"Macedonian","common-top-cancel":"Cancel","footer-quality-inspection":"Quality Inspection","common-top-refresh":"Refresh","footer-cj-supplier":"CJ Supplier","common-top-please-enter-keywords!":"Please enter keywords!","language-korean":"Korean","footer-cj-school":"CJ School","footer-programs":"Programs","common-top-blog":"Blog","common-top-tool":"Tool","footer-cod":"COD","language-slovenian":"Slovenian","common-top-ticket":"Ticket","common-top-queue":"Queue","language-belarusian":"Belarusian","top-nav-shopify":"Shopify","language-finnish":"Finnish","language-romanian":"Romanian","language-spanish":"Spanish","top-nav-thailand-warehouse":"Thailand Warehouse","language-japanese":"Japanese","common-top-track-orders":"Track Orders","language-azerbaijani":"Azerbaijani","footer-blog":"Blog","language-french":"French","top-nav-ebay":"eBay","language-armenian":"Armenian","common-top-read-all":"Read All","common-top-go-to-1688":"Go to 1688","top-nav-api":"API","common-top-profile":"Profile","top-nav-us-warehouse":"US Warehouse","language-dutch":"Dutch","footer-refund-resend-and-returns":"Refund, Resend and Returns","language-czech":"Czech","common-top-help-center":"Help Center","product-card-source":"Source","language-norwegian":"Norwegian","top-nav-lazada":"Lazada","language-english":"English","footer-google-chrome-extension":"Google Chrome Extension","footer-print-on-demand":"Print on Demand","footer-product-reports":"Product Reports","footer-product-photography":"Product Photography","language-georgian":"Georgian","footer-tracking-orders":"Tracking Orders","footer-fulfillment-by-cj":"Fulfillment By CJ","language-afrikaans":"Afrikaans","footer-help-center":"Help Center","common-top-install-cj-chrome-extension":"Install CJ Chrome Extension","language-greek":"Greek","common-top-from-cj":"From CJ","footer-affiliate":"Affiliate","language-turkish":"Turkish","language-indonesian":"Indonesian","footer-resources":"Resources","footer-product-sourcing-requests":"Product Sourcing Requests","footer-24/7-support":"24/7 Support","product-card-view-more":"View More","language-estonian":"Estonian","language-yiddish":"Yiddish","footer-fulfillment":"Fulfillment","language-malay":"Malay","top-nav-authorization":"Authorization","language-arabic":"Arabic","language-hindi":"Hindi","product-card-please-check-the-product-in-queue.-it-has-been-added-to-queue.":"Adding failed. The product has been added to Queue. ","top-nav-shipstation":"ShipStation","language-latvian":"Latvian","top-nav-china-warehouse":"China Warehouse","footer-api":"API","common-top-invalid-image.-only-jpg-and-png-supported.":"Invalid image. Only JPG and PNG supported.","footer-elites":"Elites","language-icelandic":"Icelandic","common-top-log-out":"Log out","top-nav-shopee":"Shopee","language-thai":"Thai","language-russian":"Russian","common-top-go-to-aliexpress":"Go to AliExpress","language-welsh":"Welsh","language-serbian":"Serbian","footer-features":"Features","language-portuguese":"Portuguese","to
31657p-nav-sourcing":"Sourcing","common-top-source-more":"Source More","language-filipino":"Filipino","footer-fulfillment-fees":"Fulfillment Fees","language-danish":"Danish","footer-privacy-policy":"Privacy Policy","common-top-account":"Account","language-urdu":"Urdu","product-card-view-inventory":"View Inventory","common-top-support-center":"Support Center","language-irish":"Irish","footer-branding":"Branding","common-top-verify-email":"Verify Email","common-top-1.5mb-is-the-max-image-size":"1.5MB is the max image size","common-top-wallet":"Wallet","common-top-our-services":"Our Services","product-card-add-to-queue":"Add to Queue","language-italian":"Italian","footer-bulk-purchase":"Bulk Purchase","common-top-hey":"Hey","common-top-recommendations":"Recommendations","footer-support":"Support","top-nav-wishlist":"Wishlist","common-top-mark-all-as-read":"Mark All as Read","language-swedish":"Swedish","language-bulgarian":"Bulgarian","language-chinese-simplified":"Chinese (Simplified)","language-chinese-traditional":"Chinese (Traditional)","common-top-go-to-shopify":"Go to Shopify","intelGuid-easy-to-know-products-inventory-and-get-shipping-tracking-numbers.":"Easy to know products inventory and get shipping tracking numbers.","intelGuid-tracking-numbers-inventory-monitoring":"Tracking Numbers, Inventory Monitoring","intelGuid-ship-for-trinket/accessories.":"Ship for trinket/accessories.","intelGuid-ems-courier-service-in-china.":"EMS courier service in China.","intelGuid-winning-product-recommendations":"Winning Product Recommendations","intelGuid-pro-service":"Pro Services","intelGuid-jewel-shipping":"Jewel Shipping","intelGuid-wholesaling":"Wholesaling","intelGuid-usps":"USPS","intelGuid-put-cjdropshipping-into-your-pocket.":"Put CJdropshipping into your pocket.","intelGuid-located-in-samut-prakan.":"Located in Samut Prakan.","intelGuid-us-warehouse":"US Warehouses","intelGuid-bundle-several-products-skus-into-one-sku.":"Bundle several products\' SKUs into one SKU.","intelGuid-products-automatic-listing":"Products Automatic Listing","intelGuid-custom-packaging-for-your-own-brand.":"Custom packaging for your own brand.","intelGuid-disputing-online":"Disputing Online","intelGuid-cj-wallet-with-2%-discount":"CJ Wallet with 2% Discount","
31657intelGuid-the-united-states-postal-service.":"The United States Postal Service.","intelGuid-automatic-order-syncing":"Automatic Order Syncing","intelGuid-professional-dropshipping-training-makes-you-an-expert.":"Professional dropshipping training makes you an expert.","intelGuid-yiwu-warehouse":"Yiwu Warehouse","intelGuid-shipping":"Shipping","intelGuid-keep-private-inventory-for-your-customer-to-shorten-processing-time.":"Keep private inventory for your customer to shorten processing time.","intelGuid-attractive-video-and-photo-shooting.":"Attractive video and photo shooting.","intelGuid-import-product-reviews-into-your-store-when-you-list-product.":"Import product reviews into your store when you list products.","intelGuid-epacket":"ePacket","intelGuid-refer-and-earn":"Share and Earn.","intelGuid-extend-your-store-through-personalized-items.":"Diversify your products with the POD feature.","intelGuid-ship-for-electronic-products.":"Ship for electronic products.","intelGuid-connect-your-store-products-with-cj-products.":"Connect your store products with CJ products.","intelGuid-create-orders-manually.":"Create orders manually.","intelGuid-private-inventory":"Private Inventory","intelGuid-custom-packaging-branding":"Custom Packaging, Branding","intelGuid-cod-service-is-available.":"COD service is available.","intelGuid-list-products-to-your-store-automatically.":"List products to your store automatically.","intelGuid-source-products-to-cj-from-1688-taobao-aliexpress.":"Source products to CJ from 1688, Taobao, Aliexpress.","intelGuid-worldwide-warehouses":"Worldwide Warehouses","intelGuid-jinhua-warehouse":"Jinhua Warehouse","intelGuid-dropshipping-training":"Dropshipping Training","intelGuid-warehousing":"Warehousing","intelGuid-paypal-credit-card-payment":"PayPal, Credit Card Payment","intelGuid-supplier-inventory":"Supplier Inventory","intelGuid-cj-provides-automatic-invoice-service-for-you.":"CJ provides automatic invoice generation for you.","intelGuid-order-fulfillment":"Order Fulfillment","intelGuid-winning-products-recommendation-help-you-succeed.":"Winning product recommendations help you to succeed.","intelGuid-set-up-staff-accounts.":"Set up staff accounts.","intelGuid-manual-order-creation":"Manual Order Creation","intelGuid-sourcing-from-1688-taobao-aliexpress":"Sourcing from 1688, Taobao, Aliexpress","intelGuid-product-reviews-importing":"Product Reviews Importing","intelGuid-multiple-staff-accounts":"Multiple Staff Accounts","intelGuid-dhl":"DHL","intelGuid-pay-your-orders-by-paypal-and-credit-card.":"Make payment via PayPal or Credit Cards.","intelGuid-transfer-store-between-accounts.":"Transfer store between accounts.","intelGuid-top-up-has-2%-rebate-at-most.":"Top-up with up to 2% rebate.","intelGuid-video-photo-shooting":"Video, Photo Shooting","intelGuid-shipping-time-and-price":"Shipping Time and Price","intelGuid-sync-orders-from-your-store-to-cj-automatically.":"Sync orders from your store to CJ automatically.","intelGuid-cjpacket":"CJPacket","intelGuid-located-in-frankfurt.":"Located in Frankfurt.","intelGuid-split-orders":"Split Orders","intelGuid-in-case-of-any-doubts-about-your-orders-you-can-open-a-dispute.":"In case of any doubts about your orders, you can open a dispute.","intelGuid-over-220-countries-and-territories-served.":"Over 220 countries and territories served.","intelGuid-located-in-jakarta.":"Located in Jakarta.","intelGuid-cjpacket-is-a-special-shipping-line-formed-by-cjdropshipping.":"CJPacket is a special shipping line by CJdropshipping.","intelGuid-chrome-extension":"Chrome Extension","intelGuid-cj-api-for-developers":"CJ API for Developers","intelGuid-split-your-order-into-several-orders.":"Split your order into several orders.","intelGuid-suppliers-provide-products-directly.":"Suppliers provide products directly.","intelGuid-multiple-store-management":"Multiple Store Management","intelGuid-thailand-warehouse":"Thailand Warehouse","intelGuid-you-can-upload-orders-by-csv.":"You can upload orders by CSV.","intelGuid-submit-tickets-to-management-team.":"Submit a ticket to the management team.","intelGuid-strict-quality-check-process.":"Strict quality inspection process.","intelGuid-more-global-warehouses-are-coming-soon.":"More global warehouses are coming soon.","intelGuid-easy-to-monitor-delivery-process.":"All the details you need for order fulfillment at different stages.","intelGuid-affiliate":"Affiliate","intelGuid-source-products-from-other
31657-platforms-by-chrome-extension.":"Source products from other platforms with Chrome extension.","intelGuid-check-your-shipping-cost.":"Check your shipping cost.","intelGuid-bulk-order-service-for-wholesalers.":"Bulk purchase service for wholesalers.","intelGuid-bundle-sku":"Bundle SKU","intelGuid-automatic-invoice":"Automatic Invoice","intelGuid-fulfillment-shipping-tracking":"Fulfillment & Tracking Information","intelGuid-the-personal-agent-will-help-you-out-of-problems.":"The personal agent will help you out of problems.","intelGuid-cash-on-delivery":"Cash on Delivery","intelGuid-quality-checking":"Quality Inspection","intelGuid-store-transfer":"Store Transfer","intelGuid-combine-orders-to-reduce-delivery-cost.":"Combine orders to reduce delivery cost.","intelGuid-mobile-app-processing":"Mobile APP Processing","intelGuid-cj-platform":"CJ Platform","intelGuid-manage-all-your-stores-after-authorization.":"Manage all your stores after authorization.","intelGuid-print-on-demand":"Print on Demand","intelGuid-product-connection":"Product Connection","intelGuid-shenzhen-warehouse":"Dongguan Warehouse","intelGuid-start-cooperation-by-api.":"Start cooperation by API.","intelGuid-csv-orders-uploading":"CSV Orders Uploading","intelGuid-combine-orders":"Combine Orders","intelGuid-special-line":"Special Line","common-wallet":"Wallet","common-cancel":"Cancel","common-us-warehouse":"US Warehouse","common-thailand-warehouse":"Thailand Warehouse","common-view-more":"View More","common-api":"API","common-print-on-demand":"Print on Demand","intelGuid-7/24-support":"24/7 Support","intelGuid-us-warehouse-of-west-chino-ca":"US Warehouse of West (Chino, CA)","intelGuid-us-warehouse-of-east-cranbury-nj":"US Warehouse of East (Cranbury, NJ)","home-hot-selling-categories":"Hot Selling Categories","home-recommended-products":"Recommended Products","home-global-warehouses":"Global Warehouses","home-trending-products":"Trending Products","intelGuid-china-warehouse":"China Warehouses","footer-scan-the-qr-code-to-download-cjdropshipping-for-mobile":"Scan the QR code to download CJdropshipping for Mobile","category-all-categories":"All Categories","right-admin-level":"Level","right-admin-hi-welcome-to-cjdropshipping!":"Hi, welcome to CJdropshipping!","footer-subscribe-to-our-latest-niches":"Subscribe to our latest niches","home-sales-amount":"Sales Amount","home-cj-app":"CJ APP","home-listable-products":"Listable Products","home-pending-cj-order":"Pending CJ Order","home-delivered":"Delivered","home-us-warehouse-&-thai-warehouse":"US Warehouse & Thai Warehouse","home-reviews":"Reviews","home-partnership":"Partnership","home-cjdropshipping":"CJdropshipping","home-ready-for-delivery":"Ready for Delivery","common-top-Inventory-Alert":"Inventory Alert","home-cj-super-deals":"CJ Super Deals","home-pending-payment":"Pending Payment","home-dispatched":"Dispatched","home-pending":"Pending","home-closed":"Closed","home-processing":"Processing","home-awaiting-payment":"Awaiting Payment","home-custom-packaging":"Custom Packaging","home-completed":"Completed","footer-academy":"Mentors","home-we-will-source":"We will source for you with lower price and higher quality.","home-we-already-have-warehouses":"We already have warehouses in the United States, China, Germany, Thailand, Indonesia, and more warehouses are coming soon. Excellent warehousing services are ready for you.","home-professional-dropshipping-service":"Professional Dropshipping Service","home-Efficient-delivery":"Efficient Delivery","product-card-connect":"Connect","product-card-connect-product-connection":"product connection","product-card-connect-click-connect-if-the-product-already-exists-in-your-store-to-establish-a":"Click \'connect\' if the product already exists in your store to establish a","product-card-connect-automatic-order-fulfillment":"automatic order fulfillment","product-card-connect-for":"for","add-the-product-to-your-store":"add the product to your store.","home-list-to":"Click \'List\' to","footer-improper-products-report":"Improper Products Report","t1-recommended.text1":"TOP","t1-recommended.text2":"Rankings","t1-recommended.text3":"Popular recommended products","mobile-tab-warehouse":"Change Warehouse","trans-Croatian":"Croatian","mobile-filter-price":"Price","warehouse-header-elites":"ELITES","warehouse-discount":"Free Shipping","card-data-add-queue":"Added to Queue","trans-Finnish":"Finnish","trans-Urdu":"Urdu","goods.card.free.shiping":"Free Shipping","warehouse-header-help-center":"Help-Center","warehouse-header-shipping-calculate":"Shipping Calculation","lan-currency":"Currency","trans-Czech":"Czech","trans-Indonesian":"Indonesian","verify-email":"Verify Email","goods.card.listed":"listed","toast-info":"Added to Queue successfully","toast-info-added":"Adding failed. The product has been added to Queue.","trans-Russian":"Russian","header-pod":"Print on Demand","trans-Serbian":"Serbian","trans-Chinese-Simplified":"Chinese (Simplified)","trans-Greek":"Greek","trans-Dutch":"Dutch","trans-Estonian":"Estonian","trans-Lithuanian":"Lithuanian","filter.type2":"Supplier Products","filter.type1":"Sort All Types","trans-Romanian":"Romanian","filter.type3":"Product Videos","trans-Korean":"Korean","trans-Hindi":"Hindi","cj-search-placeholder":"Search winning products by keyword, SKU, 1688/Taobao/Aliexpress URL","mobile-filter-confirm":"Confirm","empty-left":"Terms of Use","trans-Japanese":"Japanese","m-search-placeholder":"Search","trans-French":"French","header-register":"Register","trans-Thai":"Thai","trans-Filipino":"Filipino","header-authorization":"Authorization","verify-email-tips":"Hey {{email}}, to make sure your account security, please verify your email address here.","trans-Armenian":"Armenian","trans-Icelandic":"Icelandic","mobile-tab-language":"Change Language","trans-Latvian":"Latvian","no-data-mobile":"No Data","trans-Malay":"Malay","warehouse-header-rating":"Rating ({{supplierCount}})","t2-recommended.Trending":"Trending","warehouse-header-wallet":"Wallet","warehouse-header-tool":"Tool","trans-German":"German","warehouse-header-account":"Account","lan-confirm":"Confirm","mobile-filter-discount":"Special Services & Discount","CJRecommondation.title":"Products Recommendation","warehouse-header-blog":"Blog","trans-Georgian":"Georgian","trans-Yiddish":"Yiddish","trans-Ukrainian":"Ukrainian","warehouse-product-type1":"Product Videos","warehouse-product-type2":"Supplier Products","trans-Maltese":"Maltese","search-no-result":"There is no search result for","filter.confirm":"Confirm","filter.less":"Less","t2-recommended.Categories":"Categories","header-warehouse":"Warehouses","how-to-post":"How to post a sourcing request?","header-support":"Support Center","trans-Portuguese":"Portuguese","trans-Swahil
31657i":"Swahili","trans-Belarusian":"Belarusian","trans-Azerbaijani":"Azerbaijani","homepage.empty.text":"Coming soon...","trans-Irish":"Irish","card-free-icon":"Free Shipping","trans-Chinese-Traditional":"Chinese (Traditional)","warehouse-header-ticket":"Ticket","coming-soon":"Coming soon...","filter.best.match":"Best Match","sign-in":"Sign In","CJEmpty":"Coming soon...","filter.more":"More","trans-Afrikaans":"Afrikaans","trans-Italian":"Italian","card-data-added-queue":"Add to Queue","warehouse-header-profile":"Profile","warehouse-header-track-order":"Track Orders","t2-recommended.Discover":"Discover local best sellers","empty-question":"How to post a sourcing request?","filter.sort.price":"Price","trans-English":"English","banner-tips":"Our Professional and Effective Services","filter.in":"You are in:","trans-Swedish":"Swedish","trans-Danish":"Danish","cj-search-queue":"Queue","filter.all.categories":"All Categories","filter.filter.by":"Filter by:","trans-Bulgarian":"Bulgarian","filter.free.shipping":"Free Shipping","trans-Polish":"Polish","warehouse-header-logout":"Log Out","filter.price.warning":"Please enter the correct price format","trans-Albanian":"Albanian","trans-Welsh":"Welsh","header-Wishlist":"Wishlist","trans-Hungarian":"Hungarian","sourcing":"Sourcing","trans-Vietnamese":"Vietnamese","trans-Turkish":"Turkish","empty-right":"Help","CJhotlist.title":"Trending Categories","trans-Macedonian":"Macedonian","mobile-filter-reset":"Reset","filter.price":"Price","trans-Arabic":"Arabic","trans-Slovenian":"Slovenian","global-warehouse-trans":"Global Warehouse","no-search-test":"Please enter keywords","header-sourcing":"Sourcing","category-card-title":"Related Categories","card-data-view-inventory":"View Inventory","trans-Spanish":"Spanish","search-result-for":"Search results for","mobile-language-warehouse-setting":"Setting","empty-center":"Privacy policy","filter.categories":"CATEGORIES:","trans-Slovak":"Slovak","empty-sourcing":"Sourcing","filter.newest":"Newest","mobile-filter-type":"Filter by Types","trans-Norwegian":"Norwegian","lan-language":"Language","search-words-tips1":"Didn’t find what you want?","search-words-tips3":"or","search-words-tips2":"Contact us","search-words-tips4":"post a sourcing request","card-data-list-hover-2":"add the product to your store.","empty-contact":"Contact us","toast-info-fail":"Please check the production in Queue. It has been added to Queue.","intelGuid-germany-warehouse":"Germany Warehouse","intelGuid-indonesia-warehouse":"Indonesia Warehouse","intelGuid-tracking-numbers-setting":"Tracking Number Setting","intelGuid-decide-how-to-set-the-tracking-number-synced-to-your-specific-store.":"Decide how to set the tracking number synced to your specific store.","intelGuid-ship-a-bulk-of-items-to-your-place.":"Ship a bulk of items to your place.","intelGuid-preorder-inventory":"Preorder Inventory","intelGuid-make-full-payment-or-30%-deposit-to-stock-products-in-CJ-warehouses-to-shorten-processing-time.":"Make full payment or 30% deposit to stock products in CJ warehouses to shorten processing time.","intelGuid-global-suppliers":"Global Suppliers","intelGuid-global-suppliers-provide-products-and-shipment-domestically.":"Global suppliers provide products and shipment domestically.","intelGuid-open-dispute":"Open Dispute","intelGuid-in-case-of-any-aftersale-problems-you-can-open-a-dispute-to-request-a-refund-resend-or-return.":"In case of any aftersale problems, you can open a dispute to request a refund, resend or return.","intelGuid-optimize-warehouse":"Optimize Warehouse","intelGuid-change-the-shipping-warehouse-automatically-to-reduce-shipping-time-cost.":"Change the shipping warehouse automatically to reduce shipping time & cost.","intelGuid-declaration-with-IOSS":"Declaration with IOSS","intelGuid-enable-IOSS-declaration-options-to-facilitate-the-delivery-process-of-parcels-to-EU-countries.":"Enable IOSS declaration options to facilitate the delivery process of parcels to EU countries.","intelGuid-ship-your-products-to-CJ-warehouses-and-enjoy-CJ-fulfillment-service.":"Ship your products to CJ warehouses and enjoy CJ fulfillment service.","intelGuid-product-customization":"Product Customization","intelGuid-customize-your-product-get-samples-and-stock-finished-products-in-CJ-warehouses-for-dropshipping.":"Customize your product, get samples and stock finished products in CJ warehouses for dropshipping.","intelGuid-improper-products-report":"Improper Products Report","intelGuid-build-a-healthy-and-secure-shopping-environment.":"Build a healthy and secure shopping environment.","intelGuid-manage-all-your-stores-after-
31657authorization-whether-they-are-from-Shopify-eBay.":"Manage all your stores after authorization, whether they are from Shopify, eBay, WooCommerce, Wix, Etsy, BigCommerce, Magento, ShipStation, Squarespace, etc.","intelGuid-CJPacket-Ordinary-Sensitive-provides-reliable-shipping-time-with-competitive-prices.":"CJPacket Ordinary/Sensitive provides reliable shipping time with competitive prices.","intelGuid-submit-a-ticket-to-the-management-team-based-on-different-types-of-issue.":"Submit a ticket to the management team based on different types of issue.","intelGuid-source-from-1688-taobao-aliexpress":"Source from 1688, Taobao, AliExpress","intelGuid-ticket-to-management-team":"Talk to the Management Team.","filter.sort.by":"Sort By:","home-comments-from-facebook":"Here are the customers\' comments from Facebook.","home-from-shopify-app-store":"Here are the customers\' comments from Shopify APP Store.","home-you-will-have-the-nearest-warehouse":"You will have the nearest warehouse, the best shipping method, and the shortest processing and delivery time.","home-put-cJdropshipping-into-your-pocket":"Put CJdropshipping into your pocket","home-track-package":"Track Package","home-partner-network":"Partner Network","home-cJdropshipping-partnership":"CJdropshipping Partnership","home-scan-the-qr":"Scan the QR code to download CJdropshipping for Mobile.","home-shipping-cost-and-time":"Shipping Cost and Time","home-please-enter-the-tracking-number":"Please enter the tracking number","home-affiliate-program":"Affiliate Program","home-comments-from-trustpilot":"Here are the customers\' comments from Trustpilot.","intelGuid-fulfillment-service":"Fast Fulfillment","common-advertising-services":"Ads Service","top-nav-my-site":"My {{siteName}}","home-cj-super-deals-param":"{{name}} Super Deals","product-add-the-product-to-your-store":"add the product to your store.","common-top-1mb-is-the-max-image-size":"1MB is the max image size","common-pending-ticket":"Pending Tickets","common-remind-me-in":"Remind me in","common-view":"View","common-no-tasks-found":"No tasks found.","common-left-unchecked-they-will-weight-a-negative-impact-on-delivery-time":"Left unchecked, they will weight a negative impact on delivery time.","home-store-upgrading-in-progress":"Store upgrading in progress","home-brand-section":"Brand Section","product-card-added-to-queue-fail":"Adding failed.","for-your-account-security-please-link-your-email.":"For your account security, please link your email.","common-store-authorization-reminder":"Store Authorization Reminder","common-store-authorization-reminder-msg":"Your store (store name: {{name}}) has been deauthorized automatically as it has been inactive for a long time. You may reauthorize manually if necessary.","common-check-list":"To-do List","common-ticket-notification":"To-do List","common-cj-prime":"CJ Prime","common-odm":"ODM","common-chargeable-orders":"Chargeable Orders","common-left-unchecked-they-will-affect-order-delivery-time.":"Left unchecked, they will affect order delivery time.","common-top-affiliate":"Affiliate","search-success-scrolling-information":"The sourcing request for \\"{{productName}}\\" submitted by <span class=\'flag-icon {{country}}\' style=\'{{style}}\' ></span> {{firstName}} received a quotation within {{consumeHour}} hours.","quantity":"Quantity","quick-sourcing":"Quick Sourcing","target-price":"Target Price","request-for-sourcing":"Request for Sourcing","global-sourcing-for-cost-effective-and-diversified-products":"Global sourcing for cost-effective and diversified products","response-time":"Response Time","requests":"Requests","industries":"Industries","footer-store-authorization-agreement":"Store Authorization Agreement","home-add-to-queue":"Add the product to Queue to bulk list products.","common-top-video-control-last-product":"Last Product","common-top-comment-write-a-reply":"Write a reply","common-top-comment-del-tip":"Are you sure to delete the comment? All replies will be deleted too.","common-top-purchase-copyright-no-buy-tip":"The copyright video is invisible to other users.\\r\\n Due to the special character of the video order, a refund or return is not available.","common-top-purchase-copyright-button":"Copyright","common-top-purchase-copyright-tip":"Download right purchased. The video will be invisible to other users upon your purchase of the copyright.\\r\\n Due to the special character of the video order, a refund or return is not available.","common-top-downloaded":"Downloaded","common-top-favorited":"Favorited","common-top-purchase-download-right-tip":"For its high-resolution version without watermark, please purchase the download right.\\r\\nDue to the special character of the video order, a refund or return is not available.","common-top-download":"Download","common-top-exit-full-screen":"Exit Full Screen","common-top-free-download":"Free Download","common-top-download-right":"Download Right","common-top-video-control-next-product":"Next Product","common-top-video-selection":"Video Sourcing","common-top-comment-leave-a-message":"Leave a message!","common-top-video-gallery":"Video Gallery","common-tonnes-of-videos-with-an-immersive-experience":"Tonnes of videos with an immersive experience.","common-top-exit-video-gallery":"Exit Video Gallery","common-top-video-control-last-spu-video":"Last Video","common-top-video-control-next-spu-video":"Next Video","top-nav-sourcing-request":"Sourcing Request","common-top-invalid-image.":"Invalid image. ","common-top-we-found-you-have-not-installed-cj-chrome-extension-do-you-want-to-install-it":"We found you have not installed CJ Chrome Extension, do you want to install it?","common-top-we-found-you-have-not-installed-cj-chrome-extension-do-you-want-to-install-it?":"We found that you had not installed CJ Chrome Extension yet. Do you want to install it?","common-await-resending":"Awaiting Resending","common-overdue-will-cause-the-package-to-be-returned-or-destroyed.":"Overdue will cause the package to be returned or destroyed","common-overdue-will-cause-the-package-to-be-destroyed.":"Overdue will cause the package to be destroyed.","home-request-for-sourcing":"Request for Sourcing","common-await-pickup-at-local-post-office":"Awaiting Pickup at Local Post Office","common-mycj-menu-shopee":"Shopee","common-mycj-menu-squarespace":"Squarespace","common-mycj-menu-shoplazza":"ShopLazza","common-mycj-menu-orders-fulfillment":"Orders Fulfillment","common-mycj-menu-prestashop":"PrestaShop","common-mycj-menu-bigcommerce":"BigCommerce","common-mycj-menu-buyers-design":"Buyer\'s Design","common-mycj-menu-my":"My","common-mycj-menu-export-list":"Export List","common-mycj-menu-magento":"Magento","common-mycj-menu-wed2c":"WED2C","common-mycj-menu-nuvemshop":"Nuvemshop","common-mycj-menu-purchase-list":"Purchase List","common-mycj-menu-dashboard":"Dashboard","common-mycj-menu-wishlist":"Wishlist","common-mycj-menu-service-products":"Service Products","common-mycj-menu-customization":"Customization","common-mycj-menu-sku-list":"SKU List","common-mycj-menu-service-product-list":"Service Product List","common-mycj-menu-design-myself":"Design Myself","common-mycj-menu-video-list":"Video List","common-mycj-menu-print-on-demand":"Print on Demand","common-mycj-menu-products":"Products","common-mycj-menu-store-authorization":"Store Authorization","common-mycj-menu-shipment":"Shipment","common-mycj-menu-dropship-orders":"Dropship Orders ","common-mycj-menu-service-products-products":"Products","common-mycj-menu-my-photography":"My Photography","common-mycj-menu-imported-orders":"Imported Orders","common-mycj-menu-purchase-cart":"Purchase Cart","common-mycj-menu-orders-tracking":"Orders Tracking","common-mycj-menu-sourcing":"Sourcing","common-mycj-menu-my-inventory":"My Inventory","common-mycj-menu-custom-packaging":"Packaging","common-mycj-menu-connection":"Connection ","common-mycj-menu-sku-list-tip":"Add products for manual orders.","common-mycj-menu-my-photography-tip":"Shoot marketing videos and photos.","common-mycj-menu-service-products-tip":"Ship your products to {{siteName}} warehouses and enjoy {{siteName}} fulfillment service.","common-mycj-menu-purchase-list-tip":"Wholesale products, deposit inventory and preorder inventory.","common-mycj-menu-connection-tip":"Connected products for order synchronization.","common-mycj-menu-sourcing-tip":"Sourcing offers a solution when you didn\'t find the product you want to sell.","common-mycj-menu-find-the-source":"Find the source","common-mycj-new-message":"New Message","common-mycj-contact-agent":"Contact Agent","common-mycj-menu-print-on-demand-tip":"You and your customers can design unique product patterns.","common-mycj-menu-custom-packaging-tip":"Purchase or design packaging and connect packages with your products.","common-mycj-menu-photography-service-tip":"Shoot marketing videos and photos for your products.","common-mycj-menu-store-products-tip":"Check here for your store products, where you can make product connections.","common-mycj-menu-customization-tip":"{{siteName}} offers integrated design and manufacturing services to facilitate your branding business, saving your labor and time inputs.","common-mycj-menu-my-inventory-tip":"Check your inventory here if you have brought private inventory, packaging, or deposit inventory.","common-mycj-menu-3pl-tip":"Ship your products to {{siteName}} warehouses and enjoy {{siteName}} fulfillment service","common-mycj-menu-ticket":"Ticket","common-mycj-menu-find-products":"Find Products","common-mycj-menu-queue":"Queue","common-mycj-menu-store-products":"Store Products","common-mycj-menu-browsing-history":"Browsing History","common-mycj-menu-sample-orders":"Sample Orders","common-mycj-menu-listing-records":"Listing Records","common-mycj-menu-products-records":"Product Records","common-mycj-menu-wholesale-orders":"Wholesale Orders","common-mycj-menu-inventory-orders":"Inventory Orders","common-mycj-menu-service":"Services","common-mycj-menu-photography-service":"Photography Service","common-mycj-menu-authorization":"Authorization","common-mycj-menu-store-orders":"Store Orders","common-mycj-menu-video-records":"Video Records","common-mycj-menu-fulfillment-status":"Fulfillment Status","common-mycj-menu-orders-creation":"Orders Creation","common-you-havent-synced-store-orders-for-a-long-time":"You haven\'t synced store orders for a long time!","common-sync-store-orders":"Sync Store Orders","common-mycj-menu-orders-picking":"Cart","common-mycj-menu-tiktok-us":"TikTok Shop US","common-mycj-menu-tiktok":"TikTok Shop","common-top-go-to-eBay":"Go to eBay","home-big-smiles-from-our-customers":"Big Smiles from our Customers","common-top-enter-spu-sku":"Enter SPU/SKU","shipping-policy":"Shipping Policy","home-tiktok-ads":"TikTok Ads","home-tiktok-ads--plural":"TikTok Ads","common-photorequest":"Photo Request","":"Returns or exch
31657anges due to product quality or logistics issues or after-sales compensation are not accepted.","common-video-download":"This video will be available for all to download in {{openIn}} days.","common-purchase-copyright-special":"Due to the special character of the video order, a refund or return is not available.","intelguid-britain-warehouse":"Britain Warehouse","intelguid-located-in-samut-manchester.":"Located in Manchester.","intelguid-located-in-samut-unna.":"Located in Unna.","home-ads-agency":"Ads Agency","common-top-image-to-search-no-login":"Please log in before using this feature or","home-recommended-platform":"Recommended Products for E-commerce Platform","common-mycj-menu-my-products":"My Products","common-mycj-menu-listed":"Queue","product-recommended-products":"Recommended Products","common-optimize-notice-detail-btn":"View Now","common-optimize-notice-title":"New Version Updates","logistic-delivery-time-title":"Delivery Time","logistic-shipping-method":"Shipping  Method","logistic-shipping-tip":"Note: Above are real data, updated in real time.","logistic-delivery-time":"Delivery Time","logistic-shipping-calculation":"Shipping Calculation","product-card-add-my-products":"Added Products","product-card-added":"Added","common-mycj-menu-shopify":"Shopify","common-mycj-menu-shipstation":"ShipStation","common-mycj-menu-aliexpress":"AliExpress","common-optimize-notice-opt1":"1. Omnipresent navigation menu: it is applied in full coverage for convenient navigation, some titles of which have been renamed;","common-optimize-notice-opt2":"2. New Menu—My Products: “Wishlist”, “SKU List”, and “Queue” have been integrated here and the old entrances have been closed;","common-optimize-notice-opt3":"3. Order integration: the menu is reclassified in line with different order types, each sub-menu an integral part of order fulfillment.","common-optimize-notice-optmore":"To check out details later on, you can also click on the \\"{{icon}}\\" on the top.","common-optimize-notice-change":"New updates are listed as follows; Please check out:","common-mycj-menu-view-new-updates":"View New Updates","common-mycj-menu-3pl":"3PL Fulfillment","common-mycj-menu-view-new-updates-cancel-text":"Are you sure you want to close the portal? To check out the update details later on, please click on the “bell”—the notification button on the top.","common-mycj-menu-view-new-updates-cancel-cencel":"Cancel","common-mycj-menu-view-new-updates-cancel-close":"Close","home-global-sourcing":"Global sourcing for cost-effective and diversified products","common-cj-ugc":"CJ UGC","common-pod":"POD","home-explore-your-interests":"Explore Your Interests","common-top-sign-in-service":"Sign In","card-data-list-hover-1":"Click List to","List-text-pur":"Lists","List-text":"List","filter.lists":"Lists","card-data-list":"List","product-click-list-to":"Click \'List\' to","card-data-added-queue-hover":"Add the product to Queue to bulk list products.","common-mycj-menu-my-design":"My Design","footer-site-map":"Site Map","common-mycj-menu-mercado":"Mercado","common-mycj-menu-pod-products":"POD Products","footer-cookie-policy":"Cookie Policy","common-copyright-all-rights-reserved":"{{currentYear}} {{fullName}} All Rights Reserved","empty-rights":"© {{nowYear}} CJdropshipping.com All Rights Reserved","vs-eli-top-article":"Top Article","vs-eli-hot-topics":"Hot Topics","vs-eli-top-questions":"Top Questions","vs-eli-today":"Today","vs-eli-follower":"{{count}} follower","vs-eli-yesterday":"Yesterday","vs-eli-btn-text":"Go to Elites","vs-eli-days-ago":"{{day}} Days ago","vs-eli-follower-count":"follower","home-you-sell-we":"You sell-We source and ship for you!","vs-eli-title":"Elites-Helps You Become an Elite in Dropshipping","terms-of-service":"Term of Service","back":"Back","common-academy":"CJ Mentors","vs-eli-update-btn":"Update","home-1688-hot-selling-product":"Hot Selling","home-1688-global-product":"Global Products","home-1688-tendency-product":"Trending Products","footer-raising-integrity-concerns":"Whistleblower Policy","common-top--to-make-sure-your-account-security-please-verify-your-email-address-here.":", to make sure your account security, please verify your email {{email}} address here.","language-albanian":"Albanian","filter-sort-by":"Sort by","home-new-products":"New Products","filter-sort-price":"Price","filter-sort-general":"General","filter-sort-sales":"Sales","filter-sort-confirm":"Confirm","list-showing":"Showing","list-go":"Go","list-of":"of","list-max":"Max","list-min":"Min","list-nodata":"No results found.","common-login-sign-in":"Sign in","purchase-detail-ordernumber":"Order Number","purchase-detail-no1-ordercreated":"No.1 Order Created","common-login-forgot-your-password":"Forgot your password","common-login-email-address":"Email Address","common-login-massive-products":"Massive products","common-login-username":"Username","common-login-remember-me":"Remember me","common-login-password":"Password","common-login-sign-up-here":"Sign up here","purchase-no-address":"You haven\'t added any addresses yet.","purchase-detail-pstatus":"Status","purchase-detail-supplier":"Supplier","common-risk-sendus":"For orders (Order number: {{orderCode}}) sent to the US.","common-risk-abnormal-order":"The abnormal order (Order number: {{orderCode}}) cannot be submitted.","common-order-sku":"SKU","common-order-disputed":"Disputed","common-order-stocked":"Stocked","common-order-inventory-tips3":"3. The inventory status of Sub SKUs shows below:","common-order-products":"Products","common-order-sku-quantity":"2. Main SKU: Total Quantity = {{orderQuantity}}, Stocked Quantity = {{allocateQuantity}}","common-order-total":"Total","common-order-inventory-status":"Inventory Status","common-order-log":"Order Logs","common-order-disputed-tips":"Contains both those in dispute and those on which the disputes have been completed.","common-order-file-extensions":"Allowed File Extensions: .jpg, .gif, .jpeg, .png","common-order-return-original":"Return to the original way","common-order-dispat
31657ched":"Dispatched","common-order-store":"Store","common-order-video-extensions":"Allowed Video Extensions: .mp4, .avi, .wmv, .flv, .mpg, .mov","common-order-pending":"Pending","common-order-disputed-details":"Dispute Details","common-order-back-balance":"Back in balance","common-order-quantity":"Quantity","common-order-processing":"Processing","common-order-shipping-method":"Shipping Method","common-order-yorder-number":"Your Order Number","common-order-refund-tip":"Refund for orders of combined payment will be deposited in your {{websiteName}} Wallet.","common-order-message":"Message","common-order-attachments":"Attachments","common-order-total-amount":"Total Amount","common-order-completed":"Completed","common-order-confirm":"Confirm","common-order-vat-ioss":"VAT upon IOSS","common-order-cancel":"Cancel","common-order-ioss-fee":"IOSS Handling Fee","common-order-shipping-cost":"Shipping Cost","common-order-order-status":"Order Status","common-order-tracking-number":"Tracking Number","common-order-unmessage":"Please enter the message.","common-order-order-number":"Order Number","common-order-price":"Price","common-order-more":"More","common-order-image":"Image","purchase-cart-one-piece-dropship":"One Piece Dropship","comoon-order-piece":"Piece","common-order-bundle-products":"Bundle Products","common-order-bundle-no-data":"Sorry, we can\'t find any products.","common-order-resend":"Resend","common-order-refund":"Refund","common-unverified":"Unverified","common-not-find-product":"Sorry, we can\'t find any products.","common-bundle-products":"Bundle Products","common-sku":"SKU","common-quantity":"Quantity","common-price":"Price","common-refund":"Refund:","common-confirm":"Confirm","common-variant":"Variant","common-piece":"Piece","common-product":"Product","common-subtotal":"Subtotal","common-1-if-you-would":"1. If you would like to use one of the shipping methods listed below, please check the reasons and follow the suggestion.","common-no-orders-yet":"No orders yet.","common-shipping-method":"Shipping Method","common-close":"Close","common-reasons":"Reasons:","common-2-if-there-is":"2. If there is no solution or you still cannot use the shipping method after following the suggestion, please select other shipping methods.","common-unavailable-shipping-methods-and":"Unavailable Shipping Methods and Reasons","common-3-if-you-would":"3. If you would like to use none of them, please contact your agent.","common-suggestion":"Suggestion","common-order-weight":"Weight","common-please-contact":"please contact your agent.","common-note":"Note","footer-all-rights-reserved":"All Rights Reserved","footer-help":"Help","common-order-product-cost":"Product Cost","common-order-order-amount-details":"Order Amount Details","common-order-product-discount":"Product Discount","common-order-shipping-discount":"Shipping Discount","common-order-amount-off":"Amount off","common-order-abnormal-logistic-ed":"Handed to the Carrier","common-order-abnormal-warehouse-ing":"Dispatch in process (processing time overdue)","common-order-abnormal-logistic-ing":"Handing to the Carrier (processing time overdue)","common-order-abnormal-track-num-ed":"Tracking number generated","common-order-abnormal-procurement-ed":"Products Stocked","common-order-abnormal-track-num-ing":"Tracking number generation in process (processing time overdue)","common-order-abnormal-procurement-ing":"Procurement in process (processing time overdue)","common-order-abnormal-warehouse-ed":"Dispatched","common-order-abnormal-title":"Order Notification","common-order-view":"View","common-order-have-opened-dispute-in-order":"You have opened a dispute for this order.","common-order-will-be-charged":"will be charged.","common-order-edit-address":"Edit Address","common-order-consignee-modal-notice":"No address found. Please set up the address first.","common-order-details":"Details","common-order-has-been-refunded":"has been refunded to you.","common-th-search-placeholder":"Please enter keywords to search.","product-card-sale":"{{num}} Sales/{{day}}Days","product-th-products-inbound":"Products Inbound","product-th-quality-inspection-desc":"1688 merchants send products to 1688tech\'s Chinese warehouses, where we conduct the quality inspection and weighing before sending the shipping fee bill to your account.","product-th-products-inbound-desc":"When the products have arrived at the 1688tech local warehouse, you will be reminded to pay for the freight.","product-th-product-procurement-title-desc":"Sorry, due to the lack of necessary information for calculating the shipping fee, you only need to pay the product fee now and make up the shipping fee later.","product-th-buyflow-confirm":"Confirm","product-th-delivery-self-pickup":"Delivery&
31657Self-pickup","common-lack-of-necessary-information":"Sorry, due to the lack of necessary information for calculating the shipping fee, you only need to pay the product fee now and make up the shipping fee later.","common-select-related-orders":"You may select related orders by \\"Shipping Payment Status\\" in the order list.","common-as-the-necessary-information":"As the necessary information for calculating the shipping fee has been ready, please refresh the page and select a shipping method.","common-proceed":"Proceed","common-check-the-detailed":"Click to check the detailed procedure.","common-currency-updated":"Currency updated. Please refresh the page to check.","common-order-information-updated":"Order information updated. Please refresh the page and try again","common-refresh":"Refresh","common-th-menu-one-piece-dropship":"One Piece Dropship","common-th-profile-wholesale-orders":"Wholesale Orders","common-th-profile-one-piece-dropship":"One Piece Dropship","common-th-profile-wallet":"Wallet","common-th-profile-undelivered-orders":"Undelivered Orders","common-mycj-menu-my-orders":"My Orders","common-th-profile-my-orders":"My Orders","payment-pay-with-wallet":"Pay with {{platformName}} wallet","payment-pay-with-card":"Pay with Card","payment-wire-transfer":"Wire Transfer","common-th-profile-profile":"Profile","wallet-charging-benefit":"Charging Benefit","wallet-top-up-upper":"Top-up","wallet-affiliate-withdrawal":"Affiliate Withdrawal","wallet-withdrawal":"Withdrawal","wallet-system-deduction":"System Deduction","wallet-order-refund":"Order Refund","wallet-system-refund":"System Refund","wallet-order-refund-out-of-stock":"Order Refund: Out of Stock","wallet-top-up-with-gift-card":"Top-up with Gift Card","wallet-order-payment":"Order Payment","common-order-available":"Available","common-order-note":"Note","common-order-pay-error-notice-one":"You have selected {{originLen}} products, only {{diffLen}} of which can be submitted","common-order-pay-error-notice-two":"Product modification is shown below. Please resubmit.","common-order-subtotal":"Subtotal","common-order-variant":"Variant","common-order-piece":"Piece","common-order-top":"TOP","common-order-reason":"Reason","purchase-add-new-address":"Add New Address","common-order-pagination-page":"Page","common-order-pagination-per-page":"Per Page","common-order-pagination-go-to":"Go to","common-order-pagination-record":"Record","common-unverified-toast-first":"1. Unverified products: products whose weight, length, width, and height have not yet been verified in the warehouse.","common-unverified-toast-second":"2. For those products, you may pay the product fee first in order placement and make up the shipping fee later.","common-logistics-information":"Dear Customers, Here is the latest logistics information.","common-cart":"Cart","my-profile-address-first-name":"First Name","my-profile-address-default-shipping-address":"Default Shipping Address","my-profile-address-set-as-default-address":"Set as Default Address","my-profile-address-phone-number":"Phone Number","my-profile-address-add-a-regular-address-to-select-it-easily":"Add a regular address to select it easily in creating sample or dropshipping orders.","my-profile-common-edit":"Edit","my-profile-common-save":"Save","my-profile-common-delete":"Delete","my-profile-address-email":"Email","my-profile-address-company":"Company","my-profile-address-city":"City","my-profile-address-province":"Province","my-profile-address-add-new-address":"Add New Address","my-profile-address-address2":"Address2","my-profile-address-address1":"Address1","my-profile-address-consignee-address":"Consignee Address","my-profile-address-region":"Region","my-profile-address-postcode":"Postcode","my-profile-address-country":"Country","my-profile-common-confirm":"Confirm","my-profile-common-cancel":"Cancel","my-profile-address-last-name":"Last Name","my-profile-address-you-haven-not-added-any-addresses-yet":"You haven\'t added any addresses yet.","my-profile-address-set-as-default-consignee":"Set as Default Consignee","common-th-in-this-page":"In this page","my-profile-address-invalid-postcode-please-enter-a-valid-postcode":"Invalid postcode. Please enter a valid postcode.","my-profile-address-please-enter-the-last-name":"Please enter the last name.","my-profile-address-please-enter-the-province-state":"Please enter the province/state.","my-profile-address-consignee-id":"Consignee ID","my-profile-address-please-enter-the-first-name":"Please enter the first name.","my-profile-address-invalid-phone-please-enter-a-valid-phone":"Invalid phone. Please enter a valid phone.","my-profile-address-set-as-default-shipping-address":"Set as default shipping address","my-profile-address-please-enter-the-address":"Please enter the address.","my-profile-address-please-enter-the-name-of-the-city":"Please enter the name of the city.","my-profile-address-please-select-country":"Please select country.","my-profile-account-confirm-new-password":"Confirm New Password","my-profile-account-if-you-find-our-system-emails-have-been-blocked":"if you find our system emails have been blocked.","my-profile-account-it-will-expire-in-10-minutes-please-verify-within-10-minutes":"It will expire in 10 minutes, please verify within 10 minutes.","my-profile-account-enter-new-password":"Enter new password","my-profile-account-unable to re
31657ceive the code for a long time due to network error":"Unable to receive the code for a long time due to network error.","my-profile-account-if-you-want-to-reset-your-password-for":"If you want to reset your password for <span class=\'f-org\'>{{email}}</span>, please click \'Verify Now\' below.","my-profile-account-verification-code":"Verification Code","my-profile-common-submit":"Submit","my-profile-account-please-check-if-your-email-is-working-properly":"Please check if your email is working properly.","my-profile-account-change-your-filter-settings":"change your filter settings","my-profile-account-enter-password":"Enter password","my-profile-account-send":"Send","my-profile-account-verify-email":"Verify Email","my-profile-account-reset-password":"Reset Password","my-profile-account-reset-success!":"Reset Success!","my-profile-account-it-will-back-to-the-first-step-after-seconds":"It will back to the first step after {{succSecond}} seconds.","my-profile-account-verify-by-email":"Verify by Email","my-profile-account-new-password":"New Password","my-profile-account-don-not-receive-a-code":"Don’t receive a code?","my-profile-account-there-is-a-delay-in-receiving-the-code-please-be-patient-and-do-not-click":"There is a delay in receiving the code, please be patient and don’t click.","my-profile-account-update-in-progress":"Update in progress","my-profile-common-back":"Back","my-profile-account-email-address":"Email Address","my-profile-account-please resubmit the request or change the browser":"Please resubmit the request or change the browser.","my-profile-account-reset-success":"Reset Success","my-profile-account-verify-now":"Verify Now","my-profile-account-it-may-be-in-the-spam-or-the-email-storage-is-full":"It may be in the spam or the email storage is full.","my-profile-account-the-verification-code-has-been-sent-to-your-email":"The verification code has been sent to your email.","my-profile-account-please":"Please","my-profile-account-incorrect-verification-code-please-enter-it-again":"Incorrect verification code, please enter it again.","common-you-can-upload-files-at-most":"You can upload {{maxUploadNum}} files at most.","common-oops-something-wrong-please-try-again-later":"Oops, something wrong. Please try again later","common-upload-failed":"Upload Failed","common-upload":"Upload","common-invalid-file-format-please-upload-again":"Invalid file format. Please upload again.","common-uploaded-successfully":"Uploaded Successfully","common-the-file-should-be-within-max-size-m":"The file should be within {{maxUploadSize}}M.","home-1688-one-dropship":"Premium Selected","language-hebrew":"Hebrew","my-profile-config-update-in-progress":"Update in progress:","my-profile-account-if-you-want-to-reset-your-password-for-email":"If you want to reset your password for {{email}}, please click \'Verify Now\' below.","my-profile-config-please-carefully-enter-the-information":"Please carefully enter the information.","my-profile-config-add":"Add","my-profile-config-not-allow":"Not Allow","my-profile-config-email-information-of-your-store-orders-will-be-automatically-synced":"Email information of your store orders will be automatically synced, or be left blank if it doesn\'t exist.","my-profile-config-phone-number":"Phone Number","my-profile-config-for-certain-shipping-methods-email-information":"For certain shipping methods, email information is obligatory, without which the order may not be able to be generated or fulfilled.","my-profile-config-you-may-either-manually-edit-it":"You may either manually edit it, possibly a virtual one, or select another shipping method that do not require email information.","my-profile-config-use-a-virtual-one":"Use a virtual one","my-profile-config-email":"Email","my-profile-config-enter-the-email-to-increase-the-success-rate-of-delivery":"Enter the email to increase the success rate of delivery.","my-profile-config-sync-and-show-email-information":"Sync and Show Email Information:","my-profile-config-email-information-will-be-left-blank":"Email information will be left blank.","my-profile-config-effective-for-newly-synced-orders":"Effective for newly-synced orders","my-profile-config-in-such-case-a-virtual-email-will-be-applied-automatically":"In such case, a virtual email will be applied automatically and subject to your modification.","my-profile-config-action":"Action","my-profile-config-country-region":"Country/Region","my-profile-config-phone":"Phone","my-profile-config-in-the-case-of-no-email-information":"In the Case of No Email Information:","my-profile-config-effective-for-orders-in-orders-and-cart":"Effective for orders in \'Orders\' and \'Cart\'","my-profile-config-upon-clicking-with-blank-phone-numbers-will-be-updated-automatically":"Upon clicking \'Confirm\', all orders in \'Imported Orders\' and \'Cart\' with blank phone numbers will be updated automatically. ","my-profile-config-leave-it-blank-and-edit-manually":"Leave it blank and edit manually","my-profile-config-for-a-delay-in-delivery-wrought-by-your-placing-the-wrong-information":"For a delay in delivery wrought by your placing the wrong information, you should take full responsibility.","my-profile-config-recommended-number-format":"Recommended number format.","my-profile-config-note-please-kindly-wait-if-there-are-many-orders-to-be-updated":"(Note: Please kindly wait if there are many orders to be updated.)","my-profile-config-allow":"Allow","my-profile-config-no-data-found":"No data found.","my-profile-account-there-is-sufficient-inventory-in-the-local-warehouse":"There is sufficient inventory in the local warehouse (Private inventory will be deducted first.)","my-profile-account-no-pod-products-contained":"No POD products contained.","my-profile-account-when-the-feature-is-turned-on-in-order-creation":"When the feature is turned on: in order creation, the local warehouse will be applied automatically in line with your order address if the following conditions are met. Or, China warehouse will be applied.","my-profile-account-progress":"Progress:","my-profile-account-local-warehouse-delivery":"Local Warehouse Delivery","my-profile-account-turn-it-on-to-shorten-the-delivery-time":"Turn it on to shorten the delivery time.","my-profile-account-there-is-an-available-shipping-method":"There is an available shipping method.","my-profile-account-there-is-a-local-warehouse-in-the-destination-country":"There is a local warehouse in the destination country.","my-profile-account-when-the-feature-is-turned-off-china-warehouse-will-be-the-default-option":"When the feature is turned off: China warehouse will be the default option.","my-profile-account-note-the-real-inventory-may-be-insufficient":"Note: as the above conditions are calculated in order creation, the real inventory may be insufficient. Please act accordingly in line with reminders then.","my-profile-account-order-information-settings":"Order Information Settings","my-profile-account-preset-the-shipping-address-to-facilitate-order-fulfillment":"Preset the shipping address to facilitate order fulfillment.","my-profile-common-action":"Action","my-profile-common-add":"Add","my-profile-shipping-deleted-successfully":"Deleted Successfully","my-profile-shipping-deleting-failed":"Deleting Failed","my-profile-shipping-please-select-a-category-first":"Please select a category first.","my-profile-shipping-default-shipping-method-can-only-be-set-up-in-3-categories-at-the-moment":"Default Shipping Method can only be set up in 3 categories at the moment.","my-profile-shipping-either-the-cheapest-or-the-fastest-shipping-method-can-be-set-up":"Either the cheapest or the fastest shipping method can be set up for the order 
31657category.","my-profile-shipping-you-have-already-added-the-category":"You have already added the category.","my-profile-shipping-product":"Product","my-profile-shipping-secondary":"Secondary","my-profile-shipping-saved-successfully":"Saved Successfully","my-profile-shipping-you-have-already-set-up-the-precedence":"You have already set up the precedence.","my-profile-shipping-saving-failed":"Saving Failed","my-profile-shipping-tertiary":"Tertiary","my-profile-shipping-order-cheapest-shipping-method":"Order - Cheapest Shipping Method","my-profile-shipping-order-fastest-shipping-method":"Order - Fastest Shipping Method","my-profile-shipping-store":"Store","my-profile-shipping-primary":"Primary","my-profile-config-please-enter-the-email":"Please enter the email.","my-profile-shipping-you-can-set-up-the-precedence-for-the-3-categories":"You can set up the precedence for the 3 categories.","my-profile-shipping-more-details-about":"More details about:","my-profile-shipping-default-shipping-method-precedence":"Default Shipping Method Precedence","my-profile-shipping-add-the-precedence-for-default-shipping-methods":"Add the precedence for default shipping methods.","my-profile-shipping-precedence":"Precedence","my-profile-shipping-default-shipping-method-can-be-set-up-for-3-categories":"Default shipping method can be set up for 3 categories: (1) Store; (2) Product; (3) Order (Cheapest/Fastest shipping method).","my-profile-shipping-category":"Category","my-profile-shipping-how-to-set-default-shipping-method-precedence":"How to Set Default Shipping Method Precedence?","common-top-country":"Country","my-profile-common-please-select":"Please select","my-profile-common-no-data":"No Data","my-profile-common-all":"All","common-th-profile-browsing-history":"Browsing History","product-th-product-procurement-title-desc-no-weight":"Sorry, due to the lack of necessary information for calculating the shipping fee, you only need to pay the product fee now and make up the shipping fee later once the product information has been confirmed.","product-th-product-procurement-title-desc-no-property":"Sorry, due to the lack of necessary information for calculating the shipping fee, you only need to pay the product fee now and make up the shipping fee later once the product information has been confirmed","product-th-ordering-process":"Ordering Process","my-profile-address-delete-address":"Delete Address","my-profile-address-are-you-sure-to-delete-this-address":"Are you sure to delete this address?","common-top-drag-or-upload-an-image-to-search.":"Drag or upload an image to search.","common-change-user-default-config":"Are you sure to change the default language and currency?","list-record":"Record","list-record--plural":"Records","common-mycj-contact":"Contact","common-order-brazilian-tax":"Brazilian Tax","common-order-unavailable-logistics-reason":"Check unavailable shipping methods and reasons.","common-order-unavailable":"Unavailable","common-order-total-shipping-cost":"Total Shipping Cost","common-order-tracking-info":"Tracking Info","common-order-delivery-time":"Delivery Time","common-order-logistics-select-search-placeholder":"Please enter the shipping method","common-order-search":"Search","common-order-no-data":"No Data","list-correct-msg":"Please enter the correct price format","common-order-pay-on-my-behalf":"Pay on My Behalf","common-order-pay-myself":"Pay Myself","common-order-days":"{{day}} Day(s)","common-order-remote-fee-notice":"Including {{fee}} for remote fee","language-amharic":"Amharic","common-order-sku-multiple-ranges":"The number of SKUs must be a multiple of {{multiple}} and must not exceed 100,000","common-order-sku-multiple-ranges--plural":"The number of SKUs must be a multiple of {{multiple}} and must not exceed 100,000","common-order-sku-quantity-ranges":"SKU quantity ranges from 1 to 100,000","common-order-sku-quantity-ranges--plural":"SKU quantity ranges from 1 to 100,000","common-sign-in":"Sign In","common-register":"Register","purchase-cart-sample":"Sample","purchase-cart-wholesale":"Wholesale","common-top-register":"Register","common-top-sign-in":"Sign In","account-switched-tips":"You have switched an account. Please reload the page for updated information.","account-switched-tips--plural":"You have switched an account. Please reload the page for updated information.","common-reload":"Reload","common-reload--plural":"Reload","account-switched":"Account Switched","account-switched--plural":"Account Switched","common-top-language":"Language","common-top-currency":"Currency","common-login-you-can-source-everything":"You can source everything","common-login-no-account":"No Account","common-change-user-lngcur-country":"Are you sure to change the current country, language, and currency?","common-change-user-lngcur-country--plural":"Are you sure to change the current country, language, and currency?","common-th-search":"Search","product-th-products-arrived-desc":"Once your order arrives at the 1688. tech local warehouse, you\'ll be notified to pay the final logistics fee and receive your order\'s pickup location.","product-th-delivery-or-self-pickup":"Self
31657-pickup order products","home-1688-recommended-products":"You May Also Like","product-th-product-procurement-title-desc-normal":"You will only need to pay for the product for now with disregard for the shipping fee until the product arrives at the local warehouse.","product-th-product-procurement":"Product Procurement","product-th-products-order-placement":"You may select products at 1688tech and choose only to pay the product fee in order placement.","product-th-products-arrived":"Products Arrived at the Local Warehouse","product-th-products-order-placement-normal":"You may pick the products at 1688tech and you will only need to pay the product fee at this moment.","product-th-quality-inspection":"Quality Inspection&Weighing","common-mycj-menu-cart":"Cart","common-mycj-menu-orders":"Orders","common-mycj-menu-undelivered-orders":"Undelivered Orders","common-mycj-menu-disputes":"Disputes","common-mycj-my-site":"My {{siteName}}","common-mycj-menu-profile":"Profile","common-mycj-menu-wallet":"Wallet","logistic-order-placed-delivered-from-to":"Order {{customerOrderId}} placed by {{customerName}} has been delivered for a period of {{day}} days from <span class=\'flag-small {{start}}\' style=\'{{style}}\' ></span> to <span class=\'flag-small {{end}}\' style=\'{{style}}\' ></span>.","common-mycj-menu-tiktok-us-cross":"TikTok Shop US Cross Border","common-top-search-mabang-placeholder":"Please enter SPU/SKU, keywords, CJDropshipping product link to search for products","common-top-search-mabang-placeholder--plural":"Please enter SPU/SKU, keywords, CJDropshipping product link to search for products","product-card-list-with-on-click":"List with One-Click","product-card-list-with-on-click--plural":"List with One-Click","mabang-all":"All","global-warehouses-cj-has-confirmed-the-product":"{{name}} has confirmed the product quality and accurate inventory. Shipment is expected within 48 hours.","global-warehouses-cj-has-confirmed-the-product--plural":"{{name}} has confirmed the product quality and accurate inventory. Shipment is expected within 48 hours.","global-warehouses-unverified-inventories":"Unverified Inventories","global-warehouses-unverified-inventories--plural":"Unverified Inventories","global-warehouses-last-week":"Last week","global-warehouses-last-week--plural":"Last week","global-warehouses-supplier-products":"Supplier Products","global-warehouses-verified-inventories":"Verified Inventories","global-warehouses-verified-inventories--plural":"Verified Inventories","global-warehouses-all":"All","global-warehouses-last-3-months":"Last 3 months","global-warehouses-last-3-months--plural":"Last 3 months","global-warehouses-last-month":"Last month","global-warehouses-last-6-months":"Last 6 months","global-warehouses-last-6-months--plural":"Last 6 months","common-warehouse-all-warehouse":"All Warehouse","common-warehouse-all-warehouse--plural":"All Warehouse","common-warehouse-search-placeholder":"Please enter the country abbreviation or full name.","common-warehouse-search-placeholder--plural":"Please enter the country abbreviation or full name.","common-warehouse-no-data":"Sorry, no data found.","common-warehouse-no-data--plural":"Sorry, no data found.","common-warehouse-more":"More","common-warehosue-confirm":"Confirm","common-top-warehouse-search-tip1":"Infinite Local Products","common-top-warehouse-search-tip1--plural":"Infinite Local Products","common-top-warehouse-search-tip2":"Dropship Locally with Lightning Delivery & Savings","common-top-warehouse-search-tip2--plural":"Dropship Locally with Lightning Delivery & Savings","common-top-warehouse-search-tip3":"Private Agent Exclusive Service","common-top-warehouse-search-tip3--plural":"Private Agent Exclusive Service","hotCategories.empty.text":"Didn’t find what? Post a sourcing request to CJ, and we will find the product for you within 48 hours.","empty-text-search":"Didn’t find what? Post a sourcing request to CJ, and we will find the product for you within 48 hours.","search-empty-test-no":"Didn’t find what? Post a sourcing request to CJ, and we will find the product for you within 48 hours.","account-status-switched":"Account Status Switched","account-status-switched--plural":"Account Status Switched","account-status-switched-tips":"You have switched your account status. Please reload the page for updated information.","account-status-switched-tips--plural":"You have switched your account status. Please reload the page for updated information.","common-top-global-products":"Global Products","footer-cj-dropshipping":"CJdropshipping","common-th-african-version":"Africa","global-warehouses-products-with-videos":"Product with Videos","global-warehouses-products-with-videos--plural":"Product with Videos","footer-global-warehouses":"Global Products","ship-from-shipping-method":"Shipping Method","my-profile-shipping-default-shipping-method-can-only-be-set-up-in-4-categories-at-the-moment":"Default Shipping Method can only be set up in 4 categories at the moment.","my-profile-shipping-default-shipping-method-can-only-be-set-up-in-4-categories-at-the-moment--plural":"Default Shipping Method can only be set up in 4 categories at the moment.","common-no-find-product":"Sorry, we can\'t find any products.","my-profile-common-shipping-1st":"1st","my-profile-common-shipping-1st--plural":"1st","my-profile-shipping-quaternary":"Quaternary","my-profile-shipping-quaternary--plural":"Quaternary","my-profile-shipping-del-logistics":"Do you want to delete the default logistics for  \\"{{name}}\\"?","my-profile-shipping-del-logistics--plural":"Do you want to delete the default logistics for  \\"{{name}}\\"?","my-profile-shipping-del-country":"After deleting the country of delivery, the default logistics of all countries will be cleared, please operate with caution.","my-profile-shipping-del-country--plural":"After deleting the country of delivery, the default logistics of all countries will be cleared, please operate with caution.","my-profile-shipping-country":"Country of delivery","my-profile-shipping-country--plural":"Country of delivery","my-profile-common-shipping-setting-tip":"You can set the default logistics by country of delivery here.","my-profile-common-shipping-setting-tip--plural":"You can set the default logistics by country of delivery here.","my-profile-common-shipping-no-data":"No data","my-profile-common-shipping-no-data--plural":"No data","shipping-add-the-default-logistics":"Add the Default Logistics of the Country of Delivery","shipping-add-the-default-logistics--plural":"Add the Default Logistics of the Country of Delivery","shipping-add-up-and-down":"Press and hold up and down to adjust the order.","shipping-add-up-and-down--plural":"Press and hold up and down to adjust the order.","shipping-add-delete":"Delete","shipping-add-at-least-default":"At least 1 default logistics must be added, so the last data does not support deletion.","shipping-add-at-least-default--plural":"At least 1 default logistics must be added, so the last data does not support deletion.","shipping-add-priority":"Priority","shipping-add-priority--plural":"Priority","shipping-add-please-select-the-country":"Please Select the Country of Delivery","shipping-add-please-select-the-country--plural":"Please Select the Country of Delivery","shipping-add-cancel":"Cancel","shipping-add-after-switching-the-destination-country":"After switching the destination country, the default logistics selected in the list will be cleared and you need to reselect. Do you want to continue switching?","shipping-add-after-switching-the-destination-country--plural":"After switching the destination country, the default logistics selected in the list will be cleared and you need to reselect. Do you want to continue switching?","shipping-add-confirm":"Confirm","shipping-add-country-of-delivery":"Country of delivery","shipping-add-country-of-delivery--plural":"Country of delivery","shipping-add-default-according-priority":"Orders take the default logistics according to priority. The logistics of the first priority is not available → take the logistics of the second priority →…","shipping-add-default-according-priority--plural":"Orders take the default logistics according to priority. The logistics of the first priority is not available → take the logistics of the second priority →…","shipping-add-logistics-options":"Logistics Options","shipping-add-logistics-options--plural":"Logistics Options","shipping-add-select-the-logistics":"Please Select the Logistics Options","shipping-add-select-the-logistics--plural":"Please Select the Logistics Options","shipping-add-set-up-5-default":"Set up to 5 default logistics options for one country.","shipping-add-set-up-5-default--plural":"Set up to 5 default logistics options for one country.","shipping-add-country-of-delivery-first":"Please Select the Country of Delivery First","shipping-add-country-of-delivery-first--plural":"Please Select the Country of Delivery First","shipping-add-added":"Added","shipping-add-please-check-and-complete":"Please check and complete the necessary information before submitting.","shipping-add-please-check-and-complete--plural":"Please check and complete the necessary information before submitting.","my-profile-common-shipping-5th":"5th","my-profile-common-shipping-5th--plural":"5th","my-profile-common-shipping-2nd":"2nd","my-profile-common-shipping-2nd--plural":"2nd","my-profile-common-shipping-4th":"4th","my-profile-common-shipping-4th--plural":"4th","my-profile-common-shipping-3rd":"3rd","my-profile-common-shipping-3rd--plural":"3rd","shipping-add-at-least-toast":"At least 1 default logistics must be added","shipping-add-at-least-toast--plural":"At least 1 default logistics must be added","shipping-add-configuration-will-be-deleted":"There is currently no default logistics set. After submission, the current country\'s configuration will be deleted.","shipping-add-configuration-will-be-deleted--plural":"There is currently no default logistics set. After submission, the current country\'s configuration will be deleted.","my-profile-shipping-sure-del-country":"Are you sure to delete the country of delivery option?","my-profile-shipping-sure-del-country--plural":"Are you sure to delete the country of delivery option?","shipping-edit-the-default-logistics":"Edit the Default Logistics of the Country of Delivery","shipping-edit-the-default-logistics--plural":"Edit the Default Logistics of the Country of Delivery","common-order-set-default-logistics":"Set Default Logistics","common-order-set-default-logistics--plural":"Set Default Logistics","my-profile-common-reset":"Reset","common-th-warning":"Reminding Notice","global-warehouses-share-tips":"Generate separate sharing links for selected countries.","global-warehouses-share-tips--plural":"Generate separate sharing links for selected countries.","global-warehouses-share-copy-notice":"Copy Link Successfully","global-warehouses-share-copy-notice--plural":"Copy Link Successfully","global-warehouses-share":"Share","common-th-confirm":"Got it","my-profile-shipping-default-shipping-method-can-be-set-up-for-4-categories":"Default shipping method can be set up for 4 categories: (1) Store; (2) Product; (3) Order (Cheapest/Fastest shipping method); (4) Country of delivery","my-profile-shipping-default-shipping-method-can-be-set-up-for-4-categories--plural":"Default shipping method can be set up for 4 categories: (1) Store; (2) Product; (3) Order (Cheapest/Fastest shipping method); (4) Country of delivery","my-profile-shipping-you-can-set-up-the-precedence-for-the-4-categories":"You can set up the precedence for the 4 categories.","my-profile-shipping-you-can-set-up-the-precedence-for-the-4-categories--plural":"You can set up the precedence for the 4 categories.","home-1688-top-tips":"At 1688.tech, we ensure that all products are sourced from reputable suppliers on China’s 1688 platform. We do not sell any branded items that may infringe on intellectual property rights. Each product is thoroughly inspected before shipment to guarantee quality and secure delivery to Africa. Thank y
31657ou for choosing us as your trusted marketplace.","common-th-warning-content":"At 1688.tech, we ensure that all products are sourced from reputable suppliers on China’s 1688 platform. We do not sell any branded items that may infringe on intellectual property rights. Each product is thoroughly inspected before shipment to guarantee quality and secure delivery to Africa. Thank you for choosing us as your trusted marketplace.","shipping-add-add":"Add","common-mycj-menu-temu":"Temu","common-mycj-menu-temu--plural":"Temu","common-mycj-menu-woocommerce":"Woocommerce","common-mycj-menu-ebay":"eBay","common-mycj-menu-api":"API","common-mycj-menu-etsy":"Etsy","common-mycj-menu-wix":"Wix","common-mycj-menu-lazada":"Lazada","common-mycj-menu-allvalue":"AllValue","common-mycj-menu-orangeconnex":"OrangeConnex","common-mycj-menu-mabang":"MabangERP","common-mycj-menu-mabang--plural":"MabangERP","global-warehouses-share-notice-tips":"Share the global product for a specific country.","global-warehouses-share-notice-tips--plural":"Share the global product for a specific country.","product-th-delivery-self-pickup-desc":"Once your payment of the logistics fee has been confirmed, please collect your order from the pickup address.","product-th-products-order-placement-normal-n":"You may pick the products at {{platform}} and you will only need to pay the product fee at this moment.","product-th-products-order-placement-normal-n--plural":"You may pick the products at {{platform}} and you will only need to pay the product fee at this moment.","product-th-quality-inspection-desc-n":"1688 merchants send products to {{platform}}\'s Chinese warehouses, where we conduct the quality inspection and weighing before sending the shipping fee bill to your account.","product-th-quality-inspection-desc-n--plural":"1688 merchants send products to {{platform}}\'s Chinese warehouses, where we conduct the quality inspection and weighing before sending the shipping fee bill to your account.","product-th-products-order-placement-n":"You may select products at {{platform}} and choose only to pay the product fee in order placement.","product-th-products-order-placement-n--plural":"You may select products at {{platform}} and choose only to pay the product fee in order placement.","common-th-warning-content-n":"At {{platform}}, we ensure that all products are sourced from reputable suppliers on China’s 1688 platform. We do not sell any branded items that may infringe on intellectual property rights. Each product is thoroughly inspected before shipment to guarantee quality and secure delivery to Africa. Thank you for choosing us as your trusted marketplace.","common-th-warning-content-n--plural":"At {{platform}}, we ensure that all products are sourced from reputable suppliers on China’s 1688 platform. We do not sell any branded items that may infringe on intellectual property rights. Each product is thoroughly inspected before shipment to guarantee quality and secure delivery to Africa. Thank you for choosing us as your trusted marketplace.","common-mycj-menu-cross-border":"Cross Border","common-mycj-menu-cross-border--plural":"Cross Border","common-mycj-menu-non-us":"Non-US","common-mycj-menu-non-us--plural":"Non-US","common-mycj-menu-us-local":"Local","common-mycj-menu-us-local--plural":"Local","common-th-warning-content-n1":"At {{platform}}, we ensure that all goods are from reputable suppliers of the 1688 platform in China. We do not sell branded goods that may infringe intellectual property rights. Each item will be strictly inspected before shipment to ensure quality and safe delivery to the destination. Thank you for choosing us as your trusted marketplace.","common-th-warning-content-n1--plural":"At {{platform}}, we ensure that all goods are from reputable suppliers of the 1688 platform in China. We do not sell branded goods that may infringe intellectual property rights. Each item will be strictly inspected before shipment to ensure quality and safe delivery to the destination. Thank you for choosing us as your trusted marketplace.","product-th-products-arrived-desc-n":"Once your order arrives at the {{platform}} local warehouse, you\'ll be notified to pay the final logistics fee and receive your order\'s pickup location.","product-th-products-arrived-desc-n--plural":"Once your order arrives at the {{platform}} local warehouse, you\'ll be notified to pay the final logistics fee and receive your order\'s pickup location.","common-order-sku-multiple":"the number of SKUs needs to be a multiple of {{multiple}}","common-order-sku-multiple--plural":"the number of SKUs needs to be a multiple of {{multiple}}","common-advertising-view-text":"Explore more","common-advertising-view-text--plural":"Explore more","common-copy-success":"Copied Successfully","common-copy-success--plural":"Copied Successfully","common-my-title":"My {{name}}","common-my-title--plural":"My {{name}}","common-experience-service-of-send-first":"Your Credit, Our Guarantee! Enjoy CJ\'s Special Service of Ordering First, Pay Later Designed for the Special You.","common-experience-service-of-send-first--plural":"Your Credit, Our Guarantee! Enjoy CJ\'s Special Service of Ordering First, Pay Later Designed for the Special You.","wallet-time":"Time:","wallet-export":"Export","wallet-all":"All","wallet-cancel":"Cancel","wallet-confirm":"Confirm","wallet-generate-invoice":"Generate Invoice","wallet-generate-invoice--plural":"Generate Invoice","common-nomakeup-order":"No make-up orders match your search.","common-nomakeup-order--plural":"No make-up orders match your search.","common-nodata-found":"Sorry, no data found.","common-nodata-found--plural":"Sorry, no data found.","header-my-cj":"My CJ","common-mycj-menu-sub-account":"Sub-
31657account","my-profile-email-is-registered":"The email address is registered.","my-profile-enter-valid-email":"Please enter a valid email.","my-profile-account-if-you-want-to-reset-your-password-no-email":"If you want to reset the password for this account, please click \\"Verify Now\\" below to add your email and verify it","my-profile-account-if-you-want-to-reset-your-password-no-email--plural":"If you want to reset the password for this account, please click \\"Verify Now\\" below to add your email and verify it","common-platforms-tit-erp":"ERP Platforms","common-platforms-tit-erp--plural":"ERP Platforms","common-credit-loan":"Credit Service","common-credit-loan--plural":"Credit Service","wallet-under-review":"Under Review","wallet-under-review--plural":"Under Review","wallet-rejected":"Rejected","wallet-approved":"Approved","wallet-approved--plural":"Approved","wallet-if-you-want-to-apply-for-credit-line-again-please-contact-your-agent.":"If you want to apply for credit line again, please contact your agent.","wallet-if-you-want-to-apply-for-credit-line-again-please-contact-your-agent.--plural":"If you want to apply for credit line again, please contact your agent.","loancredit-contact-details":"Contact Details","loancredit-contact-details--plural":"Contact Details","loancredit-confirm":"Confirm","loancredit-application-time-for-credit-line":"Application Time for Credit Line","loancredit-application-time-for-credit-line--plural":"Application Time for Credit Line","loancredit-line-of-credit-application-information-details":"Line of Credit Application Information Details","loancredit-line-of-credit-application-information-details--plural":"Line of Credit Application Information Details","loancredit-company-identification":"Company Identification","loancredit-company-identification--plural":"Company Identification","loancredit-first-name":"First Name","loancredit-certification-duns-business-identifier-or-ein-federal-tax-id":"Certification (DUNS Business Identifier or EIN Federal Tax ID)","loancredit-certification-duns-business-identifier-or-ein-federal-tax-id--plural":"Certification (DUNS Business Identifier or EIN Federal Tax ID)","loancredit-address":"Address","loancredit-city":"City","loancredit-business-details":"Business Details","loancredit-business-details--plural":"Business Details","loancredit-available-cedit-lines":"Available Cedit Lines","loancredit-available-cedit-lines--plural":"Available Cedit Lines","loancredit-credit-line-application-record":"Credit Line Application Record","loancredit-credit-line-application-record--plural":"Credit Line Application Record","loancredit-credit-application-progress":"Credit Application Progress","loancredit-credit-application-progress--plural":"Credit Application Progress","loancredit-last-name":"Last Name","loancredit-phone-number":"Phone Number","loancredit-e-mail-address":" E-mail Address","loancredit-e-mail-address--plural":" E-mail Address","loancredit-close":"Close","loancredit-details":"Details","loancredit-operation":"Operation","loancredit-operation--plural":"Operation","loancredit-country":"Country","loancredit-amount-of-credit-requested":"Amount of Credit Requested","loancredit-amount-of-credit-requested--plural":"Amount of Credit Requested","loancredit-state":"State","loancredit-state--plural":"State","loancredit-statutory-company-name":"Statutory Company Name","loancredit-statutory-company-name--plural":"Statutory Company Name","loancredit-zip-code":"Zip Code","loancredit-zip-code--plural":"Zip Code","loancredit-rejected":"Rejected","close-verify-confirm-content":"You can verify your email in the profile section in the future.","close-verify-confirm-content--plural":"You can verify your email in the profile section in the future.","loancredit-under-review":"Under Review","loancredit-under-review--plural":"Under Review","loancredit-approved":"Approved","loancredit-approved--plural":"Approved","close-verify-confirm-ok-text":"Got it.","close-verify-confirm-ok-text--plural":"Got it.","loancredit-check-the-status-of-your-credit-application":"Check the Status of Your Credit Application","loancredit-check-the-status-of-your-credit-application--plural":"Check the Status of Your Credit Application","loancredit-available-credit-lines":"Available Credit Lines","loancredit-available-credit-lines--plural":"Available Credit Lines","common-chinese-year-notice":"No Holiday Holds Us Back Even Chinese New Year, Stock Ahead With Us Now. Click for More!","common-chinese-year-notice--plural":"No Holiday Holds Us Back Even Chinese New Year, Stock Ahead With Us Now. Click for More!","common-chinese-year-notice-no-link":"No Holiday Holds Us Back Even Chinese New Year, Stock Ahead With Us Now!","common-chinese-year-notice-no-link--plural":"No Holiday Holds Us Back Even Chinese New Year, Stock Ahead With Us Now!","common-top-global-products-notice-text":"Your Choices of Endless Global Products. Click for More!","common-top-global-products-notice-text--plural":"Your Choices of Endless Global Products. Click for More!","common-ie-unsupport":"This page does not support Internet Explorer, please use a modern browser (such as Chrome, Edge, Firefox, etc.).","common-ie-unsupport--plural":"This page does not support Internet Explorer, please use a modern browser (such as Chrome, Edge, Firefox, etc.).","footer-sourcing":"Sourcing","common-user-company-name":"Company Name","common-user-company-name--plural":"Company Name","common-copied-successfully":"Copied Successfully.","common-copied-successfully--plural":"Copied Successfully.","common-costs-us-notice":"Important Update on U.S. Import Tariff Policy. Click For Details.","common-costs-us-notice--plural":"Important Update on U.S. Import Tariff Policy. Click For Details.","common-costs-us-notice-no-link":"Important Update on U.S. Import Tariff Policy. Click For Details.","common-costs-us-notice-no-link--plural":"Important Update on U.S. Import Tariff Policy. Click For Details.","common-sellstore":"Buy/Sell Your Store","common-sellstore--plural":"Buy/Sell Your Store","please-enter-a-specific-product-name":"Please enter a specific product name, 1688/Taobao/Aliexpress URL or images.","common-top-search-winning-products-by-keyword-sku-1688/taobao/aliexpress-url":"Search winning products by keyword, SKU, 1688/Taobao/Aliexpress URL","common1-view":" View Now","common1-view--plural":" View Now","product-listing-notice":"Notification of Your Product\'s Arrival at the Warehouse","product-listing-notice--plural":"Notification of Your Product\'s Arrival at the Warehouse","click-view-now-to-get-your-product-listing-details":"Click \\"View Now\\" to get detailed information about your product\'s arrival at the warehouse.","click-view-now-to-get-your-product-listing-details--plural":"Click \\"View Now\\" to get detailed information about your product\'s arrival at the warehouse.","common-mycj-menu-temu-us-local":"Temu US Local","common-mycj-menu-temu-us-local--plural":"Temu US Local","common-mycj-menu-show-us-local":"US Local","common-mycj-menu-show-us-local--plural":"US Local","common-platforms-tit-cross":"Ecommerce Platforms","common-platforms-tit-cross--plural":"Ecommerce Platforms","footer-social-media":"Social Media","footer-social-media--plural":"Social Media","new-home-1688-recommended-products":"Devinez que vous aim","new-home-1688-recommended-products--plural":"Devinez que vous aim","common-mycj-menu-other":"Other","common-mycj-menu-others":"Other Platforms","common-mycj-menu-others--plural":"Other Platforms","common-mycj-menu-online-service":"Online Service","common-mycj-menu-online-service--plural":"Online Service","common-mycj-menu-whatsapp":"WhatsApp","product-card-list":"List","product-card-lists":"Lists","product-card-ver
31657ify-inventory-tip":"{{siteName}} has confirmed the product quality and accurate inventory. Shipment is expected within 48 hours.","product-card-verify-inventory-tip--plural":"{{siteName}} has confirmed the product quality and accurate inventory. Shipment is expected within 48 hours.","product-card-normal-inventory-tip":"The supplier\'s real inventory is unable to track, as a result of daily market changes. To confirm it, please contact your agent.","product-card-normal-inventory-tip--plural":"The supplier\'s real inventory is unable to track, as a result of daily market changes. To confirm it, please contact your agent.","product-card-print-on-demand":"Print on Demand","printondemand-startdesign":"Start Design","common-credit-service":"Credit Service","common-credit-service--plural":"Credit Service","home-1688-banner-days":"Days","home-1688-top-tips-n1":"At {{platform}}, we ensure that all goods are from reputable suppliers of the 1688 platform in China. We do not sell branded goods that may infringe intellectual property rights. Each item will be strictly inspected before shipment to ensure quality and safe delivery to the destination. Thank you for choosing us as your trusted marketplace.","home-1688-top-tips-n1--plural":"At {{platform}}, we ensure that all goods are from reputable suppliers of the 1688 platform in China. We do not sell branded goods that may infringe intellectual property rights. Each item will be strictly inspected before shipment to ensure quality and safe delivery to the destination. Thank you for choosing us as your trusted marketplace.","home-new-bannner-list-two":"Trending Products","home-1688--new-new-product":"New Products","home-1688-global-selected":"Global Selected","home-1688-global-selected--plural":"Global Selected","home-1688--new-premium-selected":"Premium Selected","home-1688--new-premium-selected--plural":"Premium Selected","home-1688-top-tips-n":"At {{platform}}, we ensure that all products are sourced from reputable suppliers on China’s 1688 platform. We do not sell any branded items that may infringe on intellectual property rights. Each product is thoroughly inspected before shipment to guarantee quality and secure delivery to Africa. Thank you for choosing us as your trusted marketplace.","home-1688-top-tips-n--plural":"At {{platform}}, we ensure that all products are sourced from reputable suppliers on China’s 1688 platform. We do not sell any branded items that may infringe on intellectual property rights. Each product is thoroughly inspected before shipment to guarantee quality and secure delivery to Africa. Thank you for choosing us as your trusted marketplace.","new-home-1688-sales":"Sales","home-source-now":"Source Now","home-source-now--plural":"Source Now","home-global-products-title":"Global Products Endless Choices","home-global-products-title--plural":"Global Products Endless Choices","home-quick-sourcing-title":"Get Your Product Sourced Quickly","home-quick-sourcing-title--plural":"Get Your Product Sourced Quickly","email-apply-new-email":"New Email","email-apply-new-email--plural":"New Email","email-apply-registered-email":"Registered {{platformName}} Email","email-apply-registered-email--plural":"Registered {{platformName}} Email","email-apply-please-enter-the-email":"Please enter the email","email-apply-failed-to-connect-email-update-your-email-address-now.":"Failed to connect email, update your email address now.","email-apply-failed-to-connect-email-update-your-email-address-now.--plural":"Failed to connect email, update your email address now.","email-apply-provide-at-least-one-and-up-to-five-sets-of-supporting-information":"Provide at least one and up to five sets of supporting information.","email-apply-provide-at-least-one-and-up-to-five-sets-of-supporting-information--plural":"Provide at least one and up to five sets of supporting information.","email-apply-withdrawal-method":"Withdrawal Method","email-apply-withdrawal-method--plural":"Withdrawal Method","email-apply-please-enter-a-correct-emial-address.":"Please enter a correct email address.","email-apply-add-more-supporting-information":"Add More Supporting Information","email-apply-add-more-supporting-information--plural":"Add More Supporting Information","email-apply-the-more-cj-transaction-records-you-provide-the-higher-the-approval-c
31657hance":"The more {{platformName}} transaction records you provide, the higher the approval chance.","email-apply-the-more-cj-transaction-records-you-provide-the-higher-the-approval-chance--plural":"The more {{platformName}} transaction records you provide, the higher the approval chance.","email-apply-note-once-your-payment-proof-passes":"Note: Once your payment proof passes {{platformName}}’s review, your registered email will be updated to the new one, and your wallet withdrawal will be processed to your account.","email-apply-note-once-your-payment-proof-passes--plural":"Note: Once your payment proof passes {{platformName}}’s review, your registered email will be updated to the new one, and your wallet withdrawal will be processed to your account.","email-apply-withdrawal-amount":"Withdrawal Amount","email-apply-withdrawal-amount--plural":"Withdrawal Amount","email-apply-upload-cj-payment-proof":"Upload your {{platformName}} payment proof screenshot.","email-apply-upload-cj-payment-proof--plural":"Upload your {{platformName}} payment proof screenshot.","email-apply-upload-up-to-3-images-max-50mb-total-only-jpg-jpeg-png-or-heif-formats-are-supported":"Upload up to 3 images (max 50MB total). Only JPG, JPEG, PNG, or HEIF formats are supported.","email-apply-upload-up-to-3-images-max-50mb-total-only-jpg-jpeg-png-or-heif-formats-are-supported--plural":"Upload up to 3 images (max 50MB total). Only JPG, JPEG, PNG, or HEIF formats are supported.","email-apply-please-provide-your-cj-payment-history-to-verify-your-identity":"Please provide your {{platformName}} payment history to verify your identity.","email-apply-please-provide-your-cj-payment-history-to-verify-your-identity--plural":"Please provide your {{platformName}} payment history to verify your identity.","email-apply-please-enter-the-transaction-id-from-your-selected-payment-method":"Please enter the transaction ID from your selected payment method.","email-apply-please-enter-the-transaction-id-from-your-selected-payment-method--plural":"Please enter the transaction ID from your selected payment method.","email-apply-only-letters-and-numbers-are-allowed":"Only letters and numbers are allowed.","email-apply-only-letters-and-numbers-are-allowed--plural":"Only letters and numbers are allowed.","email-apply-third-party-payment-transaction-id":"Third-Party Payment Transaction ID","email-apply-third-party-payment-transaction-id--plural":"Third-Party Payment Transaction ID","email-apply-please-select-a-payment-method":"Please select a payment method","email-apply-please-select-a-payment-method--plural":"Please select a payment method","email-apply-please-select-a-payment-method-you-have-used-on-cj":"Please select a payment method you have used on {{platformName}}.","email-apply-please-select-a-payment-method-you-have-used-on-cj--plural":"Please select a payment method you have used on {{platformName}}.","wallet-paid-sourcing":"Paid Sourcing","wallet-paid-sourcing--plural":"Paid Sourcing","common-top-customized-videos":"Customize videos","common-mycj-menu-order-list-video":"Warehouse Operation Video List","common-mycj-menu-order-list-video--plural":"Warehouse Operation Video List","common-warehouse-warehouse-tit":"Global Warehouses","common-mycj-menu-miaoshou":"MiaoshouERP","common-mycj-menu-miaoshou--plural":"MiaoshouERP","common-payment-solution":"Payment Agency","product-card-list-btn":"List","email-apply-please-upload-images-in-jpg-jpeg-png-or-heif-format":"Please upload images in JPG, JPEG, PNG, or HEIF format.","email-apply-please-upload-images-in-jpg-jpeg-png-or-heif-format--plural":"Please upload images in JPG, JPEG, PNG, or HEIF format.","footer-scan-the-qr-code-to-download-for-mobile":"Scan the QR code to download {{siteName}} for Mobile","footer-scan-the-qr-code-to-download-for-mobile--plural":"Scan the QR code to download {{siteName}} for Mobile","email-apply-payment-proof-screenshot-new":"{{platformName}} payment proof screenshot","email-apply-payment-proof-screenshot-new--plural":"{{platformName}} payment proof screenshot","email-apply-please-enter-the-new-email":"Please enter the new email","email-apply-please-enter-the-new-email--plural":"Please enter the new email","wallet-payment-method":"Payment Method","email-apply-note-after-the-payment-transaction-voucher-you-provide-is-approved":"Note: After the payment transaction voucher you provide is approved by {{platformName}}, your registered email address will be changed to a new email address. At the same time, the amount you initiate a wallet withdrawal will also be transferred to your payment account.","email-apply-note-after-the-payment-transaction-voucher-you-provide-is-approved--plural":"Note: After the payment transaction voucher you provide is approved by {{platformName}}, your registered email address will be changed to a new email address. At the same time, the amount you initiate a wallet withdrawal will also be transferred to your payment account.","email-apply-payment-proof-screenshot-new-uppercase":"{{platformName}} Payment Proof Screenshot","email-apply-payment-proof-screenshot-new-uppercase--plural":"{{platformName}} Payment Proof Screenshot","authorize-list-you-cannot-delete-this-store-shop-name":"You cannot delete this store {{shopName}}","authorize-list-you-cannot-delete-this-store-shop-name--plural":"You cannot delete this store {{shopName}}","authorize-list-are-you-sure-to-delete-it":"Are you sure to delete it?","authorize-list-cancel":"Cancel","authorize-list-deleting-a-store-is-irreversible":"Deleting a store is irreversible. Once deleted, all related data of the store will be deleted, including the packaging connection in \\"My Products\\". If you want to continue, please click \\"Confirm\\".","authorize-list-deleting-a-store-is-irreversible--plural":"Deleting a store is irreversible. Once deleted, all related data of the store will be deleted, including the packaging connection in \\"My Products\\". If you want to continue, please click \\"Confirm\\".","authorize-list-ok":"OK","authorize-list-store-deletion-is-irreversible-as":"Store deleti
31657on is irreversible as, once deleted, the store will be disconnected from CJ automatically and all the relevant data will be deleted, including product, order, and store data. Please click \\"Confirm\\" if you want to proceed.","authorize-list-store-deletion-is-irreversible-as--plural":"Store deletion is irreversible as, once deleted, the store will be disconnected from CJ automatically and all the relevant data will be deleted, including product, order, and store data. Please click \\"Confirm\\" if you want to proceed.","authorize-list-this-store-cannot-be-deleted-as-it-still-has-orders-under":"This store cannot be deleted as it still has orders under the \\" <a href=\'/mine/dropshipping/orderManage\' className={s.link}>{{str}}</a> \\" tab. Please check and handle them before trying again.","authorize-list-this-store-cannot-be-deleted-as-it-still-has-orders-under--plural":"This store cannot be deleted as it still has orders under the \\" <a href=\'/mine/dropshipping/orderManage\' className={s.link}>{{str}}</a> \\" tab. Please check and handle them before trying again.","authorize-list-confirm":"Confirm","authorize-list-store-list":"Store List","authorize-list-store-list--plural":"Store List","authorize-list-authorization-will-expire-soon":"Authorization will expire soon.","authorize-list-authorization-will-expire-soon--plural":"Authorization will expire soon.","authorize-list-create-your-store-right-now":"Create your store right now!","authorize-list-create-your-store-right-now--plural":"Create your store right now!","authorize-list-inventory-sync-setting":"Inventory Sync Setting","authorize-list-inventory-sync-setting--plural":"Inventory Sync Setting","authorize-list-currently-temu-local-store-authorization":"Currently, Temu Local store authorization and product listing are only available for the US site. Orders must be fulfilled via CJ logistics. Support for multi-site listings and platform logistics for the US site will be rolled out gradually—stay tuned!","authorize-list-currently-temu-local-store-authorization--plural":"Currently, Temu Local store authorization and product listing are only available for the US site. Orders must be fulfilled via CJ logistics. Support for multi-site listings and platform logistics for the US site will be rolled out gradually—stay tuned!","authorize-list-how-to-transfer-your-store-from-old-account":"How to Transfer your Store from Old Account to New Account?","authorize-list-how-to-transfer-your-store-from-old-account--plural":"How to Transfer your Store from Old Account to New Account?","authorize-list-the-newly-added-store-here-is-a-virtual-store":"The newly added store here is a virtual store, which is not authorized, and data such as orders and products cannot be synchronized. This function is used in conjunction with \\"Set Packaging Across Stores\\" in \\"My Products\\" to enable Excel import orders to match the exclusive packaging of the same product in different stores.","authorize-list-the-newly-added-store-here-is-a-virtual-store--plural":"The newly added store here is a virtual store, which is not authorized, and data such as orders and products cannot be synchronized. This function is used in conjunction with \\"Set Packaging Across Stores\\" in \\"My Products\\" to enable Excel import orders to match the exclusive packaging of the same product in different stores.","authorize-list-transferring":"Transferring","authorize-list-transferring--plural":"Transferring","authorize-list-auto-sync":"Auto-Sync (Order&Product Information)","authorize-list-auto-sync--plural":"Auto-Sync (Order&Product Information)","authorize-list-unauthorized":"Unauthorized","authorize-list-unauthorized--plural":"Unauthorized","authorize-list-transfer-record":"Transfer Record","authorize-list-transfer-record--plural":"Transfer Record","authorize-list-you-may-go-to-the-third-party-platform-to-reauthorize":"You may go to the third-party platform to reauthorize your store.","authorize-list-add-store":"Add Store","authorize-list-the-store-and-its-related-data":"The store and its related data have been deleted.","authorize-list-the-store-and-its-related-data--plural":"The store and its related data have been deleted.","authorize-list-token-verification-results":"Token Verification Results","authorize-list-token-verification-results--plural":"Token Verification Results","authorize-list-how-to-fulfill-your-mabang-orders-with-site-full-name":"How to Fulfill Your Mabang Orders with {{siteFullName}}?","authorize-list-how-to-fulfill-your-mabang-orders-with-site-full-name--plural":"How to Fulfill Your Mabang Orders with {{siteFullName}}?","authorize-list-currency":"Currency","authorize-list-the-store-has-been-deauthorized":"The store has been deauthorized automatically as it has been inactive for a long time.","authorize-list-the-store-has-been-deauthorized--plural":"The store has been deauthorized automatically as it has been inactive for a long time.","authorize-list-updated-date":"Updated Date","authorize-list-updated-date--plural":"Updated Date","authorize-list-removing-authorization-means-that":"Removing the authorization means that you have completed all the above issues.","authorize-list-removing-authorization-means-that--plural":"Removing the authorization means that you have completed all the above issues.","authorize-list-delete":"Delete","authorize-list-activate":"Activate","authorize-list-unauthorized-stores":"Unauthorized Stores","authorize-list-unauthorized-stores--plural":"Unauthorized Stores","authorize-list-show-deactivated":"Show Deactivated","authorize-list-show-deactivated--plural":"Show Deactivated","authorize-list-reauthorize":"Reauthorize","authorize-list-market":"Market","authorize-list-market--plural":"Market","authorize-list-authorized-api-list":"Authorized API List","authorize-list-authorized-api-list--plural":"Authorized API List","authorize-list-deactivate":"Deactivate","authorize-list-deactivate--plural":"Deactivate","authorize-list-a-collection-of-available-products-for-tiktok-shop-us-store":"A collection of available products for TikTok Shop US store.","authorize-list-a-collection-of-available-products-for-tiktok-shop-us-store--plural":"A collection of available products for TikTok Shop US store.","authorize-list-you-can-manage-stores-that-are-not-connected-to-the-site-name-platform-here":"You can manage stores that are not connected to the {{siteName}} platform here. The stores added here are virtual stores, which are not authorized, and data such as orders and products cannot be synchronized. This function is used in conjunction with \\"Set Packaging Across Stores\\" in \\"My Products\\" to enable Excel import orders to match the exclusive packaging of the same product in different stores.","authorize-list-you-can-manage-stores-that-are-not-connected-to-the-site-name-platform-here--plural":"You can manage stores that are not connected to the {{siteName}} platform here. The stores added here are virtual stores, which are not authorized, and data such as orders and products cannot be synchronized. This function is used in conjunction with \\"Set Packaging Across Stores\\" in \\"My Products\\" to enable Excel import orders to match the exclusive packaging of the same product in different stores.","authorize-list-activated":"Activated","authorize-list-authorize-your-store-to-activate-one-click":"Authorize your store to activate one-click product listing and automatic order fulfillment.","authorize-list-authorize-your-store-to-activate-one-click--plural":"Authorize your store to activate one-click product listing and automatic order fulfillment.","authorize-list-logistics-type-settings":"Logistics Type Settings","authorize-list-logistics-type-settings--plural":"Logistics Type Settings","authorize-list-authorization-type":"Authorization Type","authorize-list-authorization-type--plural":"Authorization Type","authorize-list-add-virtual-store":"Add Virtual Store","authorize-list-add-virtual-store--plural":"Add Virtual Store","authorize-list-how-to-connect-your-platform-store-to-site-name":"How to Connect Your {{platform}} Store to {{siteName}?","authorize-list-how-to-connect-your-platform-store-to-site-name--plural":"How to Connect Your {{platform}} Store to {{siteName}?","authorize-list-us-cross-border":"US-Cross Border","authorize-list-us-cross-border--plural":"US-Cross Border","authorize-list-enter-store-name":"Enter Store Name","authorize-list-enter-store-name--plural":"Enter Store Name","authorize-list-us-orders":"US Orders","authorize-list-us-orders--plural":"US Orders","authorize-list-deactivated":"Deactivated","authorize-list-deactivated--plural":"Deactivated","authorize-list-store-logistics":"Store Logistics","authorize-list-store-logistics--plural":"Store Logistics","authorize-list-non-public-store-name":"Non-public Store Name","authorize-list-non-public-store-name--plural":"Non-public Store Name","authorize-list-store-type":"Store Type","authorize-list-store-type--plural":"Store Type","authorize-list-authorization-failed":"Authorization Failed","authorize-list-how-to-connect-mabang-erp-account-to-site-full-name":"How to Connect Mabang ERP Account to {{siteFullName}}?","authorize-list-how-to-connect-mabang-erp-account-to-site-full-name--plural":"How to Connect Mabang ERP Account to {{siteFullName}}?","authorize-list-we-cannot-find-any-data":"Sorry, we cannot find any data.","authorize-list-half-managed":"Half-Managed","authorize-list-half-managed--plural":"Half-Managed","authorize-list-deleted-successfully":"Deleted successfully!","authorize-list-deleted-successfully--plural":"Deleted successfully!","authorize-list-authorization-expired":"Authorization expired.","authorize-list-authorization-expired--plural":"Authorization expired.","authorize-list-please-enter-the-store-name":"Please enter the store name","authorize-list-please-enter-the-store-name--plural":"Please enter the store name","authorize-list-us-local":"US-Local","authorize-list-us-local--plural":"US-Local","authorize-list-search":"Search","authorize-list-how-to-connect-platform-by-default":"How to Connect {{platform}} by Default?","authorize-list-how-to-connect-platform-by-default--plural":"How to Connect {{platform}} by Default?","authorize-list-how-can-i-sell-site-name-products-using-platform":"How can I sell {{siteName}}\'s products using {{platform}}?","authorize-list-how-can-i-sell-site-name-products-using-platform--plural":"How can I sell {{siteName}}\'s products using {{platform}}?","authorize-list-package-alert-settings":"Package Alert Settings","authorize-list-package-alert-settings--plural":"Package Alert Settings","authorize-list-authorized":"Authorized","authorize-list-authorized--plural":"Authorized","authorize-list-product":"Product","authorize-list-store":"Store","authorize-list-a-guidance-to-platform-connection":"A Guidance to {{platform}} Connection.","authorize-list-a-guidance-to-platform-connection--plural":"A Guidance to {{platform}} Connection.","authorize-list-action":"Action","authorize-list-after-authorization-is-removed-2":"2. After the authorization is removed, your order delivery information will not be updated. Please confirm that all your MabangERP orders from CJ have been fulfilled.","authorize-list-after-authorization-is-removed-2--plural":"2. After the authorization is removed, your order delivery information will not be updated. Please confirm that all your MabangERP orders from CJ have been fulfilled.","authorize-list-after-authorization-is-removed-1":"1. After the authorization is removed, the orders generated by the current overseas warehouse will no longer be pulled. Please go to MabangERP ERP - Logistics - Logistics Authorization - Third-Party/Overseas Warehouse menu to cancel the CJ overseas warehouse authorization to avoid your orders being pushed to the CJ overseas warehouse and unable to be fulfilled.","authorize-list-after-authorization-is-removed-1--plural":"1. After the authorization is removed, the orders generated by the current overseas warehouse will no longer be pulled. Please go to MabangERP ERP - Logistics - Logistics Authorization - Third-Party/Overseas Warehouse menu to cancel the CJ overseas warehouse authorization to avoid your orders being pushed to the CJ overseas warehouse and unable to be fulfilled.","authorize-list-how-to-connect-platform-with-site-name":"How to Connect {{platform}} with {{siteName}}?","authorize-list-how-to-connect-platform-with-site-name--plural":"How to Connect {{platform}} with {{siteName}}?","authorize-list-store-status":"Store Status","authorize-list-store-status--
31657plural":"Store Status","authorize-list-store-id":"Store ID","authorize-list-store-id--plural":"Store ID","authorize-list-update-authorize":"Update Authorize","authorize-list-update-authorize--plural":"Update Authorize","authorize-list-transfer-store":"Transfer Store","authorize-list-transfer-store--plural":"Transfer Store","authorize-list-tiktok-shop-us-products":"TikTok Shop US Products","authorize-list-tiktok-shop-us-products--plural":"TikTok Shop US Products","authorize-list-you-have-not-authorized-any-stores-yet":"You haven\'t authorized any stores yet.","authorize-list-you-have-not-authorized-any-stores-yet--plural":"You haven\'t authorized any stores yet.","authorize-list-token-expired-time":"Token Expired Time","authorize-list-token-expired-time--plural":"Token Expired Time","authorize-list-how-to-connect-platform-by-oauth-plugin":"How to Connect {{platform}} by OAuth Plugin?","authorize-list-how-to-connect-platform-by-oauth-plugin--plural":"How to Connect {{platform}} by OAuth Plugin?","authorize-list-connect":"Connect","authorize-list-and-ensure-consistency-once-well-set":"and ensure consistency. Once well-set, please do not alter it in case the office logistics cannot pick up the package, in which case, you shall take full responsibility for any loss occurred.","authorize-list-and-ensure-consistency-once-well-set--plural":"and ensure consistency. Once well-set, please do not alter it in case the office logistics cannot pick up the package, in which case, you shall take full responsibility for any loss occurred.","authorize-list-this-store-had-been-authoried-to-one-of-our-users":"This store had been authoried to one of our users.","authorize-list-this-store-had-been-authoried-to-one-of-our-users--plural":"This store had been authoried to one of our users.","authorize-list-a-default-address-will-be-generated":"A default address will be generated after your orders are synced to {{siteName}}, which cannot be modified. However, we will generate shipping labels and deliver your packages according to the real address.","authorize-list-a-default-address-will-be-generated--plural":"A default address will be generated after your orders are synced to {{siteName}}, which cannot be modified. However, we will generate shipping labels and deliver your packages according to the real address.","authorize-list-according-to-the-rules-of-tiktok-shop":"According to the rules of {{platform}} Shop, products can only be sent from US warehouses. Therefore, only the inventory from {{siteName}}\'s US warehouses will be synced in line with the product connection.","authorize-list-according-to-the-rules-of-tiktok-shop--plural":"According to the rules of {{platform}} Shop, products can only be sent from US warehouses. Therefore, only the inventory from {{siteName}}\'s US warehouses will be synced in line with the product connection.","authorize-list-logistics-logistics-authorization":"Logistics - Logistics Authorization - Tripartite/Overseas Warehouse - Variable: {{warehouseName}} - Enable Authorization","authorize-list-logistics-logistics-authorization--plural":"Logistics - Logistics Authorization - Tripartite/Overseas Warehouse - Variable: {{warehouseName}} - Enable Authorization","authorize-list-authorize-now":"Authorize Now","authorize-list-authorize-now--plural":"Authorize Now","authorize-list-continue-to-authorize":"Continue to Authorize","authorize-list-continue-to-authorize--plural":"Continue to Authorize","authorize-list-no-data":"No data","authorize-list-for-tiktok-stores-please-list-products":"For {{plateform}} stores, please list products from the {{plateform}} section on the home page due to the limitation of dispatch time set out by {{plateform}} platform.","authorize-list-for-tiktok-stores-please-list-products--plural":"For {{plateform}} stores, please list products from the {{plateform}} section on the home page due to the limitation of dispatch time set out by {{plateform}} platform.","authorize-list-inconsistent-info":"Inconsistent info","authorize-list-inconsistent-info--plural":"Inconsistent info","authorize-list-auto-sync-has-been-activated":"Auto-Sync has been activated.","authorize-list-auto-sync-has-been-activated--plural":"Auto-Sync has been activated.","authorize-list-how-to-set-it-up":"How to set it up?","authorize-list-how-to-set-it-up--plural":"How to set it up?","authorize-list-invalid":"Invalid","authorize-list-hide":"Hide","authorize-list-zip-code":"Zip Code","authorize-list-zip-code--plural":"Zip Code","authorize-list-enable-now":"Enable Now","authorize-list-enable-now--plural":"Enable Now","authorize-list-after-you-pay-for-your-orders-on-site-name":"1. After you pay for your orders on {{siteName}}, we will fulfill your orders as quickly as possible.","authorize-list-after-you-pay-for-your-orders-on-site-name--plural":"1. After you pay for your orders on {{siteName}}, we will fulfill your orders as quickly as possible.","authorize-list-store-shipping-methods":"Store Shipping Methods","authorize-list-store-shipping-methods--plural":"Store Shipping Methods","authorize-list-how-to-connect-your-platform-store-to-site-name-new":"How to Connect Your {{platform}} Store to {{siteName}}?","authorize-list-how-to-connect-your-platform-store-to-site-name-new--plural":"How to Connect Your {{platform}} Store to {{siteName}}?","authorize-list-store-name":"Store Name","authorize-list-str-priority":"{{str}} Priority","authorize-list-str-priority--plural":"{{str}} Priority","authorize-list-additionally-cj-offers-a-large-number-of-factory":"Additionally, {{siteName}} offers a large number of factory direct supply products. You can select products on {{siteName}} and list them to your {{platform}} store.","authorize-list-additionally-cj-offers-a-large-number-of-factory--plural":"Additionally, {{siteName}} offers a large number of factory direct supply products. You can select products on {{siteName}} and list them to your {{platform}} store.","authorize-list-etsy-authorization-is-temporarily-unavailable":"{{platform}} authorization is temporarily unavailable.","authorize-list-etsy-authorization-is-temporarily-unavailable--plural":"{{platform}} authorization is temporarily unavailable.","authorize-list-use-platform-logistics":"Use Platform Logistics","authorize-list-use-platform-logistics--plural":"Use Platform Logistics","authorize-list-adjusted":"Adjusted","authorize-list-adjusted--plural":"Adjusted","authorize-list-add-connection":"Add Connection","authorize-list-add-connection--plural":"Add Connection","authorize-list-server-is-busy-now-please-try-again-later":"The server is busy now. Please try again later.","authorize-list-only-english-letters-numbers":"Only English letters, numbers, \'_\', \'-\', \'.\', \'@\' are supported.","authorize-list-only-english-letters-numbers--plural":"Only English letters, numbers, \'_\', \'-\', \'.\', \'@\' are supported.","authorize-list-contact-us":"Contact Us","authorize-list-the-selected-warehouse-inventory-is-invalid":"The selected warehouse inventory is invali
31657d. Please adjust the warehouse status and reconnect.","authorize-list-the-selected-warehouse-inventory-is-invalid--plural":"The selected warehouse inventory is invalid. Please adjust the warehouse status and reconnect.","authorize-list-please-connect-at-least-one-warehouse":"Please connect at least one warehouse.","authorize-list-please-connect-at-least-one-warehouse--plural":"Please connect at least one warehouse.","authorize-list-you-should-set-up-site-name-shipping-returning-warehouse":"You should set up {{siteName}} shipping/returning warehouse in your {{plateform}} management platform. If multiple shipping warehouses have been set up, {{siteName}} warehouse should be listed first. Here is our warehouse information. ","authorize-list-you-should-set-up-site-name-shipping-returning-warehouse--plural":"You should set up {{siteName}} shipping/returning warehouse in your {{plateform}} management platform. If multiple shipping warehouses have been set up, {{siteName}} warehouse should be listed first. Here is our warehouse information. ","authorize-list-products-can-only-be-shipped-to-temu-from-its-specified-national":"Products can only be shipped to {{platform}} from its specified national warehouses. As a result, inventory synchronization with {{siteName}} is contingent upon stock availability in {{siteName}}\'s designated warehouses.","authorize-list-products-can-only-be-shipped-to-temu-from-its-specified-national--plural":"Products can only be shipped to {{platform}} from its specified national warehouses. As a result, inventory synchronization with {{siteName}} is contingent upon stock availability in {{siteName}}\'s designated warehouses.","authorize-list-private-inventory-only":"Private Inventory Only","authorize-list-private-inventory-only--plural":"Private Inventory Only","authorize-list-mabang-authorization":"MABANG Authorization.","authorize-list-mabang-authorization--plural":"MABANG Authorization.","authorize-list-store-warehouse":"Store Warehouse","authorize-list-store-warehouse--plural":"Store Warehouse","authorize-list-sitename-inventory-only":"{{siteName}}’s Inventory Only","authorize-list-sitename-inventory-only--plural":"{{siteName}}’s Inventory Only","authorize-list-submit":"Submit","authorize-list-sorry-no-data-found":"Sorry, no data found.","authorize-list-sorry-no-data-found--plural":"Sorry, no data found.","authorize-list-auto-sync-has-been-deactivated":"Auto-Sync has been deactivated.","authorize-list-auto-sync-has-been-deactivated--plural":"Auto-Sync has been deactivated.","authorize-list-city-and-state":"City and State","authorize-list-city-and-state--plural":"City and State","authorize-list-are-you-sure-to-deactivate-connection":"Are you sure to deactivate the connection?","authorize-list-are-you-sure-to-deactivate-connection--plural":"Are you sure to deactivate the connection?","authorize-list-connect-shop-warehouse":"Connect Shop Warehouse","authorize-list-connect-shop-warehouse--plural":"Connect Shop Warehouse","authorize-list-tutorial-for-authorizing-mercado-stores-to-cj":"Tutorial for Authorizing {{plateform}} Stores to {{siteName}}.","authorize-list-tutorial-for-authorizing-mercado-stores-to-cj--plural":"Tutorial for Authorizing {{plateform}} Stores to {{siteName}}.","authorize-list-warehouse-settings":"Warehouse Settings","authorize-list-warehouse-settings--plural":"Warehouse Settings","authorize-list-synchronize-tracking-numbers-to-your-platform":"Synchronize tracking numbers to your {{platform}} store by copy-pasting the tracking number.","authorize-list-synchronize-tracking-numbers-to-your-platform--plural":"Synchronize tracking numbers to your {{platform}} store by copy-pasting the tracking number.","authorize-list-via-platform-third-party-plugins":"Via {{platform}} third-party plugins","authorize-list-via-platform-third-party-plugins--plural":"Via {{platform}} third-party plugins","authorize-list-sync-etsy-products-and-orders-to-platform-then-sync-to-site-name":"Sync {{platform}} Products and Orders to {{targetPlatform}} then Sync to {{siteName}}","authorize-list-sync-etsy-products-and-orders-to-platform-then-sync-to-site-name--plural":"Sync {{platform}} Products and Orders to {{targetPlatform}} then Sync to {{siteName}}","authorize-list-export-your-data-into-csv-files-and-import-them-to-your-new-platform-store":"Export your data into CSV files, and import them to your new {{platform}} store (some data can\'t be migrated this way).","authorize-list-export-your-data-into-csv-files-and-import-them-to-your-new-platform-store--plural":"Export your data into CSV files, and import them to your new {{platform}} store (some data can\'t be migrated this way).","authorize-list-use-third-party-migration-apps-from-the-platform":"Use third-party migration apps from the <a target=\'_blank\' class=\'link\' href=\'https://apps.shopify.com/search?q=etsy\'>{{platform}} app store<i class=\'iconfont iconlujing1\'></i></a>.","authorize-list-use-third-party-migration-apps-from-the-platform--plural":"Use third-party migration apps from the <a target=\'_blank\' class=\'link\' href=\'https://apps.shopify.com/search?q=etsy\'>{{platform}} app store<i class=\'iconfont iconlujing1\'></i></a>.","authorize-list-too-many-attempts-next-edit-time":"Too many attempts. Next edit time","authorize-list-too-many-attempts-next-edit-time--plural":"Too many attempts. Next edit time","authorize-list-product-selection":"Product selection","authorize-list-product-selection--plural":"Product selection","authorize-list-when-the-store-selects-platform-logistics-platform-site-name":"When the store selects platform logistics, {{platformType}} orders will automatically switch to platform logistics. Please note that {{siteName}} does not handle the shipping time or costs for these orders.","authorize-list-when-the-store-selects-platform-logistics-platform-site-name--plural":"When the store selects platform logistics, {{platformType}} orders will automatically switch to platform logistics. Please note that {{siteName}} does not handle the shipping time or costs for these orders.","authorize-list-the-product-is-shipped-directly-by-the-supplier":"The product is shipped directly by the supplier, and the remaining quantity of the supplier\'s inventory cannot be tracked in time. There is a certain risk in the inventory quantity. Aconnection of the warehouse means that you are aware of the risk.","authorize-list-the-product-is-shipped-directly-by-the-supplier--plural":"The product is shipped directly by the supplier, and the remaining quantity of the supplier\'s inventory cannot be tracked in time. There is a certain risk in the inventory quantity. Aconnection of the warehouse means that you are aware of the risk.","authorize-list-warehouse-name":"Warehouse Name","authorize-list-warehouse-name--plural":"Warehouse Name","authorize-list-store-authorization-has-expired-please":"Store authorization has expired. Please close the popup and go to \\"Store List\\" > \\"Store Status\\" to select \\"Reauthorize.\\"","authorize-list-store-authorization-has-expired-please--plural":"Store authorization has expired. Please close the popup and go to \\"Store List\\" > \\"Store Status\\" to select \\"Reauthorize.\\"","authorize-list-account-authorization":"Account Authorization","authorize-list-account-authorization--plural":"Account Authorization","authorize-list-warehouse-address":"Warehouse Address","authorize-list-shipping-warehouse":"Shipping Warehouse","authorize-list-shipping-warehouse--plural":"Shipping Warehouse","authorize-list-the-address-marked-with-has-been-icon-changed":"The address marked with \\" <i class=\'iconfont icongenghuandizhi areaIcon\'></i> \\" has been changed. Please check the latest data.","authorize-list-the-address-marked-with-has-been-icon-changed--plural":"The address marked with \\" <i class=\'iconfont icongenghuandizhi areaIcon\'></i> \\" has been changed. Please check the latest data.","authorize-list-please-add-site-name-warehouse-information-below":"Please add {{siteName}}\'s warehouse information below to the {{plateform}} Shop admin &gt;","authorize-list-please-add-site-name-warehouse-information-below--plural":"Please add {{siteName}}\'s warehouse information below to the {{plateform}} Shop admin &gt;","authorize-list-as-ontario-warehouse":"As the Ontario warehouse, Bordentown warehouse, and Austell warehouse are only available for orders using merchant self
31657-shipping, please do not add those warehouses to your store when using {{plateform}} official logistics. ","authorize-list-as-ontario-warehouse--plural":"As the Ontario warehouse, Bordentown warehouse, and Austell warehouse are only available for orders using merchant self-shipping, please do not add those warehouses to your store when using {{plateform}} official logistics. ","authorize-list-for-the-connected-product-inventory-will-be":"For the connected product, inventory will be automatically synced when the inventory changes in {{plateform}}\'s US warehouse.","authorize-list-for-the-connected-product-inventory-will-be--plural":"For the connected product, inventory will be automatically synced when the inventory changes in {{plateform}}\'s US warehouse.","authorize-list-store-delivery-mode-under-the-authorized":"2. The store delivery mode under the authorized account is: self-delivery. The store in Full Warehouse mode will be automatically filtered after successful authorization.","authorize-list-store-delivery-mode-under-the-authorized--plural":"2. The store delivery mode under the authorized account is: self-delivery. The store in Full Warehouse mode will be automatically filtered after successful authorization.","authorize-list-the-store-authorization-has-been-verified-to-be-invalid":"The store authorization has been verified to be invalid. Please go to re-authorize.","authorize-list-the-store-authorization-has-been-verified-to-be-invalid--plural":"The store authorization has been verified to be invalid. Please go to re-authorize.","authorize-list-authorization-notice":"Authorization Notice","authorize-list-authorization-notice--plural":"Authorization Notice","authorize-list-not-sync":"Not Sync","authorize-list-not-sync--plural":"Not Sync","authorize-list-close":"Close","authorize-list-synchronize-temu-us-warehouse-address":"Synchronize {{platform}} US warehouse address","authorize-list-synchronize-temu-us-warehouse-address--plural":"Synchronize {{platform}} US warehouse address","authorize-list-redirect-now":"Redirect Now.","authorize-list-redirect-now--plural":"Redirect Now.","authorize-list-inconsistent-warehouse-information-please":"Inconsistent warehouse information. Please double-check and alter it on the {{platform}} Shop admin.","authorize-list-inconsistent-warehouse-information-please--plural":"Inconsistent warehouse information. Please double-check and alter it on the {{platform}} Shop admin.","authorize-list-temu-warehouse-address-settings":"{{platform}} warehouse address settings: {{platform}} Seller Center &gt; Delivery Management &gt; Warehouse Address Management","authorize-list-temu-warehouse-address-settings--plural":"{{platform}} warehouse address settings: {{platform}} Seller Center &gt; Delivery Management &gt; Warehouse Address Management","authorize-list-enable-authorization-process":"Enable authorization process: Verify that authorization is not enabled in MABANG ERP; you need to go to the MABANG.","authorize-list-enable-authorization-process--plural":"Enable authorization process: Verify that authorization is not enabled in MABANG ERP; you need to go to the MABANG.","authorize-list-edit-failed":"Edit Failed","authorize-list-edit-failed--plural":"Edit Failed","authorize-list-account-type-currently-allowed-for-authorization":"1. The account type currently allowed for authorization is: Cross-Border Store.","authorize-list-account-type-currently-allowed-for-authorization--plural":"1. The account type currently allowed for authorization is: Cross-Border Store.","authorize-list-inconsistent-warehouse-information-platform":"Inconsistent warehouse information. Please double-check and alter it on the {{plateform}} Shop admin.","authorize-list-inconsistent-warehouse-information-platform--plural":"Inconsistent warehouse information. Please double-check and alter it on the {{plateform}} Shop admin.","authorize-list-view-warehouse-name-warehouse":"View {{warehouseName}}","authorize-list-view-warehouse-name-warehouse--plural":"View {{warehouseName}}","authorize-list-please-connect-at-least-one-site-name":"Please connect at least one {{siteName}} warehouse to meet the needs of synchronized inventory.","authorize-list-please-connect-at-least-one-site-name--plural":"Please connect at least one {{siteName}} warehouse to meet the needs of synchronized inventory.","authorize-list-virtual-store-added-successfully":"Virtual store added successfully!","authorize-list-virtual-store-added-successfully--plural":"Virtual store added successfully!","authorize-list-phone-number":"Phone Number","authorize-list-neithertheless-for-products-other-than-in-the-tiktok":"Nevertheless, for products other than 
31657in the {{plateform}} section, you may purchase private inventory to US warehouse first before listing and selling.","authorize-list-neithertheless-for-products-other-than-in-the-tiktok--plural":"Nevertheless, for products other than in the {{plateform}} section, you may purchase private inventory to US warehouse first before listing and selling.","authorize-list-migration-expert":"Migration expert","authorize-list-migration-expert--plural":"Migration expert","authorize-list-please-select-country":"Please select the country","authorize-list-product-listing":"Product listing","authorize-list-product-listing--plural":"Product listing","authorize-list-hire-a-shopify-partner":"<a target=\'_blank\' class=\'link\' href=\'https://www.shopify.com/partners/directory/services/store-setup/migrate-from-another-platform\'>Hire a {{platform}} Partner<i class=\'iconfont iconlujing1\'></i></a> to manage and complete your migration.","authorize-list-hire-a-shopify-partner--plural":"<a target=\'_blank\' class=\'link\' href=\'https://www.shopify.com/partners/directory/services/store-setup/migrate-from-another-platform\'>Hire a {{platform}} Partner<i class=\'iconfont iconlujing1\'></i></a> to manage and complete your migration.","authorize-list-you-can-only-set-three-shipping-methods-at-most":"You can only set three shipping methods at most.","authorize-list-you-can-only-set-three-shipping-methods-at-most--plural":"You can only set three shipping methods at most.","authorize-list-add-shipping-method":"Add Shipping Method","authorize-list-add-shipping-method--plural":"Add Shipping Method","authorize-list-register-now":"Register Now","authorize-list-register-now--plural":"Register Now","authorize-list-address":"Address","authorize-list-please-enter-store-name":"Please enter store name","authorize-list-please-enter-store-name--plural":"Please enter store name","authorize-list-all-states":"All States","authorize-list-all-states--plural":"All States","authorize-list-no-data-found":"No data found.","authorize-list-stores-with-a-hong-kong-entity-must-select-usd":"Stores with a Hong Kong entity must select USD","authorize-list-stores-with-a-hong-kong-entity-must-select-usd--plural":"Stores with a Hong Kong entity must select USD","authorize-list-the-current-address-has-changed":"The current address has changed. Please sync and adjust the address in your store.","authorize-list-the-current-address-has-changed--plural":"The current address has changed. Please sync and adjust the address in your store.","authorize-list-store-name-displayed-in-site-name-management-backend":"The store name displayed in the {{ siteName }} management backend, limited to 3-20 characters.","authorize-list-store-name-displayed-in-site-name-management-backend--plural":"The store name displayed in the {{ siteName }} management backend, limited to 3-20 characters.","authorize-list-automatically-synchronize-platform-tracking-numbers-to":"Automatically synchronize {{platform}} tracking numbers to your {{targetPlatform}} store via {{platform}} third-party plugins.","authorize-list-automatically-synchronize-platform-tracking-numbers-to--plural":"Automatically synchronize {{platform}} tracking numbers to your {{targetPlatform}} store via {{platform}} third-party plugins.","authorize-list-before-proceeding-you-need-to-have-a-platform":"Before proceeding, you need to have a {{platform}} account.","authorize-list-before-proceeding-you-need-to-have-a-platform--plural":"Before proceeding, you need to have a {{platform}} account.","authorize-list-temu-product-permission-token":"Temu Product Permission Token","authorize-list-temu-product-permission-token--plural":"Temu Product Permission Token","authorize-list-copy-the-content-from-your-existing-platform-store-and-paste-it-in":"Copy the content from your existing {{platform}} store and paste it in your new {{targetPlatform}} store.","authorize-list-copy-the-content-from-your-existing-platform-store-and-paste-it-in--plural":"Copy the content from your existing {{platform}} store and paste it in your new {{targetPlatform}} store.","authorize-list-we-recommend-using-third-party-migration-apps":"We recommend using third-party migration apps.","authorize-list-we-recommend-using-third-party-migration-apps--plural":"We recommend using third-party migration apps.","authorize-list-sitename-inventory-when-no-private-inventory-left":"{{siteName}}’s Inventory when No Private Inventory Left","authorize-list-sitename-inventory-when-no-private-inventory-left--plural":"{{siteName}}’s Inventory when No Private Inventory Left","authorize-list-i-have-read-and-agree-to":"I have read and agree to","authorize-list-i-have-read-and-agree-to--plural":"I have read and agree to","authorize-list-after-successful-authorization":"After successful authorization, please go to {{siteName}} Store Status to do Reauthorize.","authorize-list-after-successful-authorization--plural":"After successful authorization, please go to {{siteName}} Store Status to do Reauthorize.","authorize-list-you-have-reached-the-limit-of-20":"You have reached the limit of 20 virtual stores and cannot create more.","authorize-list-you-have-reached-the-limit-of-20--plural":"You have reached the limit of 20 virtual stores and cannot create more.","authorize-list-only-available-for-orders-using-merchant":"Only available for orders using merchant self
31657-shipping; Please do not add those warehouses to your store when using {{storeName}} official logistics.","authorize-list-only-available-for-orders-using-merchant--plural":"Only available for orders using merchant self-shipping; Please do not add those warehouses to your store when using {{storeName}} official logistics.","authorize-list-please-select-a-cj-warehouse-to-link":"Please select a {{siteName}} warehouse to link to your MABANG account.","authorize-list-please-select-a-cj-warehouse-to-link--plural":"Please select a {{siteName}} warehouse to link to your MABANG account.","authorize-list-verify-mabang-authorization":"Verify MABANG Authorization","authorize-list-verify-mabang-authorization--plural":"Verify MABANG Authorization","authorize-list-currently-only-shopify-store-authorization-is-supported":"Currently, only {{plateform}} store authorization is supported. If you need to authorize other stores, please","authorize-list-currently-only-shopify-store-authorization-is-supported--plural":"Currently, only {{plateform}} store authorization is supported. If you need to authorize other stores, please","authorize-list-the-changes-have-not-been-saved":"The changes have not been saved. Are you sure to exit?","authorize-list-the-changes-have-not-been-saved--plural":"The changes have not been saved. Are you sure to exit?","authorize-list-please-select-authorize-global-warehouses":"Please select authorize global warehouses","authorize-list-please-select-authorize-global-warehouses--plural":"Please select authorize global warehouses","authorize-list-manual-data-copy-paste":"Manual data copy paste","authorize-list-manual-data-copy-paste--plural":"Manual data copy paste","authorize-list-please-select-region":"Please select the region","authorize-list-please-select-region--plural":"Please select the region","authorize-list-sync-platform-orders-to-site-name":"Sync {{platform}} Orders to {{siteName}}","authorize-list-sync-platform-orders-to-site-name--plural":"Sync {{platform}} Orders to {{siteName}}","authorize-list-please-select-shipping-method":"Please select the Shipping Method","authorize-list-please-select-shipping-method--plural":"Please select the Shipping Method","authorize-list-you-can-manage-order-synchronization-on-site-name":"You can manage order synchronization on {{siteName}}, just deliver the migrated {{platform}} orders to {{siteName}} for fulfillment. ","authorize-list-you-can-manage-order-synchronization-on-site-name--plural":"You can manage order synchronization on {{siteName}}, just deliver the migrated {{platform}} orders to {{siteName}} for fulfillment. ","authorize-list-note":"Note","authorize-list-please-enter-temu-order-permission-token":"Please enter the Temu order permission token","authorize-list-please-enter-temu-order-permission-token--plural":"Please enter the Temu order permission token","authorize-list-authorization-token":"Authorization Token","authorize-list-authorization-token--plural":"Authorization Token","authorize-list-sync-settings":"Sync Settings","authorize-list-sync-settings--plural":"Sync Settings","authorize-list-all":"All","authorize-list-third-party-migration-apps":"Third-party migration apps","authorize-list-third-party-migration-apps--plural":"Third-party migration apps","authorize-list-contact-person":"Contact Person","authorize-list-how-to-obtain-authorization-token":"How to obtain authorization token?","authorize-list-how-to-obtain-authorization-token--plural":"How to obtain authorization token?","authorize-list-no":"No","authorize-list-pay-for-your-orders":"Pay for your orders","authorize-list-pay-for-your-orders--plural":"Pay for your orders","authorize-list-operate":"Operate","authorize-list-operate--plural":"Operate","authorize-list-quickly-install-cjdropshipping-via-the-shopify-app-store-to":"Quickly install {{FullPlatformName}} via the {{platform}} app store to complete your store authorization.","authorize-list-quickly-install-cjdropshipping-via-the-shopify-app-store-to--plural":"Quickly install {{FullPlatformName}} via the {{platform}} app store to complete your store authorization.","authorize-list-please-select-store-currency-submit":"Please select the store currency and submit","authorize-list-please-select-store-currency-submit--plural":"Please select the store currency and submit","authorize-list-logistics-strategy":"Logistics Strategy","authorize-list-logistics-strategy--plural":"Logistics Strategy","authorize-list-priority":"Priority","authorize-list-priority--plural":"Priority","authorize-list-product-and-order-synchronization":"Product and Order Synchronization","authorize-list-product-and-order-synchronization--plural":"Product and Order Synchronization","authorize-list-please-set-the-priority":"Please set the priority","authorize-list-please-set-the-priority--plural":"Please set the priority","authorize-list-migration-method":"Migration Method","authorize-list-migration-method--plural":"Migration Method","authorize-list-temu-order-permission-token":"Temu Order Permission Token","authorize-list-temu-order-permission-token--plural":"Temu Order Permission Token","authorize-list-not-set":"Not set","authorize-list-not-set--plural":"Not set","authorize-list-order-status-updated":"Order status updated","authorize-list-order-status-updated--plural":"Order status updated","authorize-list-please-select":"Please select","authorize-list-list-new-products-to-your-store":"List new products to your store","authorize-list-list-new-products-to-your-store--plural":"List new products to your store","authorize-list-saved-successfully":"Saved Successfully","authorize-list-to-manage-your-etsy-products-and-orders":"To manage your {{platform1}} products and orders, please use the {{platform2}} app. Once your {{platform2}} store is connected to {{siteName}}, listing and order fulfillment can be made automatically for your {{platform1}} store.","authorize-list-to-manage-your-etsy-products-and-orders--plural":"To manage your {{platform1}} products and orders, please use the {{platform2}} app. Once your {{platform2}} store is connected to {{siteName}}, listing and order fulfillment can be made automatically for your {{platform1}} store.","authorize-list-you-can-synchronize-the-order-status-from-to-your-target":"2. You can synchronize the order status from {{platform}} to your {{targetPlatform}} store.","authorize-list-you-can-synchronize-the-order-status-from-to-your-target--plural":"2. You can synchronize the order status from {{platform}} to your {{targetPlatform}} store.","authorize-list-country":"Country","authorize-list-select-all-shipping-options-and-prioritize-the-fastest-delivery-time":"Select all shipping options and prioritize the fastest delivery time.","authorize-list-select-all-shipping-options-and-prioritize-the-fastest-delivery-time--plural":"Select all shipping options and prioritize the fastest delivery time.","authorize-list-according-to-the-platform-official-documentation":"According to the {{platform}} official documentation, you can sync your product and order data to {{platform}} in the following ways","authorize-list-according-to-the-platform-official-documentation--plural":"According to the {{platform}} official documentation, you can sync your product and order data to {{platform}} in the following ways","authorize-list-please-enter-temu-product-permission-token":"Please enter the Temu product permission token","authorize-list-please-enter-temu-product-permission-token--plural":"Please enter the Temu product permission token","authorize-list-authorize-your-platform-store-to-site-name":"Authorize Your {{platform}} Store to {{siteName}}","authorize-list-authorize-your-platform-store-to-site-name--plural":"Authorize Your {{platform}} Store to {{siteName}}","authorize-list-how-to-create-an-automatic-order-on-site-name":"How to Create an Automatic Order on {{siteName}}?","authorize-list-how-to-create-an-automatic-order-on-site-name--plural":"How to Create an Automatic Order on {{siteName}}?","authorize-list-please-enter-authorization-token":"Please enter the authorization token","authorize-list-please-enter-authorization-token--plural":"Please enter the authorization token","authorize-list-generate-new-products":"Generate new products","authorize-list-generate-new-products--plural":"Generate new products","authorize-list-yes":"Yes","authorize-list-region":"Region","authorize-list-shipping-method":"Shipping Method","authorize-list-click-to-view-the-shopify-official-migration-documentation":"Click to view the Shopify official migration documentation","authorize-list-click-to-view-the-shopify-official-migration-documentation--plural":"Click to view the Shopify official migration documentation","authorize-list-you-have-number-stores-being-transferred":"You have <span class=\'theme\'>{storeTransferNum}</span> {{word}} being transferred...","authorize-list-you-have-number-stores-being-transferred--plural":"You have <span class=\'theme\'>{storeTransferNum}</span> {{word}} being transferred...","authorize-list-this-store-cannot-be-deleted-as-it-still-has-orders-under-the-a":"This store cannot be deleted as it still has orders under the \\" <a href=\'/mine/dropshipping/orderManage\' class=\'link\'>{{str}}</a> \\" tab. Please check and handle them before trying again.","authorize-list-this-store-cannot-be-deleted-as-it-still-has-orders-under-the-a--plural":"This store cannot be deleted as it still has orders under the \\" <a href=\'/mine/dropshipping/orderManage\' class=\'link\'>{{str}}</a> \\" tab. Please check and handle them before trying again.","authorize-list-order-fulfillment-and-shipment":"Order fulfillment and shipment","authorize-list-order-fulfillment-and-shipment--plural":"Order fulfillment and shipment","authorize-list-synchronize-tracking-numbers-via-copy-pasting-or-using-platform":"Synchronize tracking numbers via copy-
31657pasting or using {{platform}} third-party plugins","authorize-list-synchronize-tracking-numbers-via-copy-pasting-or-using-platform--plural":"Synchronize tracking numbers via copy-pasting or using {{platform}} third-party plugins","authorize-list-list-selected-products-to-your-etsy-store":"2. List selected products to your {{platform1}} store via {{platform2}} third-party plugins.","authorize-list-list-selected-products-to-your-etsy-store--plural":"2. List selected products to your {{platform1}} store via {{platform2}} third-party plugins.","authorize-list-user-agreement-of-site-platform-inventory-service":"User Agreement of {{siteName}}-{{platform}} Inventory Service","authorize-list-user-agreement-of-site-platform-inventory-service--plural":"User Agreement of {{siteName}}-{{platform}} Inventory Service","authorize-list-sync-and-save-now":"Sync and Save Now","authorize-list-sync-and-save-now--plural":"Sync and Save Now","authorize-list-order-synchronization":"Order Synchronization","authorize-list-order-synchronization--plural":"Order Synchronization","authorize-list-select-all-shipping-options-and-choose-the-most-cost-effective-one":"Select all shipping options and choose the most cost-effective one.","authorize-list-select-all-shipping-options-and-choose-the-most-cost-effective-one--plural":"Select all shipping options and choose the most cost-effective one.","authorize-list-csv-import":"CSV import","authorize-list-csv-import--plural":"CSV import","authorize-list-sync-platform-products-and-orders-to-target-platform":"Sync {{platform}} Products and Orders to {{targetPlatform}}","authorize-list-sync-platform-products-and-orders-to-target-platform--plural":"Sync {{platform}} Products and Orders to {{targetPlatform}}","authorize-list-description":"Description","authorize-list-successfully":"Successfully","authorize-list-tracking-number-synchronization":"Tracking number synchronization","authorize-list-tracking-number-synchronization--plural":"Tracking number synchronization","authorize-list-pay-for-your-orders-on-site-name":"Pay for Your Orders on {{siteName}}","authorize-list-pay-for-your-orders-on-site-name--plural":"Pay for Your Orders on {{siteName}}","authorize-list-register-a-platform-store":"Register a {{{platform}} Store","authorize-list-register-a-platform-store--plural":"Register a {{{platform}} Store","authorize-list-select-products-on-cj-and-list-them-to-your-shopify-store":"1. Select products on {{siteName}} and list them to your {{platform}} store.","authorize-list-select-products-on-cj-and-list-them-to-your-shopify-store--plural":"1. Select products on {{siteName}} and list them to your {{platform}} store.","authorize-list-view-tutorial":"View Tutorial","authorize-list-view-tutorial--plural":"View Tutorial","home-shop-lazza":"ShopLazza","home-top-selling-products":"Top Selling Products","home-top-selling-products--plural":"Top Selling Products","home-mercado":"Mercado","home-partners":"Partners","home-partners--plural":"Partners","home-ebay":"eBay","home-contact-us":"Contact Us","home-cj-academy":"CJ Mentors","home-24-7-support":"24/7 Support","home-lazada":"Lazada","home-prime":"Prime","home-prime--plural":"Prime","home-shipstation":"Shipstation","home-shipstation--plural":"Shipstation","home-ticket":"Ticket","home-google-chrome-extension":"Google Chrome Extension","home-miaoshou-erp":"妙手ERP","home-miaoshou-erp--plural":"妙手ERP","home-shopee":"Shopee","home-bigcommerce":"Bigcommerce","home-bigcommerce--plural":"Bigcommerce","home-retailer-api":"Retailer API","home-retailer-api--plural":"Retailer API","home-dropshipping-blog":"Dropshipping Blog","home-dropshipping-blog--plural":"Dropshipping Blog","home-integrations":"Integrations","home-integrations--plural":"Integrations","home-aliexpress":"AliExpress","home-nuvemshop":"Nuvemshop","home-mabang-erp":"MabangERP","home-mabang-erp--plural":"MabangERP","vs-sv-please-enter-the-tracking-number":"Please enter the tracking number","home-why-cjdropshipping":"Why CJdropshipping","home-why-cjdropshipping--plural":"Why CJdropshipping","home-china-visiting-guide-services":"China Visiting Guide Services","home-china-visiting-guide-services--plural":"China Visiting Guide Services","home-faq":"Frequently Asked Questions","home-faq--plural":"Frequently Asked Questions","home-features-free-forever":"Features Free Forever","home-features-free-forever--plural":"Features Free Forever","vs-sv-automated-workflow":"Automated Workflow","vs-sv-automated-workflow--plural":"Automated Workflow","home-99-sampl
31657ing-inspection-rate":"99% Sampling Inspection Rate","home-99-sampling-inspection-rate--plural":"99% Sampling Inspection Rate","home-payment-processor-agency":"Payment Processor Agency","home-payment-processor-agency--plural":"Payment Processor Agency","home-dedicated-print-on-demand-facilities":"Professional Print-on-Demand Facilities","home-dedicated-print-on-demand-facilities--plural":"Professional Print-on-Demand Facilities","home-cogs-reduction-strategies":"COGS Reduction Strategies","home-cogs-reduction-strategies--plural":"COGS Reduction Strategies","vs-sv-global-supply-network-content":"Our seamless integration bridges your online store directly to CJdropshipping’s global supply network—no coding required.","vs-sv-global-supply-network-content--plural":"Our seamless integration bridges your online store directly to CJdropshipping’s global supply network—no coding required.","home-faq-question-10":"Can I request custom packaging or private labeling?","home-faq-question-10--plural":"Can I request custom packaging or private labeling?","home-products-video-download-free":"Products Video Download Free","home-products-video-download-free--plural":"Products Video Download Free","vs-sv-one-click-connection":"One-Click Connection","vs-sv-one-click-connection--plural":"One-Click Connection","home-temu":"Temu","home-temu--plural":"Temu","home-help-center":"Help Center","home-ecommerce-platforms":"Ecommerce Platforms","home-ecommerce-platforms--plural":"Ecommerce Platforms","home-end-to-end-supply-chain-solutions":"End-to-End Supply Chain Solutions","home-end-to-end-supply-chain-solutions--plural":"End-to-End Supply Chain Solutions","home-product-sourcing":"Product Sourcing","home-product-sourcing--plural":"Product Sourcing","home-automatic-tracking-updates-free":"Automatic Tracking Updates Free","home-automatic-tracking-updates-free--plural":"Automatic Tracking Updates Free","home-100-global-shipping-solutions":"100+ Global Shipping Solutions","home-100-global-shipping-solutions--plural":"100+ Global Shipping Solutions","home-driving-customer-success":"Driving Customer Success","home-driving-customer-success--plural":"Driving Customer Success","home-product-development-implementation":"Product Development & Implementation","home-product-development-implementation--plural":"Product Development & Implementation","home-tiktok-shop":"TikTok Shop","home-tiktok-shop--plural":"TikTok Shop","home-multiple-store-management-free":"Multiple Store Management Free","home-multiple-store-management-free--plural":"Multiple Store Management Free","vs-sv-inventory-intelligence":"Inventory Intelligence","vs-sv-inventory-intelligence--plural":"Inventory Intelligence","home-faq-answer-1":"CJdropshipping is a one-stop dropshipping platform that sources, stores, and ships products globally for online sellers. You sell products on your store, and we handle inventory, packaging, and delivery directly to your customers.","home-faq-answer-1--plural":"CJdropshipping is a one-stop dropshipping platform that sources, stores, and ships products globally for online sellers. You sell products on your store, and we handle inventory, packaging, and delivery directly to your customers.","home-faq-answer-2":"No, it’s free to join. You only pay for products, shipping, and any optional services (e.g., custom packaging).","home-faq-answer-2--plural":"No, it’s free to join. You only pay for products, shipping, and any optional services (e.g., custom packaging).","home-faq-answer-3":"Click \\"Sign Up\\" on the homepage, fill in your email/password, and verify your account. No credit card required.","home-faq-answer-3--plural":"Click \\"Sign Up\\" on the homepage, fill in your email/password, and verify your account. No credit card required.","home-faq-answer-4":"Yes! Connect your store via API or our app for real-time order syncing and automated fulfillment.","home-faq-answer-4--plural":"Yes! Connect your store via API or our app for real-time order syncing and automated fulfillment.","home-3pl-fulfillment":"3PL Fulfillment","home-faq-answer-5":"Orders are processed within 1-3 business days (depending on product availability and customization needs).","home-faq-answer-5--plural":"Orders are processed within 1-3 business days (depending on product availability and customization needs).","home-faq-answer-6":"We provide air freight, sea freight, express (DHL/UPS), and local warehouse delivery (US, EU, etc.) with tracking.","home-faq-answer-6--plural":"We provide air freight, sea freight, express (DHL/UPS), and local warehouse delivery (US, EU, etc.) with tracking.","home-faq-answer-7":"From China: 7-15 days (air); Local US/EU warehouses: 3-7 days.","home-faq-answer-7--plural":"From China: 7-15 days (air); Local US/EU warehouses: 3-7 days.","home-faq-answer-8":"Yes, you’ll receive a tracking number once the order is shipped. Check status in your account dashboard.","home-faq-answer-8--plural":"Yes, you’ll receive a tracking number once the order is shipped. Check status in your account dashboard.","home-faq-answer-9":"Use our “Hot Products” section and data-driven tools to discover bestsellers in niches like electronics, home decor, and TikTok viral items.","home-faq-answer-9--plural":"Use our “Hot Products” section and data-driven tools to discover bestsellers in niches like electronics, home decor, and TikTok viral items.","home-faster-order-fulfillment":"Faster Order Fulfillment","home-faster-order-fulfillment--plural":"Faster Order Fulfillment","home-sourcing-agent-empowerment":"Sourcing Agent Empowerment","home-sourcing-agent-empowerment--plural":"Sourcing Agent Empowerment","home-erp-platforms":"ERP Platforms","home-erp-platforms--plural":"ERP Platforms","vs-sv-global-supply-network-title":"CJdropshipping\'s global supply network—no coding required.","vs-sv-global-supply-network-title--plural":"CJdropshipping\'s global supply network—no coding required.","home-faq-question-8":"Can I track my orders?","home-faq-question-8--plural":"Can I track my orders?","home-cj-account-management":"CJ Account Management","home-cj-account-management--plural":"CJ Account Management","home-faq-question-7":"How long does shipping take to the US/Europe?","home-faq-question-7--plural":"How long does shipping take to the US/Europe?","home-network-of-high-quality-factories":"Network of High-Quality Factories","home-network-of-high-quality-factories--plural":"Network of High-Quality Factories","home-faq-question-9":"How do I find trending products to sell?","home-faq-question-9--plural":"How do I find trending products to sell?","home-faq-question-4":"Can I sync my 
31657Shopify/TikTok Shop orders automatically?","home-faq-question-4--plural":"Can I sync my Shopify/TikTok Shop orders automatically?","home-faq-question-3":"How do I create a CJdropshipping account?","home-faq-question-3--plural":"How do I create a CJdropshipping account?","home-faq-question-6":"What shipping methods do you offer?","home-faq-question-6--plural":"What shipping methods do you offer?","home-faq-question-5":"How long does it take to process an order?","home-faq-question-5--plural":"How long does it take to process an order?","home-faq-question-2":"Do I need to pay a membership fee to use CJdropshipping?","home-faq-question-2--plural":"Do I need to pay a membership fee to use CJdropshipping?","vs-sv-multi-platform-support":"Multi-Platform Support","vs-sv-multi-platform-support--plural":"Multi-Platform Support","home-faq-question-1":"What is CJdropshipping, and how does it work?","home-faq-question-1--plural":"What is CJdropshipping, and how does it work?","home-dtc-supply-chain-implementation":"DTC Supply Chain Implementation","home-dtc-supply-chain-implementation--plural":"DTC Supply Chain Implementation","home-price-and-stock-monitor-free":"Price and Stock Monitor Free","home-price-and-stock-monitor-free--plural":"Price and Stock Monitor Free","home-shorten-delivery-time":"Shorten Delivery Time","home-shorten-delivery-time--plural":"Shorten Delivery Time","home-woocommerce":"Woocommerce","home-localized-inventory-with-millions-of-choices":"Localized Inventory with Millions of Choices","home-localized-inventory-with-millions-of-choices--plural":"Localized Inventory with Millions of Choices","home-print-on-demand":"Print-on-Demand","home-print-on-demand--plural":"Print-on-Demand","home-global-inventory":"Global Inventory","home-global-inventory--plural":"Global Inventory","home-solutions":"Solutions","home-solutions--plural":"Solutions","home-unlimited-product-importting-free":"Unlimited Product Importting Free","home-unlimited-product-importting-free--plural":"Unlimited Product Importting Free","home-faq-answer-10":"Yes! We offer custom logos, packaging design, and product customization. Submit your design files during checkout.","home-faq-answer-10--plural":"Yes! We offer custom logos, packaging design, and product customization. Submit your design files during checkout.","home-global-warehouse-network":"Global Warehouse Network","home-global-warehouse-network--plural":"Global Warehouse Network","home-resources":"Resources","home-cj-elite":"CJ Elite","home-cj-elite--plural":"CJ Elite","home-become-a-supplier":"Become a Supplier","home-become-a-supplier--plural":"Become a Supplier","home-bulk-purchasing":"Bulk Purchasing","home-bulk-purchasing--plural":"Bulk Purchasing","home-support":"Support","home-affiliate":"Affiliate","home-credit-services":"Credit Services","home-credit-services--plural":"Credit Services","home-free-stores":"Free Stores","home-free-stores--plural":"Free Stores","home-product-photography":"Product Photography","home-elites-desc":"Join Elites: Master advanced dropshipping strategies, access exclusive suppliers, and network with proven experts. ","home-elites-desc--plural":"Join Elites: Master advanced dropshipping strategies, access exclusive suppliers, and network with proven experts. ","vs-sv-what-do-other-dropshippers-say":"What Do Other Dropshippers Say?","vs-sv-what-do-other-dropshippers-say--plural":"What Do Other Dropshippers Say?","home-elites":"Elites","home-learn":"Learn","home-learn--plural":"Learn","home-get-support-title":"Get Support","home-get-support-title--plural":"Get Support","home-get-help":"Get Help","home-get-help--plural":"Get Help","home-get-started-button":"Try CJdropshipping Free","home-get-started-button--plural":"Try CJdropshipping Free","home-get-help-desc":"Unlock expert dropshipping guidance with CJdropshipping Help Center: comprehensive tutorials, proven strategies, step-by-step support for global brand success and profitability.","home-get-help-desc--plural":"Unlock expert dropshipping guidance with CJdropshipping Help Center: comprehensive tutorials, proven strategies, step-by-step support for global brand success and profitability.","home-get-started-subtitle":"Start Your Business Today with CJdropshipping","home-get-started-subtitle--plural":"Start Your Business Today with CJdropshipping","home-get-started-title":"Ready to get started?","home-get-started-title--plural":"Ready to get started?","home-read":"Read","home-read--plural":"Read","language-uzbek":"Uzbek","language-uzbek--plural":"Uzbek","language-tajik":"Tajik","language-tajik--plural":"Tajik","language-kirghiz-kyrgyz":"Kirghiz, Kyrgyz","language-kirghiz-kyrgyz--plural":"Kirghiz, Kyrgyz","language-turkmen":"Turkmen","language-turkmen--plural":"Turkmen","language-kazakh":"Kazakh","language-kazakh--plural":"Kazakh","common-th-warning-content-n2":"At {{platform}}, we ensure that all products are sourced from reputable suppliers on China’s 1688 platform. We do not sell any branded items that may infringe on intellectual property rights. Each product is thoroughly inspected before shipment to guarantee quality and secure delivery. Thank y
31657ou for choosing us as your trusted marketplace.","common-th-warning-content-n2--plural":"At {{platform}}, we ensure that all products are sourced from reputable suppliers on China’s 1688 platform. We do not sell any branded items that may infringe on intellectual property rights. Each product is thoroughly inspected before shipment to guarantee quality and secure delivery. Thank you for choosing us as your trusted marketplace.","my-profile-address-county":"County","home-blog-title":"Blog","home-blog":"Blog","home-get-support-title-new":"Get the Support You Deserve for Your Business","home-get-support-title-new--plural":"Get the Support You Deserve for Your Business","home-blog-desc":"Explore trending dropshipping niches, best supplier, expert sourcing guides, marketing strategies, and dropshipping tips in our blog.","home-blog-desc--plural":"Explore trending dropshipping niches, best supplier, expert sourcing guides, marketing strategies, and dropshipping tips in our blog.","home-api":"API","home-become-an-affiliate":"Become an Affiliate","home-become-an-affiliate--plural":"Become an Affiliate","home-miaoshou-erp-new":"Miaoshou ERP","home-miaoshou-erp-new--plural":"Miaoshou ERP","home-wed2c":"WED2C","home-unlimited-product-importing-free":"Unlimited Product Importing Free","home-unlimited-product-importing-free--plural":"Unlimited Product Importing Free","home-become-a-partner":"Become a Partner","home-become-a-partner--plural":"Become a Partner","home-etsy":"Etsy","common-search-find-the-product-you-re-looking-for":"Find the product you\'re looking for","home-blog-desc-new":"Explore trending dropshipping niches, best supplier, expert sourcing guides, marketing strategies, and dropshipping tips in our blog.","home-blog-desc-new--plural":"Explore trending dropshipping niches, best supplier, expert sourcing guides, marketing strategies, and dropshipping tips in our blog.","home-faq-answer-11-link-2":"Custom Packaging(","home-faq-answer-11-link-2--plural":"Custom Packaging(","home-faq-answer-11-link-1":"Print on Demand","home-faq-question-11":"Can I request Print on Demand or Custom Packaging services?","home-faq-question-11--plural":"Can I request Print on Demand or Custom Packaging services?","home-and":"and","home-faq-answer-11":"The customization service is so popular nowadays. CJdropshipping must stay ahead. Please kindly refer to the following two tutorials: ","home-faq-answer-11--plural":"The customization service is so popular nowadays. CJdropshipping must stay ahead. Please kindly refer to the following two tutorials: ","home-join-as-supplier":"Join as Supplier","home-join-as-supplier--plural":"Join as Supplier","vs-sv-find-your-best-role-to-work-with-cjdropshipping-content":"Whether you’re a dropshipper, wholesaler, or affiliate, CJdropshipping offers tailored solutions to fit your business needs. Explore our services and find the perfect role to work with us.","vs-sv-find-your-best-role-to-work-with-cjdropshipping-content--plural":"Whether you’re a dropshipper, wholesaler, or affiliate, CJdropshipping offers tailored solutions to fit your business needs. Explore our services and find the perfect role to work with us.","vs-sv-find-your-best-role-to-work-with-cjdropshipping":"Find Your Best Role to Work with CJdropshipping","vs-sv-find-your-best-role-to-work-with-cjdropshipping--plural":"Find Your Best Role to Work with CJdropshipping","home-partner-with-us":"Partner with Us","home-partner-with-us--plural":"Partner with Us","home-join-as-affiliate":"Join as Affiliate","home-join-as-affiliate--plural":"Join as Affiliate","vs-sv-cjdropshipping-empowers-a-diverse-network-of-partners":"CJdropshipping empowers a diverse network of partners to thrive in the dynamic e-commerce landscape.","vs-sv-cjdropshipping-empowers-a-diverse-network-of-partners--plural":"CJdropshipping empowers a diverse network of partners to thrive in the dynamic e-commerce landscape.","home-pricing":"Pricing","vs-sv-connect-your-store":"Connect Your Store","vs-sv-connect-your-store--plural":"Connect Your Store","visitor-sv-connect-my-store":"Connect My Store","product-marketing-video":"Marketing Video","product-marketing-video--plural":"Marketing Video","home-local-inventory-with-millions":"Local Inventory in Millions","home-local-inventory-with-millions--plural":"Local Inventory in Millions","common-logistics-enquiry-text-10":"Please contact your agent for more information","common-logistics-enquiry-text-10--plural":"Please contact your agent for more information","common-logistics-enquiry-text-1":"Exclusive benef
31657its for bulk orders","common-logistics-enquiry-text-1--plural":"Exclusive benefits for bulk orders","common-logistics-enquiry-text-2":"Comparison of prices from multiple carriers","common-logistics-enquiry-text-2--plural":"Comparison of prices from multiple carriers","common-logistics-enquiry-text-3":"Orders greater than or equal to <span class=\'logistics-enquiry-weight-count\'>{{weight}}</span> kg can enjoy an exclusive quotation for bulk orders.","common-logistics-enquiry-text-3--plural":"Orders greater than or equal to <span class=\'logistics-enquiry-weight-count\'>{{weight}}</span> kg can enjoy an exclusive quotation for bulk orders.","common-logistics-enquiry-text-4":"Bulk Inquiry Process","common-logistics-enquiry-text-4--plural":"Bulk Inquiry Process","common-logistics-enquiry-text-5":"Select logistics inquiry and place an order","common-logistics-enquiry-text-5--plural":"Select logistics inquiry and place an order","common-logistics-enquiry-text-7":"Provide a quotation","common-logistics-enquiry-text-7--plural":"Provide a quotation","common-logistics-enquiry-text-8":"You confirm the quotation and pay the order","common-logistics-enquiry-text-8--plural":"You confirm the quotation and pay the order","common-logistics-enquiry-text-9":"Merchant fulfillment","common-logistics-enquiry-text-9--plural":"Merchant fulfillment","common-logistics-enquiry-text-11":"Better Deal","common-logistics-enquiry-text-11--plural":"Better Deal","common-logistics-enquiry-to-do-list-1":"The logistics inquiry result of the order has been issued","common-logistics-enquiry-to-do-list-1--plural":"The logistics inquiry result of the order has been issued","common-logistics-enquiry-to-do-list-2":"The quotation will automatically expire if it is not paid within the time limit. This notification will be automatically cleared after the quotation is paid, the quotation is not paid within the time limit, or the quotation is manually canceled. You can click \\"View\\" to proceed.","common-logistics-enquiry-to-do-list-2--plural":"The quotation will automatically expire if it is not paid within the time limit. This notification will be automatically cleared after the quotation is paid, the quotation is not paid within the time limit, or the quotation is manually canceled. You can click \\"View\\" to proceed.","cn-foot-a-3":"Join CJ","cn-foot-a-3--plural":"Join CJ","cn-foot-a-1":"CJPacket","cn-foot-text-lable2":"Address","cn-foot-text-lable1":"Phone","cn-foot-text-head":"CJ Group","cn-foot-text-head--plural":"CJ Group","cn-foot-text-value2":"Qianjiang Venture Capital Center, Xixi Road, Xihu District, Hangzhou","cn-foot-text-value2--plural":"Qianjiang Venture Capital Center, Xixi Road, Xihu District, Hangzhou","cn-foot-a-2":"Comeorders","cn-foot-a-2--plural":"Comeorders","cn-foot-a-4":"About Us","cn-foot-text-copyright":"CJ Group All Rights Reserved.","cn-foot-text-copyright--plural":"CJ Group All Rights Reserved.","language-dari":"Dari","language-dari--plural":"Dari","language-pashto":"Pashto","language-pashto--plural":"Pashto","product-marketing-picture":"Marketing Picture","product-marketing-picture--plural":"Marketing Picture","product-actual-product-photo":"Actual Product Photo","product-actual-product-photo--plural":"Actual Product Photo","common-logistics-enquiry-text-6":"The agent will contact you to understand your request","common-logistics-enquiry-text-6--plural":"The agent will contact you to understand your request","common-logistics-inquiry-text-2":"Reduce Your Shipping Costs","common-logistics-inquiry-text-2--plural":"Reduce Your Shipping Costs","common-logistics-inquiry-text-1":"Tailored Solutions for Better Shipping","common-logistics-inquiry-text-1--plural":"Tailored Solutions for Better Shipping","common-logistics-inquiry-text-8":"Merchant fulfills the order","common-logistics-inquiry-text-8--plural":"Merchant fulfills the order","common-logistics-inquiry-text-7":"Confirm the quotation and complete payment","common-logistics-inquiry-text-7--plural":"Confirm the quotation and complete payment","common-logistics-inquiry-text-4":"Select products and place an order of {{weight}}kg or more","common-logistics-inquiry-text-4--plural":"Select products and place an order of {{weight}}kg or more","common-logistics-inquiry-text-3":"Orders of <span class=\'logistics-enquiry-weight-count\'>{{weight}}</span>kg or more can enjoy exclusive quotations for bulk orders.","common-logistics-inquiry-text-3--plural":"Orders of <span class=\'logistics-enquiry-weight-count\'>{{weight}}</span>kg or more can enjoy exclusive quotations for bulk orders.","common-logistics-inquiry-text-6":"Submit the order, and your agent will provide a logistics quotation","common-logistics-inquiry-text-6--plural":"Submit the order, and your agent will provide a logistics quotation","common-logistics-inquiry-text-5":"Choose \\"Logistics Inquiry\\" on the order 
31657confirmation page","common-logistics-inquiry-text-5--plural":"Choose \\"Logistics Inquiry\\" on the order confirmation page","home-personalized-account-managers":"Personalized Account Managers","home-personalized-account-managers--plural":"Personalized Account Managers","home-your-dedicated-dropshipping-support-team":"Your Dedicated Dropshipping Support Team","home-your-dedicated-dropshipping-support-team--plural":"Your Dedicated Dropshipping Support Team","home-access-in-depth-guides-trending-product-insights-marketing-strategies-everything":"Access in‑depth guides, trending product insights, marketing strategies—everything you need to scale your business with confidence.","home-access-in-depth-guides-trending-product-insights-marketing-strategies-everything--plural":"Access in‑depth guides, trending product insights, marketing strategies—everything you need to scale your business with confidence.","home-your-ultimate-dropshipping-resource-hub":"Your Ultimate Dropshipping Resource Hub","home-your-ultimate-dropshipping-resource-hub--plural":"Your Ultimate Dropshipping Resource Hub","home-comprehensive-faq-library":"Comprehensive FAQ Library","home-comprehensive-faq-library--plural":"Comprehensive FAQ Library","home-24-7-expert-support":"24/7 Expert Support","home-24-7-expert-support--plural":"24/7 Expert Support","home-fast-shipping-from-global-warehouses":"Fast shipping from global warehouses","home-fast-shipping-from-global-warehouses--plural":"Fast shipping from global warehouses","home-dedicated-consultant-with-24-7-support":"Dedicated consultant with 24/7 support","home-dedicated-consultant-with-24-7-support--plural":"Dedicated consultant with 24/7 support","home-supports-multi-platform-integration":"Supports multi‑platform integration","home-supports-multi-platform-integration--plural":"Supports multi‑platform integration","home-millions-of-best-selling-dropship-products":"Millions of best‑selling dropship products","home-millions-of-best-selling-dropship-products--plural":"Millions of best‑selling dropship products","purchase-list-submit-order-and-initiate-inquiry":"Submit order and initiate inquiry","purchase-list-submit-order-and-initiate-inquiry--plural":"Submit order and initiate inquiry","purchase-list-generate-unpaid-order-number":"Generate unpaid order number","purchase-list-generate-unpaid-order-number--plural":"Generate unpaid order number","purchase-list-copy-the-order-number-and-initiate-a-whatsapp-chat":"Copy the order number and initiate a WhatsApp chat","purchase-list-copy-the-order-number-and-initiate-a-whatsapp-chat--plural":"Copy the order number and initiate a WhatsApp chat","purchase-list-hello-we-have-received-the-order-inquiry-document-submitted-by-you":"Hello, we have received the order inquiry document submitted by You. We will provide a quotation for your order as soon as possible.","purchase-list-hello-we-have-received-the-order-inquiry-document-submitted-by-you--plural":"Hello, we have received the order inquiry document submitted by You. We will provide a quotation for your order as soon as possible.","purchase-list-if-you-need-to-keep-track-of-the-progress-of-your-order-inquiry-in-a-timely-manner":"If you need to keep track of the progress of your order inquiry in a timely manner, please contact the agent through WhatsApp to obtain the latest updates.","purchase-list-if-you-need-to-keep-track-of-the-progress-of-your-order-inquiry-in-a-timely-manner--plural":"If you need to keep track of the progress of your order inquiry in a timely manner, please contact the agent through WhatsApp to obtain the latest updates.","common-top-please-enter-blog-keywords":"Please enter your search content.","common-top-please-enter-blog-keywords--plural":"Please enter your search content.","common-search-blog-placeholder":"Search blog by keywords","common-search-blog-placeholder--plural":"Search blog by keywords","home-shoplazza":"Shoplazza","home-shoplazza--plural":"Shoplazza","home-get-quickly-for-your-sourcing-request":"Get Your Product Sourced Quickly","home-get-quickly-for-your-sourcing-request--plural":"Get Your Product Sourced Quickly","common-top-selling":"Top Selling","common-top-selling--plural":"Top Selling","common-order-air-freight":"Air Freight","common-order-ocean-freight":"Ocean Freight","common-order-ocean-freight--plural":"Ocean Freight","common-order-you-will-be-postage-diff-amount":"You will be responsible for the difference in freight costs between air and ocean freight, which is {{postageDiffAmount}} = Air freight cost {{postage}} - Ocean freight cost {{seaPostage}}.","common-order-you-will-be-postage-diff-amount--plural":"You will be responsible for the difference in freight costs between air and ocean freight, which is {{postageDiffAmount}} = Air freight cost {{postage}} - Ocean freight cost {{seaPostage}}.","common-order-fee-description":"Fee Description","common-order-fee-description--plural":"Fee Description","common-order-fee-processing":"Fee Processing","common-order-fee-processing--plural":"Fee Processing","common-order-shipping":"Shipping","common-order-postage-diff-amount":"You will be responsible for the difference in freight costs between air and ocean freight, which is {{postageDiffAmount}}","common-order-postage-diff-amount--plural":"You will be responsible for the difference in freight costs between air and ocean freight, which is {{postageDiffAmount}}","common-order-deduction-postage-diff":"Amount to offset shipping difference","common-order-deduction-postage-diff--plural":"Amount to offset shipping difference","common-order-notes-on-choosing-air-freight":"Notes on Choosing Air Freight","common-order-notes-on-choosing-air-freight--plural":"Notes on Choosing Air Freight","common-order-payment-method":"Payment Method: Deduction from the deposit. The deposit used to offset the difference is non-refundable.","common-order-payment-method--plural":"Payment Method: Deduction from the deposit. The deposit used to offset the difference is non-refundable.","common-order-cj-charges":"CJ Charges: When you use this deposited inventory, CJ will only charge you the ocean freight rate. The ocean freight cost for this order is {{seaPostage}}.","common-order-cj-charges--plural":"CJ Charges: When you use this deposited inventory, CJ will only charge you the ocean freight rate. The ocean freight cost for this order is {{seaPostage}}.","common-order-deduction-order":"Deduction Order: Logistics Deposit → Product Deposit","common-order-deduction-order--plural":"Deduction Order: Logistics Deposit → Product Deposit","common-order-product":"Product","common-order-cj-pay-ahead":"CJ Pay Ahead: When you choose air freight for stocking, CJ will prepay the air freight cost of {{postage}} to prepare the products for delivery to the overseas warehouse.","common-order-cj-pay-ahead--plural":"CJ Pay Ahead: When you choose air freight for stocking, CJ will prepay the air freight cost of {{postage}} to prepare the products for delivery to the overseas warehouse.","common-order-fee-type":"Fee Type","common-order-fee-type--plural":"Fee Type","common-order-deposit-refundable-amount":"Estimated remaining refundable deposit","common-order-deposit-refundable-amount--plural":"Estimated remaining refundable deposit","common-order-deposit":"Deposit","common-order-original-price":"Original Price","common-order-choose-air-freight":"Select air freight","common-order-choose-air-freight--plural":"Select air freight","common-order-cj-charges-2":"CJ Charges: When you use this deposited inventory, CJ will only charge you for ocean freight.","common-order-cj-charges-2--plural":"CJ Charges: When you use this deposited inventory, CJ will only charge you for ocean freight.","common-order-air-unavailable-2":"This order does not have ocean freight logistics and lacks the ocean freight fee. At the moment, we cannot calculate the difference in air and ocean freight costs you will need to pay. Therefore, the air freight option is currently unavailable","common-order-air-unavailable-2--plural":"This order does not have ocean freight logistics and lacks the ocean freight fee. At the moment, we cannot calculate the difference in air and ocean freight costs you will need to pay. Therefore, the air freight option is currently unavailable","common-order-agent":"Please contact your dedicated agent for assistance.","common-order-agent--plural":"Please contact your dedicated agent for assistance.","common-order-air-freight-unavailable-2":"However, the deposit of {{deposit}} for this order is not sufficient to offset the {{difference}} difference, so the air freight option is unavailable.","common-order-air-freight-unavailable-2--plural":"However, the deposit of {{deposit}} for this order is not sufficient to offset the {{difference}} difference, so the air freight option is unavailable.","common-order-select-ocean-freight":"Select Ocean Freight","common-order-select-ocean-freight--plural":"Select Ocean Freight","common-order-air-freight-unavailable":"Air freight option is unavailable","common-order-air-freight-unavailable--plural":"Air freight option is unavailable","common-order-suggestion":"Suggestion","common-order-payment-method-2":"Payment Method: Deposit deduction","common-order-payment-method-2--plural":"Payment Method: Deposit deduction","common-order-if-air-freight-is-required":"If air freight is required, please contact your dedicated agent for other solutions.","common-order-if-air-freight-is-required--plural":"If air freight is required, please contact your dedicated agent for other solutions.","vs-sv-trusted-by-4m-sellers":"Trusted by 4M+ sellers","vs-sv-trusted-by-4m-sellers--plural":"Trusted by 4M+ sellers","home-carry-global-dropshipping-and-sourcing-power-in-your-pocket":"Carry global dropshipping and sourcing power in your pocket. CJdropshipping’s mobile app lets you manage orders, track shipments, and grow sales anywhere instantly!","home-carry-global-dropshipping-and-sourcing-power-in-your-pocket--plural":"Carry global dropshipping and sourcing power in your pocket. CJdropshipping’s mobile app lets you manage orders, track shipments, and grow sales anywhere instantly!","common-top-supplier-products":"Products","common-top-supplier-home":"Home","common-th-profile-disputes":"Disputes","menu-drawer-message":"Message","menu-drawer-help-center":"Help Center","menu-drawer-your-ultimate-dropshipping-resource-hub":"Your Ultimate Dropshipping Resource Hub","menu-drawer-your-ultimate-dropshipping-resource-hub--plural":"Your Ultimate Dropshipping Resource Hub","menu-drawer-find-your-best-role-to-work-with-cjdropshipping":"Find Your Best Role to Work with CJdropshipping","menu-drawer-find-your-best-role-to-work-with-cjdropshipping--plural":"Find Your Best Role to Work with CJdropshipping","menu-drawer-faster-order-fulfillment":"Faster Order Fulfillment","menu-drawer-faster-order-fulfillment--plural":"Faster Order Fulfillment","menu-drawer-ticket":"Ticket","menu-drawer-join-as-supplier":"Join as Supplier","menu-drawer-join-as-supplier--plural":"Join as Supplier","menu-drawer-24-7-support":"24/7 Support","menu-drawer-your-dedicated-dropshipping-support-team":"Your Dedicated Dropshipping Support Team","menu-drawer-your-dedicated-dropshipping-support-team--plural":"Your Dedicated Dropshipping Support Team","menu-drawer-resource-description":"Access in‑depth guides, trending product insights, marketing strategies—everything you need to scale your business with confidence.","menu-drawer-resource-description--plural":"Access in‑depth guides, trending product insights, marketing strategies—everything you need to scale your business with confidence.","menu-drawer-cogs-reduction-strategies":"COGS Reduction Strategies","menu-drawer-cogs-reduction-strategies--plural":"COGS Reduction Strategies","menu-drawer-china-visiting-guide-services":"China Visiting Guide Services","menu-drawer-china-visiting-guide-services--plural":"China Visiting Guide Services","menu-drawer-personalized-account-managers":"Personalized Account Managers","menu-drawer-personalized-account-managers--plural":"Personalized Account Managers","menu-drawer-local-inventory-with-millions":"Local Inventory in Millions","menu-drawer-local-inventory-with-millions--plural":"Local Inventory in Millions","menu-drawer-cj-account-management":"CJ Account Management","menu-drawer-cj-account-management--plural":"CJ Account Management","menu-drawer-dropshipping-blog":"Dropshipping Blog","menu-drawer-dropshipping-blog--plural":"Dropshipping Blog","menu-drawer-sourcing-agent-empowerment":"Sourcing Agent Empowerment","menu-drawer-sourcing-agent-empowerment--plural":"Sourcing Agent Empowerment","menu-drawer-partner-with-us":"Partner with Us","menu-drawer-partner-with-us--plural":"Partner with Us","menu-drawer-global-warehouse-network":"Global Warehouse Network","menu-drawer-global-warehouse-network--plural":"Global Warehouse Network","menu-drawer-cj-academy":"CJ Mentors","menu-drawer-global-supply-network-content":"CJdropshipping empowers a diverse network of partners to thrive in the dynamic e-commerce landscape.","menu-drawer-global-supply-network-content--plural":"CJdropshipping empowers a diverse network of partners to thrive in the dynamic e-commerce landscape.","menu-drawer-dedicated-print-on-demand-facilities":"Professional Print-on-Demand Facilities","menu-drawer-dedicated-print-on-demand-facilities--plural":"Professional Print-on-Demand Facilities","menu-drawer-comprehe
31657nsive-faq-library":"Comprehensive FAQ Library","menu-drawer-comprehensive-faq-library--plural":"Comprehensive FAQ Library","menu-drawer-shorten-delivery-time":"Shorten Delivery Time","menu-drawer-shorten-delivery-time--plural":"Shorten Delivery Time","menu-drawer-driving-customer-success":"Driving Customer Success","menu-drawer-driving-customer-success--plural":"Driving Customer Success","menu-drawer-100-global-shipping-solutions":"100+ Global Shipping Solutions","menu-drawer-100-global-shipping-solutions--plural":"100+ Global Shipping Solutions","menu-drawer-product-development-implementation":"Product Development & Implementation","menu-drawer-product-development-implementation--plural":"Product Development & Implementation","menu-drawer-shipstation":"Shipstation","menu-drawer-shipstation--plural":"Shipstation","menu-drawer-99-sampling-inspection-rate":"99% Sampling Inspection Rate","menu-drawer-99-sampling-inspection-rate--plural":"99% Sampling Inspection Rate","menu-drawer-24-7-expert-support":"24/7 Expert Support","menu-drawer-24-7-expert-support--plural":"24/7 Expert Support","menu-drawer-end-to-end-supply-chain-solutions":"End-to-End Supply Chain Solutions","menu-drawer-end-to-end-supply-chain-solutions--plural":"End-to-End Supply Chain Solutions","menu-drawer-contact-us":"Contact Us","menu-drawer-cj-elite":"CJ Elite","menu-drawer-cj-elite--plural":"CJ Elite","menu-drawer-google-chrome-extension":"Google Chrome Extension","menu-drawer-join-as-affiliate":"Join as Affiliate","menu-drawer-join-as-affiliate--plural":"Join as Affiliate","menu-drawer-solutions":"Solutions","menu-drawer-solutions--plural":"Solutions","menu-drawer-integrations":"Integrations","menu-drawer-integrations--plural":"Integrations","menu-drawer-support":"Support","menu-drawer-pricing":"Pricing","menu-drawer-partners":"Partners","menu-drawer-partners--plural":"Partners","menu-drawer-why-cjdropshipping":"Why CJdropshipping","menu-drawer-why-cjdropshipping--plural":"Why CJdropshipping","menu-drawer-resources":"Resources","menu-drawer-all-categories":"All Categories","menu-drawer-tiktok-shop":"TikTok Shop","menu-drawer-tiktok-shop--plural":"TikTok Shop","menu-drawer-shopify":"Shopify","menu-drawer-ecommerce-platforms":"Ecommerce Platforms","menu-drawer-ecommerce-platforms--plural":"Ecommerce Platforms","menu-drawer-temu":"Temu","menu-drawer-temu--plural":"Temu","menu-drawer-shoplazza":"Shoplazza","menu-drawer-shoplazza--plural":"Shoplazza","menu-drawer-woocommerce":"Woocommerce","menu-drawer-shopee":"Shopee","menu-drawer-mabangerp":"MabangERP","menu-drawer-mabangerp--plural":"MabangERP","menu-drawer-aliexpress":"AliExpress","menu-drawer-nuvemshop":"Nuvemshop","menu-drawer-mercado":"Mercado","menu-drawer-wed2c":"WED2C","menu-drawer-retailer-api":"Retailer API","menu-drawer-retailer-api--plural":"Retailer API","menu-drawer-ebay":"eBay","menu-drawer-etsy":"Etsy","menu-drawer-lazada":"Lazada","menu-drawer-erp-platforms":"ERP Platforms","menu-drawer-erp-platforms--plural":"ERP Platforms","menu-drawer-api":"API","menu-drawer-product-photography":"Product Photography","menu-drawer-global-inventory":"Global Inventory","menu-drawer-global-inventory--plural":"Global Inventory","menu-drawer-bulk-purchasing":"Bulk Purchasing","menu-drawer-bulk-purchasing--plural":"Bulk Purchasing","menu-drawer-payment-processor-agency":"Payment Processor Agency","menu-drawer-payment-processor-agency--plural":"Payment Processor Agency","menu-drawer-product-sourcing":"Product Sourcing","menu-drawer-credit-services":"Credit Services","menu-drawer-credit-services--plural":"Credit Services","menu-drawer-dtc-supply-chain-implementation":"DTC Supply Chain Implementation","menu-drawer-dtc-supply-chain-implementation--plural":"DTC Supply Chain Implementation","menu-drawer-free-stores":"Free Stores","menu-drawer-free-stores--plural":"Free Stores","menu-drawer-print-on-demand":"Print-on-Demand","menu-drawer-print-on-demand--plural":"Print-on-Demand","menu-drawer-3pl-fulfillment":"3PL Fulfillment","menu-drawer-custom-packaging":"Custom Packaging","my-profile-cogs-config-top-tip-1":"COGS is the cost of goods per order in your store.","my-profile-cogs-config-top-tip-1--plural":"COGS is the cost of goods per order in your store.","my-profile-cogs-config-top-tip-2":"COGS = Total cost of goods in CJ / Total cost of goods in your store * 100%","my-profile-cogs-config-top-tip-2--plural":"COGS = Total cost of goods in CJ / Total cost of goods in your store * 100%","my-profile-configure-cogs-thresholds-tips":"Configure COGS thresholds to maintain profit margins and prevent cost overruns.","my-profile-configure-cogs-thresholds-tips--plural":"Configure COGS thresholds to maintain profit margins and prevent cost overruns.","my-profile-configure-cogs-thresholds":"Configure COGS thresholds","my-profile-configure-cogs-thresholds--plural":"Configure COGS thresholds","my-profile-cogs-config-form-order-cogs-threshold":"Order COGS threshold","my-profile-cogs-config-form-order-cogs-threshold--plural":"Order COGS threshold","my-profile-view-results":"View Results","my-profile-view-results--plural":"View Results","my-profile-content":"Content","my-profile-see-how-to-manually-update":"See how to manually update","my-profile-see-how-to-manually-update--plural":"See how to manually update","my-profile-cogs-config-form-order-cogs-threshold-placeholder":"Please enter","my-profile-cogs-config-top-tip-3":"Orders that include fulfilment service are not included in this calculation.","my-profile-cogs-config-top-tip-3--plural":"Orders that include fulfilment service are not included in this calculation.","my-profile-time":"Time","my-profile-cogs-config-bottom-tip-3":"The order list can filter out abnormal orders exceeding the threshold and filter orders by COGS.","my-profile-cogs-config-bottom-tip-3--plural":"The order list can filter out abnormal orders exceeding the threshold and filter orders by COGS.","my-profile-cogs-config-bottom-tip-2":"The order list displays the COGS of orders and products.","my-profile-cogs-config-bottom-tip-2--plural":"The order list displays the COGS of orders and products.","my-profile-cogs-config-bottom-tip-5":"For orders awaiting payment and within the order lock period, to obtain the latest configuration, you must manually update the order.","my-profile-cogs-config-bottom-tip-5--plural":"For orders awaiting payment and within the order lock period, to obtain the latest configuration, you must manually update the order.","my-profile-cogs-config-bottom-tip-4":"After successfully saving a configuration change, the system will not automatically update the data of all awaiting payment orders. When you submit an order, the latest configuration will be applied.","my-profile-cogs-config-bottom-tip-4--plural":"After successfully saving a configuration change, the system will not automatically update the data of all awaiting payment orders. When you submit an order, the latest configuration will be applied.","my-profile-cogs-config-bottom-tip-1":"COGS Applications","my-profile-cogs-config-bottom-tip-1--plural":"COGS Applications","my-profile-cogs-config-form-order-cogs-threshold-solution":"Solutions of COGS exceeding the threshold for orders","my-profile-cogs-config-form-order-cogs-threshold-solution--plural":"Solutions of COGS exceeding the threshold for orders","my-profile-cogs-config-form-order-cogs-threshold-solution-option-2":"Order prompts appear; you can decide whether to proceed with the order.","my-profile-cogs-config-form-order-cogs-threshold-solution-option-2--plural":"Order prompts appear; you can decide whether to proceed with the order.","my-profile-cogs-config-form-order-cogs-threshold-solution-option-1":"No prompt or block on order placement","my-profile-cogs-config-form-order-cogs-threshold-solution-option-1--plural":"No prompt or block on order placement","my-profile-info-saved-successfully":"Saved Successfully","my-profile-operator":"Operator","my-profile-operator--plural":"Operator","my-profile-cogs-config-form-order-cogs-threshold-solution-option-3":"Order block: Orders cannot be placed.","my-profile-cogs-config-form-order-cogs-threshold-solution-option-3--plural":"Order block: Orders cannot be placed.","common-mycj-menu-shein":"Shein","common-mycj-menu-shein--plural":"Shein","common-mycj-menu-temu-semi-managed":"Semi-Managed","common-mycj-menu-temu-semi-managed--plural":"Semi-Managed","common-top-setting":"Setting","home-view-less":"Less","my-profile-cogs-config-bottom-tip-7":"Please complete the necessary information marked with \'<span class=\\"cogs-btn-tool-tip-inner-require\\">*</span>\' before saving.","my-profile-cogs-config-bottom-tip-7--plural":"Please complete the necessary information marked with \'<span class=\\"cogs-btn-tool-tip-inner-require\\">*</span>\' before saving.","my-profile-cogs-config-bottom-tip-6":"The current configuration has not changed, no need to save.","my-profile-cogs-config-bottom-tip-6--plural":"The current configuration has not changed, no need to save.","payment-agency-banner-email":"Email","payment-agency-banner-whatsapp":"WhatsApp","payment-agency-banner-subtitle-2":"Don\'t let frustrating account freezes and high reserve requirements stop your momentum. Get a better, simpler solution with us.","payment-agency-banner-subtitle-2--plural":"Don\'t let frustrating account freezes and high reserve requirements stop your momentum. Get a better, simpler solution with us.","payment-agency-banner-subtitle":"Finding the perfect payment solution for your e-commerce business can be tough.","payment-agency-banner-subtitle--plural":"Finding the perfect payment solution for your e-commerce business can be tough.","payment-agency-banner-title":"Access Payment Gateways Without the Hassle of Business Registration","payment-agency-banner-title--plural":"Access Payment Gateways Without the Hassle of Business Registration","payment-agency-cooperative-partners":"Cooperative Partners","payment-agency-cooperative-partners--plural":"Cooperative Partners","payment-agency-works-seamlessly-with-shopify-woocommerce-bigcommerce-and-other-dtc-platforms":"Works seamlessly with Shopify, WooCommerce, BigCommerce, and other DTC platforms.","payment-agency-works-seamlessly-with-shopify-woocommerce-bigcommerce-and-other-dtc-platforms--plural":"Works seamlessly with Shopify, WooCommerce, BigCommerce, and other DTC platforms.","payment-agency-leasing-fees-start-as-low-as-1":"Leasing fees start as low as 1%. During promotions, enjoy an extra 1%–2% subsidy based on your CJdropshipping purchase volume.","payment-agency-leasing-fees-start-as-low-as-1--plural":"Leasing fees start as low as 1%. During promotions, enjoy an extra 1%–2% subsidy based on your CJdropshipping purchase volume.","payment-agency-supports-credit-cards-e-wallets-apple-pay-google-pay-bnpl-and-local-payment-methods":"Supports credit cards, e-wallets, Apple Pay, Google Pay, BNPL, and local payment methods.","payment-agency-supports-credit-cards-e-wallets-apple-pay-google-pay-bnpl-and-local-payment-methods--plural":"Supports credit cards, e-wallets, Apple Pay, Google Pay, BNPL, and local payment methods.","payment-agency-industry-leading-payment-success-rate":"Industry-Leading Payment Success Rate","payment-agency-industry-leading-payment-success-rate--plural":"Industry-Leading Payment Success Rate","payment-agency-strong-partnerships-and-stable-accounts":"Strong Partnerships & Stable Accounts","payment-agency-strong-partnerships-and-stable-accounts--plural":"Strong Partnerships & Stable Accounts","payment-agency-seamless-support-for-multiple-dtc-websites":"Seamless Support for Multiple DTC Websites","payment-agency-seamless-support-for-multiple-dtc-websites--plural":"Seamless Support for Multiple DTC Websites","payment-agency-wide-range-of-payment-methods":"Wide Range of Payment Methods","payment-agency-wide-range-of-payment-methods--plural":"Wide Range of Payment Methods","payment-agency-low-leasing-fees-with-promotional-sub
31657sidies":"Low Leasing Fees with Promotional Subsidies","payment-agency-low-leasing-fees-with-promotional-subsidies--plural":"Low Leasing Fees with Promotional Subsidies","payment-agency-connected-to-major-gateways-with-success-rates-at-an-industry-leading-level":"Connected to major gateways with success rates at an industry-leading level.","payment-agency-connected-to-major-gateways-with-success-rates-at-an-industry-leading-level--plural":"Connected to major gateways with success rates at an industry-leading level.","payment-agency-once-your-application-for-a-payment-account-is-approved-by-an-account-manager":"Once your application for a payment account is approved by an account manager, we will set up your account for you within 7 to 15 business days.","payment-agency-once-your-application-for-a-payment-account-is-approved-by-an-account-manager--plural":"Once your application for a payment account is approved by an account manager, we will set up your account for you within 7 to 15 business days.","payment-agency-once-your-account-reaches-the-withdrawal-threshold":"Once your account reaches the withdrawal threshold, you may request a payout. Your account manager will c
31657oordinate with the finance team to transfer the funds within 3 business days.","payment-agency-once-your-account-reaches-the-withdrawal-threshold--plural":"Once your account reaches the withdrawal threshold, you may request a payout. Your account manager will coordinate with the finance team to transfer the funds within 3 business days.","payment-agency-step":"Step","payment-agency-step--plural":"Step","payment-agency-register-a-cjdropshipping-account-and-authorize-your-store":"Register a CJdropshipping Account and Authorize Your Store","payment-agency-register-a-cjdropshipping-account-and-authorize-your-store--plural":"Register a CJdropshipping Account and Authorize Your Store","payment-agency-cjdropshipping-maintains-strong-partnerships-with-multiple-gateways":"CJdropshipping maintains strong partnerships with multiple gateways, ensuring better risk control and more stable accounts.","payment-agency-cjdropshipping-maintains-strong-partnerships-with-multiple-gateways--plural":"CJdropshipping maintains strong partnerships with multiple gateways, ensuring better risk control and more stable accounts.","payment-agency-we-ll-help-you-set-up-your-payment-account":"We\'ll help you set up your payment account and continuously monitor for any potential payment issues.","payment-agency-we-ll-help-you-set-up-your-payment-account--plural":"We\'ll help you set up your payment account and continuously monitor for any potential payment issues.","payment-agency-once-your-account-reaches-the-withdrawal-threshold-7":"Once your account reaches the withdrawal threshold, you may request a payout. Your account manager will c
31657oordinate with the finance team to transfer the funds within 7 business days.","payment-agency-once-your-account-reaches-the-withdrawal-threshold-7--plural":"Once your account reaches the withdrawal threshold, you may request a payout. Your account manager will coordinate with the finance team to transfer the funds within 7 business days.","payment-agency-lease-fee-tooltip-text":"Lease Fee for Orders Using the CJ Payment Agency Service","payment-agency-lease-fee-tooltip-text--plural":"Lease Fee for Orders Using the CJ Payment Agency Service","payment-agency-bonus-rewards-tooltip-text":"Bonus for Orders Using the CJ Payment Agency Service","payment-agency-bonus-rewards-tooltip-text--plural":"Bonus for Orders Using the CJ Payment Agency Service","payment-agency-promotion-period-title":"Promotion Period","payment-agency-promotion-period-title--plural":"Promotion Period","payment-agency-promotion-period-tooltip-text":"Registering and connecting a new store during the promotion.","payment-agency-promotion-period-tooltip-text--plural":"Registering and connecting a new store during the promotion.","payment-agency-cj-payment-agency-service-contract":"CJ Payment Agency Service Contract","payment-agency-cj-payment-agency-service-contract--plural":"CJ Payment Agency Service Contract","payment-agency-lease-fee":"Lease Fee","payment-agency-lease-fee--plural":"Lease Fee","payment-agency-promotion-note-content-2":"CJdropshipping.com reserves the right to the final interpretation of this promotional event.","payment-agency-promotion-note-content-2--plural":"CJdropshipping.com reserves the right to the final interpretation of this promotional event.","payment-agency-account-service-title":"Ready to boost your sales with our Payment Account Service?","payment-agency-account-service-title--plural":"Ready to boost your sales with our Payment Account Service?","payment-agency-new-customers-with-new-stores":"New Customers with New Stores","payment-agency-new-customers-with-new-stores--plural":"New Customers with New Stores","payment-agency-bonus-rewards":"Bonus Rewards","payment-agency-bonus-rewards--plural":"Bonus Rewards","payment-agency-regular":"Regular","payment-agency-regular--plural":"Regular","payment-agency-important-notes":"Important Notes","payment-agency-important-notes--plural":"Important Notes","payment-agency-deposit":"Deposit","payment-agency-deposit--plural":"Deposit","payment-agency-others":"Others","payment-agency-promotion-period":"1. Promotion Period: September 15, 2025 – December 31, 2025","payment-agency-promotion-period--plural":"1. Promotion Period: September 15, 2025 – December 31, 2025","payment-agency-pricing":"Pricing","payment-agency-cj-order-amount-x":"CJ Order Amount (X)","payment-agency-cj-order-amount-x--plural":"CJ Order Amount (X)","payment-agency-order-amount-tooltip-text":"Monthly CJ Order Purchases for Stores Using the CJ Payment Agency Service","payment-agency-order-amount-tooltip-text--plural":"Monthly CJ Order Purchases for Stores Using the CJ Payment Agency Service","payment-agency-pricing-for-growth-not-for-headaches":"Pricing for Growth, Not for Headaches","payment-agency-pricing-for-growth-not-for-headaches--plural":"Pricing for Growth, Not for Headaches","payment-agency-start-scaling-now-lets-build-your-success":"Start Scaling Now: Let\'s Build Your Success","payment-agency-start-scaling-now-lets-build-your-success--plural":"Start Scaling Now: Let\'s Build Your Success","payment-agency-leasing-fees-start-as-low-as-1-during-promotions":"Leasing fees start as low as 1%. During promotions, enjoy an extra 1%-2% subsidy based on your CJdropshipping purchase volume.","payment-agency-leasing-fees-start-as-low-as-1-during-promotions--plural":"Leasing fees start as low as 1%. During promotions, enjoy an extra 1%-2% subsidy based on your CJdropshipping purchase volume.","payment-agency-promotion-notes-1":"1. Promotion Period: September 15, 2025-December 31, 2025","payment-agency-promotion-notes-1--plural":"1. Promotion Period: September 15, 2025-December 31, 2025","payment-agency-promotion-note-content":"2. Pricing for PayPal and Stripe payment gateway sub-accounts requires a separate inquiry. For full details, please see the","payment-agency-promotion-note-content--plural":"2. Pricing for PayPal and Stripe payment gateway sub-accounts requires a separate inquiry. For full details, please see the","payment-agency-register-a-cjdropshipping-account-and-authorize-your-store.":"Register a CJdropshipping Account and Authorize Your Store.","payment-agency-register-a-cjdropshipping-account-and-authorize-your-store.--plural":"Register a CJdropshipping Account and Authorize Your Store.","common-download-open":"Open","common-download-open--plural":"Open","common-download-view-top-selling-products-on-cj-app":"View top selling products on CJ APP","common-download-view-top-selling-products-on-cj-app--plural":"View top selling products on CJ APP","common-top-drag-or-upload-or-paste-an-image-to-search":"Upload an image, drag and drop it here, or paste it into the box to start your search.","common-top-drag-or-upload-or-paste-an-image-to-search--plural":"Upload an image, drag and drop it here, or paste it into the box to start your search.","integrations-temu-from-temu-listing-to-customer-doorstep-simplified-in-3-steps":"From Temu Listing to Customer Doorstep – Simplified in 3 Steps","integrations-temu-from-temu-listing-to-customer-doorstep-simplified-in-3-steps--plural":"From Temu Listing to Customer Doorstep – Simplified in 3 Steps","integrations-temu-start-business":"Start Business","integrations-temu-start-business--plural":"Start Business","integrations-temu-24-7-support":"24/7 Support","integrations-temu-worldwide-shipping":"Worldwide Shipping","integrations-temu-worldwide-shipping--plural":"Worldwide Shipping","integrations-temu-no-upfront-inventory":"No Upfront Inventory","integrations-temu-no-upfront-inventory--plural":"No Upfront Inventory","integrations-temu-connect-store":"Connect Store","integrations-temu-connect-store--plural":"Connect Store","common-why-choose":"Why Choose","common-why-choose--plural":"Why Choose","common-connect-cjdropshipping":"Connect CJdropshipping","common-connect-cjdropshipping--plural":"Connect CJdropshipping","common-create-your-store-now":"Create Your Store Now","common-create-your-store-now--plural":"Create Your Store Now","my-profile-shipping-pcs-price":"Based on the PCS shipping price quote","my-profile-shipping-pcs-price--plural":"Based on the PCS shipping price quote","my-profile-shipping-quinary":"Quinary","my-profile-shipping-quinary--plural":"Quinary","my-profile-shipping-pcs-price-tip":"If a PCS-priced logistic is available for the order, the system will prioritize the PCS-priced logistic (and select the shipping with the lowest PCS quote).","my-profile-shipping-pcs-price-tip--plural":"If a PCS-priced logistic is available for the order, the system will prioritize the PCS-priced logistic (and select the shipping with the lowest PCS quote).","my-profile-shipping-default-shipping-method-can-only-be-set-up-in-5-categories-at-the-moment":"Default Shipping Method can only be set up in 5 categories at the moment.","my-profile-shipping-default-shipping-method-can-only-be-set-up-in-5-categories-at-the-moment--plural":"Default Shipping Method can only be set up in 5 categories at the moment.","my-profile-shipping-default-shipping-method-can-be-set-up-for-5-categories":"Default shipping method can be set up for 5 categories: (1) Store; (2) Product; (3) Order (Cheapest/Fastest shipping method); (4) Country of delivery; (5) Based on the PCS shipping price quote","my-profile-shipping-default-shipping-method-can-be-set-up-for-5-categories--plural":"Default shipping method can be set up for 5 categories: (1) Store; (2) Product; (3) Order (Cheapest/Fastest shipping method); (4) Country of delivery; (5) Based on the PCS shipping price quote","my-profile-shipping-you-can-set-up-the-precedence-for-the-5-categories":"You can set up the precedence for the 5 categories.","my-profile-shipping-you-can-set-up-the-precedence-for-the-5-categories--plural":"You can set up the precedence for the 5 categories.","common-logistics-cost-strategy-configuration":"Logistics Cost Strategy Configuration","common-logistics-cost-strategy-configuration--plural":"Logistics Cost Strategy Configuration","common-logistics-cost-strategy-configuration-disabled-tip":"Selecting \'Logistics Cost Calculation\' requires a specific shipping country. Please do not select all c
31657ountries. If you need to select all countries, please uncheck \'Logistics Cost Calculation.\'","common-logistics-cost-strategy-configuration-disabled-tip--plural":"Selecting \'Logistics Cost Calculation\' requires a specific shipping country. Please do not select all countries. If you need to select all countries, please uncheck \'Logistics Cost Calculation.\'","common-logistics-cost-strategy-configuration-selected-submit-tip":"If not all required fields are selected, please confirm that Ship From, Ship To, and Logistic Strategy are all selected before submitting.","common-logistics-cost-strategy-configuration-selected-submit-tip--plural":"If not all required fields are selected, please confirm that Ship From, Ship To, and Logistic Strategy are all selected before submitting.","wallet-paid-customization":"Paid Customization","wallet-paid-customization--plural":"Paid Customization","home-shopify":"Shopify","common-mycj-menu-chat-notice-title-3":"Agent is offline","common-mycj-menu-chat-notice-title-3--plural":"Agent is offline","common-mycj-menu-chat-notice-title-2":"Your agent {{nameEn}} is online","common-mycj-menu-chat-notice-title-2--plural":"Your agent {{nameEn}} is online","common-mycj-menu-chat-notice-title-1":"24/7 online service","common-mycj-menu-chat-notice-title-1--plural":"24/7 online service","common-mycj-menu-chat-notice-title-4":"24/7 online service","common-mycj-menu-chat-notice-title-4--plural":"24/7 online service","common-mycj-menu-chat-notice-describe-1":"I am here, always provide consulting services for you","common-mycj-menu-chat-notice-describe-1--plural":"I am here, always provide consulting services for you","common-mycj-menu-chat-notice-describe-2":"The personal agent is providing consulting services","common-mycj-menu-chat-notice-describe-2--plural":"The personal agent is providing consulting services","common-mycj-menu-find-factories":"Factories","common-mycj-menu-find-factories--plural":"Factories","common-mycj-menu-find":"Find","common-mycj-menu-find--plural":"Find","common-mycj-menu-saved-suppliers":"Saved Factories","common-mycj-menu-saved-suppliers--plural":"Saved Factories","common-mycj-menu-my-quotation-tip":"Check the final logistics PCS price applied at checkout.","common-mycj-menu-my-quotation-tip--plural":"Check the final logistics PCS price applied at checkout.","common-mycj-menu-my-quotation":"My Quotation","common-mycj-menu-my-quotation--plural":"My Quotation","common-last-mile-label-required":"Last-Mile Label Required","common-last-mile-label-required--plural":"Last-Mile Label Required","common-you-have-orders-that-require":"You have orders that require last-mile labels. Please upload them as soon as possible.","common-you-have-orders-that-require--plural":"You have orders that require last-mile labels. Please upload them as soon as possible.","contact-supplier-demand-limit":"Purchase request can contain up to {{limit}} characters.","contact-supplier-demand-limit--plural":"Purchase request can contain up to {{limit}} characters.","contact-supplier-file-too-large":"{{name}} exceeds the 5MB size limit.","contact-supplier-file-too-large--plural":"{{name}} exceeds the 5MB size limit.","contact-supplier-upload-service-unavailable":"Upload service is unavailable. Please try again later.","contact-supplier-upload-service-unavailable--plural":"Upload service is unavailable. Please try again later.","contact-supplier-submit-success":"Submitted successfully. The supplier will contact you soon.","contact-supplier-submit-success--plural":"Submitted successfully. The supplier will contact you soon.","contact-supplier-upload-attachment":"Upload Attachment","contact-supplier-upload-attachment--plural":"Upload Attachment","production-models":"Production Models","production-models--plural":"Production Models","contact-supplier-qualification-limit":"Qualification requirements can contain up to {{limit}} characters.","contact-supplier-qualification-limit--plural":"Qualification requirements can contain up to {{limit}} characters.","contact-supplier-upload-failed":"Upload failed. Please try again later.","contact-supplier-upload-failed--plural":"Upload failed. Please try again later.","contact-supplier-submit":"Submit","contact-supplier-budget-required":"Please enter the purchase budget.","contact-supplier-budget-required--plural":"Please enter the purchase budget.","supplier-card-view-detail":"View Factory Information","supplier-card-view-detail--plural":"View Factory Information","contact-supplier-unsupported-format":"Unsupported file format: {{format}}","contact-supplier-unsupported-format--plural":"Unsupported file format: {{format}}","contact-supplier-attachment-default-name":"Attachment {{index}}","contact-supplier-attachment-default-name--plural":"Attachment {{index}}","contact-supplier-attachment-upload-failed":"Attachment upload failed. Please try again later.","contact-supplier-attachment-upload-failed--plural":"Attachment upload failed. Please try again later.","contact-supplier-info-missing":"Supplier information is missing. Please refresh the page and try again.","contact-supplier-info-missing--plural":"Supplier information is missing. Please refresh the page and try again.","contact-supplier-remove-attachment":"Remove","contact-supplier-quantity-invalid":"Quantity must be a positive integer between 1 and 999999.","contact-supplier-quantity-invalid--plural":"Quantity must be a positive integer between 1 and 999999.","contact-supplier-upload-tip":"* Up to 10 attachments, max size 5MB. Supported: {{types}}.","contact-supplier-upload-tip--plural":"* Up to 10 attachments, max size 5MB. Supported: {{types}}.","contact-supplier-upload-limit-reached":"You can upload up to 10 attachments.","contact-supplier-upload-limit-reached--plural":"You can upload up to 10 attachments.","supplier-card-contact":"Contact Now","contact-supplier-qualification-req":"Qualification Requirements","contact-supplier-qualification-req--plural":"Qualification Requirements","contact-supplier-quantity-required":"Please enter the purchase quantity.","contact-supplier-quantity-required--plural":"Please enter the purchase quantity.","supplier-card-main-category":"Main Category","supplier-card-main-category--plural":"Main Category","contact-supplier-attachments-over-limit":"The number of attachments exceeds the limit.","contact-supplier-attachments-over-limit--plural":"The number of attachments exceeds the limit.","supplier-card-experience":"Industry Experience","supplier-card-experience--plural":"Industry Experience","contact-supplier-login-required":"Please sign in before submitting.","contact-supplier-login-required--plural":"Please sign in before submitting.","contact-supplier-submit-failed":"Submission failed. Please try again later.","contact-supplier-submit-failed--plural":"Submission failed. Please try again later.","contact-supplier-submitting":"Submitting...","contact-supplier-submitting--plural":"Submitting...","contact-supplier-purchase-quantity":"Purchase Quantity","contact-supplier-purchase-quantity--plural":"Purchase Quantity","contact-supplier-purchase-budget":"Purchase Budget ($)","contact-supplier-purchase-budget--plural":"Purchase Budget ($)","contact-supplier-demand-required":"Please enter your purchase request.","contact-supplier-demand-required--plural":"Please enter your purchase request.","contact-supplier-uploading":"Uploading...","contact-supplier-uploading--plural":"Uploading...","business-model":"Business Model","business-model--plural":"Business Model","contact-supplier-offline-tip":"Hello, the supplier is currently offline. You can quickly submit your purchasing requirements below. Your information will be saved and automatically sent to the supplier.","contact-supplier-offline-tip--plural":"Hello, the supplier is currently offline. You can quickly submit your purchasing requirements below. Your information will be saved and automatically sent to the supplier.","contact-supplier-purchase-request-hint":"You may describe your actual use scenario, for example: \\"I need a batch of T-shirts for a kindergarten spring sports event for children aged 3-6, made of soft, breathable fabric with cartoon prints.\\" We will share this information with the supplier so they can quickly determine whether they can meet your needs.","contact-supplier-purchase-request-hint--plural":"You may describe your actual use scenario, for example: \\"I need a batch of T-shirts for a kindergarten spring sports event for children aged 3-6, made of soft, breathable fabric with cartoon prints.\\" We will share this information with the supplier so they can quickly determine whether they can meet your needs.","contact-supplier-purchase-request":"Purchase Request","contact-supplier-purchase-request--plural":"Purchase Request","my-quotation-title":"My Quotation","my-quotation-title--plural":"My Quotation","my-profile-cogs-config-top-tip-4":"COGS = Total cost of goods in {{siteName}} / Total cost of goods in your store * 100%","my-profile-cogs-config-top-tip-4--plural":"COGS = Total cost of goods in {{siteName}} / Total cost of goods in your store * 100%","common-top-china-warehouse-dispat
31657ch-notification":"China Warehouse Dispatch Notification","common-top-china-warehouse-dispatch-notification--plural":"China Warehouse Dispatch Notification","common-top-china-warehouse-dispatch-notification-text":"Click \\"View Now\\" to check your dispatch details.","common-top-china-warehouse-dispatch-notification-text--plural":"Click \\"View Now\\" to check your dispatch details.","common-mycj-menu-find-academy":"Mentors","common-mycj-menu-sourcing-agent-complaints":"Service Complaints","common-mycj-menu-sourcing-agent-complaints--plural":"Service Complaints","common-mycj-menu-sourcing-agent-order":"Service Orders","common-mycj-menu-sourcing-agent-order--plural":"Service Orders","common-mycj-menu-service-agents-list":"Sourcing Agent List","common-mycj-menu-service-agents-list--plural":"Sourcing Agent List","common-mycj-menu-sourcing-agent":"Sourcing Agents","common-mycj-menu-sourcing-agent--plural":"Sourcing Agents","common-mycj-menu-sourcing-agent-new":"Sourcing Agents","common-mycj-menu-sourcing-agent-new--plural":"Sourcing Agents","advertisingservice-card-applovin-description-3-text":"Access premium traffic resources through Applovin Exchange.","advertisingservice-card-applovin-description-3-text--plural":"Access premium traffic resources through Applovin Exchange.","advertisingservice-card-tiktok-description-3-title":"Direct Client Account Services:","advertisingservice-card-tiktok-description-3-title--plural":"Direct Client Account Services:","advertisingservice-advantages-google-description-1":"Since the publication of the Google engine in 1998, it has launched hundreds of technical products, covering all fronts of global internet users, of which, eight of them, including Google Search, Google Chrome, YouTube, Android Mobile Platform, Gmail, Google Map, Google APP Store, and Google Cloud, have accumulated over 1 billion active users respectively.","advertisingservice-advantages-google-description-1--plural":"Since the publication of the Google engine in 1998, it has launched hundreds of technical products, covering all fronts of global internet users, of which, eight of them, including Google Search, Google Chrome, YouTube, Android Mobile Platform, Gmail, Google Map, Google APP Store, and Google Cloud, have accumulated over 1 billion active users respectively.","advertisingservice-advantages-google-description-2":"With the help of these Ad marketing tools and Google as a whole, our products and brands can outperform others in the international arena, covering more than 2.9 billion internet users and potential customers no matter where they hail from.","advertisingservice-advantages-google-description-2--plural":"With the help of these Ad marketing tools and Google as a whole, our products and brands can outperform others in the international arena, covering more than 2.9 billion internet users and potential customers no matter where they hail from.","advertisingservice-card-tiktok-description-6-title":"Bypass Geographical Restrictions:","advertisingservice-card-tiktok-description-6-title--plural":"Bypass Geographical Restrictions:","advertisingservice-card-applovin-description-4-text":"Extensive ad network covering global quality users.","advertisingservice-card-applovin-description-4-text--plural":"Extensive ad network covering global quality users.","advertisingservice-card-applovin-description-1-title":"Fast Activation:","advertisingservice-card-applovin-description-1-title--plural":"Fast Activation:","advertisingservice-card-applovin-description-1-text":"Direct official partnership for fast Applovin account activation.","advertisingservice-card-applovin-description-1-text--plural":"Direct official partnership for fast Applovin account activation.","advertisingservice-card-applovin-description-4-title":"Global Network:","advertisingservice-card-applovin-description-4-title--plural":"Global Network:","advertisingservice-card-tiktok-description-5-title":"Multi-Account Management:","advertisingservice-card-tiktok-description-5-title--plural":"Multi-Account Management:","advertisingservice-card-applovin-description-2-title":"Expert Guidance:","advertisingservice-card-applovin-description-2-title--plural":"Expert Guidance:","advertisingservice-advantages-facebook-description-2":"Owing to Facebook, millions of enterprises have successfully promoted their business all over the world, with over 3 million online advertisements and 50 million public pages.","advertisingservice-advantages-facebook-description-2--plural":"Owing to Facebook, millions of enterprises have successfully promoted their business all over the world, with over 3 million online advertisements and 50 million public pages.","advertisingservice-advantages-facebook-description-3":"Real customer-centered data can precisely locate potential customers, while diversified and well-rounded advertisement distribution can unequivocally transfer product information.","advertisingservice-advantages-facebook-description-3--plural":"Real customer-centered data can precisely locate potential customers, while diversified and well-rounded advertisement distribution can unequivocally transfer product information.","advertisingservice-advantages-facebook-description-1":"Apart from being the largest social network service website, Facebook is also the most accurate marketing platform.","advertisingservice-advantages-facebook-description-1--plural":"Apart from being the largest social network service website, Facebook is also the most accurate marketing platform.","advertisingservice-advantages-tiktok-description":"As an international advertising service provider affiliated with the Beijing ByteDance, TikTok offers partners comprehensive digital marketing solutions that are unique in terms of originality and immersive in terms of form and thus successfully establishes an efficie
31657nt and profound connection between partners and customers by integrating such traffic products as TikTok, Vigo Video, TopBuzz, Buzz Video, News Republic, Helo, and Babe, and gathering numerous website traffic, data, and high-quality contents.","advertisingservice-advantages-tiktok-description--plural":"As an international advertising service provider affiliated with the Beijing ByteDance, TikTok offers partners comprehensive digital marketing solutions that are unique in terms of originality and immersive in terms of form and thus successfully establishes an efficient and profound connection between partners and customers by integrating such traffic products as TikTok, Vigo Video, TopBuzz, Buzz Video, News Republic, Helo, and Babe, and gathering numerous website traffic, data, and high-quality contents.","advertisingservice-card-applovin-description-3-title":"Premium Traffic:","advertisingservice-card-applovin-description-3-title--plural":"Premium Traffic:","advertisingservice-card-tiktok-description-4-text":"TikTok officially certified partner, ensuring account stability and security.","advertisingservice-card-tiktok-description-4-text--plural":"TikTok officially certified partner, ensuring account stability and security.","advertisingservice-advantages-applovin-description":"Applovin is a leading global advertising platform that provides comprehensive digital marketing solutions for businesses. It offers a wide range of advertising services, including display advertising, video advertising, and native advertising, to help businesses reach their target audience and achieve their marketing goals.","advertisingservice-advantages-applovin-description--plural":"Applovin is a leading global advertising platform that provides comprehensive digital marketing solutions for businesses. It offers a wide range of advertising services, including display advertising, video advertising, and native advertising, to help businesses reach their target audience and achieve their marketing goals.","advertisingservice-card-applovin-title":"Applovin Advertising Accounts - Powerful Tool for Mobile App Growth","advertisingservice-card-applovin-title--plural":"Applovin Advertising Accounts - Powerful Tool for Mobile App Growth","advertisingservice-card-tiktok-description-3-text":"Direct provision of TikTok official direct client accounts, enjoying higher permissions and exclusive services.","advertisingservice-card-tiktok-description-3-text--plural":"Direct provision of TikTok official direct client accounts, enjoying higher permissions and exclusive services.","advertisingservice-card-tiktok-description-4-title":"Official Partner Qualifications:","advertisingservice-card-tiktok-description-4-title--plural":"Official Partner Qualifications:","advertisingservice-card-tiktok-description-5-text":"Support unified management of multiple TikTok advertising accounts for scalable operations.","advertisingservice-card-tiktok-description-5-text--plural":"Support unified management of multiple TikTok advertising accounts for scalable operations.","advertisingservice-card-tiktok-description-6-text":"Effectively avoid regional advertising restrictions through different regional account combinations.","advertisingservice-card-tiktok-description-6-text--plural":"Effectively avoid regional advertising restrictions through different regional account combinations.","advertisingservice-card-applovin-description-2-text":"Professional team guidance on Applovin advertising strategies.","advertisingservice-card-applovin-description-2-text--plural":"Professional team guidance on Applovin advertising strategies.","advertisingservice-account-solutions":"Account Solutions","advertisingservice-account-solutions--plural":"Account Solutions","advertisingservice-description":"Professional team provides official advertising account registration and management services for major platforms including Meta, Google, TikTok, and Applovin.","advertisingservice-description--plural":"Professional team provides official advertising account registration and management services for major platforms including Meta, Google, TikTok, and Applovin.","advertisingservice-all-in-one":"All-in-One","advertisingservice-all-in-one--plural":"All-in-One","advertisingservice-card-google-description-1-text":"Directly provide pre-opened Google advertising accounts, no complicated application process required.","advertisingservice-card-google-description-1-text--plural":"Directly provide pre-opened Google advertising accounts, no complicated application process required.","advertisingservice-card-google-description-2-text":"Based on Google\'s official partner qual
31657ifications, ensuring account stability and authority.","advertisingservice-card-google-description-2-text--plural":"Based on Google\'s official partner qualifications, ensuring account stability and authority.","advertisingservice-card-facebook-description-4-text":"Professional team assists with business verification, improving account stability.","advertisingservice-card-facebook-description-4-text--plural":"Professional team assists with business verification, improving account stability.","advertisingservice-card-facebook-description-4-title":"Professional Verification:","advertisingservice-card-facebook-description-4-title--plural":"Professional Verification:","advertisingservice-email":"Email","advertisingservice-card-facebook-description-1-title":"Free Standard Accounts:","advertisingservice-card-facebook-description-1-title--plural":"Free Standard Accounts:","advertisingservice-card-google-description-2-title":"Official Partner Resources:","advertisingservice-card-google-description-2-title--plural":"Official Partner Resources:","advertisingservice-global-advertising":"Global Advertising","advertisingservice-global-advertising--plural":"Global Advertising","advertisingservice-card-facebook-description-3-text":"Provide completely independent Facebook Business Manager accounts to ensure security and stability, avoiding association risks.","advertisingservice-card-facebook-description-3-text--plural":"Provide completely independent Facebook Business Manager accounts to ensure security and stability, avoiding association risks.","advertisingservice-card-google-description-3-title":"Multi-Account Solutions:","advertisingservice-card-google-description-3-title--plural":"Multi-Account Solutions:","advertisingservice-card-google-description-3-text":"Provide multiple independent Google advertising accounts, supporting multi-brand operations.","advertisingservice-card-google-description-3-text--plural":"Provide multiple independent Google advertising accounts, supporting multi-brand operations.","advertisingservice-card-tiktok-title":"TikTok Advertising Accounts - Global Reach, Precision Targeting","advertisingservice-card-tiktok-title--plural":"TikTok Advertising Accounts - Global Reach, Precision Targeting","advertisingservice-card-tiktok-description-1-text":"Cross-border TikTok advertising accounts specifically designed forcross-border enterprises, supporting multiple countries and regions.","advertisingservice-card-tiktok-description-1-text--plural":"Cross-border TikTok advertising accounts specifically designed forcross-border enterprises, supporting multiple countries and regions.","advertisingservice-card-google-title":"Google Advertising Accounts - Precision Traffic, Global Quality Customers","advertisingservice-card-google-title--plural":"Google Advertising Accounts - Precision Traffic, Global Quality Customers","advertisingservice-card-google-description-4-title":"Immediate Availability:","advertisingservice-card-google-description-4-title--plural":"Immediate Availability:","advertisingservice-contact-us-now-to-learn-more":"Contact us now to learn more","advertisingservice-contact-us-now-to-learn-more--plural":"Contact us now to learn more","advertisingservice-card-facebook-description-3-title":"Independent Environment:","advertisingservice-card-facebook-description-3-title--plural":"Independent Environment:","advertisingservice-card-facebook-description-2-title":"Unlimited Value-Added Accounts:","advertisingservice-card-facebook-description-2-title--plural":"Unlimited Value-Added Accounts:","advertisingservice-card-facebook-description-1-text":"Provide advertising accounts with certain spending limits, completely free account opening, suitable for startups and testing phases.","advertisingservice-card-facebook-description-1-text--plural":"Provide advertising accounts with certain spending limits, completely free account opening, suitable for startups and testing phases.","advertisingservice-break-through-your-e-commerce-growth-bottlenecks":"Break Through Your E-commerce Growth Bottlenecks","advertisingservice-break-through-your-e-commerce-growth-bottlenecks--plural":"Break Through Your E-commerce Growth Bottlenecks","advertisingservice-card-facebook-title":"Meta Advert
31657ising Accounts - Flexible Options for Different Budget Needs","advertisingservice-card-facebook-title--plural":"Meta Advertising Accounts - Flexible Options for Different Budget Needs","advertisingservice-card-tiktok-description-2-text":"Provide US local TikTok advertising accounts, enjoying exclusive benefits and traffic support for local businesses.","advertisingservice-card-tiktok-description-2-text--plural":"Provide US local TikTok advertising accounts, enjoying exclusive benefits and traffic support for local businesses.","advertisingservice-whatsapp":"WhatsApp","advertisingservice-card-google-description-4-text":"Accounts are ready to use immediately after opening, saving review waiting time.","advertisingservice-card-google-description-4-text--plural":"Accounts are ready to use immediately after opening, saving review waiting time.","advertisingservice-card-tiktok-description-1-title":"Cross-border TikTok Accounts:","advertisingservice-card-tiktok-description-1-title--plural":"Cross-border TikTok Accounts:","advertisingservice-start-now-for-free":"Start Now for Free","advertisingservice-start-now-for-free--plural":"Start Now for Free","advertisingservice-card-google-description-1-title":"Ready-to-Use Accounts:","advertisingservice-card-google-description-1-title--plural":"Ready-to-Use Accounts:","advertisingservice-card-tiktok-description-2-title":"US Local Accounts:","advertisingservice-card-tiktok-description-2-title--plural":"US Local Accounts:","advertisingservice-card-facebook-description-2-text":"Exclusive access to Meta advertising accounts with no spending limits (with corresponding service fees), completely solving account restriction worries.","advertisingservice-card-facebook-description-2-text--plural":"Exclusive access to Meta advertising accounts with no spending limits (with corresponding service fees), completely solving account restriction worries.","common-top-search-search-factories-tip":"Search factories by keywords, name, or other filters","common-top-search-search-factories-tip--plural":"Search factories by keywords, name, or other filters","visitor-service-account-manager-title":"Get the Best Sourcing Agent Services","visitor-service-account-manager-title--plural":"Get the Best Sourcing Agent Services","visitor-service-get-the-best-sourcing-agent-services-desc":"Get the best sourcing agent services with a dedicated AM ensuring your project goals and deadlines are met.","visitor-service-get-the-best-sourcing-agent-services-desc--plural":"Get the best sourcing agent services with a dedicated AM ensuring your project goals and deadlines are met.","paid-service-all":"All","paid-service-price-sort-desc":"High to Low","paid-service-price-sort-desc--plural":"High to Low","paid-service-price-sort-asc":"Low to High","paid-service-price-sort-asc--plural":"Low to High","paid-service-fill-in-service":"Fill in service","paid-service-fill-in-service--plural":"Fill in service","paid-service-service-start-time":"Service can start anytime after purchase.","paid-service-service-start-time--plural":"Service can start anytime after purchase.","paid-service-quotation-plan-number":"Quotation Plan {{ number }}","paid-service-quotation-plan-number--plural":"Quotation Plan {{ number }}","paid-service-payable-amount":"Payable Amount","paid-service-product-quotation":"Product Quotation","paid-service-product-quotation--plural":"Product Quotation","paid-service-hire":"Hire","paid-service-hire--plural":"Hire","paid-service-service-period":"Service Period {{ cycle }} Days","paid-service-service-period--plural":"Service Period {{ cycle }} Days","paid-service-customized-services-can-also-be-tailored-to-your-needs":"Customized services can also be tailored to your needs—please contact your sourcing agent for details.","paid-service-customized-services-can-also-be-tailored-to-your-needs--plural":"Customized services can also be tailored to your needs—please contact your sourcing agent for details.","paid-service-view-service-details":"View Service Details","paid-service-view-service-details--plural":"View Service Details","paid-service-service-process":"Service Process","paid-service-service-process--plural":"Service Process","common-advertiser-agency":"Advertiser Agency","common-advertiser-agency--plural":"Advertiser Agency","common-mycj-menu-agent":"Agents","common-mycj-menu-agent--plural":"Agents","paid-service-free":"Free","paid-service-service-period-days":"Service Period: {{ cycle }} Days","paid-service-service-period-days--plural":"Service Period: {{ cycle }} Days","paid-service-price":"Price","paid-service-hire-now":"Hire Now","paid-service-hire-now--plural":"Hire Now","paid-service-service-quotation":"Service Quotation","paid-service-service-quotation--plural":"Service Quotation","contact-supplier-attachments":"Upload Attachment","contact-supplier-submit-employees":"Employees","contact-supplier-submit-employees--plural":"Employees","contact-supplier-budget-invalid":"Budget must be between 0.01 and 999999 with up to two decimals.","contact-supplier-budget-invalid--plural":"Budget must be between 0.01 and 999999 with up to two decimals.","visitor-service-get-the-best-sourcing-agent-services-desc2":"We possess extensive sourcing agent resources and high-quality cross-border procurement services to ensure that your project objectives and deadlines are fulfilled. Please review the profiles of our premium sourcing agents below to identify the best match for your business.","visitor-service-get-the-best-sourcing-agent-services-desc2--plural":"We possess extensive sourcing agent resources and high-quality cross-border procurement services to ensure that your project objectives and deadlines are fulfilled. Please review the profiles of our premium sourcing agents below to identify the best match for your business.","common-costs-us-tips":"CJEC Belgrade, Serbia is Coming! Connect. Learn. Grow — Join Us","common-costs-us-tips--plural":"Plan your CNY 2026 inventory with CJ - Click here to prepare early","common-header-notice":"CJEC Belgrade 2026 — View Detail","common-header-notice--plural":"Start Inventory with Only 30% Deposit - Click for More!","bulk-purchase-save-30-costs":"Save 30%+ Costs","bulk-purchase-save-30-costs--plural":"Save 30%+ Costs","bulk-purchase-lower-margins-less-control-over-shipping-times-and-product-quality":"Lower margins, less control over shipping times and product quality.","bulk-purchase-lower-margins-less-control-over-shipping-times-and-product-quality--plural":"Lower margins, less control over shipping times and product quality.","bulk-purchase-scale-your-business-reliably":"Scale Your Business Reliably","bulk-purchase-scale-your-business-reliably--plural":"Scale Your Business Reliably","bulk-purchase-get-your-free-bulk-quote-now":"Get Your Free Bulk Quote Now","bulk-purchase-get-your-free-bulk-quote-now--plural":"Get Your Free Bulk Quote Now","bulk-purchase-lower-per-unit-price-faster-order-fulfillment-full-branding-control":"Lower per
31657-unit price, faster order fulfillment, full branding control","bulk-purchase-lower-per-unit-price-faster-order-fulfillment-full-branding-control--plural":"Lower per-unit price, faster order fulfillment, full branding control","bulk-purchase-frequently-asked-questions":"Frequently Asked Questions","bulk-purchase-frequently-asked-questions--plural":"Frequently Asked Questions","bulk-purchase-bulk-purchase":"Bulk Purchase","bulk-purchase-bulk-purchase-vs-dropshipping-vs-preorder-inventory-which-is-right-for-you":"Bulk Purchase vs. Dropshipping vs. Preorder Inventory: Which is Right for You?","bulk-purchase-bulk-purchase-vs-dropshipping-vs-preorder-inventory-which-is-right-for-you--plural":"Bulk Purchase vs. Dropshipping vs. Preorder Inventory: Which is Right for You?","bulk-purchase-dropshipping":"Dropshipping","bulk-purchase-pre-order-inventory":"Pre-order Inventory","bulk-purchase-pre-order-inventory--plural":"Pre-order Inventory","bulk-purchase-no-upfront-inventory-cost-easy-to-test-new-products-low-barrier-to-entry":"No upfront inventory cost, easy to test new products, low barrier to entry.","bulk-purchase-no-upfront-inventory-cost-easy-to-test-new-products-low-barrier-to-entry--plural":"No upfront inventory cost, easy to test new products, low barrier to entry.","bulk-purchase-best-for-validating-demand-before-investing":"Best for validating demand before investing. You collect orders in advance and fulfill them once you hit a certain quantity or delivery timeline.","bulk-purchase-best-for-validating-demand-before-investing--plural":"Best for validating demand before investing. You collect orders in advance and fulfill them once you hit a certain quantity or delivery timeline.","bulk-purchase-all-in-one-dropshipping-solution-provider":"All-in-one dropshipping solution provider: product supplies, global logistics, free sourcing, POD, video shooting, and other dropshipping-related services.","bulk-purchase-all-in-one-dropshipping-solution-provider--plural":"All-in-one dropshipping solution provider: product supplies, global logistics, free sourcing, POD, video shooting, and other dropshipping-related services.","bulk-purchase-top-bulk-purchase-products":"Top Bulk Purchase Products","bulk-purchase-top-bulk-purchase-products--plural":"Top Bulk Purchase Products","bulk-purchase-try-cjdropshipping-free":"Try CJdropshipping Free","bulk-purchase-try-cjdropshipping-free--plural":"Try CJdropshipping Free","bulk-purchase-how-bulk-purchasing-works-in-3-steps":"How Bulk Purchasing Works in 3 Steps","bulk-purchase-how-bulk-purchasing-works-in-3-steps--plural":"How Bulk Purchasing Works in 3 Steps","bulk-purchase-learn-more":"Learn More","bulk-purchase-learn-more--plural":"Learn More","bulk-purchase-start-your-bulk-order-today-with-cjdropshipping":"Start Your Bulk Order Today with CJdropshipping","bulk-purchase-start-your-bulk-order-today-with-cjdropshipping--plural":"Start Your Bulk Order Today with CJdropshipping","bulk-purchase-longer-wait-times-for-customers-requires-clear-communication-to-manage-expectations":"Longer wait times for customers, requires clear communication to manage expectations.","bulk-purchase-longer-wait-times-for-customers-requires-clear-communication-to-manage-expectations--plural":"Longer wait times for customers, requires clear communication to manage expectations.","bulk-purchase-bulk-purchase-with-cjdropshipping":"Bulk Purchase with CJdropshipping","bulk-purchase-bulk-purchase-with-cjdropshipping--plural":"Bulk Purchase with CJdropshipping","bulk-purchase-no-inventory-waste-great-for-limited-edition-or-seasonal-products-cash-flow-friendly":"No inventory waste, great for limited-edition or seasonal products, cash flow-friendly.","bulk-purchase-no-inventory-waste-great-for-limited-edition-or-seasonal-products-cash-flow-friendly--plural":"No inventory waste, great for limited-edition or seasonal products, cash flow-friendly.","bulk-purchase-higher-upfront-investment-risk-of-unsold-stock-storage-costs":"Higher upfront investment, risk of unsold stock, storage costs.","bulk-purchase-higher-upfront-investment-risk-of-unsold-stock-storage-costs--plural":"Higher upfront investment, risk of unsold stock, storage costs.","bulk-purchase-
31657add-to-cart-manage-quantities-text":"Select product variants and add to your wholesale cart. Facing high MOQ? Use the \'Sample\' option to order quantities below the minimum. Pro Tip: Combine multiple SKUs in one cart to save shipping costs.","bulk-purchase-add-to-cart-manage-quantities-text--plural":"Select product variants and add to your wholesale cart. Facing high MOQ? Use the \'Sample\' option to order quantities below the minimum. Pro Tip: Combine multiple SKUs in one cart to save shipping costs.","bulk-purchase-start-your-bulk-order":"Start Your Bulk Order","bulk-purchase-start-your-bulk-order--plural":"Start Your Bulk Order","bulk-purchase-submit-order-we-handle-the-rest-text":"In your Cart-Wholesale/Sample, review items and submit. Shipping to EU? Activate the IOSS tax declaration in My CJ > Profile > Declaration Settings to avoid customs delays.","bulk-purchase-submit-order-we-handle-the-rest-text--plural":"In your Cart-Wholesale/Sample, review items and submit. Shipping to EU? Activate the IOSS tax declaration in My CJ > Profile > Declaration Settings to avoid customs delays.","bulk-purchase-faq-5-question":"What are the benefits of using CJdropshipping for bulk purchasing?","bulk-purchase-faq-5-question--plural":"What are the benefits of using CJdropshipping for bulk purchasing?","bulk-purchase-faq-4-question":"Can I place bulk orders through CJdropshipping?","bulk-purchase-faq-4-question--plural":"Can I place bulk orders through CJdropshipping?","bulk-purchase-get-help-now":"Get Help Now","bulk-purchase-get-help-now--plural":"Get Help Now","bulk-purchase-flexible-mos-text":"Perfect for startups and established brands alike, our flexible minimum order quantities (MOQs) let you test products risk-free. Need custom packaging or private labeling? We handle everything from logo printing to eco-friendly materials, even for small batches.","bulk-purchase-flexible-mos-text--plural":"Perfect for startups and established brands alike, our flexible minimum order quantities (MOQs) let you test products risk-free. Need custom packaging or private labeling? We handle everything from logo printing to eco-friendly materials, even for small batches.","bulk-purchase-factory-direct-pricing":"Factory Direct Pricing","bulk-purchase-factory-direct-pricing--plural":"Factory Direct Pricing","bulk-purchase-flexible-mos":"Flexible MOQs","bulk-purchase-flexible-mos--plural":"Flexible MOQs","bulk-purchase-faq-3-question":"What are the advantages of using bulk purchase services in dropshipping?","bulk-purchase-faq-3-question--plural":"What are the advantages of using bulk purchase services in dropshipping?","bulk-purchase-faq-1-answer":"Bulk purchasing involves buying large quantities of products at once, often at discounted rates, to fulfill orders in a dropshipping business.","bulk-purchase-faq-1-answer--plural":"Bulk purchasing involves buying large quantities of products at once, often at discounted rates, to fulfill orders in a dropshipping business.","bulk-purchase-faq-1-question":"What is bulk purchasing in the context of dropshipping?","bulk-purchase-faq-1-question--plural":"What is bulk purchasing in the context of dropshipping?","bulk-purchase-faq-5-answer":"With CJdropshipping, you get access to competitive pricing, quality inspection, warehouse storage (both in China and overseas), and even private labeling or custom packaging options—all from one platform. It\'s a one-stop solution for scaling your dropshipping business.","bulk-purchase-faq-5-answer--plural":"With CJdropshipping, you get access to competitive pricing, quality inspection, warehouse storage (both in China and overseas), and even private labeling or custom packaging options—all from one platform. It\'s a one-stop solution for scaling your dropshipping business.","bulk-purchase-fast-global-shipping":"Fast Global Shipping","bulk-purchase-fast-global-shipping--plural":"Fast Global Shipping","bulk-purchase-see-whats-trending":"See What\'s Trending","bulk-purchase-see-whats-trending--plural":"See What\'s Trending","bulk-purchase-trusted-e-commerce-stores":"Trusted E-commerce Stores","bulk-purchase-trusted-e-commerce-stores--plural":"Trusted E-commerce Stores","bulk-purchase-
31657add-to-cart-manage-quantities":"Add to Cart & Manage Quantities","bulk-purchase-add-to-cart-manage-quantities--plural":"Add to Cart & Manage Quantities","bulk-purchase-faq-2-question":"How does bulk purchasing differ from traditional dropshipping?","bulk-purchase-faq-2-question--plural":"How does bulk purchasing differ from traditional dropshipping?","bulk-purchase-cooperated-factories":"Cooperated Factories","bulk-purchase-fast-global-shipping-text":"Skip slow ocean freight – our strategically located warehouses in the USA, Europe, and Australia etc. ensure your bulk orders arrive within a week at their fastest. We work with reliable logistics partners to minimize delays, so you can restock faster and sell sooner.","bulk-purchase-fast-global-shipping-text--plural":"Skip slow ocean freight – our strategically located warehouses in the USA, Europe, and Australia etc. ensure your bulk orders arrive within a week at their fastest. We work with reliable logistics partners to minimize delays, so you can restock faster and sell sooner.","bulk-purchase-step":"Step","bulk-purchase-step--plural":"Step","bulk-purchase-faq-2-answer":"In traditional dropshipping, products are purchased individually from suppliers as orders come in. Bulk purchasing entails buying large quantities upfront, which can reduce per-unit costs.","bulk-purchase-faq-2-answer--plural":"In traditional dropshipping, products are purchased individually from suppliers as orders come in. Bulk purchasing entails buying large quantities upfront, which can reduce per-unit costs.","bulk-purchase-faq-4-answer":"Yes! CJdropshipping supports bulk purchases for sellers who want to buy products in larger quantities. You can place a bulk order directly through the CJ dashboard or contact your dedicated agent for personalized service and factory-direct pricing.","bulk-purchase-faq-4-answer--plural":"Yes! CJdropshipping supports bulk purchases for sellers who want to buy products in larger quantities. You can place a bulk order directly through the CJ dashboard or contact your dedicated agent for personalized service and factory-direct pricing.","bulk-purchase-submit-order-we-handle-the-rest":"Submit Order & We Handle the Rest","bulk-purchase-submit-order-we-handle-the-rest--plural":"Submit Order & We Handle the Rest","bulk-purchase-partner-couriers-worldwide":"Partner Couriers Worldwide","bulk-purchase-find-products-check-wholesale-prices-text":"Browse CJdropshipping\'s catalog and click the \'Product-Wholesale\' button to view real-time bulk pricing. If a product lacks wholesale options, click \'Buy Sample\' on the dropshipping page to test demand risk-free.","bulk-purchase-find-products-check-wholesale-prices-text--plural":"Browse CJdropshipping\'s catalog and click the \'Product-Wholesale\' button to view real-time bulk pricing. If a product lacks wholesale options, click \'Buy Sample\' on the dropshipping page to test demand risk-free.","bulk-purchase-global-warehouses":"Global Warehouses","bulk-purchase-faq-3-answer":"Bulk purchasing allows dropshippers to buy products in larger quantities at discounted rates, leading to higher profit margins. It also enables better control over inventory, faster shipping times, and the opportunity for product customization and branding.","bulk-purchase-faq-3-answer--plural":"Bulk purchasing allows dropshippers to buy products in larger quantities at discounted rates, leading to higher profit margins. It also enables better control over inventory, faster shipping times, and the opportunity for product customization and branding.","bulk-purchase-find-products-check-wholesale-prices":"Find Products & Check Wholesale Prices","bulk-purchase-find-products-check-wholesale-prices--plural":"Find Products & Check Wholesale Prices","bulk-purchase-factory-direct-pricing-text":"Our direct partnerships with global manufacturers ensure you get the lowest possible pricing – save up to 30% compared to traditional wholesale platforms like Alibaba. Whether you need electronics, home goods, or seasonal products, we negotiate bulk discounts on your behalf.","bulk-purchase-factory-direct-pricing-text--plural":"Our direct partnerships with global manufacturers ensure you get the lowest possible pricing – save up to 30% compared to traditional wholesale platforms like Alibaba. Whether you need electronics, home goods, or seasonal products, we negotiate bulk discounts on your behalf.","bulk-purchase-why-cjdropshipping-for-bulk-purchases":"Why CJdropshipping for Bulk Purchases?","bulk-purchase-why-cjdropshipping-for-bulk-purchases--plural":"Why CJdropshipping for Bulk Purchases?","bulk-purchase-perfect-for-beginners-or-low-risk-testing":"Perfect for beginners or low-risk testing. You sell products without holding inventory—your supplier ships directly to your customer.","bulk-purchase-perfect-for-beginners-or-low-risk-testing--plural":"Perfect for beginners or low-risk testing. You sell products without holding inventory—your supplier ships directly to your customer.","bulk-purchase-bulk-purchase-vs-dropshipping-vs-preorder-inventory-which-is-right-for-you-text":"Ideal if you want full control over your stock and higher profit margins. You buy products in large quantities upfront—often at a lower unit cost—and store them yourself or through a warehouse.","bulk-purchase-bulk-purchase-vs-dropshipping-vs-preorder-inventory-which-is-right-for-you-text--plural":"Ideal if you want full control over your stock and higher profit margins. You buy products in large quantities upfront—often at a lower unit cost—and store them yourself or through a warehouse.","product-place-an-order":"View Detail","product-place-an-order--plural":"View Detail","wallet-order-id":"Transaction ID","wallet-order-id--plural":"Transaction ID","wallet-order-transaction-id-error-tips":"Number of order numbers exceeds the limit","wallet-order-transaction-id-error-tips--plural":"Number of order numbers exceeds the limit","wallet-order-type":"Order type:","wallet-order-type--plural":"Order type:","wallet-order-transaction-id-placeholder":"You can enter up to 30 order numbers, separated  by \\",\\".","wallet-order-transaction-id-placeholder--plural":"You can enter up to 30 order numbers, separated  by \\",\\".","loancredit-submit-application-documents":"Submit Application Documents","loancredit-submit-application-documents--plural":"Submit Application Documents","loancredit-sign-an-agreement":"Sign an Agreement","loancredit-sign-an-agreement--plural":"Sign an Agreement","loancredit-sign-an-agreement-desc":"After the review is passed, an online confirmation agreement will be generated, and the credit can be released after confirmation.","loancredit-sign-an-agreement-desc--plural":"After the review is passed, an online confirmation agreement will be generated, and the credit can be released after confirmation.","loancredit-the-credit-support-program-contains-the-following-elements":"The Credit Support Program Contains the Following Elements","loancredit-the-credit-support-program-contains-the-following-elements--plural":"The Credit Support Program Contains the Following Elements","loancredit-documents-review-desc":"The result will be issued within 5 to 7 business days after receipt of the application.","loancredit-documents-review-desc--plural":"The result will be issued within 5 to 7 business days after receipt of the application.","loancredit-submit-application-documents-desc":"Including company name, address, legal person, email, phone number and application amount.","loancredit-submit-application-documents-desc--plural":"Including company name, address, legal person, email, phone number and application amount.","loancredit-submit":"Submit","loancredit-short-term-credit-support-for-company-with-good-reputation":"Short-Term Credit Support for Company with Good Reputation","loancredit-short-term-credit-support-for-company-with-good-reputation--plural":"Short-Term Credit Support for Company with Good Reputation","loancredit-documents-review":"Documents Review","loancredit-documents-review--plural":"Documents Review","loancredit-application-process":"Application Process","loancredit-application-process--plural":"Application Process","loancredit-use-of-credits-detail-list-1":"The credits cannot be withdrawn","loancredit-use-of-credits-detail-list-1--plural":"The credits cannot be withdrawn","loancredit-use-of-credits-detail-list-2":"The credits cannot be used to pay for anything other than CJ fees","loancredit-use-of-credits-detail-list-2--plural":"The credits cannot be used to pay for anything other than CJ fees","loancredit-use-of-credits-first-content":"The credits are limited to use in the CJ system to pay for your store orders or purchases of private inventory.","loancredit-use-of-credits-first-content--plural":"The credits are limited to use in the CJ system to pay for your store orders or purchases of private inventory.","loancredit-use-of-credits":"Use of Credits","loancredit-use-of-credits--plural":"Use of Credits","loancredit-amount-of-credits-detail-list-3":"Cash flow situation","loancredit-amount-of-credits-detail-list-3--plural":"Cash flow situation","loancredit-amount-of-credits-detail-list-2":"Based on your company\'s scale of operations","loancredit-amount-of-credits-detail-list-2--plural":"Based on your company\'s scale of operations","loancredit-amount-of-credits-detail-list-1":"Companies that have been established for more than one year and have an authorized bank","loancredit-amount-of-credits-detail-list-1--plural":"Companies that have been established for more than one year and have an authorized bank","loancredit-amount-of-credits-detail-list-4":"Other factors","loancredit-amount-of-credits-detail-list-4--plural":"Other factors","loancredit-amount-of-credits-second-content":"We will determine the amount of short-term credits that will be granted to your company for one week to one month\'s worth of purchases at CJ.","loancredit-amount-of-credits-second-content--plural":"We will determine the amount of short-term credits that will be granted to your company for one week to one month\'s worth of purchases at CJ.","loancredit-amount-of-credits-first-content":"The amount will be based on a comprehensive judgment of your company\'s credit assessment, repayment ability, credit needs, and the number of fulfilled orders at CJdropshipping (hereinafter referred to as CJ).","loancredit-amount-of-credits-first-content--plural":"The amount will be based on a comprehensive judgment of your company\'s credit assessment, repayment ability, credit needs, and the number of fulfilled orders at CJdropshipping (hereinafter referred to as CJ).","loancredit-amount-of-credits":"Amount of Credits","loancredit-amount-of-credits--plural":"Amount of Credits","loancredit-credit-evaluation-criteria-first-content":"The main factors used to assess your company\'s credit.","loancredit-credit-evaluation-criteria-first-content--plural":"The main factors used to assess your company\'s credit.","loancredit-credit-evaluation-criteria-detail-list-3":"Income stability","loancredit-credit-evaluation-criteria-detail-list-3--plural":"Income stability","loancredit-credit-evaluation-criteria-detail-list-4":"Assets and liabilities status, etc","loancredit-credit-evaluation-criteria-detail-list-4--plural":"Assets and liabilities status, etc","loancredit-credit-evaluation-criteria-detail-list-1":"Such as your company\'s credit history","loancredit-credit-evaluation-criteria-detail-list-1--plural":"Such as your company\'s credit history","loancredit-credit-evaluation-criteria-detail-list-2":"Whether there is any overdue record, etc","loancredit-credit-evaluation-criteria-detail-list-2--plural":"Whether there is any overdue record, etc","loancredit-repayment-methods-detail-list-2":"If you use credit card or paypal to repay, you need to pay an additional 3% payment handling fee","loancredit-repayment-methods-detail-list-2--plural":"If you use credit card or paypal to repay, you need to pay an additional 3% payment handling fee","loancredit-repayment-methods-detail-list-1":"Repayment is limited to bank transfer only","loancredit-repayment-methods-detail-list-1--plural":"Repayment is limited to bank transfer only","loancredit-rate-and-fees":"Rate and Fees","loancredit-rate-and-fees--plural":"Rate and Fees","loancredit-rate-and-fees-detail-list-2":"Due to a series of auditing and operational work involved, an additional 1% handling fee of the credit amount is required","loancredit-rate-and-fees-detail-list-2--plural":"Due to a series of auditing and operational work involved, an additional 1% handling fee of the credit amount is required","loancredit-rate-and-fees-detail-list-1":"CJ provides interest-free credits","loancredit-rate-and-fees-detail-list-1--plural":"CJ provides interest-free credits","loancredit-repayment-methods":"Repayment Methods","loancredit-repayment-methods--plural":"Repayment Methods","loancredit-credit-evaluation-criteria":"Credit Evaluation Criteria","loancredit-credit-evaluation-criteria--plural":"Credit Evaluation Criteria","loancredit-credit-period":"Credit Perio
31657d","loancredit-credit-period--plural":"Credit Period","loancredit-repayment-methods-first-content":"According to the due date of each payment, a one-time repayment of the principal, as well as the handling fee, delayed repayment, will affect your credit, and you will not be able to apply for further credits.","loancredit-repayment-methods-first-content--plural":"According to the due date of each payment, a one-time repayment of the principal, as well as the handling fee, delayed repayment, will affect your credit, and you will not be able to apply for further credits.","loancredit-credit-period-detail-list-2":"While the maximum period for payment of private inventory and bulk orders shall not exceed 75 days","loancredit-credit-period-detail-list-2--plural":"While the maximum period for payment of private inventory and bulk orders shall not exceed 75 days","loancredit-credit-period-detail-list-1":"The maximum period for payment of dropship orders shall not exceed 7 days ","loancredit-credit-period-detail-list-1--plural":"The maximum period for payment of dropship orders shall not exceed 7 days ","loancredit-credit-period-first-content":"There are different terms depending on the purpose of the credit. ","loancredit-credit-period-first-content--plural":"There are different terms depending on the purpose of the credit. ","loancredit-rate-and-fees-first-content":"This program is designed to help your company\'s development.","loancredit-rate-and-fees-first-content--plural":"This program is designed to help your company\'s development.","common-mycj-menu-temu-cooperative-warehouse":"Cooperative Warehouse","common-mycj-menu-temu-cooperative-warehouse--plural":"Cooperative Warehouse","common-mycj-menu-temu-certified-overseas":"Temu Cooperative Warehouse","common-mycj-menu-temu-certified-overseas--plural":"Temu Cooperative Warehouse","common-mycj-menu-added-products":"Added Products","common-mycj-menu-added-products--plural":"Added Products","common-mycj-menu-community":"Community","common-mycj-menu-community--plural":"Community","common-mycj-menu-brands":"Brands","common-mycj-menu-brands--plural":"Brands","common-mycj-menu-source":"Source","common-mycj-menu-elites":"Elites","paid-service-openings":"openings","paid-service-openings--plural":"openings","my-profile-shipping-new-from-all-logistics-speed":"Select the fastest available option from all shipping methods.","my-profile-shipping-new-from-all-logistics-speed--plural":"Select the fastest available option from all shipping methods.","my-profile-shipping-new-products-list-view":"Non-store products: Use the default shipping configuration in the My Products list. ","my-profile-shipping-new-products-list-view--plural":"Non-store products: Use the default shipping configuration in the My Products list. ","my-profile-shipping-new-non-store-products-use-the-default-shipping":"Non-store products: Use the default shipping configuration in the My Products list. ","my-profile-shipping-new-non-store-products-use-the-default-shipping--plural":"Non-store products: Use the default shipping configuration in the My Products list. ","my-profile-shipping-new-precedence-not-configured":"Precedence Not Configured","my-profile-shipping-new-precedence-not-configured--plural":"Precedence Not Configured","my-profile-shipping-new-store-products-use-the-default-shipping-configuration":"Store products: Use the default shipping configuration in the Store Products mapping list. ","my-profile-shipping-new-store-products-use-the-default-shipping-configuration--plural":"Store products: Use the default shipping configuration in the Store Products mapping list. ","my-profile-shipping-new-store-products-list-view":"Store products: Use the default shipping configuration in the Store Products list. ","my-profile-shipping-new-store-products-list-view--plural":"Store products: Use the default shipping configuration in the Store Products list. ","my-profile-shipping-order-fastest":"Fastest Delivery","my-profile-shipping-order-fastest--plural":"Fastest Delivery","my-profile-shipping-order-lowest-cost":"Lowest Cost","my-profile-shipping-order-lowest-cost--plural":"Lowest Cost","my-profile-shipping-new-all-default-shipping-rules-have-been-added":"All default shipping rules have been added, no default shipping rules can be added.","my-profile-shipping-new-all-default-shipping-rules-have-been-added--plural":"All default shipping rules have been added, no default shipping rules can be added.","my-profile-shipping-new-the-system-will-automatically":"The system will automatically select default shipping based on product-level configuration:","my-profile-shipping-new-the-system-will-automatically--plural":"The system will automatically select default shipping based on product-level configuration:","my-profile-shipping-new-delete-logistics":"Are you sure you want to delete this default shipping method?","my-profile-shipping-new-delete-logistics--plural":"Are you sure you want to delete this default shipping method?","my-profile-shipping-new-precedence-configured":"Precedence Configured","my-profile-shipping-new-precedence-configured--plural":"Precedence Configured","my-profile-shipping-new-from-optimized-shipping":"Select the lowest-cost available option from optimized shipping (Cost Priority).","my-profile-shipping-new-from-optimized-shipping--plural":"Select the lowest-cost available option from optimized shipping (Cost Priority).","my-profile-shipping-new-to-learn":"To learn how to configure default shipping methods, ","my-profile-shipping-new-to-learn--plural":"To learn how to configure default shipping methods, ","my-profile-shipping-new-from-custom-logistics-speed":"Select the fastest available option from the custom shipping scope.","my-profile-shipping-new-from-custom-logistics-speed--plural":"Select the fastest available option from the custom shipping scope.","my-profile-shipping-receiving-country":"Destination Country/Region","my-profile-shipping-receiving-country--plural":"Destination Country/Region","my-profile-shipping-new-shipping-methods-yet":"You haven’t set the precedence for default shipping methods yet.","my-profile-shipping-new-shipping-methods-yet--plural":"You haven’t set the precedence for default shipping methods yet.","my-profile-shipping-new-non-store-products-use-the-default-shipping-configuration":"For non-store products, use the default shipping configuration from the My Products list. ","my-profile-shipping-new-non-store-products-use-the-default-shipping-configuration--plural":"For non-store products, use the default shipping configuration from the My Products list. ","my-profile-shipping-new--level-default-shipping-configuration":"The system will automatically select the default shipping method based on the product-level default shipping configuration.","my-profile-shipping-new--level-default-shipping-configuration--plural":"The system will automatically select the default shipping method based on the product-level default shipping configuration.","my-profile-shipping-new-view":"View >","my-profile-shipping-new-view--plural":"View >","my-profile-shipping-new-use-the-default-shipping-configuration-from-the-store":"Use the default shipping configuration from the Store Products mapping list.","my-profile-shipping-new-use-the-default-shipping-configuration-from-the-store--plural":"Use the default shipping configuration from the Store Products mapping list.","my-profile-shipping-new-from-custom-logistics-rec
31657ommend":"Select the available option with the highest precedence from the custom shipping scope.","my-profile-shipping-new-from-custom-logistics-recommend--plural":"Select the available option with the highest precedence from the custom shipping scope.","my-profile-shipping-new-from-optimized-shipping-speed":"Select the fastest available option from optimized shipping (Speed Priority).","my-profile-shipping-new-from-optimized-shipping-speed--plural":"Select the fastest available option from optimized shipping (Speed Priority).","my-profile-shipping-new-deleting-failed":"Deleting Failed","my-profile-shipping-new-from-optimized-shipping-recommend":"Select the available option with the highest precedence from optimized shipping (Recommended).","my-profile-shipping-new-from-optimized-shipping-recommend--plural":"Select the available option with the highest precedence from optimized shipping (Recommended).","my-profile-shipping-new-overview":"Overview","my-profile-shipping-new-the-system-will-validate-rules":"The system will validate rules in your precedence order. Once a rule matches an available default shipping method, the result is finalized and subsequent rules will not be checked.","my-profile-shipping-new-the-system-will-validate-rules--plural":"The system will validate rules in your precedence order. Once a rule matches an available default shipping method, the result is finalized and subsequent rules will not be checked.","my-profile-shipping-new-when-multiple-pcs-quoted-logistics-exist":"If PCS quoted-rate shipping options are available for the order, the system will prioritize them. ","my-profile-shipping-new-when-multiple-pcs-quoted-logistics-exist--plural":"If PCS quoted-rate shipping options are available for the order, the system will prioritize them. ","my-profile-shipping-new-from-custom-logistics":"Select the lowest-cost available option from the custom shipping scope.","my-profile-shipping-new-from-custom-logistics--plural":"Select the lowest-cost available option from the custom shipping scope.","my-profile-shipping-new-deleted-successfully":"Deleted Successfully","my-profile-shipping-new-when-multiple-pcs-quoted-logistics-exist-tip":"If multiple PCS quoted-rate options are available, the system will automatically select the best option in the following order: “Lowest Cost → Fastest Delivery → Random”.","my-profile-shipping-new-when-multiple-pcs-quoted-logistics-exist-tip--plural":"If multiple PCS quoted-rate options are available, the system will automatically select the best option in the following order: “Lowest Cost → Fastest Delivery → Random”.","my-profile-shipping-new-the-system-will-automatically-select":"The system will automatically select the default shipping method for orders based on your configured default shipping methods and their precedence.","my-profile-shipping-new-the-system-will-automatically-select--plural":"The system will automatically select the default shipping method for orders based on your configured default shipping methods and their precedence.","my-profile-shipping-pcs-price-shipping-method":"PCS Quoted Rates","my-profile-shipping-pcs-price-shipping-method--plural":"PCS Quoted Rates","my-profile-shipping-new-precedence":"Precedence","my-profile-shipping-new-default-shipping-rule":"Default Shipping Rule","my-profile-shipping-new-default-shipping-rule--plural":"Default Shipping Rule","my-profile-shipping-new-select-the-store-platform-to-view":"Select a store platform to view >","my-profile-shipping-new-select-the-store-platform-to-view--plural":"Select a store platform to view >","my-profile-shipping-new-please-view-the-guide":"please view the guide >","my-profile-shipping-new-please-view-the-guide--plural":"please view the guide >","my-profile-shipping-new-from-all-logistics":"Select the lowest-cost available option from all shipping methods.","my-profile-shipping-new-from-all-logistics--plural":"Select the lowest-cost available option from all shipping methods.","my-profile-shipping-new-fastest-delivery-tip":"The system will prioritize the option with the fastest delivery time. If there are still multiple matches, the system will randomly select one.","my-profile-shipping-new-fastest-delivery-tip--plural":"The system will prioritize the option with the fastest delivery time. If there are still multiple matches, the system will randomly select one.","my-profile-shipping-new-lowest-cost-tip":"If multiple options share the lowest cost, compare delivery time next. The system will prioritize the option with the lowest cost and the fastest delivery time. If there are still multiple matches, the system will randomly select one.","my-profile-shipping-new-lowest-cost-tip--plural":"If multiple options share the lowest cost, compare delivery time next. The system will prioritize the option with the lowest cost and the fastest delivery time. If there are still multiple matches, the system will randomly select one.","my-profile-shipping-new-shipping-range":"Shipping Range","my-profile-shipping-new-shipping-range--plural":"Shipping Range","my-profile-common-shipping-6th":"6th","my-profile-common-shipping-6th--plural":"6th","my-profile-shipping-new-comprehe
31657nsive-recommendation":"Balance of Cost & Speed","my-profile-shipping-new-time-priority-tip":"These are speed-priority shipping methods recommended based on the destination country/region and the product’s shipping attributes.","my-profile-shipping-new-time-priority-tip--plural":"These are speed-priority shipping methods recommended based on the destination country/region and the product’s shipping attributes.","my-profile-shipping-new-enter-destination-country-region":"Enter destination country/region.","my-profile-shipping-new-enter-destination-country-region--plural":"Enter destination country/region.","my-profile-shipping-new-default-shipping-methods":"Default Shipping Methods","my-profile-shipping-new-default-shipping-methods--plural":"Default Shipping Methods","my-profile-shipping-new-logistics-options":"Shipping Methods","my-profile-shipping-new-logistics-options--plural":"Shipping Methods","shipping-add-saved-successfully":"Saved Successfully","shipping-add-please-complete-and-save-the-required":"Please complete and save the required information before saving.","shipping-add-please-complete-and-save-the-required--plural":"Please complete and save the required information before saving.","my-profile-shipping-new-cost-priority":"Cost Priority","my-profile-shipping-new-cost-priority--plural":"Cost Priority","my-profile-shipping-new-destination-country":"Destination Country/Region","my-profile-shipping-new-destination-country--plural":"Destination Country/Region","my-profile-shipping-new-clear":"Clear","shipping-add-please-select-the-dimension":"Please select a default shipping method.","shipping-add-please-select-the-dimension--plural":"Please select a default shipping method.","my-profile-shipping-new-product-logistics-attributes":"Shipping Attributes","my-profile-shipping-new-product-logistics-attributes--plural":"Shipping Attributes","my-profile-shipping-new-custom-shipping-methods-detail-set-tip":"detail rows have been set. Note: If you switch to another shipping selection scope and click “Save”, these custom settings will be cleared and must be set again next time.","my-profile-shipping-new-custom-shipping-methods-detail-set-tip--plural":"detail rows have been set. Note: If you switch to another shipping selection scope and click “Save”, these custom settings will be cleared and must be set again next time.","my-profile-shipping-new-select-logistics-attributes":"Select logistics attributes.","my-profile-shipping-new-select-logistics-attributes--plural":"Select logistics attributes.","my-profile-shipping-new-logistics-system-recommend":"Optimized Shipping","my-profile-shipping-new-logistics-system-recommend--plural":"Optimized Shipping","my-profile-shipping-new-time-priority":"Speed Priority","my-profile-shipping-new-time-priority--plural":"Speed Priority","shipping-edit-default-shipping-method":"Edit Default Shipping Method","shipping-edit-default-shipping-method--plural":"Edit Default Shipping Method","shipping-add-default-shipping-method":"Add Default Shipping Method","shipping-add-default-shipping-method--plural":"Add Default Shipping Method","my-profile-shipping-new-cost-priority-tip":"These are cost-priority shipping methods recommended based on the destination country/region and the product’s shipping attributes.","my-profile-shipping-new-cost-priority-tip--plural":"These are cost-priority shipping methods recommended based on the destination country/region and the product’s shipping attributes.","my-profile-shipping-new-you-can-set-5":"You can set up to 5 custom shipping methods.","my-profile-shipping-new-you-can-set-5--plural":"You can set up to 5 custom shipping methods.","my-profile-shipping-new-search":"Search","my-profile-shipping-new-shipping-selection-scope":"Shipping Selection Scope","my-profile-shipping-new-shipping-selection-scope--plural":"Shipping Selection Scope","my-profile-shipping-new-custom-shipping-methods-detail-set":"detail rows set.","my-profile-shipping-new-custom-shipping-methods-detail-set--plural":"detail rows set.","shipping-new-add-select-the-logistics":"Please select a shipping method.","shipping-new-add-select-the-logistics--plural":"Please select a shipping method.","my-profile-shipping-new-comprehe
31657nsive-recommendation-tip":"These are recommended shipping methods based on the destination country/region and the product’s shipping attributes.","my-profile-shipping-new-comprehensive-recommendation-tip--plural":"These are recommended shipping methods based on the destination country/region and the product’s shipping attributes.","my-profile-shipping-new-custom-shipping-methods-set":"custom shipping methods set.","my-profile-shipping-new-custom-shipping-methods-set--plural":"custom shipping methods set.","my-profile-shipping-new-select-logistics-options":"Please select a shipping method.","my-profile-shipping-new-select-logistics-options--plural":"Please select a shipping method.","my-profile-shipping-new-custom-shipping-methods-set-tip":"shipping methods have been set. Note: If you switch to another shipping selection scope and click “Save”, these custom settings will be cleared and must be set again next time.","my-profile-shipping-new-custom-shipping-methods-set-tip--plural":"shipping methods have been set. Note: If you switch to another shipping selection scope and click “Save”, these custom settings will be cleared and must be set again next time.","my-profile-shipping-new-store-products-use-the-default-shipping-configuration2":"Store Products: Using default shipping configuration from the connection list.","my-profile-shipping-new-store-products-use-the-default-shipping-configuration2--plural":"Store Products: Using default shipping configuration from the connection list.","my-profile-shipping-new-are-you-sure-you-want-to-delete-this-line-item":"Are you sure you want to delete this line item?","my-profile-shipping-new-are-you-sure-you-want-to-delete-this-line-item--plural":"Are you sure you want to delete this line item?","my-profile-shipping-new-non-store-products-use-the-default-shipping2":"Non-store products: Use the default shipping configuration in the Added Products list.","my-profile-shipping-new-non-store-products-use-the-default-shipping2--plural":"Non-store products: Use the default shipping configuration in the Added Products list.","my-profile-shipping-new-products-list-view2":"Non-store products: Use the default shipping configuration in the Added Products list.","my-profile-shipping-new-products-list-view2--plural":"Non-store products: Use the default shipping configuration in the Added Products list.","my-profile-shipping-new-non-store-products-use-the-default-shipping-configuration2":"For non-store products, use the default shipping configuration from the Added Products list.","my-profile-shipping-new-non-store-products-use-the-default-shipping-configuration2--plural":"For non-store products, use the default shipping configuration from the Added Products list.","paid-service-professional-service":"Professional Service","paid-service-professional-service--plural":"Professional Service","paid-service-time-limited-free":"Time-limited Free","paid-service-time-limited-free--plural":"Time-limited Free","common-mycj-menu-smart-website-builder":"Smart Website Builder","common-mycj-menu-smart-website-builder--plural":"Smart Website Builder","common-mycj-menu-all":"All","common-mycj-menu-others-a":"Others","common-mycj-menu-uninstalled-successfully":"Uninstalled Successfully","common-mycj-menu-uninstalled-successfully--plural":"Uninstalled Successfully","common-mycj-menu-installed":"Installed","common-mycj-menu-installed--plural":"Installed","common-mycj-menu-erp-platform":"ERP Platform","common-mycj-menu-erp-platform--plural":"ERP Platform","common-mycj-menu-installed-successfully":"Installed Successfully","common-mycj-menu-cross-border-ecommerce-platform":"Cross-Border E-commerce Platform","common-mycj-menu-cross-border-ecommerce-platform--plural":"Cross-Border E-commerce Platform","common-mycj-menu-authorization-module-upgraded-desc":"The access path has been updated, and all original features and management services are retained and optimized.","common-mycj-menu-authorization-module-upgraded-desc--plural":"The access path has been updated, and all original features and management services are retained and optimized.","common-mycj-menu-cancel":"Cancel","common-mycj-menu-notice":"Notice","common-mycj-menu-notice--plural":"Notice","common-mycj-menu-notice-content2":"This app will be removed from the Apps menu. You can reinstall it from the App Store at any time.","common-mycj-menu-notice-content2--plural":"This app will be removed from the Apps menu. You can reinstall it from the App Store at any time.","common-mycj-menu-confirm":"Confirm","common-mycj-menu-notice-content":"Are you sure you want to uninstall {{deletePlatformName}} App?","common-mycj-menu-notice-content--plural":"Are you sure you want to uninstall {{deletePlatformName}} App?","common-mycj-menu-update-notice":"Update Notice","common-mycj-menu-update-notice--plural":"Update Notice","common-mycj-menu-app-store":"App Store","common-mycj-menu-app-store--plural":"App Store","common-mycj-menu-authorization-module-upgraded":"The original \\"Authorization\\" module has been fully upgraded to the new \\"Apps\\" module.","common-mycj-menu-authorization-module-upgraded--plural":"The original \\"Authorization\\" module has been fully upgraded to the new \\"Apps\\" module.","common-mycj-menu-got-it":"Got it","agents-product-development-ready-to-bring-your-product-idea-to-life":"Ready to Bring Your Product Idea to Life?","agents-product-development-ready-to-bring-your-product-idea-to-life--plural":"Ready to Bring Your Product Idea to Life?","agents-product-development-transparent-management-desc":"Dedicated PM with weekly progress reports + online tracking portal.","agents-product-development-transparent-management-desc--plural":"Dedicated PM with weekly progress reports + online tracking portal.","agents-product-development-risk-mitigation":"Risk Mitigation","agents-product-development-risk-mitigation--plural":"Risk Mitigation","agents-product-development-process-sample-prototyping":"Sample Prototyping","agents-product-development-process-sample-prototyping--plural":"Sample Prototyping","agents-product-development-process-quality-inspection":"Quality Inspection","agents-product-development-process-mass-production":"Mass Production","agents-product-development-process-mass-production--plural":"Mass Production","agents-product-development-process-factory-sourcing":"Factory Sourcing","agents-product-development-process-factory-sourcing--plural":"Factory Sourcing","agents-product-development-transparent-management":"Transparent Management","agents-product-development-transparent-management--plural":"Transparent Management","agents-product-development-risk-mitigation-desc":"Contract review + IP protection + backup supplier protocols.","agents-product-development-risk-mitigation-desc--plural":"Contract review + IP protection + backup supplier protocols.","agents-product-development-process-product-selection-strategy":"Product Selection Strategy","agents-product-development-process-product-selection-strategy--plural":"Product Selection Strategy","agents-product-development-process-small-batch-trial-production":"Small-Batch Trial Production","agents-product-development-process-small-batch-trial-production--plural":"Small-Batch Trial Production","agents-product-development-process-market-research":"Market Research","agents-product-development-process-market-research--plural":"Market Research","agents-product-development-process-brand-customization":"Brand Customization","agents-product-development-process-brand-customization--plural":"Brand Customization","agents-product-development-get-customized-strategy":"Get customized strategy","agents-product-development-get-customized-strategy--plural":"Get customized strategy","agents-product-development-define-requirements":"Define requirements","agents-product-development-define-requirements--plural":"Define requirements","agents-product-development-global-network":"Global Network","agents-product-development-global-network--plural":"Global Network","agents-product-development-global-network-desc":"Direct access to factories in China, Southeast Asia.","agents-product-development-global-network-desc--plural":"Direct access to factories in China, Southeast Asia.","agents-product-development-contact-supply-chain-exper":"Contact Supply Chain Exper","agents-product-development-contact-supply-chain-exper--plural":"Contact Supply Chain Exper","agents-cogs-reduction-product-packaging-content-desc":"Reduce packaging and freight costs without compromising protection.","agents-cogs-reduction-product-packaging-content-desc--plural":"Reduce packaging and freight costs without compromising protection.","agents-cogs-reduction-customized-sustainable-roadmap":"Customized, Sustainable Roadmap","agents-cogs-reduction-customized-sustainable-roadmap--plural":"Customized, Sustainable Roadmap","agents-cogs-reduction-why-cogs-reduction-matter-card-3"
31657:"Production inefficiencies and suboptimal yields raising indirect costs and eroding margins.","agents-cogs-reduction-why-cogs-reduction-matter-card-3--plural":"Production inefficiencies and suboptimal yields raising indirect costs and eroding margins.","agents-cogs-reduction-why-cogs-reduction-matter-card-2":"Insufficient supplier negotiation leverage due to reliance on limited sources and no market intelligence.","agents-cogs-reduction-why-cogs-reduction-matter-card-2--plural":"Insufficient supplier negotiation leverage due to reliance on limited sources and no market intelligence.","agents-cogs-reduction-why-cogs-reduction-matter-card-1":"Lack of clear cost breakdown across materials, labor, and logistics hindering targeted savings.","agents-cogs-reduction-why-cogs-reduction-matter-card-1--plural":"Lack of clear cost breakdown across materials, labor, and logistics hindering targeted savings.","agents-cogs-reduction-why-cogs-reduction-matter-card-4":"High inventory buffers and misaligned logistics strategies leading to escalating storage and transport expenses.","agents-cogs-reduction-why-cogs-reduction-matter-card-4--plural":"High inventory buffers and misaligned logistics strategies leading to escalating storage and transport expenses.","agents-cogs-reduction-deep-industry-market-expertise":"Deep Industry & Market Expertise","agents-cogs-reduction-deep-industry-market-expertise--plural":"Deep Industry & Market Expertise","agents-cogs-reduction-bulk-purchasing":"Bulk Purchasing","agents-cogs-reduction-bulk-purchasing--plural":"Bulk Purchasing","agents-cogs-reduction-faq-2-answer":"No—our lean pack designs are pilot-tested for packing speed and drop-testing.","agents-cogs-reduction-faq-2-answer--plural":"No—our lean pack designs are pilot-tested for packing speed and drop-testing.","agents-cogs-reduction-proven-track-record-roi-focus-desc":"Clients benefit from our track record of delivering 5–15% COGS reductions within 6–12 months, ensuring tangible bottom-line impact and quick payback.","agents-cogs-reduction-proven-track-record-roi-focus-desc--plural":"Clients benefit from our track record of delivering 5–15% COGS reductions within 6–12 months, ensuring tangible bottom-line impact and quick payback.","agents-cogs-reduction-ready-to-bring-your-product-idea-to-life":"Ready to Bring Your Product Idea to Life?","agents-cogs-reduction-ready-to-bring-your-product-idea-to-life--plural":"Ready to Bring Your Product Idea to Life?","agents-cogs-reduction-define-requirements":"Define requirements","agents-cogs-reduction-define-requirements--plural":"Define requirements","agents-cogs-reduction-robust-risk-mitigation-desc":"We build early-warning systems for price volatility, supply disruptions, and currency swings—paired with contingency planning—to keep your operations steady.","agents-cogs-reduction-robust-risk-mitigation-desc--plural":"We build early-warning systems for price volatility, supply disruptions, and currency swings—paired with contingency planning—to keep your operations steady.","agents-cogs-reduction-robust-risk-mitigation":"Robust Risk Mitigation","agents-cogs-reduction-robust-risk-mitigation--plural":"Robust Risk Mitigation","agents-cogs-reduction-contact-supply-chain-exper":"Contact Supply Chain Exper","agents-cogs-reduction-contact-supply-chain-exper--plural":"Contact Supply Chain Exper","agents-cogs-reduction-end-to-end-cost-transparency":"End-to-End Cost Transparency","agents-cogs-reduction-end-to-end-cost-transparency--plural":"End-to-End Cost Transparency","agents-cogs-reduction-get-customized-strategy":"Get customized strategy","agents-cogs-reduction-get-customized-strategy--plural":"Get customized strategy","agents-cogs-reduction-production-efficiency-yield-improvement-desc":"Through lean manufacturing audits and Six Sigma principles, we help you boost line throughput and product yield—reducing scrap, rework, and indirect cost allocation.","agents-cogs-reduction-production-efficiency-yield-improvement-desc--plural":"Through lean manufacturing audits and Six Sigma principles, we help you boost line throughput and product yield—reducing scrap, rework, and indirect cost allocation.","agents-cogs-reduction-proven-track-record-roi-focus":"Proven Track Record & ROI Focus","agents-cogs-reduction-proven-track-record-roi-focus--plural":"Proven Track Record & ROI Focus","agents-cogs-reduction-bulk-purchasing-content-desc":"Unlock the best unit prices by consolidating demand.","agents-cogs-reduction-bulk-purchasing-content-desc--plural":"Unlock the best unit prices by consolidating demand.","agents-cogs-reduction-faq-1-answer":"Typical savings range from 5–20% depending on your volumes and product complexity.","agents-cogs-reduction-faq-1-answer--plural":"Typical savings range from 5–20% depending on your volumes and product complexity.","agents-cogs-reduction-customized-sustainable-roadmap-desc":"Beyond one-off savings, we create a continuous improvement blueprint—complete with governance, KPIs, and change-management support—to lock in lower COGS for the long term.","agents-cogs-reduction-customized-sustainable-roadmap-desc--plural":"Beyond one-off savings, we create a continuous improvement blueprint—complete with governance, KPIs, and change-management support—to lock in lower COGS for the long term.","agents-cogs-reduction-faq-3-answer":"We use a total landed cost model factoring in unit price, shipping, duties, quality rejects, and inventory costs.","agents-cogs-reduction-faq-3-answer--plural":"We use a total landed cost model factoring in unit price, shipping, duties, quality rejects, and inventory costs.","agents-cogs-reduction-faq-5-answer":"You’ll typically see initial savings within 6–8 weeks of kick-off (after baseline audit and pilot roll-out).","agents-cogs-reduction-faq-5-answer--plural":"You’ll typically see initial savings within 6–8 weeks of kick-off (after baseline audit and pilot roll-out).","agents-cogs-reduction-product-packaging-content-title":"Product Packaging: Lightweight, material-saving designs","agents-cogs-reduction-product-packaging-content-title--plural":"Product Packaging: Lightweight, material-saving designs","agents-cogs-reduction-product-packaging":"Product Packaging","agents-cogs-reduction-product-packaging--plural":"Product Packaging","agents-cogs-reduction-deep-industry-market-expertise-desc":"Our team combines decades of sourcing, manufacturing, and finance experience with real-time market intelligence, ensuring you always negotiate from a position of strength.","agents-cogs-reduction-deep-industry-market-expertise-desc--plural":"Our team combines decades of sourcing, manufacturing, and finance experience with real-time market intelligence, ensuring you always negotiate from a position of strength.","agents-cogs-reduction-inventory-logistics-optimization-desc":"Our experts calibrate safety-stock levels, redesign your fulfillment network, and implement dynamic routing strategies to slash warehousing and freight expenses.","agents-cogs-reduction-inventory-logistics-optimization-desc--plural":"Our experts calibrate safety-stock levels, redesign your fulfillment network, and implement dynamic routing strategies to slash warehousing and freight expenses.","agents-cogs-reduction-bulk-purchasing-highlight":"Increasing MOQ from 1,000 to 5,000 units cut unit cost from $5.00 to $4.20, saving $24,000 annually.","agents-cogs-reduction-bulk-purchasing-highlight--plural":"Increasing MOQ from 1,000 to 5,000 units cut unit cost from $5.00 to $4.20, saving $24,000 annually.","agents-cogs-reduction-product-packaging-list-2":"Material substitution: switch to high-strength recycled or compostable materials","agents-cogs-reduction-product-packaging-list-2--plural":"Material substitution: switch to high-strength recycled or compostable materials","agents-cogs-reduction-product-packaging-list-3":"Standardization: unified box sizes and protective inserts for scale efficiencies","agents-cogs-reduction-product-packaging-list-3--plural":"Standardization: unified box sizes and protective inserts for scale efficiencies","agents-cogs-reduction-end-to-end-cost-transparency-desc":"We deliver a unified platform that breaks down every cost driver—from raw materials and labor to logistics—so you can pinpoint savings opportunities with surgical precision.","agents-cogs-reduction-end-to-end-cost-transparency-desc--plural":"We deliver a unified platform that breaks down every cost driver—from raw materials and labor to logistics—so you can pinpoint savings opportunities with surgical precision.","agents-cogs-reduction-product-packaging-list-1":"Structural optimization: simulation-driven thickness and strength analysis","agents-cogs-reduction-product-packaging-list-1--plural":"Structural optimization: simulation-driven thickness and strength analysis","agents-cogs-reduction-strategic-supplier-partnerships-desc":"Leveraging our global supplier network and competitive bidding processes, we secure best-in-class partners and drive down prices without compromising quality.","agents-cogs-reduction-strategic-supplier-partnerships-desc--plural":"Leveraging our global supplier network and competitive bidding processes, we secure best-in-class partners and drive down prices without compromising quality.","agents-cogs-reduction-faq-5":"What’s the timeline to see first cost reductions?","agents-cogs-reduction-faq-5--plural":"What’s the timeline to see first cost reductions?","agents-cogs-reduction-faq-4":"Can you help with warehousing in my target market?","agents-cogs-reduction-faq-4--plural":"Can you help with warehousing in my target market?","agents-cogs-reduction-faq-3":"How do you compare multiple suppliers fairly?","agents-cogs-reduction-faq-3--plural":"How do you compare multiple suppliers fairly?","agents-cogs-reduction-faq-2":"Will new packaging slow down my fulfillment?","agents-cogs-reduction-faq-2--plural":"Will new packaging slow down my fulfillment?","agents-cogs-reduction-product-packaging-highlight":"Replacing a 500 g corrugated box with a 350 g reinfor
31657ced mailer cut packaging cost by 18% and international shipping by 12%.","agents-cogs-reduction-product-packaging-highlight--plural":"Replacing a 500 g corrugated box with a 350 g reinforced mailer cut packaging cost by 18% and international shipping by 12%.","agents-cogs-reduction-faq-1":"How much can I expect to save with bulk purchasing?","agents-cogs-reduction-faq-1--plural":"How much can I expect to save with bulk purchasing?","agents-cogs-reduction-inventory-logistics-optimization":"Inventory & Logistics Optimization","agents-cogs-reduction-inventory-logistics-optimization--plural":"Inventory & Logistics Optimization","agents-cogs-reduction-strategic-supplier-partnerships":"Strategic Supplier Partnerships","agents-cogs-reduction-strategic-supplier-partnerships--plural":"Strategic Supplier Partnerships","agents-cogs-reduction-bulk-purchasing-list-1":"Aggregate cross-SKU or cross-client orders into large POs","agents-cogs-reduction-bulk-purchasing-list-1--plural":"Aggregate cross-SKU or cross-client orders into large POs","agents-cogs-reduction-bulk-purchasing-list-2":"Negotiate annual volume agreements with floor-pricing guarantees","agents-cogs-reduction-bulk-purchasing-list-2--plural":"Negotiate annual volume agreements with floor-pricing guarantees","agents-cogs-reduction-bulk-purchasing-list-3":"Quarterly reviews to adjust commitments to actual sales","agents-cogs-reduction-bulk-purchasing-list-3--plural":"Quarterly reviews to adjust commitments to actual sales","agents-cogs-reduction-faq-4-answer":"Yes—we partner with bonded, FBA prep, and 3PL warehouses in North America, EU, and Asia.","agents-cogs-reduction-faq-4-answer--plural":"Yes—we partner with bonded, FBA prep, and 3PL warehouses in North America, EU, and Asia.","agents-cogs-reduction-production-efficiency-yield-improvement":"Production Efficiency & Yield Improvement","agents-cogs-reduction-production-efficiency-yield-improvement--plural":"Production Efficiency & Yield Improvement","agents-cogs-reduction-bulk-purchasing-content-title":"Bulk Purchasing: Leverage volume discounts and tiered pricing","agents-cogs-reduction-bulk-purchasing-content-title--plural":"Bulk Purchasing: Leverage volume discounts and tiered pricing","common-mycj-menu-authorization-new":"Apps","common-mycj-menu-authorization-new--plural":"Apps","agents-cogs-reduction-step-3":"Step 3","agents-cogs-reduction-warehousing-logistics-content-title":"Warehousing & Logistics: Strategic network design for lowest total cost","agents-cogs-reduction-warehousing-logistics-content-title--plural":"Warehousing & Logistics: Strategic network design for lowest total cost","agents-cogs-reduction-step-2":"Step 2","agents-cogs-reduction-step-4":"Step 4","agents-cogs-reduction-step-4--plural":"Step 4","agents-cogs-reduction-step-1":"Step 1","agents-faster-order-fulfillment-our-integrated-approach":"Our Integrated Faster Order Fulfillment Approach","agents-faster-order-fulfillment-our-integrated-approach--plural":"Our Integrated Faster Order Fulfillment Approach","agents-cogs-reduction-desc-1":"Audit your current spend, volumes & packaging specs.","agents-cogs-reduction-desc-1--plural":"Audit your current spend, volumes & packaging specs.","agents-cogs-reduction-desc-2":"Develop bulk-buy plans, pack redesigns & sourcing scorecards.","agents-cogs-reduction-desc-2--plural":"Develop bulk-buy plans, pack redesigns & sourcing scorecards.","agents-cogs-reduction-desc-3":"Negotiate contracts, pilot new packaging, onboard warehouses.","agents-cogs-reduction-desc-3--plural":"Negotiate contracts, pilot new packaging, onboard warehouses.","agents-cogs-reduction-desc-4":"Monitor KPIs, renegotiate, and deploy incremental savings.","agents-cogs-reduction-desc-4--plural":"Monitor KPIs, renegotiate, and deploy incremental savings.","agents-cogs-reduction-supplier-comparison":"Supplier Comparison","agents-cogs-reduction-supplier-comparison--plural":"Supplier Comparison","agents-cogs-reduction-warehousing-logistics-content-desc":"Optimize inventory placement and transport modes to minimize fees and duties.","agents-cogs-reduction-warehousing-logistics-content-desc--plural":"Optimize inventory placement and transport modes to minimize fees and duties.","agents-cogs-reduction-title-2":"Strategy Design","agents-cogs-reduction-title-2--plural":"Strategy Design","agents-cogs-reduction-title-3":"Implementation","agents-cogs-reduction-title-3--plural":"Implementation","agents-cogs-reduction-title-4":"Continuous Improvement","agents-cogs-reduction-title-4--plural":"Continuous Improvement","agents-faster-order-fulfillment-problems":"Problems","agents-faster-order-fulfillment-problems--plural":"Problems","agents-cogs-reduction-supplier-comparison-highlight":"Quarterly bidding among Factories A/B/C selected Factory B’s offer, reducing total sourcing cost by 7% while holding defect rates under 1%.","agents-cogs-reduction-supplier-comparison-highlight--plural":"Quarterly bidding among Factories A/B/C selected Factory B’s offer, reducing total sourcing cost by 7% while holding defect rates under 1%.","agents-cogs-reduction-title-1":"Discovery & Data Gathering","agents-cogs-reduction-title-1--plural":"Discovery & Data Gathering","agents-cogs-reduction-warehousing-logistics-list-2":"Multi-modal shipping: sea, air, and rail combinations for best cost/speed mix","agents-cogs-reduction-warehousing-logistics-list-2--plural":"Multi-modal shipping: sea, air, and rail combinations for best cost/speed mix","agents-cogs-reduction-warehousing-logistics-list-1":"Regional hubs: consignment or bonded warehouses in North America, Europe, and APAC","agents-cogs-reduction-warehousing-logistics-list-1--plural":"Regional hubs: consignment or bonded warehouses in North America, Europe, and APAC","agents-cogs-reduction-warehousing-logistics-list-3":"Dynamic allocation: real-time order routing to the closest fulfillment center","agents-cogs-reduction-warehousing-logistics-list-3--plural":"Dynamic allocation: real-time order routing to the closest fulfillment center","agents-cogs-reduction-supplier-comparison-content-title":"Supplier Comparison: Competitive sourcing with ongoing benchmarking","agents-cogs-reduction-supplier-comparison-content-title--plural":"Supplier Comparison: Competitive sourcing with ongoing benchmarking","agents-faster-order-fulfillment-supply-chain-delays-desc":"Long supplier lead times, production bottlenecks, QC issues, logistics congestion, and customs delays make order delivery unpredictable.","agents-faster-order-fulfillment-supply-chain-delays-desc--plural":"Long supplier lead times, production bottlenecks, QC issues, logistics congestion, and customs delays make order delivery unpredictable.","agents-cogs-reduction-supplier-comparison-list-3":"Internal reverse-auction process to keep vendors sharp","agents-cogs-reduction-supplier-comparison-list-3--plural":"Internal reverse-auction process to keep vendors sharp","agents-cogs-reduction-supplier-comparison-list-1":"Solicit at least three bids per SKU from diverse factories","agents-cogs-reduction-supplier-comparison-list-1--plural":"Solicit at least three bids per SKU from diverse factories","agents-cogs-reduction-supplier-comparison-list-2":"Scorecard evaluation by lead time, quality, and service, updated quarterly","agents-cogs-reduction-supplier-comparison-list-2--plural":"Scorecard evaluation by lead time, quality, and service, updated quarterly","agents-cogs-reduction-warehousing-logistics-highlight":"Opening bonded warehouses in Germany and the U.S. (combined €5,000/mo.) saved an average of €2.20 per order in shipping and VAT—over €50,000 annually.","agents-cogs-reduction-warehousing-logistics-highlight--plural":"Opening bonded warehouses in Germany and the U.S. (combined €5,000/mo.) saved an average of €2.20 per order in shipping and VAT—over €50,000 annually.","agents-faster-order-fulfillment-our-integrated-approach-desc":"We tackle fulfillment delays at every critical stage through proactive management and expert local execution—from sourcing and stocking to labeling and last-mile delivery.","agents-faster-order-fulfillment-our-integrated-approach-desc--plural":"We tackle fulfillment delays at every critical stage through proactive management and expert local execution—from sourcing and stocking to labeling and last-mile delivery.","agents-faster-order-fulfillment-inventory-cash-flow-pressure-desc":"Inaccurate forecasting, slow turnover, and high overseas warehousing costs tie up cash and hurt margins.","agents-faster-order-fulfillment-inventory-cash-flow-pressure-desc--plural":"Inaccurate forecasting, slow turnover, and high overseas warehousing costs tie up cash and hurt margins.","agents-faster-order-fulfillment-your-benefits-desc":"Significantly reduced lead times, improved inventory efficie
31657ncy, lower carrying costs, and enhanced customer satisfaction.","agents-faster-order-fulfillment-your-benefits-desc--plural":"Significantly reduced lead times, improved inventory efficiency, lower carrying costs, and enhanced customer satisfaction.","agents-cogs-reduction-supplier-comparison-content-desc":"Maintain a competitive supply base for the best price-quality balance.","agents-cogs-reduction-supplier-comparison-content-desc--plural":"Maintain a competitive supply base for the best price-quality balance.","agents-faster-order-fulfillment-supply-chain-delays":"Supply Chain Delays","agents-faster-order-fulfillment-supply-chain-delays--plural":"Supply Chain Delays","agents-faster-order-fulfillment-inventory-cash-flow-pressure":"Inventory & Cash Flow Pressure","agents-faster-order-fulfillment-inventory-cash-flow-pressure--plural":"Inventory & Cash Flow Pressure","agents-cogs-reduction-warehousing-logistics":"Warehousing & Logistics","agents-cogs-reduction-warehousing-logistics--plural":"Warehousing & Logistics","agents-faster-order-fulfillment-your-benefits":"Your Benefits","agents-faster-order-fulfillment-your-benefits--plural":"Your Benefits","product-warehouse-video":"Warehouse Operation Video","product-warehouse-video--plural":"Warehouse Operation Video","product-packing-video":"Packing Video","product-packing-video--plural":"Packing Video","product-quality-check-video":"Quality Check Video","product-quality-check-video--plural":"Quality Check Video","common-mycj-menu-sales-orders":"Sales Orders","common-mycj-menu-sales-orders--plural":"Sales Orders","common-mycj-menu-credit-service":"Credit Service","common-mycj-menu-credit-service--plural":"Credit Service","common-mycj-menu-affiliate":"Affiliate","common-export-list":"Export List","common-top-search-search-zesty-tip":"Search winning products by keywords/SKU","common-top-search-search-zesty-tip--plural":"Search winning products by keywords/SKU","paid-service-openings-tooltip":"Limited availability — only {{remainingServingCustomerNum}} spots remaining.","paid-service-openings-tooltip--plural":"Limited availability — only {{remainingServingCustomerNum}} spots remaining.","common-mycj-menu-catalog":"Catalog","common-mycj-menu-catalog--plural":"Catalog","common-mycj-menu-tracking":"Tracking","common-mycj-menu-tracking--plural":"Tracking","common-mycj-menu-my-upsell":"My Upsell","common-mycj-menu-my-upsell--plural":"My Upsell","agents-faster-order-fulfillment-what-we-solve":"What We Solve","agents-faster-order-fulfillment-what-we-solve--plural":"What We Solve","agents-faster-order-fulfillment-schedule-your-free-fulfillment-audits":"Schedule Your Free Fulfillment Audits","agents-faster-order-fulfillment-schedule-your-free-fulfillment-audits--plural":"Schedule Your Free Fulfillment Audits","agents-faster-order-fulfillment-stock-readiness-what-we-solve-desc":"Delays in stock-in status updates prevent timely responses to urgent or replenishment orders.","agents-faster-order-fulfillment-stock-readiness-what-we-solve-desc--plural":"Delays in stock-in status updates prevent timely responses to urgent or replenishment orders.","agents-faster-order-fulfillment-fulfillment-efficiency-gain-1":"On-Time Delivery (OTD) improved by 30%+","agents-faster-order-fulfillment-fulfillment-efficiency-gain-1--plural":"On-Time Delivery (OTD) improved by 30%+","agents-faster-order-fulfillment-fulfillment-efficiency-gain-2":"Order cycle times reduced by 20–50%","agents-faster-order-fulfillment-fulfillment-efficiency-gain-2--plural":"Order cycle times reduced by 20–50%","agents-faster-order-fulfillment-stock-readiness-how-1":"Advance notice: Require factories to confirm finished goods ready dates","agents-faster-order-fulfillment-stock-readiness-how-1--plural":"Advance notice: Require factories to confirm finished goods ready dates","agents-faster-order-fulfillment-stock-readiness-how-2":"Real-time sync: Confirm packaging, labeling, and docs immediately upon stock-in","agents-faster-order-fulfillment-stock-readiness-how-2--plural":"Real-time sync: Confirm packaging, labeling, and docs immediately upon stock-in","agents-faster-order-fulfillment-subscription ":"Subscription ","agents-faster-order-fulfillment-subscription --plural":"Subscription ","agents-faster-order-fulfillment-ready-to-transform-your-order-fulfillment-speed":"Ready to Transform Your Order Fulfillment Speed?","agents-faster-order-fulfillment-ready-to-transform-your-order-fulfillment-speed--plural":"Ready to Transform Your Order Fulfillment Speed?","agents-faster-order-fulfillment-stock-readiness":"Stock Readiness","agents-faster-order-fulfillment-stock-readiness--plural":"Stock Readiness","agents-faster-order-fulfillment-fulfillment-efficiency-how-3":"Rapid issue handling: On-site resolution for material/process delays","agents-faster-order-fulfillment-fulfillment-efficiency-how-3--plural":"Rapid issue handling: On-site resolution for material/process delays","agents-faster-order-fulfillment-fulfillment-efficiency-how-2":"Smart scheduling: Strict and optimized production timelines","agents-faster-order-fulfillment-fulfillment-efficiency-how-2--plural":"Smart scheduling: Strict and optimized production timelines","agents-faster-order-fulfillment-fulfillment-efficiency-how-1":"Local coordination: Real-time communication with factories","agents-faster-order-fulfillment-fulfillment-efficiency-how-1--plural":"Local coordination: Real-time communication with factories","agents-faster-order-fulfillment-your-speed-gain":"Your Speed Gain","agents-faster-order-fulfillment-your-speed-gain--plural":"Your Speed Gain","agents-faster-order-fulfillment-fulfillment-efficiency-what-we-solve-desc":"Slow supplier response, poor production planning, lack of process visibility, and communication delays cause prolonged lead times.","agents-faster-order-fulfillment-fulfillment-efficiency-what-we-solve-desc--plural":"Slow supplier response, poor production planning, lack of process visibility, and communication delays cause prolonged lead times.","agents-faster-order-fulfillment-how-we-accelerate-it":"How We Accelerate It","agents-faster-order-fulfillment-how-we-accelerate-it--plural":"How We Accelerate It","agents-faster-order-fulfillment-fulfillment-efficiency":"Fulfillment Efficiency","agents-faster-order-fulfillment-fulfillment-efficiency--plural":"Fulfillment Efficiency","agents-faster-order-fulfillment-inventory-timeliness-gain-1":"Inventory turnover improved by 15–40%","agents-faster-order-fulfillment-inventory-timeliness-gain-1--plural":"Inventory turnover improved by 15–40%","agents-faster-order-fulfillment-inventory-timeliness-gain-2":"Stockout r
31657isk reduced by 60%","agents-faster-order-fulfillment-inventory-timeliness-gain-2--plural":"Stockout risk reduced by 60%","agents-faster-order-fulfillment-pre-set-packaging-what-we-solve-desc":"Non-standard packaging, label errors, and missing compliance marks cause rework or customs delays.","agents-faster-order-fulfillment-pre-set-packaging-what-we-solve-desc--plural":"Non-standard packaging, label errors, and missing compliance marks cause rework or customs delays.","agents-faster-order-fulfillment-process-logistics-mode-selection-subtitle":"Multimodal Shipping","agents-faster-order-fulfillment-process-logistics-mode-selection-subtitle--plural":"Multimodal Shipping","agents-faster-order-fulfillment-process-packaging-pre-check":"Packaging Pre-Check","agents-faster-order-fulfillment-process-packaging-pre-check--plural":"Packaging Pre-Check","agents-faster-order-fulfillment-on-ground-presence":"On-Ground Presence","agents-faster-order-fulfillment-on-ground-presence--plural":"On-Ground Presence","agents-faster-order-fulfillment-process-customs-preparation":"Customs Preparation","agents-faster-order-fulfillment-process-customs-preparation--plural":"Customs Preparation","agents-faster-order-fulfillment-process-production-monitoring":"Production Monitoring","agents-faster-order-fulfillment-process-production-monitoring--plural":"Production Monitoring","agents-faster-order-fulfillment-process-supplier-response-subtitle":"Fulfillment Efficiency","agents-faster-order-fulfillment-process-supplier-response-subtitle--plural":"Fulfillment Efficiency","agents-faster-order-fulfillment-end-to-end-visibility-desc":"Single-pane dashboard controls the full process.","agents-faster-order-fulfillment-end-to-end-visibility-desc--plural":"Single-pane dashboard controls the full process.","agents-faster-order-fulfillment-customs-fast-track-gain-1":"Clearance time cut by 40–70%","agents-faster-order-fulfillment-customs-fast-track-gain-1--plural":"Clearance time cut by 40–70%","agents-faster-order-fulfillment-deep-customs-compliance-expertise":"Deep Customs & Compliance Expertise","agents-faster-order-fulfillment-deep-customs-compliance-expertise--plural":"Deep Customs & Compliance Expertise","agents-faster-order-fulfillment-customs-fast-track-gain-2":"Inspection rate significantly below industry average","agents-faster-order-fulfillment-customs-fast-track-gain-2--plural":"Inspection rate significantly below industry average","agents-faster-order-fulfillment-inventory-timeliness-how-1":"Demand-driven forecasting: Inventory plans based on sales data","agents-faster-order-fulfillment-inventory-timeliness-how-1--plural":"Demand-driven forecasting: Inventory plans based on sales data","agents-faster-order-fulfillment-inventory-timeliness-how-2":"Flexible production: Enable small-batch or late-stage differentiation","agents-faster-order-fulfillment-inventory-timeliness-how-2--plural":"Flexible production: Enable small-batch or late-stage differentiation","agents-faster-order-fulfillment-inventory-timeliness-how-3":"Aging alerts: Monitor and flag slow-moving inventory","agents-faster-order-fulfillment-inventory-timeliness-how-3--plural":"Aging alerts: Monitor and flag slow-moving inventory","agents-faster-order-fulfillment-process-stock-in-confirmation":"Stock-In Confirmation","agents-faster-order-fulfillment-process-stock-in-confirmation--plural":"Stock-In Confirmation","agents-faster-order-fulfillment-inventory-timeliness":"Inventory Timeliness","agents-faster-order-fulfillment-inventory-timeliness--plural":"Inventory Timeliness","agents-faster-order-fulfillment-process-production-monitoring-subtitle":"Fulfillment Efficiency","agents-faster-order-fulfillment-process-production-monitoring-subtitle--plural":"Fulfillment Efficiency","agents-faster-order-fulfillment-process-logistics-mode-selection":"Logistics Mode Selection","agents-faster-order-fulfillment-process-logistics-mode-selection--plural":"Logistics Mode Selection","agents-faster-order-fulfillment-pre-set-packaging":"Pre-set Packaging","agents-faster-order-fulfillment-pre-set-packaging--plural":"Pre-set Packaging","agents-faster-order-fulfillment-customs-fast-track-how-2":"Early declaration & local support: Advance filing + local brokerage","agents-faster-order-fulfillment-customs-fast-track-how-2--plural":"Early declaration & local support: Advance filing + local brokerage","agents-faster-order-fulfillment-customs-fast-track-how-1":"Accurate documentation: One-shot clearance readiness","agents-faster-order-fulfillment-customs-fast-track-how-1--plural":"Accurate documentation: One-shot clearance readiness","agents-faster-order-fulfillment-multimodal-shipping-what-we-solve-desc":"Limited transport modes, cost-time imbalances, inefficient handoffs, and no fallback options for disruptions.","agents-faster-order-fulfillment-multimodal-shipping-what-we-solve-desc--plural":"Limited transport modes, cost-time imbalances, inefficient handoffs, and no fallback options for disruptions.","agents-faster-order-fulfillment-process-inventory-threshold-alert-subtitle":"Inventory Timeliness","agents-faster-order-fulfillment-process-inventory-threshold-alert-subtitle--plural":"Inventory Timeliness","agents-faster-order-fulfillment-process-supplier-response":"Supplier Response","agents-faster-order-fulfillment-process-supplier-response--plural":"Supplier Response","agents-faster-order-fulfillment-stock-readiness-gain-1":"Urgent order response time reduced by 70%","agents-faster-order-fulfillment-stock-readiness-gain-1--plural":"Urgent order response time reduced by 70%","agents-faster-order-fulfillment-stock-readiness-how-3":"Ship-ready coordination: Align with carriers to ensure transport readiness","agents-faster-order-fulfillment-stock-readiness-how-3--plural":"Ship-ready coordination: Align with carriers to ensure transport readiness","agents-faster-order-fulfillment-pre-set-packaging-how-3":"Barcode/label templates: Centralized approved format library","agents-faster-order-fulfillment-pre-set-packaging-how-3--plural":"Barcode/label templates: Centralized approved format library","agents-faster-order-fulfillment-pre-set-packaging-gain-1":"99% of label/packaging delays eliminated","agents-faster-order-fulfillment-pre-set-packaging-gain-1--plural":"99% of label/packaging delays eliminated","agents-faster-order-fulfillment-pre-set-packaging-how-2":"Pre-shipment check: 100% inspection for compliance","agents-faster-order-fulfillment-pre-set-packaging-how-2--plural":"Pre-shipment check: 100% inspection for compliance","agents-faster-order-fulfillment-pre-set-packaging-gain-2":"100% immediate receipt rate at destination warehouse","agents-faster-order-fulfillment-pre-set-packaging-gain-2--plural":"100% immediate receipt rate at destination warehouse","agents-faster-order-fulfillment-stock-readiness-gain-2":"Effective inventory availability >95%","agents-faster-order-fulfillment-stock-readiness-gain-2--plural":"Effective inventory availability >95%","agents-faster-order-fulfillment-pre-set-packaging-how-1":"SOPs for packaging/labeling: Standardized and pre-approved","agents-faster-order-fulfillment-pre-set-packaging-how-1--plural":"SOPs for packaging/labeling: Standardized and pre-approved","agents-faster-order-fulfillment-proactive-vs-reactive":"Proactive vs. Reactive","agents-faster-order-fulfillment-proactive-vs-reactive--plural":"Proactive vs. Reactive","agents-faster-order-fulfillment-end-to-end-visibility":"End-to-End Visibility","agents-faster-order-fulfillment-end-to-end-visibility--plural":"End-to-End Visibility","agents-faster-order-fulfillment-process-cu
31657stoms-preparation-subtitle":"Customs Fast-Track","agents-faster-order-fulfillment-process-customs-preparation-subtitle--plural":"Customs Fast-Track","agents-faster-order-fulfillment-multimodal-shipping-how-1":"Route optimization: Best mode/cost/time configuration","agents-faster-order-fulfillment-multimodal-shipping-how-1--plural":"Route optimization: Best mode/cost/time configuration","agents-faster-order-fulfillment-multimodal-shipping-how-2":"Seamless multimodal execution: Air-sea, rail-road coordination","agents-faster-order-fulfillment-multimodal-shipping-how-2--plural":"Seamless multimodal execution: Air-sea, rail-road coordination","agents-faster-order-fulfillment-faq-3-answer":"Yes. We dynamically route orders via the optimal mix of air, sea, rail, and ground transport to balance speed and cost for large or heavy SKUs.","agents-faster-order-fulfillment-faq-3-answer--plural":"Yes. We dynamically route orders via the optimal mix of air, sea, rail, and ground transport to balance speed and cost for large or heavy SKUs.","agents-faster-order-fulfillment-faq-4-answer":"We pre-configure your branded packaging—boxes, mailers, inserts, and compliance labels—at origin so orders ship retail-ready without extra handling.","agents-faster-order-fulfillment-faq-4-answer--plural":"We pre-configure your branded packaging—boxes, mailers, inserts, and compliance labels—at origin so orders ship retail-ready without extra handling.","agents-faster-order-fulfillment-faq-1-answer":"A turnkey solution that accelerates every step of your e-commerce order cycle—from order receipt through pick-pack to final delivery—using automation, strategic inventory placement, and expedited logistics.","agents-faster-order-fulfillment-faq-1-answer--plural":"A turnkey solution that accelerates every step of your e-commerce order cycle—from order receipt through pick-pack to final delivery—using automation, strategic inventory placement, and expedited logistics.","agents-faster-order-fulfillment-faq-2-answer":"Our real-time inventory management system syncs stock levels across supplier, warehouse, and storefront platforms to prevent oversells and backorders.","agents-faster-order-fulfillment-faq-2-answer--plural":"Our real-time inventory management system syncs stock levels across supplier, warehouse, and storefront platforms to prevent oversells and backorders.","agents-faster-order-fulfillment-faq-5-answer":"We pre-file all HS codes and duties, enroll in IOSS or other fast-track programs, and partner with dedicated brokers to cut clearance from days to hours.","agents-faster-order-fulfillment-faq-5-answer--plural":"We pre-file all HS codes and duties, enroll in IOSS or other fast-track programs, and partner with dedicated brokers to cut clearance from days to hours.","agents-faster-order-fulfillment-faq-6-answer":"Simply book a free fulfillment audit. We’ll assess your current workflow, map out improvement opportunities, and deliver a tailored implementation plan.","agents-faster-order-fulfillment-faq-6-answer--plural":"Simply book a free fulfillment audit. We’ll assess your current workflow, map out improvement opportunities, and deliver a tailored implementation plan.","agents-faster-order-fulfillment-process-inventory-threshold-alert":"Inventory Threshold Alert","agents-faster-order-fulfillment-process-inventory-threshold-alert--plural":"Inventory Threshold Alert","agents-faster-order-fulfillment-process-packaging-pre-check-subtitle":"Pre-set Packaging","agents-faster-order-fulfillment-process-packaging-pre-check-subtitle--plural":"Pre-set Packaging","agents-faster-order-fulfillment-multimodal-shipping-gain-1":"Total logistics cost reduced by 10–25%","agents-faster-order-fulfillment-multimodal-shipping-gain-1--plural":"Total logistics cost reduced by 10–25%","agents-faster-order-fulfillment-proactive-vs-reactive-desc":"Anticipatory issue management—not just firefighting.","agents-faster-order-fulfillment-proactive-vs-reactive-desc--plural":"Anticipatory issue management—not just firefighting.","agents-faster-order-fulfillment-deep-customs-compliance-expertise-desc":"Safeguards against regulatory changes.","agents-faster-order-fulfillment-deep-customs-compliance-expertise-desc--plural":"Safeguards against regulatory changes.","agents-faster-order-fulfillment-supplier-network-leverage":"Supplier Network & Leverage","agents-faster-order-fulfillment-supplier-network-leverage--plural":"Supplier Network & Leverage","agents-faster-order-fulfillment-multimodal-shipping":"Multimodal Shipping","agents-faster-order-fulfillment-multimodal-shipping--plural":"Multimodal Shipping","agents-faster-order-fulfillment-process-stock-in-confirmation-subtitle":"Stock Readiness","agents-faster-order-fulfillment-process-stock-in-confirmation-subtitle--plural":"Stock Readiness","agents-faster-order-fulfillment-on-ground-presence-desc":"Local teams on the ground, direct management.","agents-faster-order-fulfillment-on-ground-presence-desc--plural":"Local teams on the ground, direct management.","agents-faster-order-fulfillment-inventory-timeliness-what-we-solve-desc":"Understocking causes lost sales, overstock ties up capital, and aging inventory risks obsolescence.","agents-faster-order-fulfillment-inventory-timeliness-what-we-solve-desc--plural":"Understocking causes lost sales, overstock ties up capital, and aging inventory risks obsolescence.","agents-faster-order-fulfillment-process-delivery-confirmation":"Delivery Confirmation","agents-faster-order-fulfillment-process-delivery-confirmation--plural":"Delivery Confirmation","agents-faster-order-fulfillment-customs-fast-track-what-we-solve-desc":"Long document prep time, high inspection rates, HS code disputes, and missed FTA benef
31657its cause clearance delays.","agents-faster-order-fulfillment-customs-fast-track-what-we-solve-desc--plural":"Long document prep time, high inspection rates, HS code disputes, and missed FTA benefits cause clearance delays.","agents-faster-order-fulfillment-multimodal-shipping-gain-2":"Urgency fluctuation range cut by 50%","agents-faster-order-fulfillment-multimodal-shipping-gain-2--plural":"Urgency fluctuation range cut by 50%","agents-faster-order-fulfillment-customs-fast-track":"Customs Fast-Track","agents-faster-order-fulfillment-customs-fast-track--plural":"Customs Fast-Track","agents-faster-order-fulfillment-process-demand-confirmation":"Demand Confirmation","agents-faster-order-fulfillment-process-demand-confirmation--plural":"Demand Confirmation","agents-faster-order-fulfillment-process-shipment-clearance":"Shipment & Clearance","agents-faster-order-fulfillment-process-shipment-clearance--plural":"Shipment & Clearance","agents-faster-order-fulfillment-faq-1":"What is \\"Faster Order Fulfillment\\"?","agents-faster-order-fulfillment-faq-1--plural":"What is \\"Faster Order Fulfillment\\"?","agents-faster-order-fulfillment-faq-2":"How do you handle inventory synchronization?","agents-faster-order-fulfillment-faq-2--plural":"How do you handle inventory synchronization?","agents-faster-order-fulfillment-faq-3":"Can you support multimodal shipping for bulky or heavy items?","agents-faster-order-fulfillment-faq-3--plural":"Can you support multimodal shipping for bulky or heavy items?","agents-faster-order-fulfillment-faq-4":"What packaging options are available?","agents-faster-order-fulfillment-faq-4--plural":"What packaging options are available?","agents-faster-order-fulfillment-faq-5":"How do you accelerate customs clearance?","agents-faster-order-fulfillment-faq-5--plural":"How do you accelerate customs clearance?","agents-faster-order-fulfillment-faq-6":"How do I get started with your service?","agents-faster-order-fulfillment-faq-6--plural":"How do I get started with your service?","agents-faster-order-fulfillment-multimodal-shipping-how-3":"Key milestone tracking: Full shipment visibility","agents-faster-order-fulfillment-multimodal-shipping-how-3--plural":"Key milestone tracking: Full shipment visibility","agents-faster-order-fulfillment-supplier-network-leverage-desc":"Deep supplier relationships for priority access.","agents-faster-order-fulfillment-supplier-network-leverage-desc--plural":"Deep supplier relationships for priority access.","shipping-add-set-up-30-default":"Set up to 30 default logistics options for one country.","shipping-add-set-up-30-default--plural":"Set up to 30 default logistics options for one country.","my-profile-shipping-new-you-can-set-30":"You can set up to 30 custom shipping methods.","my-profile-shipping-new-you-can-set-30--plural":"You can set up to 30 custom shipping methods.","agents-shorten-delivery-time-faq-4-answer":"AI-driven demand forecasting triggers automatic replenishment orders to regional hubs before buffer stocks fall below predefined thresholds.","agents-shorten-delivery-time-faq-4-answer--plural":"AI-driven demand forecasting triggers automatic replenishment orders to regional hubs before buffer stocks fall below predefined thresholds.","agents-shorten-delivery-time-faq-5-answer":"Key metrics include average delivery time, OTIF (On-Time In-Full) rate, expedite-cost reduction, and inventory turnover—tracked via a live dashboard with monthly reporting.","agents-shorten-delivery-time-faq-5-answer--plural":"Key metrics include average delivery time, OTIF (On-Time In-Full) rate, expedite-cost reduction, and inventory turnover—tracked via a live dashboard with monthly reporting.","agents-shorten-delivery-time-process-safety-stock-replenishment":"Safety Stock Replenishment","agents-shorten-delivery-time-process-safety-stock-replenishment--plural":"Safety Stock Replenishment","agents-shorten-delivery-time-faq-2-answer":"Our dedicated account specialists guarantee PO acknowledgment and price lock-in within one business hour, ensuring production can start immediately.","agents-shorten-delivery-time-faq-2-answer--plural":"Our dedicated account specialists guarantee PO acknowledgment and price lock-in within one business hour, ensuring production can start immediately.","agents-shorten-delivery-time-optimized-multimodal-logistics-desc":"Intelligent routing blends air, sea, rail, and courier networks, paired with pre-cleared customs lanes (IOSS/VIES), for predictable 3-7 day deliveries at competitive costs.","agents-shorten-delivery-time-optimized-multimodal-logistics-desc--plural":"Intelligent routing blends air, sea, rail, and courier networks, paired with pre-cleared customs lanes (IOSS/VIES), for predictable 3-7 day deliveries at competitive costs.","agents-shorten-delivery-time-gold-level-account-manager-desc":"Your personal logistics and sourcing expert—proactively monitoring every order, anticipating issues before they arise, and coordinating cross-functional teams on your behalf.","agents-shorten-delivery-time-gold-level-account-manager-desc--plural":"Your personal logistics and sourcing expert—proactively monitoring every order, anticipating issues before they arise, and coordinating cross-functional teams on your behalf.","agents-shorten-delivery-time-faq-2":"How does supplier response acceleration work?","agents-shorten-delivery-time-faq-2--plural":"How does supplier response acceleration work?","agents-shorten-delivery-time-faq-3":"What is involved in your logistics optimization?","agents-shorten-delivery-time-faq-3--plural":"What is involved in your logistics optimization?","agents-shorten-delivery-time-faq-4":"How does s
31657afety stock management prevent stockouts?","agents-shorten-delivery-time-faq-4--plural":"How does safety stock management prevent stockouts?","agents-shorten-delivery-time-faq-5":"How do you measure success?","agents-shorten-delivery-time-faq-5--plural":"How do you measure success?","agents-shorten-delivery-time-process-fast-track-production":"Fast-Track Production","agents-shorten-delivery-time-process-fast-track-production--plural":"Fast-Track Production","agents-shorten-delivery-time-faq-1":"What is your Faster Order Fulfillment service?","agents-shorten-delivery-time-faq-1--plural":"What is your Faster Order Fulfillment service?","agents-shorten-delivery-time-cost-effective-scalability":"Cost-Effective Scalability","agents-shorten-delivery-time-cost-effective-scalability--plural":"Cost-Effective Scalability","agents-shorten-delivery-time-schedule-your-free-fulfillment-audits":"Schedule Your Free Fulfillment Audits","agents-shorten-delivery-time-schedule-your-free-fulfillment-audits--plural":"Schedule Your Free Fulfillment Audits","agents-shorten-delivery-time-faq-1-answer":"A turnkey solution that accelerates order processing end-to-end—covering rapid supplier response, expedited production, optimized logistics, and dynamic stock management.","agents-shorten-delivery-time-faq-1-answer--plural":"A turnkey solution that accelerates order processing end-to-end—covering rapid supplier response, expedited production, optimized logistics, and dynamic stock management.","agents-shorten-delivery-time-gold-level-account-manager":"Gold-Level Account Manager","agents-shorten-delivery-time-gold-level-account-manager--plural":"Gold-Level Account Manager","agents-shorten-delivery-time-process-order-placed":"Order Placed","agents-shorten-delivery-time-process-order-placed--plural":"Order Placed","agents-shorten-delivery-time-ready-to-transform-your-order-fulfillment-speed":"Ready to Transform Your Order Fulfillment Speed?","agents-shorten-delivery-time-ready-to-transform-your-order-fulfillment-speed--plural":"Ready to Transform Your Order Fulfillment Speed?","agents-shorten-delivery-time-process-multimodal-shipment":"Multimodal Shipment","agents-shorten-delivery-time-process-multimodal-shipment--plural":"Multimodal Shipment","agents-shorten-delivery-time-process-supplier-confirmation":"Supplier Confirmation","agents-shorten-delivery-time-process-supplier-confirmation--plural":"Supplier Confirmation","agents-shorten-delivery-time-cost-effective-scalability-desc":"Avoid costly last-minute air-freight surges—our proactive planning and diversified transport modes reduce expedite expenses by up to 30%.","agents-shorten-delivery-time-cost-effective-scalability-desc--plural":"Avoid costly last-minute air-freight surges—our proactive planning and diversified transport modes reduce expedite expenses by up to 30%.","agents-shorten-delivery-time-faq-3-answer":"We employ a multimodal strategy (air, sea, rail, courier) combined with pre-cleared customs lanes (IOSS/VIES) to deliver the fastest, most cost-effective routes.","agents-shorten-delivery-time-faq-3-answer--plural":"We employ a multimodal strategy (air, sea, rail, courier) combined with pre-cleared customs lanes (IOSS/VIES) to deliver the fastest, most cost-effective routes.","agents-shorten-delivery-time-subscription":"Subscription","agents-shorten-delivery-time-subscription--plural":"Subscription","agents-shorten-delivery-time-supplier-response-approach-1":"Professional RFQ/RFP process design","agents-shorten-delivery-time-supplier-response-approach-1--plural":"Professional RFQ/RFP process design","agents-shorten-delivery-time-supplier-response-approach-2":"Supplier response speed evaluation system","agents-shorten-delivery-time-supplier-response-approach-2--plural":"Supplier response speed evaluation system","agents-shorten-delivery-time-supplier-response-approach-3":"Cross-language/culture negotiation optimization","agents-shorten-delivery-time-supplier-response-approach-3--plural":"Cross-language/culture negotiation optimization","agents-shorten-delivery-time-supplier-response-approach-4":"Smart supplier matching algorithms","agents-shorten-delivery-time-supplier-response-approach-4--plural":"Smart supplier matching algorithms","agents-shorten-delivery-time-supplier-response-approach-5":"Key decision point acceleration framework","agents-shorten-delivery-time-supplier-response-approach-5--plural":"Key decision point acceleration framework","agents-shorten-delivery-time-production-acceleration-solve-5":"Coordination challenges with multimodal transport","agents-shorten-delivery-time-production-acceleration-solve-5--plural":"Coordination challenges with multimodal transport","agents-shorten-delivery-time-safety-stock-management-approach-1":"AI demand prediction engine","agents-shorten-delivery-time-safety-stock-management-approach-1--plural":"AI demand prediction engine","agents-shorten-delivery-time-production-acceleration-solve-4":"Documentation errors","agents-shorten-delivery-time-production-acceleration-solve-4--plural":"Documentation errors","agents-shorten-delivery-time-production-acceleration-solve-3":"Customs clearance delays","agents-shorten-delivery-time-production-acceleration-solve-3--plural":"Customs clearance delays","agents-shorten-delivery-time-safety-stock-management-approach-3":"Automatic replenishment triggering","agents-shorten-delivery-time-safety-stock-management-approach-3--plural":"Automatic replenishment triggering","agents-shorten-delivery-time-production-acceleration-solve-2":"Port congestion delays","agents-shorten-delivery-time-production-acceleration-solve-2--plural":"Port congestion delays","agents-shorten-delivery-time-safety-stock-management-approach-2":"Dynamic safety stock algorithms","agents-shorten-delivery-time-safety-stock-management-approach-2--plural":"Dynamic safety stock algorithms","agents-shorten-delivery-time-safety-stock-management-approach-5":"Cross-channel inventory visibility","agents-shorten-delivery-time-safety-stock-management-approach-5--plural":"Cross-channel inventory visibility","agents-shorten-delivery-time-safety-stock-management-approach-4":"Vendor Managed Inventory (VMI)","agents-shorten-delivery-time-safety-stock-management-approach-4--plural":"Vendor Managed Inventory (VMI)","agents-shorten-delivery-time-logistics-optimization-key-benifits-desc-1":"Bottleneck elimination and resource optimization","agents-shorten-delivery-time-logistics-optimization-key-benifits-desc-1--plural":"Bottleneck elimination and resource optimization","agents-shorten-delivery-time-production-acceleration-key-benifits-desc-1":"Dynamic routing avoids congestion","agents-shorten-delivery-time-production-acceleration-key-benifits-desc-1--plural":"Dynamic routing avoids congestion","agents-shorten-delivery-time-production-acceleration-key-benifits-desc-2":"Pre-declaration and customs data integration","agents-shorten-delivery-time-production-acceleration-key-benifits-desc-2--plural":"Pre-declaration and customs data integration","agents-shorten-delivery-time-supplier-response-key-benifits-desc-1":"7-day turnaround for standard RFQ processes","agents-shorten-delivery-time-supplier-response-key-benifits-desc-1--plural":"7-day turnaround for standard RFQ processes","agents-shorten-delivery-time-production-acceleration-key-benifits-desc-3":"Optimized multimodal transport combinations","agents-shorten-delivery-time-production-acceleration-key-benifits-desc-3--plural":"Optimized multimodal transport combinations","agents-shorten-delivery-time-supplier-response-key-benifits-desc-2":"Professional frameworks compress decision cycles","agents-shorten-delivery-time-supplier-response-key-benifits-desc-2--plural":"Professional frameworks compress decision cycles","agents-shorten-delivery-time-key-benifits":"Key Be
31657nifits","agents-shorten-delivery-time-key-benifits--plural":"Key Benifits","agents-shorten-delivery-time-accelerated-production-desc":"Rapid sample approvals, concurrent engineering reviews, and in-line AQL Inspections slash lead times by up to 30%—without compromising standards.","agents-shorten-delivery-time-accelerated-production-desc--plural":"Rapid sample approvals, concurrent engineering reviews, and in-line AQL Inspections slash lead times by up to 30%—without compromising standards.","agents-shorten-delivery-time-supplier-response-solve-1":"Slow response times from suppliers","agents-shorten-delivery-time-supplier-response-solve-1--plural":"Slow response times from suppliers","agents-shorten-delivery-time-supplier-response-solve-3":"Vague cooperation intentions","agents-shorten-delivery-time-supplier-response-solve-3--plural":"Vague cooperation intentions","agents-shorten-delivery-time-supplier-response-solve-2":"Inconsistent communication practices","agents-shorten-delivery-time-supplier-response-solve-2--plural":"Inconsistent communication practices","agents-shorten-delivery-time-supplier-response-solve-5":"Decision-making delays","agents-shorten-delivery-time-supplier-response-solve-5--plural":"Decision-making delays","agents-shorten-delivery-time-supplier-response-solve-4":"Variable quality of proposals","agents-shorten-delivery-time-supplier-response-solve-4--plural":"Variable quality of proposals","agents-shorten-delivery-time-logistics-optimization-key-benifits-desc-3":"Rapid response mechanisms for production issues","agents-shorten-delivery-time-logistics-optimization-key-benifits-desc-3--plural":"Rapid response mechanisms for production issues","agents-shorten-delivery-time-logistics-optimization-key-benifits-desc-2":"Full-process quality control points","agents-shorten-delivery-time-logistics-optimization-key-benifits-desc-2--plural":"Full-process quality control points","agents-shorten-delivery-time-production-acceleration-solve-1":"Inefficient logistics routing","agents-shorten-delivery-time-production-acceleration-solve-1--plural":"Inefficient logistics routing","agents-shorten-delivery-time-accelerated-production":"Accelerated Production with Built-In Quality Control","agents-shorten-delivery-time-accelerated-production--plural":"Accelerated Production with Built-In Quality Control","agents-shorten-delivery-time-supplier-response":"Supplier Response","agents-shorten-delivery-time-supplier-response--plural":"Supplier Response","agents-shorten-delivery-time-supplier-response-key-benifits-title-3":"Improved partnership quality","agents-shorten-delivery-time-supplier-response-key-benifits-title-3--plural":"Improved partnership quality","agents-shorten-delivery-time-supplier-response-key-benifits-title-2":"300% better decision efficiency","agents-shorten-delivery-time-supplier-response-key-benifits-title-2--plural":"300% better decision efficiency","agents-shorten-delivery-time-supplier-response-key-benifits-title-1":"50% faster response time","agents-shorten-delivery-time-supplier-response-key-benifits-title-1--plural":"50% faster response time","agents-shorten-delivery-time-multimodal-customs-handling":"Multimodal & Customs Handling","agents-shorten-delivery-time-multimodal-customs-handling--plural":"Multimodal & Customs Handling","agents-shorten-delivery-time-optimized-multimodal-logistics":"Optimized Multimodal Logistics & Customs Expertise","agents-shorten-delivery-time-optimized-multimodal-logistics--plural":"Optimized Multimodal Logistics & Customs Expertise","agents-shorten-delivery-time-professional-services":"Professional Services","agents-shorten-delivery-time-professional-services--plural":"Professional Services","agents-shorten-delivery-time-challenges-we-solve":"Challenges We Solve","agents-shorten-delivery-time-challenges-we-solve--plural":"Challenges We Solve","agents-shorten-delivery-time-production-acceleration-key-benifits-title-2":"Customs clearance in <48 hours","agents-shorten-delivery-time-production-acceleration-key-benifits-title-2--plural":"Customs clearance in <48 hours","agents-shorten-delivery-time-production-acceleration-key-benifits-title-3":"25% logistics cost reduction","agents-shorten-delivery-time-production-acceleration-key-benifits-title-3--plural":"25% logistics cost reduction","agents-shorten-delivery-time-production-acceleration-key-benifits-title-1":"45% logistics time reduction","agents-shorten-delivery-time-production-acceleration-key-benifits-title-1--plural":"45% logistics time reduction","agents-shorten-delivery-time-our-approach":"Our Approach","agents-shorten-delivery-time-our-approach--plural":"Our Approach","agents-shorten-delivery-time-logistics-optimization":"Production Acceleration","agents-shorten-delivery-time-logistics-optimization--plural":"Production Acceleration","agents-shorten-delivery-time-logistics-optimization-key-benifits-title-3":"<2-hour emergency response","agents-shorten-delivery-time-logistics-optimization-key-benifits-title-3--plural":"<2-hour emergency response","agents-shorten-delivery-time-logistics-optimization-key-benifits-title-2":"Reduced rework rate to 0.3%","agents-shorten-delivery-time-logistics-optimization-key-benifits-title-2--plural":"Reduced rework rate to 0.3%","agents-shorten-delivery-time-logistics-optimization-key-benifits-title-1":"40% productivity increase","agents-shorten-delivery-time-logistics-optimization-key-benifits-title-1--plural":"40% productivity increase","agents-shorten-delivery-time-slow-supplier-replies":"Slow supplier replies","agents-shorten-delivery-time-slow-supplier-replies--plural":"Slow supplier replies","agents-shorten-delivery-time-logistics-optimization-solve-5":"High rework rates","agents-shorten-delivery-time-logistics-optimization-solve-5--plural":"High rework rates","agents-shorten-delivery-time-safety-stock-management-key-benifits-title-2":"300% better decision efficie
31657ncy","agents-shorten-delivery-time-safety-stock-management-key-benifits-title-2--plural":"300% better decision efficiency","agents-shorten-delivery-time-safety-stock-management-key-benifits-title-1":"50% faster response time","agents-shorten-delivery-time-safety-stock-management-key-benifits-title-1--plural":"50% faster response time","agents-shorten-delivery-time-logistics-optimization-solve-3":"Equipment failure and downtime","agents-shorten-delivery-time-logistics-optimization-solve-3--plural":"Equipment failure and downtime","agents-shorten-delivery-time-logistics-optimization-solve-4":"Quality control issues","agents-shorten-delivery-time-logistics-optimization-solve-4--plural":"Quality control issues","agents-shorten-delivery-time-safety-stock-management-key-benifits-title-3":"Improved partnership quality","agents-shorten-delivery-time-safety-stock-management-key-benifits-title-3--plural":"Improved partnership quality","agents-shorten-delivery-time-logistics-optimization-solve-1":"Disjointed production planning","agents-shorten-delivery-time-logistics-optimization-solve-1--plural":"Disjointed production planning","agents-shorten-delivery-time-logistics-optimization-solve-2":"Material shortages and supply gaps","agents-shorten-delivery-time-logistics-optimization-solve-2--plural":"Material shortages and supply gaps","agents-shorten-delivery-time-safety-stock-management-solve-5":"Inaccurate demand forecasting","agents-shorten-delivery-time-safety-stock-management-solve-5--plural":"Inaccurate demand forecasting","agents-shorten-delivery-time-safety-stock-management-solve-3":"Excessive cash tied up in inventory","agents-shorten-delivery-time-safety-stock-management-solve-3--plural":"Excessive cash tied up in inventory","agents-shorten-delivery-time-safety-stock-management-solve-4":"High storage costs","agents-shorten-delivery-time-safety-stock-management-solve-4--plural":"High storage costs","agents-shorten-delivery-time-safety-stock-management-solve-1":"Inventory mismatches","agents-shorten-delivery-time-safety-stock-management-solve-1--plural":"Inventory mismatches","agents-shorten-delivery-time-safety-stock-management-solve-2":"Lost sales from stockouts","agents-shorten-delivery-time-safety-stock-management-solve-2--plural":"Lost sales from stockouts","agents-shorten-delivery-time-safety-stock-management-key-benifits-desc-1":"7-day turnaround for standard RFQ processes","agents-shorten-delivery-time-safety-stock-management-key-benifits-desc-1--plural":"7-day turnaround for standard RFQ processes","agents-shorten-delivery-time-safety-stock-management-key-benifits-desc-3":"Comprehensive supplier assessments ensure stability","agents-shorten-delivery-time-safety-stock-management-key-benifits-desc-3--plural":"Comprehensive supplier assessments ensure stability","agents-shorten-delivery-time-inventory-risks":"Stockouts or overstock","agents-shorten-delivery-time-inventory-risks--plural":"Stockouts or overstock","agents-shorten-delivery-time-safety-stock-management-key-benifits-desc-2":"Professional frameworks compress decision cycles","agents-shorten-delivery-time-safety-stock-management-key-benifits-desc-2--plural":"Professional frameworks compress decision cycles","agents-shorten-delivery-time-logistics-delays":"Logistics delays","agents-shorten-delivery-time-logistics-delays--plural":"Logistics delays","agents-shorten-delivery-time-quality-management":"Quality Management","agents-shorten-delivery-time-quality-management--plural":"Quality Management","agents-shorten-delivery-time-production-acceleration-approach-2":"Global port risk monitoring","agents-shorten-delivery-time-production-acceleration-approach-2--plural":"Global port risk monitoring","agents-shorten-delivery-time-production-acceleration-approach-1":"Smart multimodal route planning system","agents-shorten-delivery-time-production-acceleration-approach-1--plural":"Smart multimodal route planning system","agents-shorten-delivery-time-dynamic-replenishment":"Dynamic Replenishment","agents-shorten-delivery-time-dynamic-replenishment--plural":"Dynamic Replenishment","agents-shorten-delivery-time-cash-tied-up":"Cash tied up","agents-shorten-delivery-time-cash-tied-up--plural":"Cash tied up","agents-shorten-delivery-time-safety-stock-management":"Safety Stock Management","agents-shorten-delivery-time-safety-stock-management--plural":"Safety Stock Management","agents-shorten-delivery-time-production-acceleration-approach-4":"Automated documentation processing center","agents-shorten-delivery-time-production-acceleration-approach-4--plural":"Automated documentation processing center","agents-shorten-delivery-time-production-acceleration-approach-3":"AEO-certified express customs clearance","agents-shorten-delivery-time-production-acceleration-approach-3--plural":"AEO-certified express customs clearance","agents-shorten-delivery-time-production-acceleration-approach-5":"Optimal tariff strategy engine","agents-shorten-delivery-time-production-acceleration-approach-5--plural":"Optimal tariff strategy engine","agents-shorten-delivery-time-logistics-optimization-approach-5":"Dynamic material replenishment system","agents-shorten-delivery-time-logistics-optimization-approach-5--plural":"Dynamic material replenishment system","agents-shorten-delivery-time-logistics-optimization-approach-4":"Predictive maintenance solutions","agents-shorten-delivery-time-logistics-optimization-approach-4--plural":"Predictive maintenance solutions","agents-shorten-delivery-time-logistics-optimization-approach-3":"Mistake-proofing technology (Poka-Yoke)","agents-shorten-delivery-time-logistics-optimization-approach-3--plural":"Mistake-proofing technology (Poka-Yoke)","agents-shorten-delivery-time-logistics-optimization-approach-2":"Four-stage quality management system (TQM)","agents-shorten-delivery-time-logistics-optimization-approach-2--plural":"Four-stage quality management system (TQM)","agents-shorten-delivery-time-logistics-optimization-approach-1":"Real-time production monitoring system (IoT+5G)","agents-shorten-delivery-time-logistics-optimization-approach-1--plural":"Real-time production monitoring system (IoT+5G)","agents-shorten-delivery-time-missed-launch-windows":"Missed launch windows","agents-shorten-delivery-time-missed-launch-windows--plural":"Missed launch windows","agents-shorten-delivery-time-supplier-response-key-benifits-desc-3":"Comprehensive supplier assessments ensure stability","agents-shorten-delivery-time-supplier-response-key-benifits-desc-3--plural":"Comprehensive supplier assessments ensure stability","agents-shorten-delivery-time-order-delays":"Order delays","agents-shorten-delivery-time-order-delays--plural":"Order delays","agents-shorten-delivery-time-production-acceleration":"Logistics Optimization","agents-shorten-delivery-time-production-acceleration--plural":"Logistics Optimization","agents-shorten-delivery-time-production-bottlenecks":"Production bottlenecks","agents-shorten-delivery-time-production-bottlenecks--plural":"Production bottlenecks","agents-shorten-delivery-time-unhappy-cu
31657stomers":"Unhappy customers","agents-shorten-delivery-time-unhappy-customers--plural":"Unhappy customers","agents-cj-account-management-professional-manager-liaison-point-item-3-tilte":"Benefit:","agents-cj-account-management-professional-manager-liaison-point-item-3-tilte--plural":"Benefit:","agents-cj-account-management-contract-finalization":"Contract Finalization","agents-cj-account-management-contract-finalization--plural":"Contract Finalization","agents-cj-account-management-end-to-end-order-governance-desc":"From P.O. issuance through invoice reconciliation, your manager oversees every step—automating workflows and ensuring 100% accuracy.","agents-cj-account-management-end-to-end-order-governance-desc--plural":"From P.O. issuance through invoice reconciliation, your manager oversees every step—automating workflows and ensuring 100% accuracy.","agents-cj-account-management-professional-manager-liaison-point-item-1-desc":"Who do I call when things go wrong?","agents-cj-account-management-professional-manager-liaison-point-item-1-desc--plural":"Who do I call when things go wrong?","agents-cj-account-management-gold-level-dedicated-manager-desc":"Your single point of contact—deeply familiar with your business, supply base, and goals—ensuring seamless coordination and rapid issue resolution.","agents-cj-account-management-gold-level-dedicated-manager-desc--plural":"Your single point of contact—deeply familiar with your business, supply base, and goals—ensuring seamless coordination and rapid issue resolution.","agents-cj-account-management-contract-terms-management":"Contract Terms Management","agents-cj-account-management-contract-terms-management--plural":"Contract Terms Management","agents-cj-account-management-professional-manager-liaison-point-item-2-desc":"A single “Gold-level” account manager proactively coordinates factories, QC teams, and carriers on your behalf.","agents-cj-account-management-professional-manager-liaison-point-item-2-desc--plural":"A single “Gold-level” account manager proactively coordinates factories, QC teams, and carriers on your behalf.","agents-cj-account-management-order-management-desc":"End-to-end P.O. oversight—from issuance to invoice reconciliation.","agents-cj-account-management-order-management-desc--plural":"End-to-end P.O. oversight—from issuance to invoice reconciliation.","agents-cj-account-management-reporting-analytics-point-item-3-desc":"Data-driven decisions, systematic cost reduction, and continuous process improvement.","agents-cj-account-management-reporting-analytics-point-item-3-desc--plural":"Data-driven decisions, systematic cost reduction, and continuous process improvement.","agents-cj-account-management-order-management":"Order Management","agents-cj-account-management-order-management--plural":"Order Management","agents-cj-account-management-strategic-contract-oversight":"Strategic Contract Oversight","agents-cj-account-management-strategic-contract-oversight--plural":"Strategic Contract Oversight","agents-cj-account-management-order-management-point-item-2-tilte":"Solution:","agents-cj-account-management-order-management-point-item-2-tilte--plural":"Solution:","agents-cj-account-management-contract-terms-management-desc":"Clear, optimized agreements that protect your margins and schedule.","agents-cj-account-management-contract-terms-management-desc--plural":"Clear, optimized agreements that protect your margins and schedule.","agents-cj-account-management-gold-level-dedicated-manager":"Gold-Level Dedicated Manager","agents-cj-account-management-gold-level-dedicated-manager--plural":"Gold-Level Dedicated Manager","agents-cj-account-management-manual-order-tracking":"Manual order tracking","agents-cj-account-management-manual-order-tracking--plural":"Manual order tracking","agents-cj-account-management-live-logistics-command-control":"Live Logistics Command & Control","agents-cj-account-management-live-logistics-command-control--plural":"Live Logistics Command & Control","agents-cj-account-management-reporting-analytics-point-item-3-tilte":"Benefit:","agents-cj-account-management-reporting-analytics-point-item-3-tilte--plural":"Benefit:","agents-cj-account-management-mixed-messages":"Mixed messages","agents-cj-account-management-mixed-messages--plural":"Mixed messages","agents-cj-account-management-cost-overruns":"Cost overruns & disputes","agents-cj-account-management-cost-overruns--plural":"Cost overruns & disputes","agents-cj-account-management-logistics-monitoring-point-item-1-desc":"“I don’t know when my goods will arrive—or if they’ve left the port.”","agents-cj-account-management-logistics-monitoring-point-item-1-desc--plural":"“I don’t know when my goods will arrive—or if they’ve left the port.”","agents-cj-account-management-order-management-point-item-1-tilte":"Pain:","agents-cj-account-management-order-management-point-item-1-tilte--plural":"Pain:","agents-cj-account-management-reporting-analytics-point-item-2-desc":"Custom KPIs, interactive dashboards, and monthly business-review packages that analyze COGS, lead times, defect rates, and more.","agents-cj-account-management-reporting-analytics-point-item-2-desc--plural":"Custom KPIs, interactive dashboards, and monthly business-review packages that analyze COGS, lead times, defect rates, and more.","agents-cj-account-management-professional-manager-liaison-point-item-1-tilte":"Pain:","agents-cj-account-management-professional-manager-liaison-point-item-1-tilte--plural":"Pain:","agents-cj-account-management-subscription ":"Subscription ","agents-cj-account-management-subscription --plural":"Subscription ","agents-cj-account-management-logistics-monitoring-point-item-1-tilte":"Pain:","agents-cj-account-management-logistics-monitoring-point-item-1-tilte--plural":"Pain:","agents-cj-account-management-blind-spots-in-logistics":"Blind spots in logistics","agents-cj-account-management-blind-spots-in-logistics--plural":"Blind spots in logistics","agents-cj-account-management-reporting-analytics-point-item-2-tilte":"Solution:","agents-cj-account-management-reporting-analytics-point-item-2-tilte--plural":"Solution:","agents-cj-account-management-strategic-contract-oversight-desc":"Our manager negotiates and enforces clear SLAs, MOQs, and payment terms—eliminating hidden costs and protecting your margins.","agents-cj-account-management-strategic-contract-oversight-desc--plural":"Our manager negotiates and enforces clear SLAs, MOQs, and payment terms—eliminating hidden costs and protecting your margins.","agents-cj-account-management-faq-4":"Can the Account Manager negotiate better terms with suppliers?","agents-cj-account-management-faq-4--plural":"Can the Account Manager negotiate better terms with suppliers?","agents-cj-account-management-faq-3":"Can my Account Manager help with urgent escalations?","agents-cj-account-management-faq-3--plural":"Can my Account Manager help with urgent escalations?","agents-cj-account-management-faq-6":"Will my Account Manager help track shipments and customs clearance?","agents-cj-account-management-faq-6--plural":"Will my Account Manager help track shipments and customs clearance?","agents-cj-account-management-faq-5":"Is this service suitable for small businesses or only high-volume clients?","agents-cj-account-management-faq-5--
31657plural":"Is this service suitable for small businesses or only high-volume clients?","agents-cj-account-management-faq-2":"Is the Account Manager familiar with my industry?","agents-cj-account-management-faq-2--plural":"Is the Account Manager familiar with my industry?","agents-cj-account-management-order-management-point-item-1-desc":"“Our P.O. process is error-prone and time-consuming.”","agents-cj-account-management-order-management-point-item-1-desc--plural":"“Our P.O. process is error-prone and time-consuming.”","agents-cj-account-management-logistics-monitoring-point-item-2-tilte":"Solution:","agents-cj-account-management-logistics-monitoring-point-item-2-tilte--plural":"Solution:","agents-cj-account-management-faq-1":"What does an Account Manager do for my business?","agents-cj-account-management-faq-1--plural":"What does an Account Manager do for my business?","agents-cj-account-management-professional-manager-liaison-point-item-3-desc":"Faster issue resolution, unified strategy, and one-stop accountability.","agents-cj-account-management-professional-manager-liaison-point-item-3-desc--plural":"Faster issue resolution, unified strategy, and one-stop accountability.","agents-cj-account-management-ready-to-transform-your-order-fulfillment-speed":"Ready to Transform Your Order Fulfillment Speed?","agents-cj-account-management-ready-to-transform-your-order-fulfillment-speed--plural":"Ready to Transform Your Order Fulfillment Speed?","agents-cj-account-management-faq-4-answer":"Yes. Your manager works on your behalf to negotiate MOQs, payment terms, lead times, and service levels that align with your business goals.","agents-cj-account-management-faq-4-answer--plural":"Yes. Your manager works on your behalf to negotiate MOQs, payment terms, lead times, and service levels that align with your business goals.","agents-cj-account-management-logistics-monitoring":"Logistics Monitoring","agents-cj-account-management-logistics-monitoring--plural":"Logistics Monitoring","agents-cj-account-management-order-management-point-item-2-desc":"Automated P.O. workflows with digital approvals, P.O. status dashboards, and invoice matching.","agents-cj-account-management-order-management-point-item-2-desc--plural":"Automated P.O. workflows with digital approvals, P.O. status dashboards, and invoice matching.","agents-cj-account-management-order-management-point-item-3-tilte":"Benefit:","agents-cj-account-management-order-management-point-item-3-tilte--plural":"Benefit:","agents-cj-account-management-contract-terms-management-point-item-1-tilte":"Pain:","agents-cj-account-management-contract-terms-management-point-item-1-tilte--plural":"Pain:","agents-cj-account-management-end-to-end-order-governance":"End-to-End Order Governance","agents-cj-account-management-end-to-end-order-governance--plural":"End-to-End Order Governance","agents-cj-account-management-reporting-analytics-point-item-1-tilte":"Pain:","agents-cj-account-management-reporting-analytics-point-item-1-tilte--plural":"Pain:","agents-cj-account-management-logistics-monitoring-point-item-3-tilte":"Benefit:","agents-cj-account-management-logistics-monitoring-point-item-3-tilte--plural":"Benefit:","agents-cj-account-management-unclear-terms":"Unclear terms","agents-cj-account-management-unclear-terms--plural":"Unclear terms","agents-cj-account-management-order-management-point-item-3-desc":"Zero manual re-keying, instantaneous visibility on every order\'s status.","agents-cj-account-management-order-management-point-item-3-desc--plural":"Zero manual re-keying, instantaneous visibility on every order\'s status.","agents-cj-account-management-no-early-warnings":"No early warnings","agents-cj-account-management-no-early-warnings--plural":"No early warnings","agents-cj-account-management-multiple-points-of-contact":"Multiple points of contact","agents-cj-account-management-multiple-points-of-contact--plural":"Multiple points of contact","agents-cj-account-management-contract-terms-management-point-item-1-desc":"Hidden fees and shifting lead-times derail my forecasts.","agents-cj-account-management-contract-terms-management-point-item-1-desc--plural":"Hidden fees and shifting lead-times derail my forecasts.","agents-cj-account-management-logistics-monitoring-point-item-3-desc":"Complete transparency, fewer surprises, and on-time performance above 98%.","agents-cj-account-management-logistics-monitoring-point-item-3-desc--plural":"Complete transparency, fewer surprises, and on-time performance above 98%.","agents-cj-account-management-contract-terms-management-point-item-3-desc":"Hidden fees and shifting lead-times derail my forecasts.","agents-cj-account-management-contract-terms-management-point-item-3-desc--plural":"Hidden fees and shifting lead-times derail my forecasts.","agents-cj-account-management-faq-1-answer":"Your Account Manager acts as your dedicated point of contact—overseeing sourcing, order flow, logistics, communication with suppliers, and performance reporting.","agents-cj-account-management-faq-1-answer--plural":"Your Account Manager acts as your dedicated point of contact—overseeing sourcing, order flow, logistics, communication with suppliers, and performance reporting.","agents-cj-account-management-errors-delays":"Errors & delays","agents-cj-account-management-errors-delays--plural":"Errors & delays","agents-cj-account-management-logistics-monitoring-desc":"Live tracking & rapid escalation across every shipment milestone.","agents-cj-account-management-logistics-monitoring-desc--plural":"Live tracking & rapid escalation across every shipment milestone.","agents-cj-account-management-professional-manager-liaison-point-item-2-tilte":"Solution:","agents-cj-account-management-professional-manager-liaison-point-item-2-tilte--plural":"Solution:","agents-cj-account-management-faq-3-answer":"Absolutely. Your manager provides fast-track escalation paths for supplier issues, order delays, and customs problems to minimize business disruption.","agents-cj-account-management-faq-3-answer--plural":"Absolutely. Your manager provides fast-track escalation paths for supplier issues, order delays, and customs problems to minimize business disruption.","agents-cj-account-management-faq-5-answer":"Both. Whether you\'re scaling or already high-volume, the service is tailored to help you streamline and grow with less operational burden.","agents-cj-account-management-faq-5-answer--plural":"Both. Whether you\'re scaling or already high-volume, the service is tailored to help you streamline and grow with less operational burden.","agents-cj-account-management-customized-reporting-insights":"Customized Reporting & Insights","agents-cj-account-management-customized-reporting-insights--plural":"Customized Reporting & Insights","agents-cj-account-management-contract-terms-management-point-item-3-tilte":"Benefit:","agents-cj-account-management-contract-terms-management-point-item-3-tilte--plural":"Benefit:","agents-cj-account-management-schedule-your-free-fulfillment-audits":"Schedule Your Free Fulfillment Audits","agents-cj-account-management-schedule-your-free-fulfillment-audits--plural":"Schedule Your Free Fulfillment Audits","agents-cj-account-management-logistics-monitoring-point-item-2-desc":"Real-time shipment tracking, proactive delay alerts, and dedicated escalation for customs or carrier issues.","agents-cj-account-management-logistics-monitoring-point-item-2-desc--plural":"Real-time shipment tracking, proactive delay alerts, and dedicated escalation for customs or carrier issues.","agents-cj-account-management-kick-off":"Kick-off","agents-cj-account-management-kick-off--plural":"Kick-off","agents-cj-account-management-po-execution":"P.O. Execution","agents-cj-account-management-po-execution--plural":"P.O. Execution","agents-cj-account-management-contract-terms-management-point-item-2-tilte":"Solution:","agents-cj-account-management-contract-terms-management-point-item-2-tilte--plural":"Solution:","agents-cj-account-management-live-logistics-command-control-desc":"With direct access to carrier dashboards and customs brokers, your manager monitors shipments 24/7 and expedites any delays.","agents-cj-account-management-live-logistics-command-control-desc--plural":"With direct access to carrier dashboards and customs brokers, your manager monitors shipments 24/7 and expedites any delays.","agents-cj-account-management-professional-manager-liaison-desc":"A dedicated expert who champions your project and streamlines communication.","agents-cj-account-management-professional-manager-liaison-desc--plural":"A dedicated expert who champions your project and streamlines communication.","agents-cj-account-management-reporting-analytics-desc":"Custom dashboards & monthly reviews that surface cost-savings and performance wins.","agents-cj-account-management-reporting-analytics-desc--plural":"Custom dashboards & monthly reviews that surface cost-savings and performance wins.","agents-cj-account-management-logistics-oversight":"Logistics Oversight","agents-cj-account-management-logistics-oversight--plural":"Logistics Oversight","agents-cj-account-management-customized-reporting-insights-desc":"Receive tailored dashboards and monthly business reviews designed by your manager to spotlight cost-savings, performance wins, and growth opportunities.","agents-cj-account-management-customized-reporting-insights-desc--plural":"Receive tailored dashboards and monthly business reviews designed by your manager to spotlight cost-savings, performance wins, and growth opportunities.","agents-cj-account-management-monthly-review":"Monthly Review","agents-cj-account-management-monthly-review--plural":"Monthly Review","agents-cj-account-management-manager-assignment":"Manager Assignment","agents-cj-account-management-manager-assignment--plural":"Manager Assignment","agents-cj-account-management-reporting-analytics-point-item-1-desc":"“I lack the data to improve my supply chain.”","agents-cj-account-management-reporting-analytics-point-item-1-desc--plural":"“I lack the data to improve my supply chain.”","agents-cj-account-management-professional-manager-liaison":"Professional Manager Liaison","agents-cj-account-management-professional-manager-liaison--plural":"Professional Manager Liaison","agents-cj-account-management-contract-terms-management-point-item-2-desc":"We draft, negotiate, and enforce clear MOQs, payment terms, penalties, and change-order clauses.","agents-cj-account-management-contract-terms-management-point-item-2-desc--plural":"We draft, negotiate, and enforce clear MOQs, payment terms, penalties, and change-order clauses.","agents-cj-account-management-reporting-analytics":"Reporting & Analytics","agents-cj-account-management-reporting-analytics--plural":"Reporting & Analytics","agents-cj-account-management-faq-2-answer":"Yes. We assign Account Managers with experience relevant to your niche, ensuring they understand your supply chain needs and product specifications.","agents-cj-account-management-faq-2-answer--plural":"Yes. We assign Account Managers with experience relevant to your niche, ensuring they understand your supply chain needs and product specifications.","agents-cj-account-management-faq-6-answer":"Yes. Your manager has access to real-time logistics tools and will proactively monitor and resolve shipping or customs-related issues.","agents-cj-account-management-faq-6-answer--plural":"Yes. Your manager has access to real-time logistics tools and will proactively monitor and resolve shipping or customs-related issues.","common-mycj-menu-3pl-inventory":"Inventory","common-mycj-menu-3pl-export-list":"Export List","common-mycj-menu-3pl-orders-fulfillment":"Fulfillment","common-mycj-menu-3pl-orders-fulfillment--plural":"Fulfillment","common-mycj-menu-3pl-store-products":"Store Products","common-mycj-menu-3pl-partnership":"Partnership","common-mycj-menu-3pl-store-products-tip":"Check here for your store products, where you can make product connections.","common-mycj-menu-3pl-ticket":"Ticket","common-mycj-menu-3pl-disputes":"Disputes","common-mycj-menu-3pl-fulfillment-status":"Fulfillment Status","common-mycj-menu-3pl-custom-packaging":"Custom Packaging","common-mycj-menu-3pl-setting":"Settings","common-mycj-menu-3pl-inventory-orders":"Inventory Orders","common-mycj-menu-3pl-shipment":"Shipment","common-mycj-menu-3pl-credit-service":"Credit Service","common-mycj-menu-3pl-credit-service--plural":"Credit Service","common-mycj-menu-3pl-my-inventory-tip":"Check your inventory here if you have brought private inventory, packaging, or deposit inventory.","common-mycj-menu-3pl-authorization-new":"Apps","common-mycj-menu-3pl-authorization-new--plural":"Apps","common-mycj-menu-3pl-my-products":"My Products","common-mycj-menu-3pl-shopify":"Shopify","common-mycj-menu-3pl-custom-packaging-tip":"Purchase or design packaging and connect packages with your products.","common-mycj-menu-3pl-my-inventory":"My Inventory","common-mycj-menu-3pl-undelivered-orders":"Undelivered Orders","common-mycj-menu-3pl-sales-orders":"Sales Orders","common-mycj-menu-3pl-sales-orders--plural":"Sales Orders","common-mycj-menu-3pl-affiliate":"Affiliate","common-mycj-menu-3pl-wallet":"Wallet","common-mycj-menu-3pl-orders":"Orders","common-mycj-3pl-my-account":"My Account","common-mycj-3pl-my-account--plural":"My Account","common-mycj-menu-3pl-products":"Products","my-profile-once-the-switch-is-enabled-accessing":"Once the switch is enabled, accessing the app via a Shopify link will automatically log you into your account. This may lead to insecure account access, so please enable with caution.‌","my-profile-once-the-switch-is-enabled-accessing--plural":"Once the switch is enabled, accessing the app via a Shopify link will automatically log you into your account. This may lead to insecure account access, so please enable with caution.‌","my-profile-shopify-redirect-auto-login":"Shopify redirect auto-login","my-profile-shopify-redirect-auto-login--plural":"Shopify redirect auto-login","agents-faster-order-fulfillment-process-packaging-pre-check-subtitle-new":"Pre-Set Packaging","agents-faster-order-fulfillment-process-packaging-pre-check-subtitle-new--plural":"Pre-Set Packaging","agents-faster-order-fulfillment-pre-set-packaging-new":"Pre-Set Packaging","agents-faster-order-fulfillment-pre-set-packaging-new--plural":"Pre-Set Packaging","agents-faster-order-fulfillment-sign-up-free":"Sign Up Free","agents-faster-order-fulfillment-sign-up-free--plural":"Sign Up Free","agents-product-development-get-customized-strategy-new":"Get a Custom Strategy","agents-product-development-get-customized-strategy-new--plural":"Get a Custom Strategy","agents-shorten-delivery-time-key-benefits":"Key Be
31657nefits","agents-shorten-delivery-time-key-benefits--plural":"Key Benefits","agents-shorten-delivery-time-process-order-placement":"Order Placement","agents-shorten-delivery-time-process-order-placement--plural":"Order Placement","agents-product-development-process-trial-production":"Trial Production","agents-product-development-process-trial-production--plural":"Trial Production","agents-product-development-define-requirements-new":"Define Your Requirements","agents-product-development-define-requirements-new--plural":"Define Your Requirements","agents-product-development-contact-supply-chain-exper-new":"Consult a Supply Chain Expert","agents-product-development-contact-supply-chain-exper-new--plural":"Consult a Supply Chain Expert","agents-cogs-reduction-bloated-logistics-inventory-desc":"Misaligned strategies and high buffer stocks lead to soaring storage and transport expenses.","agents-cogs-reduction-bloated-logistics-inventory-desc--plural":"Misaligned strategies and high buffer stocks lead to soaring storage and transport expenses.","agents-cj-account-management-professional-manager-liaison-point-item-1-desc-new":"Who is my point of contact when issues arise?","agents-cj-account-management-professional-manager-liaison-point-item-1-desc-new--plural":"Who is my point of contact when issues arise?","agents-cj-account-management-professional-manager-liaison-point-item-2-desc-new":"A single “Gold-Level” account manager proactively coordinates factories, QC teams, and carriers on your behalf.","agents-cj-account-management-professional-manager-liaison-point-item-2-desc-new--plural":"A single “Gold-Level” account manager proactively coordinates factories, QC teams, and carriers on your behalf.","agents-cogs-reduction-production-inefficiencies":"Production Inefficiencies","agents-cogs-reduction-production-inefficiencies--plural":"Production Inefficiencies","agents-cogs-reduction-bloated-logistics-inventory":"Bloated Logistics & Inventory","agents-cogs-reduction-bloated-logistics-inventory--plural":"Bloated Logistics & Inventory","agents-cogs-reduction-production-inefficiencies-desc":"Suboptimal yields and line waste drive up your indirect costs per unit, directly eroding your profit margin.","agents-cogs-reduction-production-inefficiencies-desc--plural":"Suboptimal yields and line waste drive up your indirect costs per unit, directly eroding your profit margin.","agents-cj-account-management-sign-up-free":"Sign Up Free","agents-cj-account-management-sign-up-free--plural":"Sign Up Free","agents-cogs-reduction-weak-supplier-leverage-desc":"Limited sourcing options and no market intelligence undermine your negotiation power.","agents-cogs-reduction-weak-supplier-leverage-desc--plural":"Limited sourcing options and no market intelligence undermine your negotiation power.","agents-cj-account-management-contract-terms-management-point-item-3-desc-new":"Secure, transparent pricing and predictable lead-time commitments.","agents-cj-account-management-contract-terms-management-point-item-3-desc-new--plural":"Secure, transparent pricing and predictable lead-time commitments.","agents-cogs-reduction-weak-supplier-leverage":"Weak Supplier Leverage","agents-cogs-reduction-weak-supplier-leverage--plural":"Weak Supplier Leverage","agents-cogs-reduction-opaque-cost-structure":"Opaque Cost Structure","agents-cogs-reduction-opaque-cost-structure--plural":"Opaque Cost Structure","agents-cogs-reduction-opaque-cost-structure-desc":"Lack of clear breakdowns across materials, labor, and logistics, making targeted savings impossible.","agents-cogs-reduction-opaque-cost-structure-desc--plural":"Lack of clear breakdowns across materials, labor, and logistics, making targeted savings impossible.","agents-cogs-reduction-faq-4-answer-new":"Yes-we partner with bonded, FBA prep, and 3PL warehouses in North America, EU, and Asia.","agents-cogs-reduction-faq-4-answer-new--plural":"Yes-we partner with bonded, FBA prep, and 3PL warehouses in North America, EU, and Asia.","agents-customer-success-growth-hands-on-case-application-desc":"We don\'t just share success stories; your manager guides you through adapting proven tactics to your unique context.","agents-customer-success-growth-hands-on-case-application-desc--plural":"We don\'t just share success stories; your manager guides you through adapting proven tactics to your unique context.","agents-customer-success-growth-gap-between-insights-and-execution":"Gap Between Insights and Execution","agents-customer-success-growth-gap-between-insights-and-execution--plural":"Gap Between Insights and Execution","agents-customer-success-growth-underleveraged-success-models-desc":"Failure to systematically replicate best practices from top-performing cases, leading to inefficiencies and avoidable mistakes.","agents-customer-success-growth-underleveraged-success-models-desc--plural":"Failure to systematically replicate best practices from top-performing cases, leading to inefficiencies and avoidable mistakes.","agents-customer-success-growth-performance-review-iteration":"Performance Review & Iteration","agents-customer-success-growth-performance-review-iteration--plural":"Performance Review & Iteration","agents-customer-success-growth-ineffective-marketing-efforts-desc":"Scattered campaigns and unfocused messaging result in low ROI and wasted ad spend.","agents-customer-success-growth-ineffective-marketing-efforts-desc--plural":"Scattered campaigns and unfocused messaging result in low ROI and wasted ad spend.","agents-cogs-reduction-warehousing-logistics-highlight-new":"Opening bonded warehouses in Germany and the U.S. (combined €5,000/mo.) saved an average of €2.20 per order in shipping and VAT-over €50,000 annually.","agents-cogs-reduction-warehousing-logistics-highlight-new--plural":"Opening bonded warehouses in Germany and the U.S. (combined €5,000/mo.) saved an average of €2.20 per order in shipping and VAT-over €50,000 annually.","agents-cogs-reduction-faq-1-answer-new":"Typical savings range from 5-20% depending on your volumes and product complexity.","agents-cogs-reduction-faq-1-answer-new--plural":"Typical savings range from 5-20% depending on your volumes and product complexity.","agents-cogs-reduction-get-customized-strategy-new":"Get a Custom Strategy","agents-cogs-reduction-get-customized-strategy-new--plural":"Get a Custom Strategy","agents-customer-success-growth-kickoff-goal-setting":"Kickoff & Goal-Setting","agents-customer-success-growth-kickoff-goal-setting--plural":"Kickoff & Goal-Setting","agents-customer-success-growth-real-time-performance-tracking-desc":"With direct access to carrier dashboards and customs brokers, your manager monitors shipments 24/7 and expedites any delays.","agents-customer-success-growth-real-time-performance-tracking-desc--plural":"With direct access to carrier dashboards and customs brokers, your manager monitors shipments 24/7 and expedites any delays.","agents-customer-success-growth-underleveraged-success-models":"Underleveraged Success Models","agents-customer-success-growth-underleveraged-success-models--plural":"Underleveraged Success Models","agents-customer-success-growth-faq-1-answer":"A strategic partnership where we combine market intelligence, tailored marketing guidance, and actionable plans to help you grow faster and more sustainably.","agents-customer-success-growth-faq-1-answer--plural":"A strategic partnership where we combine market intelligence, tailored marketing guidance, and actionable plans to help you grow faster and more sustainably.","agents-customer-success-growth-ready-to-transform-your-order-fulfillment-speed":"Ready to Transform Your Order Fulfillment Speed?","agents-customer-success-growth-ready-to-transform-your-order-fulfillment-speed--plural":"Ready to Transform Your Order Fulfillment Speed?","agents-cogs-reduction-robust-risk-mitigation-desc-new":"We build early-warning systems for price volatility, supply disruptions, and currency swings-paired with contingency planning-to keep your operations steady.","agents-cogs-reduction-robust-risk-mitigation-desc-new--plural":"We build early-warning systems for price volatility, supply disruptions, and currency swings-paired with contingency planning-to keep your operations steady.","agents-cogs-reduction-customized-sustainable-roadmap-desc-new":"Beyond one-off savings, we create a continuous improvement blueprint-complete with governance, KPIs, and change-management support-to lock 
31657in lower COGS for the long term.","agents-cogs-reduction-customized-sustainable-roadmap-desc-new--plural":"Beyond one-off savings, we create a continuous improvement blueprint-complete with governance, KPIs, and change-management support-to lock in lower COGS for the long term.","agents-customer-success-growth-hands-on-case-application":"Hands-On Case Application","agents-customer-success-growth-hands-on-case-application--plural":"Hands-On Case Application","agents-cogs-reduction-product-packaging-highlight-new":"Replacing a 500g corrugated box with a 350g reinforced mailer cut packaging cost by 18% and international shipping by 12%.","agents-cogs-reduction-product-packaging-highlight-new--plural":"Replacing a 500g corrugated box with a 350g reinforced mailer cut packaging cost by 18% and international shipping by 12%.","agents-customer-success-growth-uncertain-expansion-path-desc":"No clear roadmap for entering new regions or verticals, creating hesitation and risk in growth initiatives.","agents-customer-success-growth-uncertain-expansion-path-desc--plural":"No clear roadmap for entering new regions or verticals, creating hesitation and risk in growth initiatives.","agents-customer-success-growth-schedule-your-free-fulfillment-audits":"Schedule Your Free Fulfillment Audits","agents-customer-success-growth-schedule-your-free-fulfillment-audits--plural":"Schedule Your Free Fulfillment Audits","agents-customer-success-growth-ineffective-marketing-efforts":"Ineffective Marketing Efforts","agents-customer-success-growth-ineffective-marketing-efforts--plural":"Ineffective Marketing Efforts","agents-customer-success-growth-gap-between-insights-and-execution-desc":"Data reports exist but lack actionable, step-by-step plans to turn insights into results.","agents-customer-success-growth-gap-between-insights-and-execution-desc--plural":"Data reports exist but lack actionable, step-by-step plans to turn insights into results.","agents-customer-success-growth-faq-4-answer":"You receive bi-weekly playbooks with specific tasks, owners, due dates, and alignment to your KPIs, all tracked in a shared project board.","agents-customer-success-growth-faq-4-answer--plural":"You receive bi-weekly playbooks with specific tasks, owners, due dates, and alignment to your KPIs, all tracked in a shared project board.","agents-customer-success-growth-cross-functional-coordination-desc":"Receive tailored dashboards and monthly business reviews designed by your manager to spotlight cost-savings, performance wins, and growth opportunities.","agents-customer-success-growth-cross-functional-coordination-desc--plural":"Receive tailored dashboards and monthly business reviews designed by your manager to spotlight cost-savings, performance wins, and growth opportunities.","agents-customer-success-growth-real-time-performance-tracking":"Real-Time Performance Tracking","agents-customer-success-growth-real-time-performance-tracking--plural":"Real-Time Performance Tracking","agents-customer-success-growth-dedicated-success-manager-desc":"Your personal strategic partner—deeply versed in your product, market, and goals—ensuring every recommendation aligns with your KPIs.","agents-customer-success-growth-dedicated-success-manager-desc--plural":"Your personal strategic partner—deeply versed in your product, market, and goals—ensuring every recommendation aligns with your KPIs.","agents-cogs-reduction-proven-track-record-roi-focus-desc-new":"Clients benefit from our track record of delivering 5-15% COGS reductions within 6-12 months, ensuring tangible bottom-line impact and quick payback.","agents-cogs-reduction-proven-track-record-roi-focus-desc-new--plural":"Clients benefit from our track record of delivering 5-15% COGS reductions within 6-12 months, ensuring tangible bottom-line impact and quick payback.","agents-cogs-reduction-desc-2-new":"Develop bulk-buy plans, packaging redesigns & sourcing scorecards.","agents-cogs-reduction-desc-2-new--plural":"Develop bulk-buy plans, packaging redesigns & sourcing scorecards.","agents-customer-success-growth-proactive-market-intelligence-desc":"Your manager delivers ahead-of-curve trend alerts and competitive insights, so you pivot before your rivals do.","agents-customer-success-growth-proactive-market-intelligence-desc--plural":"Your manager delivers ahead-of-curve trend alerts and competitive insights, so you pivot before your rivals do.","agents-customer-success-growth-lack-of-market-visibility-desc":"Unable to capture real-time industry trends and consumer shifts, leading to delayed decisions and missed opportunities.","agents-customer-success-growth-lack-of-market-visibility-desc--plural":"Unable to capture real-time industry trends and consumer shifts, leading to delayed decisions and missed opportunities.","agents-customer-success-growth-faq-4":"How are action recommendations delivered?","agents-customer-success-growth-faq-4--plural":"How are action recommendations delivered?","agents-customer-success-growth-faq-5":"How quickly can I expect to see results?","agents-customer-success-growth-faq-5--plural":"How quickly can I expect to see results?","agents-customer-success-growth-uncertain-expansion-path":"Uncertain Expansion Path","agents-customer-success-growth-uncertain-expansion-path--plural":"Uncertain Expansion Path","agents-customer-success-growth-faq-2":"Who will lead my account?","agents-customer-success-growth-faq-2--plural":"Who will lead my account?","agents-customer-success-growth-faq-3":"How do you recommend new markets for expansion?","agents-customer-success-growth-faq-3--plural":"How do you recommend new markets for expansion?","agents-customer-success-growth-faq-1":"What is “Driving Customer Success”?","agents-customer-success-growth-faq-1--plural":"What is “Driving Customer Success”?","agents-cogs-reduction-production-efficiency-yield-improvement-desc-new":"Through lean manufacturing audits and Six Sigma principles, we help you boost line throughput and product yield-reducing scrap, rework, and indirect cost allocation.","agents-cogs-reduction-production-efficiency-yield-improvement-desc-new--plural":"Through lean manufacturing audits and Six Sigma principles, we help you boost line throughput and product yield-reducing scrap, rework, and indirect cost allocation.","agents-customer-success-growth-data-gathering-analysis":"Data Gathering & Analysis","agents-customer-success-growth-data-gathering-analysis--plural":"Data Gathering & Analysis","agents-cogs-reduction-desc-4-new":"Monitor KPIs, renegotiate, and realize incremental savings.","agents-cogs-reduction-desc-4-new--plural":"Monitor KPIs, renegotiate, and realize incremental savings.","agents-cogs-reduction-faq-2-answer-new":"No-our lean pack designs are pilot-tested for packing speed and drop-testing.","agents-cogs-reduction-faq-2-answer-new--plural":"No-our lean pack designs are pilot-tested for packing speed and drop-testing.","agents-customer-success-growth-sign-up-free":"Sign Up Free","agents-customer-success-growth-sign-up-free--plural":"Sign Up Free","agents-cogs-reduction-define-requirements-new":"Define Your Requirements","agents-cogs-reduction-define-requirements-new--plural":"Define Your Requirements","agents-customer-success-growth-faq-3-answer":"We assess demand signals, regulatory hurdles, logistics feasibility, and competitive landscapes to produce a prioritized “Market Entry Scorecard”.","agents-customer-success-growth-faq-3-answer--plural":"We assess demand signals, regulatory hurdles, logistics feasibility, and competitive landscapes to produce a prioritized “Market Entry Scorecard”.","agents-customer-success-growth-faq-5-answer":"Many clients report noticeable uplifts—like improved conversion rates or faster market launches—within the first 6–8 weeks of engagement.","agents-customer-success-growth-faq-5-answer--plural":"Many clients report noticeable uplifts—like improved conversion rates or faster market launches—within the first 6–8 weeks of engagement.","agents-customer-success-growth-lack-of-market-visibility":"Lack of Market Visibility","agents-customer-success-growth-lack-of-market-visibility--plural":"Lack of Market Visibility","agents-customer-success-growth-proactive-market-intelligence":"Proactive Market Intelligence","agents-customer-success-growth-proactive-market-intelligence--plural":"Proactive Market Intelligence","agents-customer-success-growth-cross-functional-coordination":"Cross-Functional Coordination","agents-customer-success-growth-cross-functional-coordination--plural":"Cross-Functional Coordination","agents-customer-success-growth-strategy-co-creation":"Strategy Co-Creation","agents-customer-success-growth-strategy-co-creation--plural":"Strategy Co-Creation","agents-customer-success-growth-action-plan-delivery":"Action Plan Delivery","agents-customer-success-growth-action-plan-delivery--plural":"Action Plan Delivery","agents-customer-success-growth-dedicated-success-manager"
31657:"Dedicated Success Manager","agents-customer-success-growth-dedicated-success-manager--plural":"Dedicated Success Manager","agents-cogs-reduction-end-to-end-cost-transparency-desc-new":"We deliver a unified platform that breaks down every cost driver-from raw materials and labor to logistics-so you can pinpoint savings opportunities with surgical precision.","agents-cogs-reduction-end-to-end-cost-transparency-desc-new--plural":"We deliver a unified platform that breaks down every cost driver-from raw materials and labor to logistics-so you can pinpoint savings opportunities with surgical precision.","agents-cogs-reduction-contact-supply-chain-exper-new":"Consult a Supply Chain Expert","agents-cogs-reduction-contact-supply-chain-exper-new--plural":"Consult a Supply Chain Expert","agents-customer-success-growth-faq-2-answer":"You’ll have a dedicated Customer Success Manager (CSM) who knows your business inside and out and serves as your single point of contact.","agents-customer-success-growth-faq-2-answer--plural":"You’ll have a dedicated Customer Success Manager (CSM) who knows your business inside and out and serves as your single point of contact.","agents-visiting-guide-quality-audit-expertise":"Guided factory walkthroughs, spot inspections, and coordination of ISO/BSCI lab tests or material analyses.","agents-visiting-guide-quality-audit-expertise--plural":"Guided factory walkthroughs, spot inspections, and coordination of ISO/BSCI lab tests or material analyses.","agents-visiting-guide-one-stop-itinerary-planning":"One-Stop Itinerary Planning","agents-visiting-guide-one-stop-itinerary-planning--plural":"One-Stop Itinerary Planning","agents-visiting-guide-quality-audit-deliverable":"Audit report with photo evidence, risk ratings, and corrective-action recommendations.","agents-visiting-guide-quality-audit-deliverable--plural":"Audit report with photo evidence, risk ratings, and corrective-action recommendations.","agents-visiting-guide-one-stop-itinerary-planning-desc":"We craft a visit schedule perfectly aligned with your business goals—optimizing factory tours, trade-show slots, and market visits to maximize every day on the ground.","agents-visiting-guide-one-stop-itinerary-planning-desc--plural":"We craft a visit schedule perfectly aligned with your business goals—optimizing factory tours, trade-show slots, and market visits to maximize every day on the ground.","agents-visiting-guide-supplier-assessment-deliverable":"Shortlist matrix ranking each supplier on cost, quality, capacity, and strategic fit.","agents-visiting-guide-supplier-assessment-deliverable--plural":"Shortlist matrix ranking each supplier on cost, quality, capacity, and strategic fit.","agents-visiting-guide-negotiation-support-expertise":"Professional interpreters with industry know-how and real-time coaching on Chinese business etiquette.","agents-visiting-guide-negotiation-support-expertise--plural":"Professional interpreters with industry know-how and real-time coaching on Chinese business etiquette.","agents-visiting-guide-faq-5-answer":"You’ll receive a detailed rating of each factory’s capacity, compliance credentials, past performance, and risk factors.","agents-visiting-guide-faq-5-answer--plural":"You’ll receive a detailed rating of each factory’s capacity, compliance credentials, past performance, and risk factors.","agents-visiting-guide-rigorous-quality-audits-desc":"On-site production-line inspections combined with third-party lab testing pin down hidden defects and compliance risks before you commit.","agents-visiting-guide-rigorous-quality-audits-desc--plural":"On-site production-line inspections combined with third-party lab testing pin down hidden defects and compliance risks before you commit.","agents-visiting-guide-faq-1-answer":"Absolutely. We tailor factory visits, trade-show sessions, and market tours specifically to your industry and product needs.","agents-visiting-guide-faq-1-answer--plural":"Absolutely. We tailor factory visits, trade-show sessions, and market tours specifically to your industry and product needs.","agents-visiting-guide-faq-6":"Do you offer virtual follow-up after the trip?","agents-visiting-guide-faq-6--plural":"Do you offer virtual follow-up after the trip?","agents-visiting-guide-faq-5":"What is included in the post-trip Supplier Assessment report?","agents-visiting-guide-faq-5--
31657plural":"What is included in the post-trip Supplier Assessment report?","agents-visiting-guide-faq-4":"Can you help negotiate payment and shipping terms?","agents-visiting-guide-faq-4--plural":"Can you help negotiate payment and shipping terms?","agents-visiting-guide-faq-3-answer":"We perform production-line walkthroughs, spot checks, AQL sampling, and coordinate third-party lab tests when required.","agents-visiting-guide-faq-3-answer--plural":"We perform production-line walkthroughs, spot checks, AQL sampling, and coordinate third-party lab tests when required.","agents-visiting-guide-itinerary-planning-deliverable":"Detailed travel dossier (transport routes, local contacts, meeting briefs) that fits your objectives.","agents-visiting-guide-itinerary-planning-deliverable--plural":"Detailed travel dossier (transport routes, local contacts, meeting briefs) that fits your objectives.","agents-visiting-guide-deliverable-label":"Deliverable:","agents-visiting-guide-deliverable-label--plural":"Deliverable:","agents-visiting-guide-audit-negotiation":"Audit & Negotiation","agents-visiting-guide-audit-negotiation--plural":"Audit & Negotiation","agents-visiting-guide-faq-3":"How do you conduct on-site quality audits?","agents-visiting-guide-faq-3--plural":"How do you conduct on-site quality audits?","agents-visiting-guide-faq-2":"What qualifications do your interpreters have?","agents-visiting-guide-faq-2--plural":"What qualifications do your interpreters have?","agents-visiting-guide-faq-1":"Can you customize the itinerary based on my product category?","agents-visiting-guide-faq-1--plural":"Can you customize the itinerary based on my product category?","agents-visiting-guide-itinerary-briefing":"Itinerary & Briefing","agents-visiting-guide-itinerary-briefing--plural":"Itinerary & Briefing","agents-visiting-guide-wasted-time-in-traffic-and-unproductive-meetings":"Wasted time in traffic and unproductive meetings","agents-visiting-guide-wasted-time-in-traffic-and-unproductive-meetings--plural":"Wasted time in traffic and unproductive meetings","agents-visiting-guide-itinerary-planning-desc":"Streamlined schedules that pack high-value factory visits, trade shows, and market tours in minimal days.","agents-visiting-guide-itinerary-planning-desc--plural":"Streamlined schedules that pack high-value factory visits, trade shows, and market tours in minimal days.","agents-visiting-guide-quality-audit-challenge":"Surface-level visits miss hidden defects and non-compliance.","agents-visiting-guide-quality-audit-challenge--plural":"Surface-level visits miss hidden defects and non-compliance.","agents-visiting-guide-language-barriers-that-weaken-negotiation-leverage":"Language barriers that weaken negotiation leverage","agents-visiting-guide-language-barriers-that-weaken-negotiation-leverage--plural":"Language barriers that weaken negotiation leverage","agents-visiting-guide-professional-negotiation-support":"Professional Negotiation Support","agents-visiting-guide-professional-negotiation-support--plural":"Professional Negotiation Support","agents-visiting-guide-negotiation-support-deliverable":"Negotiation playbook & on-site interpreter backing every discussion, plus written summaries of agreed terms.","agents-visiting-guide-negotiation-support-deliverable--plural":"Negotiation playbook & on-site interpreter backing every discussion, plus written summaries of agreed terms.","agents-visiting-guide-negotiation-support":"Negotiation Support","agents-visiting-guide-negotiation-support--plural":"Negotiation Support","agents-visiting-guide-faq-6-answer":"We conduct debrief calls, assist with sample approvals, and help transition into production planning remotely.","agents-visiting-guide-faq-6-answer--plural":"We conduct debrief calls, assist with sample approvals, and help transition into production planning remotely.","agents-visiting-guide-challenge-label":"Challenge:","agents-visiting-guide-challenge-label--plural":"Challenge:","agents-visiting-guide-negotiation-support-challenge":"Language gaps and cultural nuances can cost you price concessions.","agents-visiting-guide-negotiation-support-challenge--plural":"Language gaps and cultural nuances can cost you price concessions.","agents-visiting-guide-faq-2-answer":"Our interpreters hold professional Mandarin–English translation certifications and have hands-on experience in manufacturing or trade negotiations.","agents-visiting-guide-faq-2-answer--plural":"Our interpreters hold professional Mandarin–English translation certifications and have hands-on experience in manufacturing or trade negotiations.","agents-shorten-delivery-time-process-production-acceleration":"Production Acceleration","agents-shorten-delivery-time-process-production-acceleration--plural":"Production Acceleration","agents-visiting-guide-consult":"Consult","agents-visiting-guide-consult--plural":"Consult","agents-visiting-guide-rigorous-quality-audits":"Rigorous Quality Audits","agents-visiting-guide-rigorous-quality-audits--plural":"Rigorous Quality Audits","agents-visiting-guide-post-trip-action-plan":"Post-Trip Action Plan","agents-visiting-guide-post-trip-action-plan--plural":"Post-Trip Action Plan","agents-visiting-guide-hidden-quality-issues-uncovered-too-late":"Hidden quality issues uncovered too late","agents-visiting-guide-hidden-quality-issues-uncovered-too-late--plural":"Hidden quality issues uncovered too late","agents-visiting-guide-request-a-custom-trip-itinerary":"Request a Custom Trip Itinerary","agents-visiting-guide-request-a-custom-trip-itinerary--
31657plural":"Request a Custom Trip Itinerary","agents-visiting-guide-unverified-suppliers-with-unknown-risks":"Unverified suppliers with unknown risks","agents-visiting-guide-unverified-suppliers-with-unknown-risks--plural":"Unverified suppliers with unknown risks","agents-visiting-guide-supplier-assessment-challenge":"Hard to differentiate genuine manufacturers from trading intermediaries.","agents-visiting-guide-supplier-assessment-challenge--plural":"Hard to differentiate genuine manufacturers from trading intermediaries.","agents-visiting-guide-supplier-assessment":"Supplier Assessment","agents-visiting-guide-supplier-assessment--plural":"Supplier Assessment","agents-visiting-guide-supplier-assessment-desc":"Comprehensive vetting—capacity checks, compliance reviews, reference interviews—to shortlist only reliable partners.","agents-visiting-guide-supplier-assessment-desc--plural":"Comprehensive vetting—capacity checks, compliance reviews, reference interviews—to shortlist only reliable partners.","agents-visiting-guide-negotiation-support-desc":"Live Mandarin↔English interpretation and deal-structuring guidance to lock in best MOQs and lead-times.","agents-visiting-guide-negotiation-support-desc--plural":"Live Mandarin↔English interpretation and deal-structuring guidance to lock in best MOQs and lead-times.","agents-visiting-guide-itinerary-planning-expertise":"We build a day-by-day agenda—mapping factory tours, trade fair slots, and supplier meetings with buffer times.","agents-visiting-guide-itinerary-planning-expertise--plural":"We build a day-by-day agenda—mapping factory tours, trade fair slots, and supplier meetings with buffer times.","agents-visiting-guide-itinerary-planning":"Itinerary Planning","agents-visiting-guide-itinerary-planning--plural":"Itinerary Planning","agents-visiting-guide-expertise-label":"Our Expertise:","agents-visiting-guide-expertise-label--plural":"Our Expertise:","agents-visiting-guide-professional-negotiation-support-desc":"Industry-savvy, Mandarin↔English interpreters ensure you capture the best MOQs, lead times, and pricing—eliminating language barriers and cultural missteps.","agents-visiting-guide-professional-negotiation-support-desc--plural":"Industry-savvy, Mandarin↔English interpreters ensure you capture the best MOQs, lead times, and pricing—eliminating language barriers and cultural missteps.","agents-visiting-guide-itinerary-planning-challenge":"Chaotic travel plans waste your limited time.","agents-visiting-guide-itinerary-planning-challenge--plural":"Chaotic travel plans waste your limited time.","agents-visiting-guide-in-depth-supplier-assessment":"In-Depth Supplier Assessment","agents-visiting-guide-in-depth-supplier-assessment--plural":"In-Depth Supplier Assessment","agents-visiting-guide-in-depth-supplier-assessment-desc":"We vet factory capacity, certifications, export history, and client references—shortlisting only genuine manufacturers and weeding out trading intermediaries.","agents-visiting-guide-in-depth-supplier-assessment-desc--plural":"We vet factory capacity, certifications, export history, and client references—shortlisting only genuine manufacturers and weeding out trading intermediaries.","agents-visiting-guide-quality-audits":"Quality Audits","agents-visiting-guide-quality-audits--plural":"Quality Audits","agents-visiting-guide-supplier-assessment-expertise":"Deep-dive background checks—production capacity, export history, existing client references, and compliance credentials.","agents-visiting-guide-supplier-assessment-expertise--plural":"Deep-dive background checks—production capacity, export history, existing client references, and compliance credentials.","agents-visiting-guide-ready-to-make-your-china-trip-100%-productive":"Ready to Make Your China Trip 100% Productive?","agents-visiting-guide-ready-to-make-your-china-trip-100%-productive--plural":"Ready to Make Your China Trip 100% Productive?","agents-visiting-guide-quality-audit-desc":"On-site pre-production and in-line AQL inspections, backed by third-party lab testing coordination.","agents-visiting-guide-quality-audit-desc--plural":"On-site pre-production and in-line AQL inspections, backed by third-party lab testing coordination.","agents-visiting-guide-on-site-visits":"On-Site Visits","agents-visiting-guide-on-site-visits--plural":"On-Site Visits","agents-visiting-guide-faq-4-answer":"Yes. Your guide facilitates price, MOQ, lead-time discussions, and helps structure clear payment and delivery agreements.","agents-visiting-guide-faq-4-answer--plural":"Yes. Your guide facilitates price, MOQ, lead-time discussions, and helps structure clear payment and delivery agreements.","agents-shorten-delivery-time-sign-up-free":"Sign Up Free","agents-shorten-delivery-time-sign-up-free--plural":"Sign Up Free","agents-cogs-reduction-faq-5-answer-new":"You’ll typically see initial savings within 6-8 weeks of kick-off (after baseline audit and pilot roll-out).","agents-cogs-reduction-faq-5-answer-new--plural":"You’ll typically see initial savings within 6-8 weeks of kick-off (after baseline audit and pilot roll-out).","ready-to-ship-overview-section3-problem2-a":"CJ\'s Solution:  We have optimized physical attribute algorithms for over 200 countries. Based on actual product weight and volume—combined with precision templates—we provide the most compatible shipping solutions. This ensures that the shipping cost displayed upfront is your final cost.","ready-to-ship-overview-section3-problem2-a--plural":"CJ\'s Solution:  We have optimized physical attribute algorithms for over 200 countries. Based on actual product weight and volume—combined with precision templates—we provide the most compatible shipping solutions. This ensures that the shipping cost displayed upfront is your final cost.","ready-to-ship-shoplazza-title-line1":"Discover","ready-to-ship-shoplazza-title-line1--plural":"Discover","ready-to-ship-shoplazza-title-line2":"premium selections","ready-to-ship-shoplazza-title-line2--plural":"premium selections","ready-to-ship-ebay-item1-title":"Cross-Border Direct","ready-to-ship-ebay-item1-title--plural":"Cross-Border Direct","ready-to-ship-mercado-item1-highlight":"fastest","ready-to-ship-mercado-item1-highlight--plural":"fastest","ready-to-ship-tiktok-title":"TRENDS AT YOUR DOORSTEP","ready-to-ship-tiktok-title--plural":"TRENDS AT YOUR DOORSTEP","ready-to-ship-ebay-title-selection":"SELECTION,","ready-to-ship-ebay-title-selection--plural":"SELECTION,","ready-to-ship-mercado-item2-highlight":"Borderless","ready-to-ship-mercado-item2-highlight--plural":"Borderless","ready-to-ship-lazada-badge2-title":"Local Fast Shipping","ready-to-ship-lazada-badge2-title--plural":"Local Fast Shipping","ready-to-ship-overview-section2-text":"For shop owners and e-commerce sellers pursuing efficiency and fast capital turnover, RTS is the best tool for risk reduction:","ready-to-ship-overview-section2-text--plural":"For shop owners and e-commerce sellers pursuing efficiency and fast capital turnover, RTS is the best tool for risk reduction:","ready-to-ship-lazada-label-highlight":"24–48 Hours","ready-to-ship-lazada-label-highlight--plural":"24–48 Hours","ready-to-ship-ebay-badge-suffix":"Business Days","ready-to-ship-ebay-badge-suffix--plural":"Business Days","ready-to-ship-temu-item1-label":"Local Stock (Y1)","ready-to-ship-temu-item1-label--plural":"Local Stock (Y1)","ready-to-ship-overview-section3-problem2-q":"The Problem:  Many platforms provide inaccurate shipping estimates, leading to unexpectedly high costs at checkout.","ready-to-ship-overview-section3-problem2-q--plural":"The Problem:  Many platforms provide inaccurate shipping estimates, leading to unexpectedly high costs at checkout.","ready-to-ship-shein-subtitle":"Fresh arr
31657ivals added daily","ready-to-ship-shein-subtitle--plural":"Fresh arrivals added daily","ready-to-ship-temu-item2-desc":"Shipped Within 48 Hours","ready-to-ship-temu-item2-desc--plural":"Shipped Within 48 Hours","ready-to-ship-shoplazza-top":"ALWAYS IN STOCK. ALWAYS READY","ready-to-ship-shoplazza-top--plural":"ALWAYS IN STOCK. ALWAYS READY","ready-to-ship-mercado-item2-prefix":"International Selection:","ready-to-ship-mercado-item2-prefix--plural":"International Selection:","ready-to-ship-temu-title-main":"GLOBAL CHOICE,","ready-to-ship-temu-title-main--plural":"GLOBAL CHOICE,","ready-to-ship-overview-section3-problem3-a":"CJ\'s Solution: We use big data to filter products. Only items with moderate weight, stable logistics attributes, and the fastest processing speeds within the CJ system are marked as RTS. We essentially complete the first round of \\"logistics and quality\\" pre-vetting for you.","ready-to-ship-overview-section3-problem3-a--plural":"CJ\'s Solution: We use big data to filter products. Only items with moderate weight, stable logistics attributes, and the fastest processing speeds within the CJ system are marked as RTS. We essentially complete the first round of \\"logistics and quality\\" pre-vetting for you.","ready-to-ship-temu-badge2":"Real-time Tracking","ready-to-ship-temu-badge2--plural":"Real-time Tracking","ready-to-ship-aliexpress-item2-label":"Local Warehouse","ready-to-ship-aliexpress-item2-label--plural":"Local Warehouse","ready-to-ship-temu-badge1":"100% Guaranteed Stock","ready-to-ship-temu-badge1--plural":"100% Guaranteed Stock","ready-to-ship-shein-item3-desc":"No waiting for pre-orders","ready-to-ship-shein-item3-desc--plural":"No waiting for pre-orders","ready-to-ship-temu-badge3":"Reliable Fulfillment","ready-to-ship-temu-badge3--plural":"Reliable Fulfillment","ready-to-ship-shein-item2-title":"Local & Direct","ready-to-ship-shein-item2-title--plural":"Local & Direct","ready-to-ship-tiktok-item1-desc":"Fast 3-7 Days Domestic Shipping","ready-to-ship-tiktok-item1-desc--plural":"Fast 3-7 Days Domestic Shipping","ready-to-ship-ebay-badge-prefix":"Guaranteed Dispatch within","ready-to-ship-ebay-badge-prefix--plural":"Guaranteed Dispatch within","ready-to-ship-aliexpress-banner-up":"ORDER NOW","ready-to-ship-aliexpress-banner-up--plural":"ORDER NOW","ready-to-ship-mercado-item3-suffix":".","ready-to-ship-mercado-item3-suffix--plural":".","ready-to-ship-ebay-title-local":"LOCAL","ready-to-ship-ebay-title-local--plural":"LOCAL","ready-to-ship-shein-item3-title":"24H Express Dispatch","ready-to-ship-shein-item3-title--plural":"24H Express Dispatch","ready-to-ship-shopify-button":"In Stock. Ready for You","ready-to-ship-shopify-button--plural":"In Stock. Ready for You","ready-to-ship-shopee-title-line1":"READY TO SHIP HUB:","ready-to-ship-shopee-title-line1--plural":"READY TO SHIP HUB:","ready-to-ship-shopee-title-line2":"GLOBAL & LOCAL","ready-to-ship-shopee-title-line2--plural":"GLOBAL & LOCAL","ready-to-ship-overview-section2-item4":"Transparent Fulfillment:  Prices, shipping costs, and delivery times are all public, making it easy to accurately estimate your own retail price and profit margins.","ready-to-ship-overview-section2-item4--plural":"Transparent Fulfillment:  Prices, shipping costs, and delivery times are all public, making it easy to accurately estimate your own retail price and profit margins.","ready-to-ship-overview-section2-item3":"High Decision-Making Efficiency:  Say goodbye to time-zone-crossing communications and tedious inquiry processes. \\"What you see is what you get,\\" allowing you to complete global sourcing in seconds.","ready-to-ship-overview-section2-item3--plural":"High Decision-Making Efficiency:  Say goodbye to time-zone-crossing communications and tedious inquiry processes. \\"What you see is what you get,\\" allowing you to complete global sourcing in seconds.","ready-to-ship-ebay-badge-highlight":"1–2","ready-to-ship-ebay-badge-highlight--plural":"1–2","ready-to-ship-etsy-badge":"Dispatched with Care within 1-3 Business Days","ready-to-ship-etsy-badge--plural":"Dispatched with Care within 1-3 Business Days","ready-to-ship-overview-section2-item2":"Fast Capital Turnover:  No need to pay large deposits upfront. Shipping begins immediately after the order is placed, keeping your cash flow active.","ready-to-ship-overview-section2-item2--plural":"Fast Capital Turnover:  No need to pay large deposits upfront. Shipping begins immediately after the order is placed, keeping your cash flow active.","ready-to-ship-temu-item1-desc":"As Fast as 2-Day Delivery","ready-to-ship-temu-item1-desc--plural":"As Fast as 2-Day Delivery","ready-to-ship-etsy-title-line1":"CRAFTED WITH LOVE,","ready-to-ship-etsy-title-line1--plural":"CRAFTED WITH LOVE,","ready-to-ship-overview-section2-item1":"Low Market Testing Costs:  Supports extremely low MOQs (Minimum Order Quantities). You can purchase as few as 5-10 units of a new product to test the market, avoiding the risk of inventory backlog caused by bulk purchasing.","ready-to-ship-overview-section2-item1--plural":"Low Market Testing Costs:  Supports extremely low MOQs (Minimum Order Quantities). You can purchase as few as 5-10 units of a new product to test the market, avoiding the risk of inventory backlog caused by bulk purchasing.","ready-to-ship-etsy-title-line2":"READY FOR YOU","ready-to-ship-etsy-title-line2--plural":"READY FOR YOU","ready-to-ship-shopify-subtitle":"CURATED GLOBALLY","ready-to-ship-shopify-subtitle--plural":"CURATED GLOBALLY","ready-to-ship-shopify-item1":"Directly from our design studios worldwide.","ready-to-ship-shopify-item1--plural":"Directly from our design studios worldwide.","ready-to-ship-shopify-item2":"Pre-stocked in regional hubs for swift arrival.","ready-to-ship-shopify-item2--plural":"Pre-stocked in regional hubs for swift arrival.","ready-to-ship-shopify-item3":"Order today. Shipped within 24-48 hours.","ready-to-ship-shopify-item3--plural":"Order today. Shipped within 24-48 hours.","ready-to-ship-overview-section3-problem3-q":"The Problem: The product pool is too large, making it hard to know which products sell well or can be shipped quickly via express.","ready-to-ship-overview-section3-problem3-q--plural":"The Problem: The product pool is too large, making it hard to know which products sell well or can be shipped quickly via express.","ready-to-ship-mercado-item3-prefix":"Ships within","ready-to-ship-mercado-item3-prefix--plural":"Ships within","ready-to-ship-woocommerce-feature3":"Global Fulfillment","ready-to-ship-woocommerce-feature3--plural":"Global Fulfillment","ready-to-ship-woocommerce-feature1":"Extensive Collection","ready-to-ship-woocommerce-feature1--plural":"Extensive Collection","ready-to-ship-woocommerce-feature2":"Brand Assurance","ready-to-ship-woocommerce-feature2--plural":"Brand Assurance","ready-to-ship-overview-section3-title":"3. Which Pain Points Does CJ\'s RTS Model Solve for Customers?","ready-to-ship-overview-section3-title--plural":"3. Which Pain Points Does CJ\'s RTS Model Solve for Customers?","ready-to-ship-lazada-label-line1":"Dispatch","ready-to-ship-lazada-label-line1--plural":"Dispatch","ready-to-ship-lazada-label-line2":"Within","ready-to-ship-lazada-label-line2--plural":"Within","ready-to-ship-aliexpress-banner-down":"DISPATCHED WITHIN 24-48 HOURS","ready-to-ship-aliexpress-banner-down--plural":"DISPATCHED WITHIN 24-48 HOURS","ready-to-ship-shopee-item1":"Over
31657seas Trends | Direct from Global Sellers","ready-to-ship-shopee-item1--plural":"Overseas Trends | Direct from Global Sellers","ready-to-ship-lazada-badge2-desc":"Arrival in 2–4 Days","ready-to-ship-lazada-badge2-desc--plural":"Arrival in 2–4 Days","ready-to-ship-shopee-item2":"Local Ready Stock | Fast Delivery within Your Region","ready-to-ship-shopee-item2--plural":"Local Ready Stock | Fast Delivery within Your Region","ready-to-ship-shopee-item3":"All Orders Dispatched within 24–48 Hours","ready-to-ship-shopee-item3--plural":"All Orders Dispatched within 24–48 Hours","ready-to-ship-shein-item1-title":"Infinite Variety","ready-to-ship-shein-item1-title--plural":"Infinite Variety","ready-to-ship-ebay-item1-desc":"Access Unique Inventory Worldwide","ready-to-ship-ebay-item1-desc--plural":"Access Unique Inventory Worldwide","ready-to-ship-shein-item2-line1":"From our closest warehouse","ready-to-ship-shein-item2-line1--plural":"From our closest warehouse","ready-to-ship-mercado-item2-suffix":"global trends.","ready-to-ship-mercado-item2-suffix--plural":"global trends.","ready-to-ship-tiktok-item1-label":"US Local Stock","ready-to-ship-tiktok-item1-label--plural":"US Local Stock","ready-to-ship-shein-item2-line2":"straight to your wardrobe","ready-to-ship-shein-item2-line2--plural":"straight to your wardrobe","ready-to-ship-tiktok-item3-desc":"Dispatched within 24-48 Hours","ready-to-ship-tiktok-item3-desc--plural":"Dispatched within 24-48 Hours","ready-to-ship-tiktok-item3-label":"Fully Stocked Hubs","ready-to-ship-tiktok-item3-label--plural":"Fully Stocked Hubs","ready-to-ship-ebay-title-delivery":"DELIVERY","ready-to-ship-ebay-title-delivery--plural":"DELIVERY","ready-to-ship-aliexpress-item1-desc":"Top Trends with Global 10-Day Delivery","ready-to-ship-aliexpress-item1-desc--plural":"Top Trends with Global 10-Day Delivery","ready-to-ship-aliexpress-item1-label":"Factory Direct","ready-to-ship-aliexpress-item1-label--plural":"Factory Direct","ready-to-ship-ebay-item2-desc":"Fast Shipping from Domestic Warehouses","ready-to-ship-ebay-item2-desc--plural":"Fast Shipping from Domestic Warehouses","ready-to-ship-shein-title":"TRENDS AT THE SPEED OF LIGHT","ready-to-ship-shein-title--plural":"TRENDS AT THE SPEED OF LIGHT","ready-to-ship-ebay-title-global":"GLOBAL","ready-to-ship-ebay-title-global--plural":"GLOBAL","ready-to-ship-overview-section3-problem1-title":"Solving the \\"Fake Stock\\" Pain Point:","ready-to-ship-overview-section3-problem1-title--plural":"Solving the \\"Fake Stock\\" Pain Point:","ready-to-ship-lazada-badge1-title":"Authentic Global Brands","ready-to-ship-lazada-badge1-title--plural":"Authentic Global Brands","ready-to-ship-overview-section3-problem2-title":"Solving \\"Shipping Traps & Financial Losses\\":","ready-to-ship-overview-section3-problem2-title--plural":"Solving \\"Shipping Traps & Financial Losses\\":","ready-to-ship-overview-modal-title":"START OF FILE 🚀 Ready to Ship (RTS) Channel: An Efficient Sourcing Guide","ready-to-ship-overview-modal-title--plural":"START OF FILE 🚀 Ready to Ship (RTS) Channel: An Efficient Sourcing Guide","ready-to-ship-overview-section1-title":"1. What are RTS (Ready to Ship) Products?","ready-to-ship-overview-section1-title--plural":"1. What are RTS (Ready to Ship) Products?","ready-to-ship-overview-section1-text":"RTS (Ready to Ship) refers to an \\"in-stock\\" or \\"ready-stock\\" trading model. Unlike the traditional \\"inquiry first, production later\\" model, RTS products must meet the following strict criteria:","ready-to-ship-overview-section1-text--plural":"RTS (Ready to Ship) refers to an \\"in-stock\\" or \\"ready-stock\\" trading model. Unlike the traditional \\"inquiry first, production later\\" model, RTS products must meet the following strict criteria:","ready-to-ship-overview-section1-item3":"Logistics Certainty:  The system automatically calculates global shipping costs and provides a clear estimated time of arrival (ETA).","ready-to-ship-overview-section1-item3--plural":"Logistics Certainty:  The system automatically calculates global shipping costs and provides a clear estimated time of arrival (ETA).","ready-to-ship-overview-section1-item2":"Direct Purchase:   Specifications and prices are fixed. Buyers can click to buy just like retail shopping, without the need for business negotiations.","ready-to-ship-overview-section1-item2--plural":"Direct Purchase:   Specifications and prices are fixed. Buyers can click to buy just like retail shopping, without the need for business negotiations.","ready-to-ship-overview-section1-item4":"Fast Dispatch:   Orders are typically shipped within 3 to 15 days (or even sooner).","ready-to-ship-overview-section1-item4--plural":"Fast Dispatch:   Orders are typically shipped within 3 to 15 days (or even sooner).","ready-to-ship-overview-section1-item1":"In-Stock Supply:  Products are already stocked in the warehouse; there is no long production lead time.","ready-to-ship-overview-section1-item1--plural":"In-Stock Supply:  Products are already stocked in the warehouse; there is no long production lead time.","ready-to-ship-overview-section2-title":"2. What are the Advantages of RTS Products for Small Business Sellers?","ready-to-ship-overview-section2-title--plural":"2. What are the Advantages of RTS Products for Small Business Sellers?","ready-to-ship-overview-section3-problem1-a":"CJ\'s Solution: We use real-time API 
31657synchronization for inventory data. Every number you see represents actual available stock. Once inventory falls below the warning line, the product status updates automatically to ensure your procurement plan doesn\'t fall through.","ready-to-ship-overview-section3-problem1-a--plural":"CJ\'s Solution: We use real-time API synchronization for inventory data. Every number you see represents actual available stock. Once inventory falls below the warning line, the product status updates automatically to ensure your procurement plan doesn\'t fall through.","ready-to-ship-temu-item2-label":"Factory Direct (Y2)","ready-to-ship-temu-item2-label--plural":"Factory Direct (Y2)","ready-to-ship-mercado-item3-highlight":"48 hours","ready-to-ship-mercado-item3-highlight--plural":"48 hours","ready-to-ship-aliexpress-item2-desc":"Fast 3-5 Day Delivery from Nearby","ready-to-ship-aliexpress-item2-desc--plural":"Fast 3-5 Day Delivery from Nearby","ready-to-ship-shein-item1-line2":"Pre-stocked in Global Hubs","ready-to-ship-shein-item1-line2--plural":"Pre-stocked in Global Hubs","ready-to-ship-tiktok-item2-desc":"100,000+ Trends from Worldwide Studios","ready-to-ship-tiktok-item2-desc--plural":"100,000+ Trends from Worldwide Studios","ready-to-ship-shein-item1-line1":"1,000,000+ Hot Items","ready-to-ship-shein-item1-line1--plural":"1,000,000+ Hot Items","ready-to-ship-shopify-title":"Your Favorites, Without the Wait.","ready-to-ship-shopify-title--plural":"Your Favorites, Without the Wait.","ready-to-ship-overview-section3-problem3-title":"Solving \\"Sourcing Confusion\\":","ready-to-ship-overview-section3-problem3-title--plural":"Solving \\"Sourcing Confusion\\":","ready-to-ship-mercado-item1-suffix":"in your city.","ready-to-ship-mercado-item1-suffix--plural":"in your city.","ready-to-ship-lazada-title-main":"THE BEST OF BOTH WORLDS","ready-to-ship-lazada-title-main--plural":"THE BEST OF BOTH WORLDS","ready-to-ship-ebay-item2-title":"Local Fulfillment","ready-to-ship-ebay-item2-title--plural":"Local Fulfillment","ready-to-ship-etsy-subtitle":"Unique discoveries sent directly from worldwide studios.","ready-to-ship-etsy-subtitle--plural":"Unique discoveries sent directly from worldwide studios.","ready-to-ship-overview-section3-text":"Relying on CJ Dropshipping\'s powerful API technology and logistics network, our RTS module is specifically designed to solve the three core pain points that trouble small business sellers the most:","ready-to-ship-overview-section3-text--plural":"Relying on CJ Dropshipping\'s powerful API technology and logistics network, our RTS module is specifically designed to solve the three core pain points that trouble small business sellers the most:","ready-to-ship-aliexpress-title-line2":"LOCAL SPEED","ready-to-ship-aliexpress-title-line2--plural":"LOCAL SPEED","ready-to-ship-overview-section3-problem1-q":"The Problem: Traditional buyers fear being told a product is out of stock after they have already placed an order.","ready-to-ship-overview-section3-problem1-q--plural":"The Problem: Traditional buyers fear being told a product is out of stock after they have already placed an order.","ready-to-ship-temu-title-highlight":"FAST DISPATCH","ready-to-ship-temu-title-highlight--plural":"FAST DISPATCH","ready-to-ship-mercado-title":"GLOBAL BEST TO YOUR DOOR!","ready-to-ship-mercado-title--plural":"GLOBAL BEST TO YOUR DOOR!","ready-to-ship-lazada-badge1-desc":"Direct from the Source","ready-to-ship-lazada-badge1-desc--plural":"Direct from the Source","ready-to-ship-aliexpress-title-line1":"GLOBAL CHOICE,","ready-to-ship-aliexpress-title-line1--plural":"GLOBAL CHOICE,","ready-to-ship-tiktok-item2-label":"Global Direct Drops","ready-to-ship-tiktok-item2-label--plural":"Global Direct Drops","ready-to-ship-mercado-item1-prefix":"Full Shipping: The","ready-to-ship-mercado-item1-prefix--plural":"Full Shipping: The","ready-to-ship-allvalue-title-line1":"ALWAYS READY.","ready-to-ship-allvalue-title-line1--plural":"ALWAYS READY.","ready-to-ship-allvalue-title-line2":"WORLDWIDE INSPIRED.","ready-to-ship-allvalue-title-line2--plural":"WORLDWIDE INSPIRED.","ready-to-ship-allvalue-subtitle-line1":"50,000+ Curated Selections | A world of style, pre-stocked for you.","ready-to-ship-allvalue-subtitle-line1--plural":"50,000+ Curated Selections | A world of style, pre-stocked for you.","ready-to-ship-nuvemshop-title-line2":"SHIPPING GLOBALLY","ready-to-ship-nuvemshop-title-line2--plural":"SHIPPING GLOBALLY","ready-to-ship-nuvemshop-title-line1":"ALWAYS IN STOCK","ready-to-ship-nuvemshop-title-line1--plural":"ALWAYS IN STOCK","ready-to-ship-shoplazza-bottom-highlight":"48 Hours","ready-to-ship-shoplazza-bottom-highlight--plural":"48 Hours","ready-to-ship-allvalue-ribbon-left":"PROCESSED WITHIN 24H","ready-to-ship-allvalue-ribbon-left--plural":"PROCESSED WITHIN 24H","ready-to-ship-allvalue-subtitle-line2":"12 Global Logistic Hubs | Dispatched from our nearest studio to your door.","ready-to-ship-allvalue-subtitle-line2--plural":"12 Global Logistic Hubs | Dispatched from our nearest studio to your door.","ready-to-ship-allvalue-ribbon-right":"SHIPPED WITH CARE","ready-to-ship-allvalue-ribbon-right--plural":"SHIPPED WITH CARE","ready-to-ship-nuvemshop-subtitle":"A curated collection from our global hubs, ready to reach you","ready-to-ship-nuvemshop-subtitle--plural":"A curated collection from our global hubs, ready to reach you","ready-to-ship-shoplazza-bottom-text":"Express Dispatch. Worldwide Tracking","ready-to-ship-shoplazza-bottom-text--plural":"Express Dispatch. Worldwide Tracking","ai-assistant-try-saying":"Try saying: \\"Help me find similar product suppliers.\\"","ai-assistant-try-saying--plural":"Try saying: \\"Help me find similar product suppliers.\\"","common-top-ai-assistant":"AI Assistant","common-top-ai-assistant--plural":"AI Assistant","ai-assistant-i-am-your-ai-assistant":"I\'m your AI assistant.","ai-assistant-i-am-your-ai-assistant--plural":"I\'m your AI assistant.","ai-assistant-best-overall-option":"Best Overall Option","ai-assistant-best-overall-option--plural":"Best Overall Option","ai-assistant-ai-recommendations":"AI Recommendations","ai-assistant-ai-recommendations--plural":"AI Recommendations","ai-assistant-shipping-cost":"Shipping Cost","ai-assistant-target-price":"Target Price","ai-assistant-estimation-objective":"Estimation Objective","ai-assistant-estimation-objective--plural":"Estimation Objective","ai-assistant-shipping-comparison-table":"Shipping Comparison Table","ai-assistant-shipping-comparison-table--plural":"Shipping Comparison Table","ai-assistant-key-findings":"Key Findings","ai-assistant-key-findings--plural":"Key Findings","ai-assistant-cost-breakdown":"Cost Breakdown","ai-assistant-cost-breakdown--plural":"Cost Breakdown","ai-assistant-cost-analysis-report":"Cost Analysis Report","ai-assistant-cost-analysis-report--plural":"Cost Analysis Report","ai-assistant-lowest-cost":"Lowest Cost","ai-assistant-lowest-cost--plural":"Lowest Cost","ai-assistant-total-landed-cost-per-unit":"Total Landed Cost per Unit","ai-assistant-total-landed-cost-per-unit--plural":"Total Landed Cost per Unit","ai-assistant-shipping-analysis-report":"Shipping Analysis Report","ai-assistant-shipping-analysis-report--plural":"Shipping Analysis Report","ai-assistant-procurement-cost":"Procurement Cost","ai-assistant-procurement-cost--plural":"Procurement Cost","ai-assistant-fastest-delivery":"Fastest Delivery","ai-assistant-fastest-delivery--plural":"Fastest Delivery","ai-assistant-product-image":"Product Image","ai-assistant-product-image--plural":"Product Image","ai-assistant-tariff-cost":"Tariff Cost","ai-assistant-tariff-cost--plural":"Tariff Cost","ai-assistant-accept-similar-products":"Accept Similar Products","ai-assistant-accept-similar-products--plural":"Accept Similar Products","ai-assistant-confirm-sourcing-request":"Confirm Sourcing Request","ai-assistant-confirm-sourcing-request--plural":"Confirm Sourcing Request","ai-assistant-delivery-time":"Delivery Time","ai-assistant-sourcing-id":"Sourcing ID","ai-assistant-minimize":"Minimize","ai-assistant-minimize--plural":"Minimize","ai-assistant-chat-window":"Chat Window","ai-assistant-chat-window--plural":"Chat Window","ai-assistant-enter-full-screen":"Enter Full Screen Mode","ai-assistant-enter-full-screen--plural":"Enter Full Screen Mode","ai-assistant-close":"Close","ai-assistant-supplier-recommendations":"Supplier Recommendations","ai-assistant-supplier-recommendations--plural":"Supplier Recommendations","ai-assistant-view-more":"View More","ai-assistant-like":"Like","ai-assistant-like--plural":"Like","ai-assistant-sourcing-request-created-desc":"Your sourcing request has been created. You can check the progress later in the \\"Sourcing List\\" or ask me for updates.","ai-assistant-sourcing-request-created-desc--plural":"Your sourcing request has been created. You can check the progress later in the \\"Sourcing List\\" or ask me for updates.","ai-assistant-decision-workspace":"Decision Workspace","ai-assistant-decision-workspace--plural":"Decision Workspace","ai-assistant-dislike":"Dislike","ai-assistant-dislike--plural":"Dislike","ai-assistant-sourcing-request-created":"Sourcing request created successfully","ai-assistant-sourcing-request-created--plural":"Sourcing request created successfully","ai-assistant-exit-full-screen":"Exit Full Screen","ai-assistant-exit-full-screen--plural":"Exit Full Screen","ai-assistant-preparing":"Preparing","ai-assistant-ai-disclaimer":"Content generated by AI, for reference only.","ai-assistant-ai-disclaimer--plural":"Content generated by AI, for reference only.","ai-assistant-image-placeholder":"Image placeholder","ai-assistant-image-placeholder--plural":"Image placeholder","ai-assistant-uploading":"Uploading...","ai-assistant-uploading--plural":"Uploading...","ai-assistant-only-image-files-are-supported":"Only image files are supported.","ai-assistant-only-image-files-are-supported--plural":"Only image files are supported.","ai-assistant-upload-failed":"Upload failed.","ai-assistant-upload-failed--plural":"Upload failed.","ai-assistant-upload-image":"Upload image","ai-assistant-upload-image--plural":"Upload image","ai-assistant-remove-image":"Remove image","ai-assistant-remove-image--plural":"Remove image","ai-assistant-only-1-image-can-be-uploaded":"Only 1 image can be uploaded.","ai-assistant-only-1-image-can-be-uploaded--plural":"Only 1 image can be uploaded.","ai-assistant-upload-failed-please-retry":"Upload failed, please retry.","ai-assistant-upload-failed-please-retry--plural":"Upload failed, please retry.","ai-assistant-max-10mb-per-image":"Max 10MB per image.","ai-assistant-max-10mb-per-image--plural":"Max 10MB per image.","ai-assistant-request-failed-please-try-again":"Request failed, please try again.","ai-assistant-request-failed-please-try-again--plural":"Request failed, please try again.","ai-assistant-search-similar-suppliers":"Search for Similar Suppliers","ai-assistant-search-similar-suppliers--plural":"Search for Similar Suppliers","ai-assistant-check-order-status":"Check Order Status","ai-assistant-check-order-status--
31657plural":"Check Order Status","ai-assistant-default-supplier":"CJ Supplier Co.","ai-assistant-default-supplier--plural":"CJ Supplier Co.","ai-assistant-deleted-successfully":"Deleted successfully.","ai-assistant-deleted-successfully--plural":"Deleted successfully.","ai-assistant-analyze-image":"Please help me analyze the image.","ai-assistant-analyze-image--plural":"Please help me analyze the image.","ai-assistant-failed-to-load-history":"Failed to load history.","ai-assistant-failed-to-load-history--plural":"Failed to load history.","ai-assistant-title":"AI Assistant","ai-assistant-title--plural":"AI Assistant","ai-assistant-delete-failed-please-try-again":"Delete failed, please try again.","ai-assistant-delete-failed-please-try-again--plural":"Delete failed, please try again.","ai-assistant-default-origin":"China","ai-assistant-prompt-check-sourcing-progress":"Help me check the sourcing progress of [enter sourcing ID(s), separated by \\",\\"].","ai-assistant-prompt-check-sourcing-progress--plural":"Help me check the sourcing progress of [enter sourcing ID(s), separated by \\",\\"].","ai-assistant-check-sourcing-progress":"Check Sourcing Progress","ai-assistant-check-sourcing-progress--plural":"Check Sourcing Progress","ai-assistant-you-have-already-submitted-this-feedback":"You have already submitted this feedback.","ai-assistant-you-have-already-submitted-this-feedback--plural":"You have already submitted this feedback.","ai-assistant-history":"History","ai-assistant-feedback-thanks":"Thank you for your feedback.","ai-assistant-feedback-thanks--plural":"Thank you for your feedback.","ai-assistant-submit-failed-please-retry":"Submit failed, please retry.","ai-assistant-submit-failed-please-retry--plural":"Submit failed, please retry.","ai-assistant-feedback-has-already-been-submitted":"Feedback has already been submitted.","ai-assistant-feedback-has-already-been-submitted--plural":"Feedback has already been submitted.","ai-assistant-response-stopped":"This response was stopped.","ai-assistant-response-stopped--plural":"This response was stopped.","ai-assistant-no-more-history":"No more history records","ai-assistant-no-more-history--plural":"No more history records","ai-assistant-prompt-find-suppliers":"Find suppliers for [product name / image].","ai-assistant-prompt-find-suppliers--plural":"Find suppliers for [product name / image].","ai-assistant-prompt-check-order-status":"Help me check the status of [enter a single order number].","ai-assistant-prompt-check-order-status--plural":"Help me check the status of [enter a single order number].","ai-assistant-submit-feedback":"Submit Feedback","ai-assistant-submit-feedback--plural":"Submit Feedback","ai-assistant-collapse-sidebar":"Collapse sidebar","ai-assistant-collapse-sidebar--plural":"Collapse sidebar","ai-assistant-cancel":"Cancel","ai-assistant-describe-issue":"Please describe your issue.","ai-assistant-describe-issue--plural":"Please describe your issue.","ai-assistant-show-chat-only":"Show Chat Window Only","ai-assistant-show-chat-only--plural":"Show Chat Window Only","ai-assistant-submit":"Submit","ai-assistant-loading":"Loading...","ai-assistant-loading--plural":"Loading...","ai-assistant-search-history":"Search History","ai-assistant-search-history--plural":"Search History","ai-assistant-origin":"Origin","ai-assistant-origin--plural":"Origin","ai-assistant-describe-request":"Describe your request or enter @ to select a quick option.","ai-assistant-describe-request--plural":"Describe your request or enter @ to select a quick option.","ai-assistant-unpin-sidebar":"Unpin sidebar","ai-assistant-unpin-sidebar--plural":"Unpin sidebar","ai-assistant-moq":"MOQ","ai-assistant-cost-analysis":"Cost Analysis","ai-assistant-cost-analysis--plural":"Cost Analysis","ai-assistant-shipping-estimation":"Shipping Estimation","ai-assistant-shipping-estimation--plural":"Shipping Estimation","ai-assistant-confirm":"Confirm","ai-assistant-feedback-content":"Feedback Content","ai-assistant-feedback-content--plural":"Feedback Content","ai-assistant-delete":"Delete","ai-assistant-remove-product":"Remove product","ai-assistant-remove-product--plural":"Remove product","ai-assistant-no-history-records":"No history records","ai-assistant-no-history-records--plural":"No history records","ai-assistant-expand-sidebar":"Expand sidebar","ai-assistant-expand-sidebar--plural":"Expand sidebar","ai-assistant-rating":"Rating","ai-assistant-assistant":"Assistant","ai-assistant-assistant--plural":"Assistant","ai-assistant-scroll-down-to-load-more":"Scroll down to load more","ai-assistant-scroll-down-to-load-more--plural":"Scroll down to load more","ai-assistant-confirm-delete-record":"Are you sure you want to delete this record?","ai-assistant-confirm-delete-record--plural":"Are you sure you want to delete this record?","ai-assistant-exit-quick-prompt":"Exit quick prompt","ai-assistant-exit-quick-prompt--plural":"Exit quick prompt","ai-assistant-supplier":"Supplier","ai-assistant-delete-conversation-warning":"The conversation content will be permanently deleted and cannot be recovered. Please confirm deleti
31657on.","ai-assistant-delete-conversation-warning--plural":"The conversation content will be permanently deleted and cannot be recovered. Please confirm deletion.","ai-assistant-continue-typing":"Continue typing...","ai-assistant-continue-typing--plural":"Continue typing...","ai-assistant-specs":"Specs","ai-assistant-specs--plural":"Specs","ai-assistant-pin-sidebar":"Pin sidebar","ai-assistant-pin-sidebar--plural":"Pin sidebar","ai-assistant-please-enter-a-sourcing-url":"Please enter a sourcing URL.","ai-assistant-please-enter-a-sourcing-url--plural":"Please enter a sourcing URL.","ai-assistant-please-enter-a-product-title":"Please enter a product title.","ai-assistant-please-enter-a-product-title--plural":"Please enter a product title.","ai-assistant-product-search-request-has-been-generated":"Product search request has been generated.","ai-assistant-product-search-request-has-been-generated--plural":"Product search request has been generated.","ai-assistant-please-enter-a-valid-target-price":"Please enter a valid target price.","ai-assistant-please-enter-a-valid-target-price--plural":"Please enter a valid target price.","ai-assistant-unit":"unit","ai-assistant-unit--plural":"unit","ai-assistant-sourcing-list":"Sourcing List","ai-assistant-sourcing-list--plural":"Sourcing List","ai-assistant-please-enter-a-description":"Please enter a description.","ai-assistant-please-enter-a-description--plural":"Please enter a description.","ai-assistant-logistics-cost":"Logistics Cost","ai-assistant-logistics-cost--plural":"Logistics Cost","ai-assistant-please-select":"Please select","ai-assistant-click-to-upload":"Click to upload","ai-assistant-click-to-upload--plural":"Click to upload","ai-assistant-please-enter-a-description-placeholder":"Please enter a description.","ai-assistant-please-enter-a-description-placeholder--plural":"Please enter a description.","ai-assistant-please-enter-a-target-price":"Please enter a target price.","ai-assistant-please-enter-a-target-price--plural":"Please enter a target price.","ai-assistant-sourcing-limits":"Sourcing Limits","ai-assistant-sourcing-limits--plural":"Sourcing Limits","ai-assistant-shipping-warehouse":"Shipping Warehouse","ai-assistant-shipping-warehouse--plural":"Shipping Warehouse","ai-assistant-request-for-sourcing":"Request for Sourcing","ai-assistant-current-level":"Current Level","ai-assistant-current-level--plural":"Current Level","ai-assistant-max-10mb-per-file-only-1-image-can-be-uploaded":"Max 10MB per file. Only 1 image can be uploaded.","ai-assistant-max-10mb-per-file-only-1-image-can-be-uploaded--plural":"Max 10MB per file. Only 1 image can be uploaded.","ai-assistant-product-title":"Product Title","ai-assistant-product-title--plural":"Product Title","ai-assistant-submitting":"Submitting...","ai-assistant-submitting--plural":"Submitting...","ai-assistant-lv3-users-can-post-20-sourcing-requests-daily":"LV3 users can post 20 sourcing requests daily.","ai-assistant-lv3-users-can-post-20-sourcing-requests-daily--plural":"LV3 users can post 20 sourcing requests daily.","ai-assistant-please-enter-sourcing-purpose":"Please enter sourcing purpose.","ai-assistant-please-enter-sourcing-purpose--plural":"Please enter sourcing purpose.","ai-assistant-please-provide-the-sourcing-purpose":"Please provide the sourcing purpose","ai-assistant-please-provide-the-sourcing-purpose--plural":"Please provide the sourcing purpose","ai-assistant-please-enter-a-target-price-placeholder":"Please enter a target price.","ai-assistant-please-enter-a-target-price-placeholder--plural":"Please enter a target price.","ai-assistant-please-enter-a-correct-sourcing-url":"Please enter a correct sourcing URL.","ai-assistant-please-enter-a-correct-sourcing-url--plural":"Please enter a correct sourcing URL.","ai-assistant-lv2-users-can-post-10-sourcing-requests-daily":"LV2 users can post 10 sourcing requests daily.","ai-assistant-lv2-users-can-post-10-sourcing-requests-daily--plural":"LV2 users can post 10 sourcing requests daily.","ai-assistant-no-products-found":"No products found","ai-assistant-no-products-found--plural":"No products found","ai-assistant-you-can-enter-1000-characters-at-most":"You can enter 1000 characters at most.","ai-assistant-you-can-enter-1000-characters-at-most--plural":"You can enter 1000 characters at most.","ai-assistant-details":"Details","ai-assistant-quantity-day":"Quantity/Day","ai-assistant-quantity-day--plural":"Quantity/Day","ai-assistant-sourcing-purpose":"Sourcing Purpose","ai-assistant-sourcing-purpose--plural":"Sourcing Purpose","ai-assistant-solution-type":"Solution Type","ai-assistant-solution-type--plural":"Solution Type","ai-assistant-lv4-users-can-post-50-sourcing-requests-daily":"LV4 users can post 50 sourcing requests daily.","ai-assistant-lv4-users-can-post-50-sourcing-requests-daily--plural":"LV4 users can post 50 sourcing requests daily.","ai-assistant-please-upload-a-product-image":"Please upload a product image.","ai-assistant-please-upload-a-product-image--plural":"Please upload a product image.","ai-assistant-description":"Description","ai-assistant-please-select-a-sourcing-purpose":"Please select a sourcing purpose.","ai-assistant-please-select-a-sourcing-purpose--plural":"Please select a sourcing purpose.","ai-assistant-and-vip-users-have-no-limits-on-sourcing-requests":"LV5 and VIP users have no limits on sourcing requests.","ai-assistant-and-vip-users-have-no-limits-on-sourcing-requests--plural":"LV5 and VIP users have no limits on sourcing requests.","ai-assistant-or-ask-me-for-updates":"or ask me for updates.","ai-assistant-or-ask-me-for-updates--plural":"or ask me for updates.","ai-assistant-yes":"Yes","ai-assistant-lv1-users-can-post-5-sourcing-requests-daily":"LV1 users can post 5 sourcing requests daily.","ai-assistant-lv1-users-can-post-5-sourcing-requests-daily--plural":"LV1 users can post 5 sourcing requests daily.","ai-assistant-logistics-method":"Logistics Method","ai-assistant-logistics-method--plural":"Logistics Method","ai-assistant-no-data-available":"No data available","ai-assistant-no-data-available--plural":"No data available","ai-assistant-sourcing-url":"Sourcing URL","ai-assistant-sourcing-url--plural":"Sourcing URL","ai-assistant-your-sourcing-request-has-been-created":"Your sourcing request has been created.","ai-assistant-your-sourcing-request-has-been-created--plural":"Your sourcing request has been created.","ai-assistant-day":"day","ai-assistant-please-enter-a-sourcing-url-placeholder":"Please enter a sourcing URL.","ai-assistant-please-enter-a-sourcing-url-placeholder--plural":"Please enter a sourcing URL.","ai-assistant-no":"No","ai-assistant-please-enter-a-product-title-placeholder":"Please enter a product title.","ai-assistant-please-enter-a-product-title-placeholder--plural":"Please enter a product title.","ai-assistant-recommended-products-list":"Recommended Products List","ai-assistant-recommended-products-list--plural":"Recommended Products List","ai-assistant-home":"Home","ai-assistant-upload-disabled-with-selected-products":"Image upload is unavailable while products are selected. Remove selected products to continue.","ai-assistant-upload-disabled-with-selected-products--plural":"Image upload is unavailable while products are selected. Remove selected products to continue.","ai-assistant-product-prompt-logistics-template":"Perform logistics estimation.","ai-assistant-product-prompt-logistics-template--plural":"Perform logistics estimation.","ai-assistant-product-prompt-cost-template":"Perform cost analysis.","ai-assistant-product-prompt-cost-template--plural":"Perform cost analysis.","common-mycj-menu-update-guide-done":"Got it","common-mycj-menu-update-guide-next":"Next","common-mycj-menu-update-guide-prev":"Previous","common-mycj-menu-update-guide-prev--plural":"Previous","common-mycj-menu-sourcing-by-cj":"By CJ","common-mycj-menu-sourcing-by-cj--plural":"By CJ","common-mycj-menu-sourcing-by-aliexpress":"By AliExpress","common-mycj-menu-sourcing-by-aliexpress--plural":"By AliExpress","common-mycj-menu-sourcing-by-ebay":"By eBay","common-mycj-menu-sourcing-by-ebay--plural":"By eBay","common-mycj-menu-sourcing-by-1688":"By 1688","common-mycj-menu-sourcing-by-1688--plural":"By 1688","common-mycj-menu-sourcing-by-taobao":"By taobao","common-mycj-menu-sourcing-by-taobao--plural":"By taobao","common-mycj-menu-settings":"Settings","common-mycj-menu-24h-fulfillment":"24h Fulfillment","common-mycj-menu-sourcing-by-qk":"By QK source","common-mycj-menu-sourcing-by-qk--plural":"By QK source","common-mycj-menu-order-fulfillment":"Order Fulfillment","common-mycj-menu-update-guide-skip":"Skip","common-mycj-menu-subscribe-service":"Subscribe Service","common-mycj-menu-subscribe-service--plural":"Subscribe Service","common-mycj-menu-buy-sell-yourstore":"Buy/Sell Your Store","common-mycj-menu-buy-sell-yourstore--plural":"Buy/Sell Your Store","common-mycj-menu-payment-agency":"Payment Agency","common-mycj-menu-payment-agency--plural":"Payment Agency","common-mycj-menu-cj-prime":"CJ Prime","common-mycj-menu-shipping-calculation":"Shipping Calculation","common-mycj-menu-recent-activity":"Recent Activity","common-mycj-menu-recent-activity--plural":"Recent Activity","common-mycj-menu-home":"Home","common-mycj-menu-fast-shipping":"Faster Shipping Service","common-mycj-menu-fast-shipping--plural":"Faster Shipping Service","common-mycj-menu-update-guide-content-1":"We added a Home menu as your platform homepage.","common-mycj-menu-update-guide-content-1--plural":"We added a Home menu as your platform homepage.","common-mycj-menu-update-guide-content-2":"The former \\"Find\\" menu has been renamed to \\"Source,\\" where you can source products, factories, and brand-related services.","common-mycj-menu-update-guide-content-2--plural":"The former \\"Find\\" menu has been renamed to \\"Source,\\" where you can source products, factories, and brand-related services.","common-mycj-menu-update-guide-content-3":"We added a new \\"Community\\" menu, where you can access Agents, Mentors, and Elites.","common-mycj-menu-update-guide-content-3--plural":"We added a new \\"Community\\" menu, where you can access Agents, Mentors, and Elites.","common-mycj-menu-update-guide-content-4":"The former \\"Products\\" menu has been renamed to \\"My Products,\\" where you can continue managing product-related operations.","common-mycj-menu-update-guide-content-4--plural":"The former \\"Products\\" menu has been renamed to \\"My Products,\\" where you can continue managing product-related operations.","common-mycj-menu-update-guide-content-5":"Custom Packaging and Customization have been grouped under \\"My Products\\" for easier management.","common-mycj-menu-update-guide-content-5--plural":"Custom Packaging and Customization have been grouped under \\"My Products\\" for easier management.","common-mycj-menu-update-guide-content-6":"The Warehouse Operation Video List has been grouped under Order Fulfillment for easier management.","common-mycj-menu-update-guide-content-6--plural":"The Warehouse Operation Video List has been grouped under Order Fulfillment for easier management.","common-mycj-menu-update-guide-content-7":"The Services module has been fully upgraded. You can now subscribe to services independently, and all your previous service records have been retained.","common-mycj-menu-update-guide-content-7--plural":"The Services module has been fully upgraded. You can now subscribe to services independently, and all your previous service records have been retained.","common-mycj-menu-update-guide-content-8":"The former \\"Profile\\" menu has been renamed to \\"Settings,\\" and Sub-account management has been integrated into Settings.","common-mycj-menu-update-guide-content-8--plural":"The former \\"Profile\\" menu has been renamed to \\"Settings,\\" and Sub-account management has been integrated into Settings.","common-mycj-menu-update-guide-content-9":"CJ Prime and Shipping Calculation have been grouped under the \\"My CJ\\" menu for easier management.","common-mycj-menu-update-guide-content-9--plural":"CJ Prime and Shipping Calculation have been grouped under the \\"My CJ\\" menu for easier management.","common-mycj-menu-update-guide-content-10":"All history-related features have been consolidated into the \\"Recent Activity\\" menu for centralized access.","common-mycj-menu-update-guide-content-10--plural":"All history-related features have been consolidated into the \\"Recent Activity\\" menu for centralized access.","ai-assistant-product-recommendations":"Product Recommendations","ai-assistant-product-recommendations--plural":"Product Recommendations","ai-assistant-search-similar-products":"Search for Similar Products","ai-assistant-search-similar-products--plural":"Search for Similar Products","ai-assistant-prompt-find-products":"Find matching products by [product name / image].","ai-assistant-prompt-find-products--plural":"Find matching products by [product name / image].","ai-assistant-customs-clearance-fee":"Customs Clearance Fee","ai-assistant-customs-clearance-fee--plural":"Customs Clearance Fee","ai-assistant-your-sourcing-request-has-been-created-you-can-check-the-progress-later-in-the":"Your sourcing request has been created. You can check the progress later in the ","ai-assistant-your-sourcing-request-has-been-created-you-can-check-the-progress-later-in-the--plural":"Your sourcing request has been created. You can check the progress later in the ","ai-assistant-download":"Download","ai-assistant-cost-structure":"Cost Structure","ai-assistant-cost-structure--plural":"Cost Structure","common-mycj-menu-sourcing-list":"Sourcing List","common-mycj-menu-update-guide-content-10-1":"Browsing history, saved items, and export records are now available under \\"Recent Activity\\" for easier access.","common-mycj-menu-update-guide-content-10-1--plural":"Browsing history, saved items, and export records are now available under \\"Recent Activity\\" for easier access.","global-warehouses-filter":"Filter","global-warehouses-filter--plural":"Filter","ready-to-ship-business-model":"Business Model","ready-to-ship-business-model--plural":"Business Model","ready-to-ship-inventory-note":"Note: To prioritize fast fulfillment, only items meeting minimum stock requirements are shown.","ready-to-ship-inventory-note--plural":"Note: To prioritize fast fulfillment, only items meeting minimum stock requirements are shown.","ready-to-ship-products-with-videos":"Products with Videos","ready-to-ship-products-with-videos--plural":"Products with Videos","ready-to-ship-product-with-certificates":"Product with Certificates","ready-to-ship-product-with-certificates--plural":"Product with Certificates","ready-to-ship-price":"Price","ready-to-ship-clear-all":"Clear All","ready-to-ship-filter":"Filter","ready-to-ship-filter--plural":"Filter","ready-to-ship-inventory":"Inventory","ready-to-ship-product-launch-time":"Product Launch Time","ready-to-ship-product-launch-time--plural":"Product Launch Time","ready-to-ship-category":"Category","ready-to-ship-confirm":"Confirm","ai-assistant-case-recommendation":"Case Recommendation","ai-assistant-case-recommendation--plural":"Case Recommendation","ai-assistant-case-ask-similar-btn":"Ask Similar Questions","ai-assistant-case-ask-similar-btn--plural":"Ask Similar Questions","ai-assistant-select":"Select","ai-assistant-case-ask-similar-prompt":"Would you like to get similar results?","ai-assistant-case-ask-similar-prompt--plural":"Would you like to get similar results?","ai-assistant-scroll-right":"Scroll right","ai-assistant-scroll-right--plural":"Scroll right","ai-assistant-scroll-left":"Scroll left","ai-assistant-scroll-left--plural":"Scroll left","ai-assistant-no-countries":"No countries available","ai-assistant-no-countries--plural":"No countries available","ai-assistant-select-platform":"Select Platform","ai-assistant-select-platform--plural":"Select Platform","ai-assistant-show-reasoning":"Show reasoning","ai-assistant-show-reasoning--plural":"Show reasoning","ai-assistant-sku-label":"SKU","ai-assistant-ship-to":"Ship to","ai-assistant-search-country":"Search country or code","ai-assistant-search-country--plural":"Search country or code","ai-assistant-hide-reasoning":"Hide reasoning","ai-assistant-hide-reasoning--plural":"Hide reasoning","ai-assistant-no-response":"No response generated.",
31657"ai-assistant-no-response--plural":"No response generated.","ai-assistant-no-platforms":"No platforms available","ai-assistant-no-platforms--plural":"No platforms available","ai-assistant-product-price":"Product Price","ai-assistant-already-selected":"Already Selected","ai-assistant-already-selected--plural":"Already Selected","ai-assistant-select-variant":"Select Variant","ai-assistant-select-variant--plural":"Select Variant","ai-assistant-select-country":"Please select a country","ai-assistant-select-country--plural":"Please select a country","ai-assistant-case-view-details":"View details","ai-assistant-case-view-details--plural":"View details","ai-assistant-expand":"Expand","ai-assistant-expand--plural":"Expand","ai-assistant-collapse":"Collapse","ai-assistant-more":"More","ai-assistant-collect":"Collect","ai-assistant-collect--plural":"Collect","ai-assistant-sourcing-limit-status":"Sourcing limit status","ai-assistant-sourcing-limit-status--plural":"Sourcing limit status","ai-assistant-switch-to-human-agent":"Switch to Human Agent","ai-assistant-switch-to-human-agent--plural":"Switch to Human Agent","ai-assistant-please-select-platform":"Please select a platform","ai-assistant-please-select-platform--plural":"Please select a platform","ai-assistant-collection-failed-please-try-again":"Operation failed, please try again.","ai-assistant-collection-failed-please-try-again--plural":"Operation failed, please try again.","ai-assistant-uncollect":"Remove from Collection","ai-assistant-uncollect--plural":"Remove from Collection","ai-assistant-failed-to-load-collection":"Failed to load collections.","ai-assistant-failed-to-load-collection--plural":"Failed to load collections.","ai-assistant-batch-uncollect":"Remove Selected","ai-assistant-batch-uncollect--plural":"Remove Selected","ai-assistant-collection-limit-exceeded":"Collection limit reached (max 100). Please remove some before adding new ones.","ai-assistant-collection-limit-exceeded--plural":"Collection limit reached (max 100). Please remove some before adding new ones.","ai-assistant-collection":"Collection","ai-assistant-manage-collection":"Batch Remove","ai-assistant-manage-collection--plural":"Batch Remove","ai-assistant-collected-successfully":"Added to collection.","ai-assistant-collected-successfully--plural":"Added to collection.","ai-assistant-no-more-collection":"No more collections","ai-assistant-no-more-collection--plural":"No more collections","ai-assistant-new-chat":"New Chat","ai-assistant-new-chat--plural":"New Chat","ai-assistant-select-all":"Select all","ai-assistant-uncollected-successfully":"Removed from collection.","ai-assistant-uncollected-successfully--plural":"Removed from collection.","ai-assistant-current-chat":"Current Chat","ai-assistant-current-chat--plural":"Current Chat","ai-assistant-no-collection":"No collections yet","ai-assistant-no-collection--plural":"No collections yet","ai-assistant-collected":"Collected","ai-assistant-collected--plural":"Collected","footer-ready-to-ship":"Ready to Ship","footer-ready-to-ship--plural":"Ready to Ship","footer-community":"Community","footer-community--plural":"Community","footer-agents":"Agents","footer-agents--plural":"Agents","footer-cjec":"CJEC","footer-cjec--plural":"CJEC","payodm-advantages-section-3-item-3-label":"Fast Processing:","payodm-advantages-section-3-item-3-label--plural":"Fast Processing:","payodm-steps-title":"With Paid ODM","payodm-steps-title--plural":"With Paid ODM","payodm-steps-slogan-highlight":"we handle the rest.","payodm-steps-slogan-highlight--plural":"we handle the rest.","payodm-mobile-prompt-message":"Thank you for your support. This feature is currently available on the Web. Go try it out!","payodm-mobile-prompt-message--plural":"Thank you for your support. This feature is currently available on the Web. Go try it out!","payodm-cta-title":"Stop wasting time on unreliable suppliers.","payodm-cta-title--plural":"Stop wasting time on unreliable suppliers.","payodm-faq-title":"Frequently Asked Questions","payodm-faq-title--plural":"Frequently Asked Questions","payodm-advantages-section-3-item-2-desc":"delays over 7 days → refund eligible","payodm-advantages-section-3-item-2-desc--plural":"delays over 7 days → refund eligible","payodm-faq-subtitle":"Everything you need to know before choosing between Free Standard ODM and Premium Paid ODM","payodm-faq-subtitle--plural":"Everything you need to know before choosing between Free Standard ODM and Premium Paid ODM","payodm-advantages-section-2-item-3-label":"Non-Disclosure:","payodm-advantages-section-2-item-3-label--plural":"Non-Disclosure:","payodm-cta-button":"Start My Premium Paid ODM — $100","payodm-cta-button--plural":"Start My Premium Paid ODM — $100","payodm-advantages-section-3-item-1-desc":"refund for the uncompleted portion if results deviate.","payodm-advantages-section-3-item-1-desc--plural":"refund for the uncompleted portion if results deviate.","payodm-advantages-section-3-title":"Quality Assurance & Refund Policy","payodm-advantages-section-3-title--plural":"Quality Assurance & Refund Policy","payodm-faq-a7":"Supplier matching, initial quotations, and sampling plan.","payodm-faq-a7--plural":"Supplier matching, initial quotations, and sampling plan.","payodm-faq-a6":"Because Paid ODM saves you time, reduces risk, and gives you a dedicated team to handle everything.","payodm-faq-a6--plural":"Because Paid ODM saves you time, reduces risk, and gives you a dedicated team to handle everything.","payodm-steps-step-4":"STEP 4","payodm-steps-step-4--plural":"STEP 4","payodm-faq-a5":"Absolutely. You can upgrade to Paid ODM at any time, and your dedicated service will c
31657ontinue for the remaining project lifecycle.","payodm-faq-a5--plural":"Absolutely. You can upgrade to Paid ODM at any time, and your dedicated service will continue for the remaining project lifecycle.","payodm-steps-step-3":"STEP 3","payodm-steps-step-3--plural":"STEP 3","payodm-faq-a4":"Every request is reviewed and processed within 3 business days. Paid ODM customers also receive daily proactive follow-up.","payodm-faq-a4--plural":"Every request is reviewed and processed within 3 business days. Paid ODM customers also receive daily proactive follow-up.","payodm-faq-a3":"No. All data is encrypted, IP is 100% owned by you, and your project will never be shared or promoted without your explicit consent.","payodm-faq-a3--plural":"No. All data is encrypted, IP is 100% owned by you, and your project will never be shared or promoted without your explicit consent.","payodm-steps-step-5":"STEP 5","payodm-steps-step-5--plural":"STEP 5","payodm-faq-a2":"Yes. If results deviate from the requirements, or if a delay caused by us exceeds 7 days, the unfulfilled portion is eligible for a refund.","payodm-faq-a2--plural":"Yes. If results deviate from the requirements, or if a delay caused by us exceeds 7 days, the unfulfilled portion is eligible for a refund.","payodm-faq-a1":"A dedicated squad (Senior Account Manager + Liaison + Designer), daily proactive follow-up, premium supplier sourcing, dedicated after-sales support, and a refund guarantee for any unfulfilled portion.","payodm-faq-a1--plural":"A dedicated squad (Senior Account Manager + Liaison + Designer), daily proactive follow-up, premium supplier sourcing, dedicated after-sales support, and a refund guarantee for any unfulfilled portion.","payodm-steps-step-2":"STEP 2","payodm-steps-step-2--plural":"STEP 2","payodm-steps-step-1":"STEP 1","payodm-steps-step-1--plural":"STEP 1","payodm-steps-text-1":"Submit your product idea","payodm-steps-text-1--plural":"Submit your product idea","payodm-advantages-section-3-item-1-label":"Quality Guarantee:","payodm-advantages-section-3-item-1-label--plural":"Quality Guarantee:","payodm-cta-spo":"Start Paid ODM — $100","payodm-cta-spo--plural":"Start Paid ODM — $100","payodm-steps-text-5":"Launch with confidence","payodm-steps-text-5--plural":"Launch with confidence","payodm-steps-text-4":"Confirm production","payodm-steps-text-4--plural":"Confirm production","payodm-steps-text-3":"Receive samples faster","payodm-steps-text-3--plural":"Receive samples faster","payodm-steps-text-2":"Your manager handles sourcing and negotiation","payodm-steps-text-2--plural":"Your manager handles sourcing and negotiation","payodm-cta-subtitle":"For just $100, get a dedicated team, faster results, and peace of mind.","payodm-cta-subtitle--plural":"For just $100, get a dedicated team, faster results, and peace of mind.","payodm-steps-subtitle":"Same clear workflow – Premium Paid ODM adds a dedicated team, daily follow-up, and a refund safety net at every step","payodm-steps-subtitle--plural":"Same clear workflow – Premium Paid ODM adds a dedicated team, daily follow-up, and a refund safety net at every step","payodm-steps-slogan-text":"You focus on selling — ","payodm-steps-slogan-text--plural":"You focus on selling — ","payodm-advantages-section-3-item-2-label":"Timely Delivery:","payodm-advantages-section-3-item-2-label--plural":"Timely Delivery:","payodm-mobile-prompt-title":"Notice","payodm-mobile-prompt-title--plural":"Notice","payodm-advantages-section-2-item-3-desc":"never shared or promoted without your explicit consent.","payodm-advantages-section-2-item-3-desc--plural":"never shared or promoted without your explicit consent.","payodm-advantages-section-3-item-3-desc":"every request handled within 3 business days.","payodm-advantages-section-3-item-3-desc--plural":"every request handled within 3 business days.","payodm-faq-q7":"What can I expect in the first 7 days?","payodm-faq-q7--plural":"What can I expect in the first 7 days?","payodm-faq-q6":"Why should I pay if Free ODM is available?","payodm-faq-q6--plural":"Why should I pay if Free ODM is available?","payodm-faq-q5":"Can I switch from Free Standard ODM to Paid ODM later?","payodm-faq-q5--plural":"Can I switch from Free Standard ODM to Paid ODM later?","payodm-faq-q4":"How quickly will I receive the first response?","payodm-faq-q4--plural":"How quickly will I receive the first response?","payodm-faq-q3":"Will my designs and brand information be leaked?","payodm-faq-q3--plural":"Will my designs and brand information be leaked?","payodm-faq-q2":"Can I get a refund if I\'m not satisfied?","payodm-faq-q2--plural":"Can I get a refund if I\'m not satisfied?","payodm-faq-q1":"What does the $100 Paid ODM include?","payodm-faq-q1--plural":"What does the $100 Paid ODM include?","payodm-mobile-prompt-button":"OK","payodm-advantages-section-2-item-1-desc":"100% of designs, files & IP belong to you.","payodm-advantages-section-2-item-1-desc--plural":"100% of designs, files & IP belong to you.","payodm-advantages-section-1-item-1-desc":"from logo & packaging design to production & delivery.","payodm-advantages-section-1-item-1-desc--plural":"from logo & packaging design to production & delivery.","payodm-who-cta-paid":"Start My Premium Paid ODM – $100","payodm-who-cta-paid--plural":"Start My Premium Paid ODM – $100","payodm-advantages-section-2-title":"Privacy & Data Security","payodm-advantages-section-2-title--plural":"Privacy & Data Security","payodm-comparison-paid-1-highlight":"Sr. Account Manager + Liaison + Designer","payodm-comparison-paid-1-highlight--plural":"Sr. Account Manager + Liaison + Designer","payodm-comparison-paid-8-highlight":"3 business days","payodm-comparison-paid-8-highlight--plural":"3 business days","payodm-comparison-paid-1-rest":" – a stable service squad","payodm-comparison-paid-1-rest--plural":" – a stable service squad","payodm-advantages-section-1-item-1-label":"End-to-end service:","payodm-advantages-section-1-item-1-label--plural":"End-to-end service:","payodm-advantages-subtitle":"Built for brand owners who want predictable delivery, protected IP, and risk-free engagement.","payodm-advantages-subtitle--plural":"Built for brand owners who want predictable delivery, protected IP, and risk-free engagement.","payodm-advantages-section-2-item-2-desc":"high-level encryption; archive or delete on request.","payodm-advantages-section-2-item-2-desc--plural":"high-level encryption; archive or delete on request.","payodm-advantages-section-1-item-2-desc":"1-on-1 expert support throughout your journey.","payodm-advantages-section-1-item-2-desc--plural":"1-on-1 expert support throughout your journey.","payodm-comparison-paid-2-highlight":"Daily proactive follow-up","payodm-comparison-paid-2-highlight--plural":"Daily proactive follow-up","payodm-comparison-cta-paid":"Start My Premium Paid ODM – $100","payodm-comparison-cta-paid--plural":"Start My Premium Paid ODM – $100","payodm-comparison-paid-8-rest":"All requests reviewed & processed within ","payodm-comparison-paid-8-rest--plural":"All requests reviewed & processed within ","payodm-comparison-paid-2-rest":", transparent and predictable","payodm-comparison-paid-2-rest--plural":", transparent and predictable","payodm-comparison-paid-6-highlight":"End-to-end","payodm-comparison-paid-6-highlight--plural":"End-to-end","payodm-hero-cta-paid":"Start My Premium Paid ODM – $100","payodm-hero-cta-paid--plural":"Start My Premium Paid ODM – $100","payodm-advantages-title":"Main Advantages of Premium Paid ODM","payodm-advantages-title--plural":"Main Advantages of Premium Paid ODM","payodm-hero-subtitle":"Skip unreliable suppliers, slow replies, and costly mistakes. Get a dedicated team to handle sourcing, design, and production for you.","payodm-hero-subtitle--plural":"Skip unreliable suppliers, slow replies, and costly mistakes. Get a dedicated team to handle sourcing, design, and production for you.","payodm-comparison-paid-3-highlight":"Top-tier vetted suppliers","payodm-comparison-paid-3-highlight--plural":"Top-tier vetted suppliers","payodm-comparison-footer":"If you value speed, reliability, and peace of mind – Paid ODM is built for you.","payodm-comparison-footer--plural":"If you value speed, reliability, and peace of mind – Paid ODM is built for you.","payodm-advantages-section-2-item-2-label":"Secure Data:","payodm-advantages-section-2-item-2-label--plural":"Secure Data:","payodm-who-item-1":"First-time sellers looking to avoid costly mistakes","payodm-who-item-1--plural":"First-time sellers looking to avoid costly mistakes","payodm-who-item-2":"Growing brands that need stable suppliers","payodm-who-item-2--plural":"Growing brands that need stable suppliers","payodm-who-item-3":"Anyone tired of slow replies and unclear timelines","payodm-who-item-3--plural":"Anyone tired of slow replies and unclear timelines","payodm-who-item-4":"Sellers who want a team instead of doing everything alone","payodm-who-item-4--plural":"Sellers who want a team instead of doing everything alone","payodm-comparison-paid-4-highlight":"Dedicated CS","payodm-comparison-paid-4-highlight--plural":"Dedicated CS","payodm-advantages-section-1-item-3-label":"Direct Factory Access:","payodm-advantages-section-1-item-3-label--plural":"Direct Factory Access:","payodm-comparison-paid-5-rest":"/delay (>7 days) issues","payodm-comparison-paid-5-rest--plural":"/delay (>7 days) issues","payodm-comparison-free-8":"Best-effort service","payodm-comparison-free-8--plural":"Best-effort service","payodm-comparison-free-7":"Standard platform protection","payodm-comparison-free-7--
31657plural":"Standard platform protection","payodm-comparison-paid-6-rest":": logo, packaging, production, delivery","payodm-comparison-paid-6-rest--plural":": logo, packaging, production, delivery","payodm-hero-title-highlight":"Premium Paid ODM","payodm-hero-title-highlight--plural":"Premium Paid ODM","payodm-comparison-paid-4-rest":", fast turnaround, closed-loop handling","payodm-comparison-paid-4-rest--plural":", fast turnaround, closed-loop handling","payodm-comparison-subtitle":"Same platform, different service depth. Pick the plan that matches your brand\'s stage.","payodm-comparison-subtitle--plural":"Same platform, different service depth. Pick the plan that matches your brand\'s stage.","payodm-comparison-paid-7-rest":", encrypted storage, strict NDA","payodm-comparison-paid-7-rest--plural":", encrypted storage, strict NDA","payodm-comparison-paid-5-highlight":"Refund for unfulfilled portion on quality","payodm-comparison-paid-5-highlight--plural":"Refund for unfulfilled portion on quality","payodm-advantages-section-1-title":"Professional & Dedicated Support","payodm-advantages-section-1-title--plural":"Professional & Dedicated Support","payodm-comparison-service-3":"Supply Chain Resources","payodm-comparison-service-3--plural":"Supply Chain Resources","payodm-comparison-service-2":"Response & Follow-Up","payodm-comparison-service-2--plural":"Response & Follow-Up","payodm-comparison-service-1":"Dedicated Team","payodm-comparison-service-1--plural":"Dedicated Team","payodm-advantages-section-2-item-1-label":"Full ownership:","payodm-advantages-section-2-item-1-label--plural":"Full ownership:","payodm-comparison-title":"Free vs Paid ODM – What\'s the Difference?","payodm-comparison-title--plural":"Free vs Paid ODM – What\'s the Difference?","payodm-comparison-service-8":"Processing SLA","payodm-comparison-service-8--plural":"Processing SLA","payodm-comparison-service-7":"Privacy & Data Security","payodm-comparison-service-7--plural":"Privacy & Data Security","payodm-comparison-service-6":"Design & Delivery Scope","payodm-comparison-service-6--plural":"Design & Delivery Scope","payodm-comparison-paid-header":"Premium Paid ODM ($100)","payodm-comparison-paid-header--plural":"Premium Paid ODM ($100)","payodm-comparison-service-5":"Refund Guarantee","payodm-comparison-service-5--plural":"Refund Guarantee","payodm-comparison-service-4":"After-Sales Support","payodm-comparison-service-4--plural":"After-Sales Support","payodm-who-title":"Who Should Choose Paid ODM?","payodm-who-title--plural":"Who Should Choose Paid ODM?","payodm-hero-title":"Launch Your Product without Trial and Error –","payodm-hero-title--plural":"Launch Your Product without Trial and Error –","payodm-comparison-free-header":"Free ODM","payodm-comparison-free-header--plural":"Free ODM","payodm-comparison-paid-3-rest":" + multi-option proposals & backups","payodm-comparison-paid-3-rest--plural":" + multi-option proposals & backups","payodm-comparison-cta-free":"Continue with Free ODM","payodm-comparison-cta-free--plural":"Continue with Free ODM","payodm-advantages-section-1-item-3-desc":"vetted suppliers – best balance of cost, quality, and lead time.","payodm-advantages-section-1-item-3-desc--plural":"vetted suppliers – best balance of cost, quality, and lead time.","payodm-hero-cta-free":"Continue with Free ODM","payodm-hero-cta-free--plural":"Continue with Free ODM","payodm-comparison-free-2":"Long cycles, irregular cadence, and a pace outside your control","payodm-comparison-free-2--plural":"Long cycles, irregular cadence, and a pace outside your control","payodm-comparison-free-1":"A randomly assigned agent, no fixed contact","payodm-comparison-free-1--plural":"A randomly assigned agent, no fixed contact","payodm-comparison-free-6":"Basic design & manufacturing","payodm-comparison-free-6--plural":"Basic design & manufacturing","payodm-comparison-free-5":"Not applicable","payodm-comparison-free-5--plural":"Not applicable","payodm-advantages-section-1-item-2-label":"Dedicated Manager:","payodm-advantages-section-1-item-2-label--plural":"Dedicated Manager:","payodm-comparison-free-4":"Slow responses, queued ticket handling","payodm-comparison-free-4--plural":"Slow responses, queued ticket handling","payodm-comparison-free-3":"Fewer supplier options, limited choices","payodm-comparison-free-3--plural":"Fewer supplier options, limited choices","payodm-comparison-paid-7-highlight":"100% IP ownership","payodm-comparison-paid-7-highlight--plural":"100% IP ownership","payodm-hero-badge-3":"Faster turnaround","payodm-hero-badge-3--plural":"Faster turnaround","payodm-hero-badge-2":"Verified factories only","payodm-hero-badge-2--plural":"Verified factories only","payodm-hero-badge-1":"Trusted by 5,000+ sellers","payodm-hero-badge-1--plural":"Trusted by 5,000+ sellers","ai-assistant-prompt-product-selection":"I am [Seller Type] focus on [Platform] [Market]","ai-assistant-prompt-product-selection--plural":"I am [Seller Type] focus on [Platform] [Market]","ai-assistant-product-selection-recommendation":"Product Selection Recommendation","ai-assistant-product-selection-recommendation--plural":"Product Selection Recommendation","ai-assistant-product-selection-
31657placeholder":"Is the wireless earbuds category worth entering? Please provide a product selection analysis report for me.","ai-assistant-product-selection-placeholder--plural":"Is the wireless earbuds category worth entering? Please provide a product selection analysis report for me.","ai-assistant-report-product-recommendations":"Product Recommendations","ai-assistant-report-product-recommendations--plural":"Product Recommendations","ai-assistant-report-platform":"Platform","ai-assistant-report-this-category":"this category","ai-assistant-report-this-category--plural":"this category","ai-assistant-report-title":"Product Selection Report","ai-assistant-report-title--plural":"Product Selection Report","ai-assistant-report-generated":"Generated","ai-assistant-report-generated--plural":"Generated","ai-assistant-report-market":"Market","ai-assistant-report-market--plural":"Market","ai-assistant-report-price-range":"Price Range","ai-assistant-report-price-range--plural":"Price Range","ai-assistant-report-rating-distribution":"Rating Distribution (by product count share)","ai-assistant-report-rating-distribution--plural":"Rating Distribution (by product count share)","ai-assistant-report-avg-rating":"Average Rating","ai-assistant-report-avg-rating--plural":"Average Rating","ai-assistant-report-market-insight":"Market Insight","ai-assistant-report-market-insight--plural":"Market Insight","ai-assistant-report-supply-gap":"Supply Gap Score","ai-assistant-report-supply-gap--plural":"Supply Gap Score","ai-assistant-report-create-sourcing":"Create Sourcing Request","ai-assistant-report-create-sourcing--plural":"Create Sourcing Request","ai-assistant-report-opportunity-gap-subtitle":"Identify niche opportunities based on competition landscape and user pain points","ai-assistant-report-opportunity-gap-subtitle--plural":"Identify niche opportunities based on competition landscape and user pain points","ai-assistant-report-consumer-factors":"Consumer Decision Factors","ai-assistant-report-consumer-factors--plural":"Consumer Decision Factors","ai-assistant-report-no-products":"No matching products found. Try adjusting category keywords.","ai-assistant-report-no-products--plural":"No matching products found. Try adjusting category keywords.","ai-assistant-report-top-seller-count":"Top Seller Count","ai-assistant-report-top-seller-count--plural":"Top Seller Count","ai-assistant-report-score":"Score","ai-assistant-report-score--plural":"Score","ai-assistant-report-sourcing-desc":"Create a sourcing request and let the supply chain team find more matching products for your target category.","ai-assistant-report-sourcing-desc--plural":"Create a sourcing request and let the supply chain team find more matching products for your target category.","ai-assistant-report-pain-score":"Review Pain Score","ai-assistant-report-pain-score--plural":"Review Pain Score","ai-assistant-report-new-sales-contribution":"New Product Sales Contribution","ai-assistant-report-new-sales-contribution--plural":"New Product Sales Contribution","ai-assistant-report-pain-low":"Low Pain","ai-assistant-report-pain-low--plural":"Low Pain","ai-assistant-report-review-distribution":"Review Count Distribution (by product count share)","ai-assistant-report-review-distribution--plural":"Review Count Distribution (by product count share)","ai-assistant-report-action-advice":"Action Advice","ai-assistant-report-action-advice--plural":"Action Advice","ai-assistant-report-view-detail":"View detail","ai-assistant-report-view-detail--plural":"View detail","ai-assistant-report-competition-level":"Competition Level","ai-assistant-report-competition-level--plural":"Competition Level","ai-assistant-report-opportunity-gap":"Market Opportunity Gap","ai-assistant-report-opportunity-gap--plural":"Market Opportunity Gap","ai-assistant-report-search-growth":"Search Growth","ai-assistant-report-search-growth--plural":"Search Growth","ai-assistant-report-market-insight-fallback":"Based on current category supply-demand, consumer preferences and competitive environment, this category still has entry opportunities.","ai-assistant-report-market-insight-fallback--plural":"Based on current category supply-demand, consumer preferences and competitive environment, this category still has entry opportunities.","ai-assistant-report-avg-profit-margin":"Avg Profit Margin","ai-assistant-report-avg-profit-margin--plural":"Avg Profit Margin","ai-assistant-report-pain-medium":"Medium Pain","ai-assistant-report-pain-medium--plural":"Medium Pain","ai-assistant-report-market-insight-label":"Market Insight: ","ai-assistant-report-market-insight-label--plural":"Market Insight: ","ai-assistant-report-sourcing-title":"Cannot find ideal products?","ai-assistant-report-sourcing-title--plural":"Cannot find ideal products?","ai-assistant-report-new-revenue-contribution":"New Product Revenue Contribution","ai-assistant-report-new-revenue-contribution--plural":"New Product Revenue Contribution","ai-assistant-report-brand-avg-price":"Brand Avg Price","ai-assistant-report-brand-avg-price--plural":"Brand Avg Price","ai-assistant-report-pain-high":"High Pain","ai-assistant-report-pain-high--plural":"High Pain","ai-assistant-report-compet
31657ition-insight":"Competition Landscape Insight","ai-assistant-report-competition-insight--plural":"Competition Landscape Insight","ai-assistant-report-monopoly-degree":"Top Product Monopoly","ai-assistant-report-monopoly-degree--plural":"Top Product Monopoly","common-mycj-menu-inventory-planner":"Inventory Planner","common-mycj-menu-inventory-planner--plural":"Inventory Planner","ai-assistant-report-meta-summary":"Based on the analysis of market trends, competitive landscape and supply-demand dynamics, deliver a market positioning and product selection report.","ai-assistant-report-meta-summary--plural":"Based on the analysis of market trends, competitive landscape and supply-demand dynamics, deliver a market positioning and product selection report.","product-market-drawer-tips":"Primary categories monitored for this site.","product-market-drawer-tips--plural":"Primary categories monitored for this site.","product-market-drawer-tips-3":"Average sales of all monitored categories on this site. Drill down for top sales categories and products.","product-market-drawer-tips-3--plural":"Average sales of all monitored categories on this site. Drill down for top sales categories and products.","product-market-drawer-tips-4":"Categories sorted by ranking change rate in descending order. Ranking change rate = relative change of category BSR in the selected period.","product-market-drawer-tips-4--plural":"Categories sorted by ranking change rate in descending order. Ranking change rate = relative change of category BSR in the selected period.","product-market-drawer-tips-2":"Total ASINs covered under the site.","product-market-drawer-tips-2--plural":"Total ASINs covered under the site.","odm-comparison-cta-paid":"Start My Premium Paid ODM – $100","odm-comparison-cta-paid--plural":"Start My Premium Paid ODM – $100","odm-comparison-paid-1-highlight":"Sr. Account Manager + Liaison + Designer","odm-comparison-paid-1-highlight--plural":"Sr. Account Manager + Liaison + Designer","odm-advantages-section-1-item-1-label":"End-to-end service:","odm-advantages-section-1-item-1-label--plural":"End-to-end service:","odm-steps-slogan-highlight":"we handle the rest.","odm-steps-slogan-highlight--plural":"we handle the rest.","odm-comparison-paid-8-highlight":"3 business days","odm-comparison-paid-8-highlight--plural":"3 business days","odm-comparison-paid-8-rest":"All requests reviewed & processed within ","odm-comparison-paid-8-rest--plural":"All requests reviewed & processed within ","odm-who-title":"Who Should Choose Paid ODM?","odm-who-title--plural":"Who Should Choose Paid ODM?","odm-mobile-prompt-title":"Notice","odm-mobile-prompt-title--plural":"Notice","odm-steps-title":"With Paid ODM","odm-steps-title--plural":"With Paid ODM","odm-comparison-paid-7-highlight":"100% IP ownership","odm-comparison-paid-7-highlight--plural":"100% IP ownership","odm-advantages-section-3-item-3-label":"Fast Processing:","odm-advantages-section-3-item-3-label--plural":"Fast Processing:","odm-advantages-section-2-item-3-desc":"never shared or promoted without your explicit consent.","odm-advantages-section-2-item-3-desc--plural":"never shared or promoted without your explicit consent.","odm-advantages-section-3-item-3-desc":"every request handled within 3 business days.","odm-advantages-section-3-item-3-desc--plural":"every request handled within 3 business days.","odm-comparison-paid-3-highlight":"Top-tier vetted suppliers","odm-comparison-paid-3-highlight--plural":"Top-tier vetted suppliers","odm-advantages-section-2-item-1-label":"Full ownership:","odm-advantages-section-2-item-1-label--plural":"Full ownership:","odm-faq-title":"Frequently Asked Questions","odm-faq-title--plural":"Frequently Asked Questions","odm-cta-title":"Stop wasting time on unreliable suppliers.","odm-cta-title--plural":"Stop wasting time on unreliable suppliers.","odm-cta-subtitle":"For just $100, get a dedicated team, faster results, and peace of mind.","odm-cta-subtitle--plural":"For just $100, get a dedicated team, faster results, and peace of mind.","odm-advantages-section-1-item-3-desc":"vetted suppliers – best balance of cost, quality, and lead time.","odm-advantages-section-1-item-3-desc--plural":"vetted suppliers – best balance of cost, quality, and lead time.","odm-advantages-title":"Main Advantages of Premium Paid ODM","odm
31657-advantages-title--plural":"Main Advantages of Premium Paid ODM","odm-steps-text-1":"Submit your product idea","odm-steps-text-1--plural":"Submit your product idea","odm-comparison-cta-free":"Continue with Free ODM","odm-comparison-cta-free--plural":"Continue with Free ODM","odm-comparison-paid-5-rest":"/delay (>7 days) issues","odm-comparison-paid-5-rest--plural":"/delay (>7 days) issues","odm-advantages-section-2-item-2-label":"Secure Data:","odm-advantages-section-2-item-2-label--plural":"Secure Data:","odm-steps-step-1":"STEP 1","odm-steps-step-1--plural":"STEP 1","odm-steps-step-2":"STEP 2","odm-steps-step-2--plural":"STEP 2","odm-comparison-paid-2-rest":", transparent and predictable","odm-comparison-paid-2-rest--plural":", transparent and predictable","odm-steps-step-5":"STEP 5","odm-steps-step-5--plural":"STEP 5","odm-steps-step-3":"STEP 3","odm-steps-step-3--plural":"STEP 3","odm-steps-step-4":"STEP 4","odm-steps-step-4--plural":"STEP 4","odm-cta-button":"Start My Premium Paid ODM — $100","odm-cta-button--plural":"Start My Premium Paid ODM — $100","odm-comparison-paid-6-highlight":"End-to-end","odm-comparison-paid-6-highlight--plural":"End-to-end","odm-who-item-2":"Growing brands that need stable suppliers","odm-who-item-2--plural":"Growing brands that need stable suppliers","odm-who-item-1":"First-time sellers looking to avoid costly mistakes","odm-who-item-1--plural":"First-time sellers looking to avoid costly mistakes","odm-steps-text-2":"Your manager handles sourcing and negotiation","odm-steps-text-2--plural":"Your manager handles sourcing and negotiation","odm-steps-text-3":"Receive samples faster","odm-steps-text-3--plural":"Receive samples faster","odm-steps-text-4":"Confirm production","odm-steps-text-4--plural":"Confirm production","odm-steps-text-5":"Launch with confidence","odm-steps-text-5--plural":"Launch with confidence","odm-faq-q6":"Why should I pay if Free ODM is available?","odm-faq-q6--plural":"Why should I pay if Free ODM is available?","odm-faq-q7":"What can I expect in the first 7 days?","odm-faq-q7--plural":"What can I expect in the first 7 days?","odm-who-cta-paid":"Start My Premium Paid ODM – $100","odm-who-cta-paid--plural":"Start My Premium Paid ODM – $100","odm-comparison-paid-3-rest":" + multi-option proposals & backups","odm-comparison-paid-3-rest--plural":" + multi-option proposals & backups","odm-faq-q2":"Can I get a refund if I\'m not satisfied?","odm-faq-q2--plural":"Can I get a refund if I\'m not satisfied?","odm-advantages-section-3-item-1-label":"Quality Guarantee:","odm-advantages-section-3-item-1-label--plural":"Quality Guarantee:","odm-faq-q3":"Will my designs and brand information be leaked?","odm-faq-q3--plural":"Will my designs and brand information be leaked?","odm-faq-q4":"How quickly will I receive the first response?","odm-faq-q4--plural":"How quickly will I receive the first response?","odm-faq-q5":"Can I switch from Free Standard ODM to Paid ODM later?","odm-faq-q5--plural":"Can I switch from Free Standard ODM to Paid ODM later?","odm-who-item-4":"Sellers who want a team instead of doing everything alone","odm-who-item-4--plural":"Sellers who want a team instead of doing everything alone","odm-who-item-3":"Anyone tired of slow replies and unclear timelines","odm-who-item-3--plural":"Anyone tired of slow replies and unclear timelines","odm-faq-a1":"A dedicated squad (Senior Account Manager + Liaison + Designer), daily proactive follow-up, premium supplier sourcing, dedicated after-sales support, and a refund guarantee for any unfulfilled portion.","odm-faq-a1--plural":"A dedicated squad (Senior Account Manager + Liaison + Designer), daily proactive follow-up, premium supplier sourcing, dedicated after-sales support, and a refund guarantee for any unfulfilled portion.","odm-comparison-footer":"If you value speed, reliability, and peace of mind – Paid ODM is built for you.","odm-comparison-footer--plural":"If you value speed, reliability, and peace of mind – Paid ODM is built for you.","odm-advantages-section-3-title":"Quality Assurance & Refund Policy","odm-advantages-section-3-title--plural":"Quality Assurance & Refund Policy","odm-comparison-paid-4-rest":", fast turnaround, closed-loop handling","odm-comparison-paid-4-rest--plural":", fast turnaround, closed-loop handling","odm-comparison-paid-5-highlight":"Refund for unfulfilled portion on quality","odm
31657-comparison-paid-5-highlight--plural":"Refund for unfulfilled portion on quality","odm-faq-q1":"What does the $100 Paid ODM include?","odm-faq-q1--plural":"What does the $100 Paid ODM include?","odm-comparison-paid-header":"Premium Paid ODM ($100)","odm-comparison-paid-header--plural":"Premium Paid ODM ($100)","odm-steps-subtitle":"Same clear workflow – Premium Paid ODM adds a dedicated team, daily follow-up, and a refund safety net at every step","odm-steps-subtitle--plural":"Same clear workflow – Premium Paid ODM adds a dedicated team, daily follow-up, and a refund safety net at every step","odm-mobile-prompt-button":"OK","odm-faq-a6":"Because Paid ODM saves you time, reduces risk, and gives you a dedicated team to handle everything.","odm-faq-a6--plural":"Because Paid ODM saves you time, reduces risk, and gives you a dedicated team to handle everything.","odm-advantages-section-1-item-3-label":"Direct Factory Access:","odm-advantages-section-1-item-3-label--plural":"Direct Factory Access:","odm-advantages-section-2-item-1-desc":"100% of designs, files & IP belong to you.","odm-advantages-section-2-item-1-desc--plural":"100% of designs, files & IP belong to you.","odm-advantages-section-3-item-1-desc":"refund for the uncompleted portion if results deviate.","odm-advantages-section-3-item-1-desc--plural":"refund for the uncompleted portion if results deviate.","odm-faq-a7":"Supplier matching, initial quotations, and sampling plan.","odm-faq-a7--plural":"Supplier matching, initial quotations, and sampling plan.","odm-advantages-section-2-item-3-label":"Non-Disclosure:","odm-advantages-section-2-item-3-label--plural":"Non-Disclosure:","odm-faq-a2":"Yes. If results deviate from the requirements, or if a delay caused by us exceeds 7 days, the unfulfilled portion is eligible for a refund.","odm-faq-a2--plural":"Yes. If results deviate from the requirements, or if a delay caused by us exceeds 7 days, the unfulfilled portion is eligible for a refund.","odm-advantages-section-1-item-1-desc":"from logo & packaging design to production & delivery.","odm-advantages-section-1-item-1-desc--plural":"from logo & packaging design to production & delivery.","odm-faq-a3":"No. All data is encrypted, IP is 100% owned by you, and your project will never be shared or promoted without your explicit consent.","odm-faq-a3--plural":"No. All data is encrypted, IP is 100% owned by you, and your project will never be shared or promoted without your explicit consent.","odm-faq-a4":"Every request is reviewed and processed within 3 business days. Paid ODM customers also receive daily proactive follow-up.","odm-faq-a4--plural":"Every request is reviewed and processed within 3 business days. Paid ODM customers also receive daily proactive follow-up.","odm-faq-a5":"Absolutely. You can upgrade to Paid ODM at any time, and your dedicated service will continue for the remaining project lifecycle.","odm-faq-a5--plural":"Absolutely. You can upgrade to Paid ODM at any time, and your dedicated service will continue for the remaining project lifecycle.","odm-advantages-subtitle":"Built for brand owners who want predictable delivery, protected IP, and risk-free engagement.","odm-advantages-subtitle--plural":"Built for brand owners who want predictable delivery, protected IP, and risk-free engagement.","odm-comparison-paid-4-highlight":"Dedicated CS","odm-comparison-paid-4-highlight--plural":"Dedicated CS","odm-comparison-paid-6-rest":": logo, packaging, production, delivery","odm-comparison-paid-6-rest--plural":": logo, packaging, production, delivery","odm-advantages-section-1-title":"Professional & Dedicated Support","odm-advantages-section-1-title--plural":"Professional & Dedicated Support","odm-cta-spo":"Start Paid ODM — $100","odm-cta-spo--plural":"Start Paid ODM — $100","odm-faq-subtitle":"Everything you need to know before choosing between Free Standard ODM and Premium Paid ODM","odm-faq-subtitle--plural":"Everything you need to know before choosing between Free Standard ODM and Premium Paid ODM","odm-comparison-free-7":"Standard platform protection","odm-comparison-free-7--
31657plural":"Standard platform protection","odm-comparison-free-8":"Best-effort service","odm-comparison-free-8--plural":"Best-effort service","odm-comparison-paid-1-rest":" – a stable service squad","odm-comparison-paid-1-rest--plural":" – a stable service squad","odm-advantages-section-1-item-2-label":"Dedicated Manager:","odm-advantages-section-1-item-2-label--plural":"Dedicated Manager:","odm-steps-slogan-text":"You focus on selling — ","odm-steps-slogan-text--plural":"You focus on selling — ","odm-comparison-paid-2-highlight":"Daily proactive follow-up","odm-comparison-paid-2-highlight--plural":"Daily proactive follow-up","odm-advantages-section-3-item-2-label":"Timely Delivery:","odm-advantages-section-3-item-2-label--plural":"Timely Delivery:","odm-advantages-section-3-item-2-desc":"delays over 7 days → refund eligible","odm-advantages-section-3-item-2-desc--plural":"delays over 7 days → refund eligible","odm-comparison-paid-7-rest":", encrypted storage, strict NDA","odm-comparison-paid-7-rest--plural":", encrypted storage, strict NDA","odm-advantages-section-1-item-2-desc":"1-on-1 expert support throughout your journey.","odm-advantages-section-1-item-2-desc--plural":"1-on-1 expert support throughout your journey.","odm-advantages-section-2-item-2-desc":"high-level encryption; archive or delete on request.","odm-advantages-section-2-item-2-desc--plural":"high-level encryption; archive or delete on request.","odm-mobile-prompt-message":"Thank you for your support. This feature is currently available on the Web. Go try it out!","odm-mobile-prompt-message--plural":"Thank you for your support. This feature is currently available on the Web. Go try it out!","odm-advantages-section-2-title":"Privacy & Data Security","odm-advantages-section-2-title--plural":"Privacy & Data Security","odm-comparison-subtitle":"Same platform, different service depth. Pick the plan that matches your brand\'s stage.","odm-comparison-subtitle--plural":"Same platform, different service depth. Pick the plan that matches your brand\'s stage.","odm-hero-cta-free":"Continue with Free ODM","odm-hero-cta-free--plural":"Continue with Free ODM","odm-hero-badge-1":"Trusted by 5,000+ sellers","odm-hero-badge-1--plural":"Trusted by 5,000+ sellers","odm-hero-badge-2":"Verified factories only","odm-hero-badge-2--plural":"Verified factories only","odm-comparison-free-header":"Free ODM","odm-comparison-free-header--plural":"Free ODM","odm-hero-badge-3":"Faster turnaround","odm-hero-badge-3--plural":"Faster turnaround","odm-hero-cta-paid":"Start My Premium Paid ODM – $100","odm-hero-cta-paid--plural":"Start My Premium Paid ODM – $100","odm-hero-title-highlight":"Premium Paid ODM","odm-hero-title-highlight--plural":"Premium Paid ODM","odm-comparison-title":"Free vs Paid ODM – What\'s the Difference?","odm-comparison-title--plural":"Free vs Paid ODM – What\'s the Difference?","odm-comparison-free-3":"Fewer supplier options, limited choices","odm-comparison-free-3--plural":"Fewer supplier options, limited choices","odm-comparison-free-4":"Slow responses, queued ticket handling","odm-comparison-free-4--plural":"Slow responses, queued ticket handling","odm-comparison-free-5":"Not applicable","odm-comparison-free-5--plural":"Not applicable","odm-comparison-free-6":"Basic design & manufacturing","odm-comparison-free-6--plural":"Basic design & manufacturing","odm-comparison-free-1":"A randomly assigned agent, no fixed contact","odm-comparison-free-1--plural":"A randomly assigned agent, no fixed contact","odm-comparison-free-2":"Long cycles, irregular cadence, and a pace outside your control","odm-comparison-free-2--plural":"Long cycles, irregular cadence, and a pace outside your control","odm-hero-subtitle":"Skip unreliable suppliers, slow replies, and costly mistakes. Get a dedicated team to handle sourcing, design, and production for you.","odm-hero-subtitle--plural":"Skip unreliable suppliers, slow replies, and costly mistakes. Get a dedicated team to handle sourcing, design, and production for you.","odm-hero-title":"Launch Your Product without Trial and Error –","odm-hero-title--plural":"Launch Your Product without Trial and Error –","odm-comparison-service-3":"Supply Chain Resources","odm-comparison-service-3--plural":"Supply Chain Resources","odm-comparison-service-2":"Response & Follow-Up","odm-comparison-service-2--plural":"Response & Follow-Up","odm-comparison-service-1":"Dedicated Team","odm-comparison-service-1--plural":"Dedicated Team","odm-comparison-service-7":"Privacy & Data Security","odm
31657-comparison-service-7--plural":"Privacy & Data Security","odm-comparison-service-6":"Design & Delivery Scope","odm-comparison-service-6--plural":"Design & Delivery Scope","odm-comparison-service-5":"Refund Guarantee","odm-comparison-service-5--plural":"Refund Guarantee","odm-comparison-service-4":"After-Sales Support","odm-comparison-service-4--plural":"After-Sales Support","odm-comparison-service-8":"Processing SLA","odm-comparison-service-8--plural":"Processing SLA","product-market-action-triggered":"Action triggered","product-market-action-triggered--plural":"Action triggered","product-market-cj-similar-recommendations":"CJ Similar Recommendations","product-market-cj-similar-recommendations--plural":"CJ Similar Recommendations","product-market-previous":"Previous","product-market-previous--plural":"Previous","product-market-page-total":"Page / Total","product-market-page-total--plural":"Page / Total","product-market-listed-2":"Listing","product-market-listed-2--plural":"Listing","product-market-cj-similar-product-top-10":"CJ Similar Products Top 10","product-market-cj-similar-product-top-10--plural":"CJ Similar Products Top 10","product-market-ad-video-preview":"Ad Video Preview","product-market-ad-video-preview--plural":"Ad Video Preview","product-market-site":"Site","product-market-site--plural":"Site","product-market-price":"Price","product-market-please-select-cj-products-first":"Please select CJ products first","product-market-please-select-cj-products-first--plural":"Please select CJ products first","product-market-play":"Play","product-market-play--plural":"Play","product-market-no-suitable-product-start-sourcing":"No suitable products found? Start Sourcing","product-market-no-suitable-product-start-sourcing--plural":"No suitable products found? Start Sourcing","product-market-category-product-count":"Category Product Count","product-market-category-product-count--plural":"Category Product Count","product-market-total-likes":"Total Likes","product-market-total-likes--plural":"Total Likes","product-market-similar-recommendations":"Similar Recommendations","product-market-similar-recommendations--plural":"Similar Recommendations","product-market-listed":"Listed","product-market-listed--plural":"Listed","product-market-brand":"Brand","product-market-brand--plural":"Brand","product-market-similar-hot-products":"Similar Hot Products","product-market-similar-hot-products--plural":"Similar Hot Products","product-market-start-sourcing-request":"Start Sourcing","product-market-start-sourcing-request--plural":"Start Sourcing","product-market-views":"Views","product-market-no-similar-hot-products":"No similar hot products","product-market-no-similar-hot-products--plural":"No similar hot products","product-market-no-cj-recommended-product-ids":"No Source","product-market-no-cj-recommended-product-ids--plural":"No Source","product-market-average-running-days":"Average Ad Duration","product-market-average-running-days--plural":"Average Ad Duration","product-market-total-category-ad-likes":"Calculation: Total likes in this category (TikTok + Facebook combined)","product-market-total-category-ad-likes--plural":"Calculation: Total likes in this category (TikTok + Facebook combined)","product-market-products-to-the-selection-list":"products to the selection list","product-market-products-to-the-selection-list--plural":"products to the selection list","product-market-cj-similar":"CJ Similar","product-market-cj-similar--plural":"CJ Similar","product-market-full-match":"Exact Source","product-market-full-match--plural":"Exact Source","product-market-ad-total-likes-tooltip":"Total ad likes from the chosen platforms","product-market-ad-total-likes-tooltip--plural":"Total ad likes from the chosen platforms","product-market-top-5-by-total-ad-likes-in-the-same-category":"Top 5 Total Likes for Ads in This Category","product-market-top-5-by-total-ad-likes-in-the-same-category--plural":"Top 5 Total Likes for Ads in This Category","product-market-rating":"Rating","product-market-added":"Added","product-market-sales":"Sales","product-market-total-category-ads":"Total Ads in Category","product-market-total-category-ads--plural":"Total Ads in Category","product-market-running-days":"Days Active","product-market-running-days--plural":"Days Active","product-market-total-tiktok-ad-l
31657ikes":"Total TikTok ad likes","product-market-total-tiktok-ad-likes--plural":"Total TikTok ad likes","product-market-ad-duration":"Ad Days Active","product-market-ad-duration--plural":"Ad Days Active","product-market-ai-powered-matching-recommends-similar-cj-pro":"Using AI recognition, recommends highly potential similar products on CJ platform","product-market-ai-powered-matching-recommends-similar-cj-pro--plural":"Using AI recognition, recommends highly potential similar products on CJ platform","product-market-ad-data":"Ad Data","product-market-ad-data--plural":"Ad Data","product-market-average-category-product-rating":"Average Amazon rating for products in this category.","product-market-average-category-product-rating--plural":"Average Amazon rating for products in this category.","product-market-reviews":"Reviews","product-market-days":"Days","product-market-days--plural":"Days","product-market-second-level-category":"Secondary Category","product-market-second-level-category--plural":"Secondary Category","product-market-go-to":"Go to","product-market-average-rating":"Average Rating","product-market-average-rating--plural":"Average Rating","product-market-price-2":"Price","product-market-max":"Max","product-market-average-category-product-reviews":"Average number of reviews for products in this category.","product-market-average-category-product-reviews--plural":"Average number of reviews for products in this category.","product-market-listing-time":"Listing Duration","product-market-listing-time--plural":"Listing Duration","product-market-average-days-from-first-appearance-to-last-ac":"Definition: Days from ad first appearance to last active day (only counting removed ads)","product-market-average-days-from-first-appearance-to-last-ac--plural":"Definition: Days from ad first appearance to last active day (only counting removed ads)","product-market-not-found-start-sourcing":"Not found? Start sourcing","product-market-not-found-start-sourcing--plural":"Not found? Start sourcing","product-market-estimated-category-sales":"Total sales of all ASINs under this category.","product-market-estimated-category-sales--plural":"Total sales of all ASINs under this category.","product-market-total-running-days":"Total Days Active","product-market-total-running-days--plural":"Total Days Active","product-market-records":"records","product-market-records--plural":"records","product-market-cj-similar-recommendation-triggered":"CJ similar recommendation triggered","product-market-cj-similar-recommendation-triggered--plural":"CJ similar recommendation triggered","product-market-min":"Min","product-market-listing-time-distribution":"Listing Duration Distribution","product-market-listing-time-distribution--plural":"Listing Duration Distribution","product-market-sort":"Sort","product-market-add-failed-please-try-again-later":"Add failed. Please try again later.","product-market-add-failed-please-try-again-later--plural":"Add failed. Please try again later.","product-market-cj-similar-for-this-category":"CJ Similar Products for This Category","product-market-cj-similar-for-this-category--plural":"CJ Similar Products for This Category","product-market-rating-distribution":"Rating Distribution","product-market-rating-distribution--plural":"Rating Distribution","product-market-number-of-different-tiktok-ad-creatives":"Number of different TikTok ad creatives","product-market-number-of-different-tiktok-ad-creatives--plural":"Number of different TikTok ad creatives","product-market-total-ad-plays":"Total TikTok ad views","product-market-total-ad-plays--plural":"Total TikTok ad views","product-market-estimated-category-revenue":"Total sales of all ASINs under this category ±15% error.","product-market-estimated-category-revenue--plural":"Total sales of all ASINs under this category ±15% error.","product-market-related-category-recommendations":"Related Category Recommendations","product-market-related-category-recommendations--plural":"Related Category Recommendations","product-market-first-level-category":"Primary Category","product-market-first-level-category--plural":"Primary Category","product-market-page":"Page","product-market-ads":"Ad Count","product-market-ads--plural":"Ad Count","product-market-average-reviews":"Average Review Count","product-market-average-reviews--plural":"Average Review Count","product-market-average-days-from-first-appearance-to-last-2":"Average duration from first appearance to last active day for all ads of this product. Longer = more stable lifecycle.","product-market-average-days-from-first-appearance-to-last-2--plural":"Average duration from first appearance to last active day for all ads of this product. Longer = more stable lifecycle.","product-market-cj-platform-recommended-top5":"CJ Platform Top 5 Picks","product-market-cj-platform-recommended-top5--plural":"CJ Platform Top 5 Picks","product-market-add":"Add","product-market-view-cj-similar-recommendations":"View CJ Similar Recommendations","product-market-view-cj-similar-recommendations--plural":"View CJ Similar Recommendations","product-market-price-usd":"Price ($)","product-market-price-usd--plural":"Price ($)","product-market-no-suitable-similar-products-matched":"No suitable similar products found","product-market-no-suitable-similar-products-matched--plural":"No suitable similar products found","product-market-number-of-independent-facebook-ads":"Number of independent Facebook ads","product-market-number-of-independent-facebook-ads--plural":"Number of independent Facebook ads","product-market-average-price":"Average Price","product-market-average-price--plural":"Average Price","product-market-close":"Close","product-market-no-platform-ad-data":"No platform ad data","product-market-no-platform-ad-data--plural":"No platform ad data","product-market-no-related-categories":"No related categories","product-market-no-related-categories--plural":"No related categories","product-market-view-category-trends":"View Category Sales","product-market-view-category-trends--plural":"View Category Sales","product-market-category-level-ad-heat-growth-trends-top-hot":"Category ad heat, growth trend, top ads & CJ related products","product-market-category-level-ad-heat-growth-trends-top-hot--plural":"Category ad heat, growth trend, top ads & CJ related products","product-market-sales-current-price":"Units sold × current price","product-market-sales-current-price--plural":"Units sold × current price","product-market-back":"Back","product-market-no-ad-video-url-available":"No ad video URL available","product-market-no-ad-video-url-available--plural":"No ad video URL available","product-market-batch-added":"Batch added","product-market-batch-added--plural":"Batch added","product-market-distribution-statistics":"Distribution Statistics","product-market-distribution-statistics--plural":"Distribution Statistics","product-market-review-count-distribution":"Review Count Distribution","product-market-review-count-distribution--plural":"Review Count Distribution","product-market-total-plays-only-including-tiktok":"Total Views, TikTok only","product-market-total-plays-only-including-tiktok--plural":"Total Views, TikTok only","product-market-aggregated-ad-products-under-this-category":"Calculation: Deduplicated ads in this first-level category in the selected time window (TikTok + Facebook combined).","product-market-aggregated-ad-products-under-this-category--plural":"Calculation: Deduplicated ads in this first-level category in the selected time window (TikTok + Facebook combined).","product-market-cj-similar-product-recommendations":"CJ Similar Product Recommendations","product-market-cj-similar-product-recommendations--plural":"CJ Similar Product Recommendations","product-market-no-similar-matches-are-available-for-the-curr":"If current category/product has no match, you can initiate a \\"S
31657ourcing Task\\" for CJ sourcing team follow-up","product-market-no-similar-matches-are-available-for-the-curr--plural":"If current category/product has no match, you can initiate a \\"Sourcing Task\\" for CJ sourcing team follow-up","product-market-price-distribution":"Price Distribution","product-market-price-distribution--plural":"Price Distribution","product-market-next":"Next","product-market-average-category-product-price":"Weighted average price of products under this category (weighted by sales).","product-market-average-category-product-price--plural":"Weighted average price of products under this category (weighted by sales).","product-market-total-facebook-ad-likes":"Total Facebook ad likes","product-market-total-facebook-ad-likes--plural":"Total Facebook ad likes","product-market-total-plays":"Total Views","product-market-total-plays--plural":"Total Views","product-market-likes":"Likes","product-market-likes--plural":"Likes","product-market-total":"Total","product-market-total-ad-running-days":"FB Total Active Days","product-market-total-ad-running-days--plural":"FB Total Active Days","product-market-cj-recommended-top5":"CJ Recommended Top 5","product-market-cj-recommended-top5--plural":"CJ Recommended Top 5","product-market-play-ad":"Play Video","product-market-play-ad--plural":"Play Video","product-market-reset":"Clear","product-market-no-product-data":"No product data","product-market-no-product-data--plural":"No product data","product-market-title-description-contains":"Title/Description Contains","product-market-title-description-contains--plural":"Title/Description Contains","product-market-ad-category":"Ad Category","product-market-ad-category--plural":"Ad Category","product-market-intelligent-recommendations-from-cj-products":"Based on category hot product characteristics, recommended from CJ product library","product-market-intelligent-recommendations-from-cj-products--plural":"Based on category hot product characteristics, recommended from CJ product library","product-market-view-more":"View More","product-market-advertising-trends":"Advertising Trends","product-market-advertising-trends--plural":"Advertising Trends","product-market-all-categories":"All Categories","product-market-intelligent-recommendations-from-cj-products-2":"When category = \\"All\\", shows CJ platform-wide top 5 recommendations","product-market-intelligent-recommendations-from-cj-products-2--plural":"When category = \\"All\\", shows CJ platform-wide top 5 recommendations","product-market-product":"Product","product-market-details":"Details","product-market-search":"Search","product-market-all":"All","product-market-sales-trends":"Sales Trends","product-market-sales-trends--plural":"Sales Trends","product-market-action":"Action","product-market-no-data":"No Data","product-market-region":"Region","product-market-keyword":"Keywords","product-market-keyword--plural":"Keywords","product-market-match":"Source","product-market-match--plural":"Source","product-market-data-updated":"Data Updated:","product-market-data-updated--plural":"Data Updated:","product-market-platform":"Platform","product-market-seller-count":"Number of Sellers","product-market-seller-count--plural":"Number of Sellers","product-market-calculation-sum-of-ads-in-top-10-first-level":"Calculation: Sum of ads in top 10 first-level categories ÷ Total number of ads.","product-market-calculation-sum-of-ads-in-top-10-first-level--plural":"Calculation: Sum of ads in top 10 first-level categories ÷ Total number of ads.","product-market-comments":"Comments","product-market-comments--plural":"Comments","product-market-calculation-rule":"Calculation Rule","product-market-calculation-rule--plural":"Calculation Rule","product-market-rising-category-details":"Trending Category Details","product-market-rising-category-details--plural":"Trending Category Details","product-market-monitored-category-details":"Monitored Category Details","product-market-monitored-category-details--plural":"Monitored Category Details","product-market-sorted-by-revenue-desc-click-category-analysi":"Ranked by sales in descending order, select top 10.","product-market-sorted-by-revenue-desc-click-category-analysi--plural":"Ranked by sales in descending order, select top 10.","product-market-facebook-ads-count-tips":"Number of unique Facebook ads in this category","product-market-facebook-ads-count-tips--plural":"Number of unique Facebook ads in this category","product-market-sales-trends-dashboard":"Sales Dashboard","product-market-sales-trends-dashboard--plural":"Sales Dashboard","product-market-no-sales-forecast-data":"No sales forecast data","product-market-no-sales-forecast-data--plural":"No sales forecast data","product-market-monitored-categories-top20":"Top 20 Monitored Categories","product-market-monitored-categories-top20--plural":"Top 20 Monitored Categories","product-market-average-category-revenue-current-site":"Scope: Average sales of all monitored categories under this site. Sales are estimates with ±15% error.","product-market-average-category-revenue-current-site--plural":"Scope: Average sales of all monitored categories under this site. Sales are estimates with ±15% error.","product-market-rising-categories":"Trending Categories","product-market-show-category-heat-values-by-region":"Calculation: Total high-quality ads per region × category","product-market-show-category-heat-values-by-region--plural":"Calculation: Total high-quality ads per region × category","product-market-calculation-count-ads-labeled-hot-ad-on-tikto":"Calculation: Count ads labeled \\"Hot Ad\\" on TikTok and Facebook. No deduplication is applied when Platform = All.","product-market-calculation-count-ads-labeled-hot-ad-on-tikto--plural":"Calculation: Count ads labeled \\"Hot Ad\\" on TikTok and Facebook. No deduplication is applied when Platform = All.","product-market-total-reviews-for-this-product":"Total reviews for this product","product-market-total-reviews-for-this-product--plural":"Total reviews for this product","product-market-current-dashboard-main-category-bsr":"Current dashboard primary category BSR","product-market-current-dashboard-main-category-bsr--plural":"Current dashboard primary category BSR","product-market-top10-category-share":"TOP10 Category Share","product-market-top10-category-share--plural":"TOP10 Category Share","product-market-core-metrics":"Core Metrics","product-market-core-metrics--plural":"Core Metrics","product-market-tiktok-ads-count-tips":"Number of unique TikTok ads in this category","product-market-tiktok-ads-count-tips--plural":"Number of unique TikTok ads in this category","product-market-advertising-trends-dashboard":"Advertising Trends Dashboard","product-market-advertising-trends-dashboard--plural":"Advertising Trends Dashboard","product-market-rank":"Rank","product-market-rank--plural":"Rank","product-market-days-since-first-listing":"Days since first listing","product-market-days-since-first-listing--plural":"Days since first listing","product-market-view-analysis":"View Analysis","product-market-view-analysis--plural":"View Analysis","product-market-aggregated-subcategory-products-under-first-l":"Total ASINs covered under this primary category.","product-market-aggregated-subcategory-products-under-first-l--plural":"Total ASINs covered under this primary category.","product-market-refresh-batch":"Refresh Batch","product-market-refresh-batch--plural":"Refresh Batch","product-market-product-count":"Product Count","product-market-product-count--plural":"Product Count","product-market-revenue-top20":"Top 100 Sales","product-market-revenue-top20--plural":"Top 100 Sales","product-market-ad-spend":"Ad Spend","product-market-ad-spend--plural":"Ad Spend","product-market-estimated-orders":"Estimated Orders","product-market-estimated-orders--plural":"Estimated Orders","product-market-declining-categories-top5-tips":"Bottom five categories by ranking change rate in ascending order","product-market-declining-categories-top5-tips--plural":"Bottom five categories by ranking change rate in ascending order","product-market-ad-title":"Ad Title","product-market-ad-title--plural":"Ad Title","product-market-sales-current-price-2":"Units sold × current price; for multiple variants, use main variant price","product-market-sales-current-price-2--plural":"Units sold × current price; for multiple variants, use main variant price","product-market-similar-bsr-top5":"Top 5 Similar LQS","product-market-similar-bsr-top5--plural":"Top 5 Similar LQS","product-market-high-revenue-products-categories":"High Sales Products / Categories","product-market-high-revenue-products-categories--plural":"High Sales Products / Categories","product-market-rising-categories-top5":"Top 5 Trending Categories","product-market-rising-categories-top5--plural":"Top 5 Trending Categories","product-market-monitoring-scope-ss-collected-sales-asins":"Monitoring Scope = ASINs with collected and available sales data","product-market-monitoring-scope-ss-collected-sales-asins--plural":"Monitoring Scope = ASINs with collected and available sales data","product-market-top-10-hot-ad-categories":"Top 10 Hot Ad Categories","product-market-top-10-hot-ad-categories--plural":"Top 10 Hot Ad Categories","product-market-distribution-tips-1":"Percentage of products in price ranges. Helps identify mainstream price bands.","product-market-distribution-tips-1--plural":"Percentage of products in price ranges. Helps identify mainstream price bands.","product-market-distribution-tips-2":"Percentage of products in star rating ranges. Reflects quality experience distribution.","product-market-distribution-tips-2--plural":"Percentage of products in star rating ranges. Reflects quality experience distribution.","product-market-distribution-tips-3"
31657:"Percentage of products in review count ranges. Low review count indicates new product opportunities.","product-market-distribution-tips-3--plural":"Percentage of products in review count ranges. Low review count indicates new product opportunities.","product-market-first-level-categories-with-high-search-growt":"Trending Categories = Top ranking change rate in descending order; Ranking change rate = relative change of category BSR.","product-market-first-level-categories-with-high-search-growt--plural":"Trending Categories = Top ranking change rate in descending order; Ranking change rate = relative change of category BSR.","product-market-hot-ads-count":"Hot Ads Count","product-market-hot-ads-count--plural":"Hot Ads Count","product-market-items-showing-the-first-20":"items, showing the first 20","product-market-items-showing-the-first-20--plural":"items, showing the first 20","product-market-estimated-sales-15-margin-of-error":"Estimated units sold ±15% error","product-market-estimated-sales-15-margin-of-error--plural":"Estimated units sold ±15% error","product-market-region-category-heat-matrix-tips":"Darker color = Higher activity. Click a cell for category × region details","product-market-region-category-heat-matrix-tips--plural":"Darker color = Higher activity. Click a cell for category × region details","product-market-ranked-by-tiktok-and-facebook-ad-heat":"Calculation: Sum the number of TikTok and Facebook ads for each product category, take the average, and rank the top 10.","product-market-ranked-by-tiktok-and-facebook-ad-heat--plural":"Calculation: Sum the number of TikTok and Facebook ads for each product category, take the average, and rank the top 10.","product-market-rising-category-list-by-rank-growth-rate":"Trending Category List (by ranking change rate)","product-market-rising-category-list-by-rank-growth-rate--plural":"Trending Category List (by ranking change rate)","product-market-average-ad-likes":"Average Ad Likes","product-market-average-ad-likes--plural":"Average Ad Likes","product-market-todays-recommended-hot-ads":"Today\'s Recommended Hot Ads","product-market-todays-recommended-hot-ads--plural":"Today\'s Recommended Hot Ads","product-market-monitor-global-ad-performance-to-discover-tre":"Monitor global ad performance to discover trending products and emerging categories","product-market-monitor-global-ad-performance-to-discover-tre--plural":"Monitor global ad performance to discover trending products and emerging categories","product-market-monitoring-scope-current-site-categories":"Monitoring Scope = all primary categories for the site","product-market-monitoring-scope-current-site-categories--plural":"Monitoring Scope = all primary categories for the site","product-market-rising-categories-top5-tips":"Top five categories by ranking change rate in descending order","product-market-rising-categories-top5-tips--plural":"Top five categories by ranking change rate in descending order","product-market-bsr-rank":"BSR Rank","product-market-bsr-rank--plural":"BSR Rank","product-market-country-region":"Country/Region","product-market-calculation-total-likes-from-all-ads-total-nu":"Calculation: Total likes from all ads ÷ Total number of ads in the category analysis page.","product-market-calculation-total-likes-from-all-ads-total-nu--plural":"Calculation: Total likes from all ads ÷ Total number of ads in the category analysis page.","product-market-category-bsr-growth-rate-tooltip":"Relative change of Best Sellers Rank (BSR) to quantify ranking rise/fall speed and trend.","product-market-category-bsr-growth-rate-tooltip--plural":"Relative change of Best Sellers Rank (BSR) to quantify ranking rise/fall speed and trend.","product-market-declining-categories-top5":"Bottom 5 Trending Categories","product-market-declining-categories-top5--plural":"Bottom 5 Trending Categories","product-market-rank-growth-rate":"Ranking Change Rate","product-market-rank-growth-rate--plural":"Ranking Change Rate","product-market-sales-overview":"Sales Overview","product-market-sales-overview--plural":"Sales Overview","product-market-view":"View","product-market-data-source-amazon-platform-sales-data-monito":"Data Source: Amazon platform product sales data, monitoring real-time performance across sites to identify stable demand and growth opportunities","product-market-data-source-amazon-platform-sales-data-monito--plural":"Data Source: Amazon platform product sales data, monitoring real-time performance across sites to identify stable demand and growth opportunities","product-market-category-sales-scale-price-rating-listing-tim":"Category sales scale, price/rating/listing duration distribution and CJ opportunities.","product-market-category-sales-scale-price-rating-listing-tim--plural":"Category sales scale, price/rating/listing duration distribution and CJ opportunities.","product-market-view-all-category-analysis":"View All → Category Analysis","product-market-view-all-category-analysis--plural":"View All → Category Analysis","product-market-view-all-categories":"View All Categories","product-market-view-all-categories--plural":"View All Categories","product-market-sales-category":"Sales Category","product-market-sales-category--plural":"Sales Category","product-market-name":"Name","product-market-average-revenue":"Average Sales","product-market-average-revenue--plural":"Average Sales","product-market-recommend-from-cj-products-using-cjproductids":"Recommend from CJ products using cjProductIds in the current product list","product-market-recommend-from-cj-products-using-cjproductids--plural":"Recommend from CJ products using cjProductIds in the current product list","product-market-region-or-category":"Category\\\\Region","product-market-region-or-category--plural":"Category\\\\Region","product-market-daily-collection-of-top-performing-ads-from-t":"Daily collection of top-performing ads from TikTok and Facebook.","product-market-daily-collection-of-top-performing-ads-from-t--plural":"Daily collection of top-performing ads from TikTok and Facebook.","product-market-monitored-categories":"Monitored Categories Count","product-market-monitored-categories--plural":"Monitored Categories Count","product-market-region-category-heat-matrix":"Category × Region Heat Matrix","product-market-region-category-heat-matrix--plural":"Category × Region Heat Matrix","product-market-sorted-by-forecast-sales-desc":"Based on historical sales and YoY/ MoM trends, forecast next month sales in descending order. Click the bar to drill down. Sales Forecasted (Units)","product-market-sorted-by-forecast-sales-desc--plural":"Based on historical sales and YoY/ MoM trends, forecast next month sales in descending order. Click the bar to drill down. Sales Forecasted (Units)","product-market-estimated-historical-sales-for-this-asin":"Historical estimated sales for this ASIN","product-market-estimated-historical-sales-for-this-asin--plural":"Historical estimated sales for this ASIN","product-market-sales-volume":"Sales Volume","product-market-sales-volume--plural":"Sales Volume","product-market-aggregated-by-first-level-category":"Scope: Total number of primary categories under monitoring for the selected site.","product-market-aggregated-by-first-level-category--plural":"Scope: Total number of primary categories under monitoring for the selected site.","product-market-market-category-ranking-top10":"Top 10 Market Categories","product-market-market-category-ranking-top10--plural":"Top 10 Market Categories","product-market-category-ad-share-by-platform-click-the-chart":"Calculation: For the selected time window on Facebook, group all ads by first-level category and calculate the share of ads per category.","product-market-category-ad-share-by-platform-click-the-chart--plural":"Calculation: For the selected time window on Facebook, group all ads by first-level category and calculate the share of ads per category.","product-market-monitored-products":"Monitored Products Count","product-market-monitored-products--plural":"Monitored Products Count","product-market-estimated-units-sold-1":"Estimated Sales ±15% error","product-market-estimated-units-sold-1--plural":"Estimated Sales ±15% error","product-market-estimated-units-sold-2":"Estimated Units Sold","product-market-estimated-units-sold-2--plural":"Estimated Units Sold","product-market-tiktok-category-ad-share":"TikTok Category Ad Share","product-market-tiktok-category-ad-share--plural":"TikTok Category Ad Share","product-market-ad-type":"Ad Type","product-market-ad-type--plural":"Ad Type","product-market-category-name":"Category Name","product-market-category-name--plural":"Category Name","product-market-no-similar-bsr-data":"No similar BSR data","product-market-no-similar-bsr-data--plural":"No similar BSR data","product-market-click-the-chart-to-drill-down-to-category-ana":"Calculation: For the selected time window on TikTok, group all ads by first-level category and calculate the share of ads per category. Click a pie slice to drill down into the category analysis page.","product-market-click-the-chart-to-drill-down-to-category-ana--plural":"Calculation: For the selected time window on TikTok, group all ads by first-level category and calculate the share of ads per category. Click a pie slice to drill down into the category analysis page.","product-market-monitored-product-details":"Monitored Product Details","product-market-monitored-product-details--plural":"Monitored Product Details","product-market-bsr-dashboard-category-rank-tooltip":"Best Sellers Rank, dashboard category rank. Lower number is better. SS collected daily.","product-market-bsr-dashboard-category-rank-tooltip--plural":"Best Sellers Rank, dashboard category rank. Lower number is better. SS collected daily.","product-market-rising-categories-from-sales-dashboard-rising":"Trending = Descending by ranking change rate","product-market-rising-categories-from-sales-dashboard-rising--plural":"Trending = Descending by ranking change rate","product-market-facebook-category-ad-share":"Facebook Category Ad Share","product-market-facebook-category-ad-share--plural":"Facebook Category Ad Share","product-market-high-sales-products-top20":"Top 100 High Sales Products","product-market-high-sales-products-top20--plural":"Top 100 High Sales Products","product-market-e-commerce-system":"E-commerce System","product-market-e-commerce-system--plural":"E-commerce System","product-market-no-trend-category-data":"No trend category data","product-market-no-trend-category-data--plural":"No trend category data","product-market-default-sorted-by-revenue-descending-showing":"Default sorted by Sales Descending","product-market-default-sorted-by-revenue-descending-showing--plural":"Default sorted by Sales Descending","product-market-category-analysis":"Category Analysis","product-market-category-analysis--plural":"Category Analysis","product-market-total-views":"Total Views","product-market-total-views--plural":"Total Views","product-market-no-distribution-data":"No distribution data","product-market-no-distribution-data--plural":"No distribution data","product-market-category-market-sales-forecast-top10":"Top 10 Category Sales Forecast","product-market-category-market-sales-forecast-top10--plural":"Top 10 Category Sales Forecast","product-market-monitored-products-in-current-site":"Scope: Total number of ASINs covered under this site.","product-market-monitored-products-in-current-site--plural":"Scope: Total number of ASINs covered under this site.","ai-assistant-report-market-maturity":"Market Maturity","ai-assistant-report-market-maturity--plural":"Market Maturity","product-market-ad-creation-date":"Ad Creation Date","product-market-ad-creation-date--plural":"Ad Creation Date","product-market-matching-cj-products":"Matching CJ Products","product-market-matching-cj-products--plural":"Matching CJ Products","common-mycj-menu-intelligence":"Intelligence","common-mycj-menu-intelligence--plural":"Intelligence","paid-service-fully-booked":"Fully booked - no spots currently available.","paid-service-fully-booked--plural":"Fully booked - no spots currently available.","product-market-ads-text":"Ads","product-market-ads-text--plural":"Ads","product-market-hot-ad-desc":"Source: Today\'s Recommended Hot Ads","product-market-hot-ad-desc--plural":"Source: Today\'s Recommended Hot Ads","product-market-review-count":"Review Count","product-market-review-count--plural":"Review Count","prodcut-market-lqs-tips":"LQS (Listing Quality Score): Evaluates listing completeness to power product selection analysis and precise listing optimization.","prodcut-market-lqs-tips--plural":"LQS (Listing Quality Score): Evaluates listing completeness to power product selection analysis and precise listing optimization.","common-mycj-menu-intelligence-catalog":"Catalog","common-mycj-menu-intelligence-catalog--plural":"Catalog","product-market-category":"Categories","product-market-ad-update-time-tips":"Ad Stats: Updated every 7 days","product-market-ad-update-time-tips--plural":"Ad Stats: Updated every 7 days","product-market-sales-update-time-tips":"Sales Stats: Updated every 30 days","product-market-sales-update-time-tips--plural":"Sales Stats: Updated every 30 days","ai-assistant-click-view-product-details":"Click to view product details","ai-assistant-click-view-product-details--plural":"Click to view product details","ai-assistant-guest-email-placeholder":"Please enter your email","ai-assistant-guest-email-label":"Email","ai-assistant-guest-back":"Back","ai-assistant-guest-welcome":"Welcome to AI Assistant. Sign in or continue as a guest to start chatting.","ai-assistant-guest-welcome--plural":"Welcome to AI Assistant. Sign in or continue as a guest to start chatting.","ai-assistant-guest-mode-failed":"Unable to start guest mode.","ai-assistant-guest-mode-failed--plural":"Unable to start guest mode.","ai-assistant-guest-continue-as-guest":"Continue as guest","ai-assistant-guest-continue-as-guest--plural":"Continue as guest","ai-assistant-guest-name-placeholder":"Please enter your name","ai-assistant-guest-sign-in":"Sign in","ai-assistant-guest-name-label":"Name","ai-assistant-guest-email-required":"Please enter your email.","ai-assistant-guest-email-required--plural":"Please enter your email.","ai-assistant-guest-start":"Start","ai-assistant-guest-name-invalid":"Your name can only contain letters and numbers.","ai-assistant-guest-name-invalid--plural":"Your name can only contain letters and numbers.","ai-assistant-guest-name-required":"Please enter your name.","ai-assistant-guest-name-required--plural":"Please enter your name.","ai-assistant-guest-email-invalid":"Please enter a correct email address.","common-user-agreement-close-tip":"After closing, a prompt of \'Confirm\' will appear again 24 hours later. Please click \'Confirm\' to view the latest user agreement.","common-user-agreement-close-tip--plural":"After closing, a prompt of \'Confirm\' will appear again 24 hours later. Please click \'Confirm\' to view the latest user agreement.","product-market-advertising-data":"Advertising Data","product-market-advertising-data--plural":"Advertising Data","odm-faq-item-2-a":"Yes. If results deviate from the requirements, or if a delay caused by us exceeds 7 days, the unfulfilled portion is eligible for a refund.","odm-faq-item-2-a--plural":"Yes. If results deviate from the requirements, or if a delay caused by us exceeds 7 days, the unfulfilled portion is eligible for a refund.","odm-faq-item-4-a":"Basic ODM requests are reviewed and processed within 3–5 business days. Premium Advanced ODM requests are reviewed and processed within 24h.","odm-faq-item-4-a--plural":"Basic ODM requests are reviewed and processed within 3–5 business days. Premium Advanced ODM requests are reviewed and processed within 24h.","odm-faq-item-6-a":"Supplier matching, initial quotations, and a sampling plan.","odm-faq-item-6-a--plural":"Supplier matching, initial quotations, and a sampling plan.","odm-workflow-step-3-title":"Customize your product","odm-workflow-step-3-title--plural":"Customize your product","odm-final-visual-box":"Custom Solution","odm-final-visual-box--plural":"Custom Solution","odm-final-title-highlight":"Start Building Smarter.","odm-final-title-highlight--plural":"Start Building Smarter.","odm-workflow-step-1-title":"Submit your produ
31657ct idea","odm-workflow-step-1-title--plural":"Submit your product idea","odm-faq-eyebrow":"FAQ","odm-faq-panel-description":"Basic ODM is good for simple validation. Premium Advanced ODM is better when you need deeper sourcing, stronger customization, and more reliable project support.","odm-faq-panel-description--plural":"Basic ODM is good for simple validation. Premium Advanced ODM is better when you need deeper sourcing, stronger customization, and more reliable project support.","odm-value-card-4-item-1":"Logo guidance","odm-value-card-4-item-1--plural":"Logo guidance","odm-faq-item-1-q":"What’s the difference between Basic ODM and Premium Advanced ODM?","odm-faq-item-1-q--plural":"What’s the difference between Basic ODM and Premium Advanced ODM?","odm-faq-item-3-q":"Will my designs and brand information be leaked?","odm-faq-item-3-q--plural":"Will my designs and brand information be leaked?","odm-faq-item-5-q":"Can I switch from Basic ODM to Premium Advanced ODM later?","odm-faq-item-5-q--plural":"Can I switch from Basic ODM to Premium Advanced ODM later?","odm-value-card-4-image":"https://images.unsplash.com/photo-1516321318423-f06f85e504b3?auto=format&fit=crop&w=900&q=80","odm-value-card-4-image--plural":"https://images.unsplash.com/photo-1516321318423-f06f85e504b3?auto=format&fit=crop&w=900&q=80","odm-workflow-step-4-title":"Confirm production","odm-workflow-step-4-title--plural":"Confirm production","odm-workflow-step-2-title":"Get sourcing & feasibility analysis","odm-workflow-step-2-title--plural":"Get sourcing & feasibility analysis","odm-faq-item-1-a":"Basic ODM helps you validate one product quickly. Premium Advanced ODM allows you to explore multiple options, compare better suppliers, and build a stronger foundation for your brand.","odm-faq-item-1-a--plural":"Basic ODM helps you validate one product quickly. Premium Advanced ODM allows you to explore multiple options, compare better suppliers, and build a stronger foundation for your brand.","odm-faq-item-3-a":"No. All data is encrypted, IP is 100% owned by you, and your project will never be shared or promoted without your explicit consent.","odm-faq-item-3-a--plural":"No. All data is encrypted, IP is 100% owned by you, and your project will never be shared or promoted without your explicit consent.","odm-faq-item-5-a":"Absolutely. You can upgrade to Premium Advanced ODM at any time, and your dedicated service will continue for the remaining project lifecycle.","odm-faq-item-5-a--plural":"Absolutely. You can upgrade to Premium Advanced ODM at any time, and your dedicated service will continue for the remaining project lifecycle.","odm-value-card-4-item-2":"Packaging suggestions","odm-value-card-4-item-2--plural":"Packaging suggestions","odm-value-card-4-item-3":"Differentiation ideas","odm-value-card-4-item-3--plural":"Differentiation ideas","odm-faq-panel-cta":"Submit Customization Request","odm-faq-panel-cta--plural":"Submit Customization Request","odm-workflow-step-5-title":"Launch with confidence","odm-workflow-step-5-title--plural":"Launch with confidence","odm-value-card-4-desc":"Not just a product. Something truly sellable.","odm-value-card-4-desc--plural":"Not just a product. Something truly sellable.","odm-final-title":"Stop Guessing.","odm-final-title--plural":"Stop Guessing.","odm-final-cta":"Submit Customization Request","odm-final-cta--plural":"Submit Customization Request","odm-value-card-4-alt":"Build a real brand","odm-value-card-4-alt--plural":"Build a real brand","odm-workflow-subtitle":"A clear step-by-step process to turn your product idea into a customized, launch-ready product.","odm-workflow-subtitle--plural":"A clear step-by-step process to turn your product idea into a customized, launch-ready product.","odm-workflow-step-1":"STEP 1","odm-workflow-step-1--plural":"STEP 1","odm-workflow-step-2":"STEP 2","odm-workflow-step-2--plural":"STEP 2","odm-workflow-step-3":"STEP 3","odm-workflow-step-3--plural":"STEP 3","odm-faq-panel-title":"Still deciding?","odm-faq-panel-title--plural":"Still deciding?","odm-final-visual-brand":"Your\\nBrand","odm
31657-final-visual-brand--plural":"Your\\nBrand","odm-workflow-step-4":"STEP 4","odm-workflow-step-4--plural":"STEP 4","odm-workflow-step-5":"STEP 5","odm-workflow-step-5--plural":"STEP 5","odm-faq-item-2-q":"Can I get a refund if I\'m not satisfied?","odm-faq-item-2-q--plural":"Can I get a refund if I\'m not satisfied?","odm-faq-item-4-q":"How quickly will I receive the first response?","odm-faq-item-4-q--plural":"How quickly will I receive the first response?","odm-faq-item-6-q":"What can I expect in the first 7 days?","odm-faq-item-6-q--plural":"What can I expect in the first 7 days?","odm-final-tag":"Your Product. Your Brand. Our Expertise.","odm-final-tag--plural":"Your Product. Your Brand. Our Expertise.","odm-workflow-title":"How It Works","odm-workflow-title--plural":"How It Works","odm-workflow-eyebrow":"ODM Workflow","odm-workflow-eyebrow--plural":"ODM Workflow","odm-hero-float-2-title":"Sample","odm-comparison-row-2-label":"Support Products","odm-comparison-row-2-label--plural":"Support Products","odm-comparison-row-1-premium-strong":"Supply Chain Manager + Designer + Sales Specialist","odm-comparison-row-1-premium-strong--plural":"Supply Chain Manager + Designer + Sales Specialist","odm-decision-premium-kicker":"Choose","odm-decision-premium-kicker--plural":"Choose","odm-hero-title-highlight-customization":"with Customization","odm-hero-title-highlight-customization--plural":"with Customization","odm-decision-premium-description":"Best for sellers who want deeper sourcing, reliable suppliers, branding, and fewer production risks.","odm-decision-premium-description--plural":"Best for sellers who want deeper sourcing, reliable suppliers, branding, and fewer production risks.","odm-comparison-eyebrow":"ODM Service Comparison","odm-comparison-eyebrow--plural":"ODM Service Comparison","odm-hero-image":"https://cc-west-usa.cjdropshipping.com/operation-center/file_202605210659052057355483165237248.jpg","odm-hero-image--plural":"https://cc-west-usa.cjdropshipping.com/operation-center/file_202605210659052057355483165237248.jpg","odm-decision-title":"Which One Is Right for You?","odm-decision-title--plural":"Which One Is Right for You?","odm-decision-eyebrow":"ODM Decision Guide","odm-decision-eyebrow--plural":"ODM Decision Guide","odm-decision-premium-ribbon":"Balance of Cost & Speed","odm-comparison-row-3-basic":"3-5 days","odm-comparison-row-3-basic--plural":"3-5 days","odm-comparison-basic-title":"Basic ODM","odm-comparison-basic-title--plural":"Basic ODM","odm-comparison-title-level":"Choose Your ODM Level","odm-comparison-title-level--plural":"Choose Your ODM Level","odm-decision-basic-kicker":"Start with","odm-decision-basic-kicker--plural":"Start with","odm-comparison-row-1-label":"Support Level","odm-comparison-row-1-label--plural":"Support Level","odm-hero-title-customization":"Launch Your Product","odm-hero-title-customization--plural":"Launch Your Product","odm-hero-float-2-text":"Before mass production","odm-hero-float-2-text--plural":"Before mass production","odm-decision-premium-item-3":"Care about quality and supplier reliability","odm-decision-premium-item-3--plural":"Care about quality and supplier reliability","odm-hero-subtitle-customization":"From idea validation to reliable suppliers and custom branding, everything you need to build a winning product.","odm-hero-subtitle-customization--plural":"From idea validation to reliable suppliers and custom branding, everything you need to build a winning product.","odm-decision-premium-item-4":"Want to avoid costly mistakes","odm-decision-premium-item-4--plural":"Want to avoid costly mistakes","odm-decision-premium-item-1":"Are serious sellers or brand builders","odm-decision-premium-item-1--plural":"Are serious sellers or brand builders","odm-decision-premium-item-2":"Need custom branding & packaging","odm-decision-premium-item-2--plural":"Need custom branding & packaging","odm-decision-cta":"Submit Customization Request","odm-decision-cta--plural":"Submit Customization Request","odm-hero-float-1-text":"Logo & packaging ideas","odm-hero-float-1-text--plural":"Logo & packaging ideas","odm-comparison-row-2-basic":"1 Custom product","odm-comparison-row-2-basic--plural":"1 Custom product","odm-decision-basic-description":"Best for simple product testing and early-stage validation.","odm-decision-basic-description--plural":"Best for simple product testing and early-stage validation.","odm-hero-image-alt":"CJdropshipping ODM Custom Product Packaging Service","odm-hero-image-alt--plural":"CJdropshipping ODM Custom Product Packaging Service","odm-hero-cta":"Submit Customization Request","odm-hero-cta--plural":"Submit Customization Request","odm-decision-premium-title":"Premium Advanced ODM","odm
31657-decision-premium-title--plural":"Premium Advanced ODM","odm-comparison-row-3-label":"Response","odm-comparison-row-3-label--plural":"Response","odm-decision-subtitle":"Choose the ODM level based on your product stage, customization needs, and business goals.","odm-decision-subtitle--plural":"Choose the ODM level based on your product stage, customization needs, and business goals.","odm-hero-feature-1":"Verified Suppliers","odm-hero-feature-1--plural":"Verified Suppliers","odm-hero-feature-3":"Clear Cost Breakdown","odm-hero-feature-3--plural":"Clear Cost Breakdown","odm-hero-feature-2":"Custom Packaging","odm-hero-feature-4":"Dedicated Support","odm-hero-feature-4--plural":"Dedicated Support","odm-comparison-service-head":"Services","odm-decision-or-label":"OR","odm-decision-or-label--plural":"OR","odm-comparison-row-3-premium-strong":"24h","odm-comparison-row-3-premium-strong--plural":"24h","odm-decision-basic-title":"Basic ODM","odm-decision-basic-title--plural":"Basic ODM","odm-hero-label":"Basic & Premium Advanced ODM","odm-hero-label--plural":"Basic & Premium Advanced ODM","odm-comparison-subtitle-advanced":"Compare Basic ODM and Premium Advanced ODM side by side, then choose the service level that fits your product stage.","odm-comparison-subtitle-advanced--plural":"Compare Basic ODM and Premium Advanced ODM side by side, then choose the service level that fits your product stage.","odm-comparison-row-2-premium-strong":"1 Custom product","odm-comparison-row-2-premium-strong--plural":"1 Custom product","odm-comparison-premium-title":"Premium Advanced ODM","odm-comparison-premium-title--plural":"Premium Advanced ODM","odm-decision-basic-item-2":"Are just getting started","odm-decision-basic-item-2--plural":"Are just getting started","odm-decision-basic-item-3":"Need quick validation","odm-decision-basic-item-3--plural":"Need quick validation","odm-comparison-row-1-basic":"Standard","odm-comparison-row-1-basic--plural":"Standard","odm-decision-basic-item-1":"Want to test one product idea","odm-decision-basic-item-1--plural":"Want to test one product idea","odm-faq-subtitle-advanced":"Everything you need to know before choosing between Basic ODM and Premium Advanced ODM.","odm-faq-subtitle-advanced--plural":"Everything you need to know before choosing between Basic ODM and Premium Advanced ODM.","odm-hero-float-1-title":"Design","odm-value-card-2-image":"https://images.unsplash.com/photo-1581091226825-a6a2a5aee158?auto=format&fit=crop&w=900&q=80","odm-value-card-2-image--plural":"https://images.unsplash.com/photo-1581091226825-a6a2a5aee158?auto=format&fit=crop&w=900&q=80","odm-products-item-8-title":"Baby Products","odm-products-item-8-title--plural":"Baby Products","odm-products-item-11-desc":"Personalized gift items are perfect for ODM because they can include custom names, patterns, packaging, gift sets, and emotional design details that help sellers avoid direct price competition.","odm-products-item-11-desc--plural":"Personalized gift items are perfect for ODM because they can include custom names, patterns, packaging, gift sets, and emotional design details that help sellers avoid direct price competition.","odm-value-card-2-desc":"Work with factories, not middlemen.","odm-value-card-2-desc--plural":"Work with factories, not middlemen.","odm-products-item-9-image":"https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&w=900&q=80","odm-products-item-9-image--plural":"https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&w=900&q=80","odm-products-item-12-title":"Custom Packaging","odm-products-item-10-desc":"Electronic accessories can be customized with colors, surface finishes, logo placement, packaging, accessory bundles, and user manuals to support a more complete branded product line.","odm-products-item-10-desc--plural":"Electronic accessories can be customized with colors, surface finishes, logo placement, packaging, accessory bundles, and user manuals to support a more complete branded product line.","odm-products-item-8-desc":"Baby products can be customized by material, size, color, safety-focused packaging, and product sets, making them suitable for sellers who want to build trust with parents.","odm-products-item-8-desc--plural":"Baby products can be customized by material, size, color, safety-focused packaging, and product sets, making them suitable for sellers who want to build trust with parents.","odm-value-card-1-title":"Smarter Product Decisions","odm-value-card-1-title--plural":"Smarter Product Decisions","odm-value-card-1-desc":"We help you choose products that actually have potential.","odm-value-card-1-desc--plural":"We help you choose products that actually have potential.","odm-products-item-9-desc":"Travel accessories are great for ODM because they can be customized with compact designs, color series, logo printing, travel kits, and packaging for specific customer groups.","odm-products-item-9-desc--plural":"Travel accessories are great for ODM because they can be customized with compact designs, color series, logo printing, travel kits, and packaging for specific customer groups.","odm-products-item-10-image":"https://images.unsplash.com/photo-1516321318423-f06f85e504b3?auto=format&fit=crop&w=900&q=80","odm
31657-products-item-10-image--plural":"https://images.unsplash.com/photo-1516321318423-f06f85e504b3?auto=format&fit=crop&w=900&q=80","odm-value-card-1-image":"https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&w=900&q=80","odm-value-card-1-image--plural":"https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&w=900&q=80","odm-products-item-12-desc":"Custom packaging can include branded boxes, product labels, inserts, thank-you cards, gift sets, and retail-ready packaging that makes your product feel more professional and memorable.","odm-products-item-12-desc--plural":"Custom packaging can include branded boxes, product labels, inserts, thank-you cards, gift sets, and retail-ready packaging that makes your product feel more professional and memorable.","odm-products-item-8-image":"https://images.unsplash.com/photo-1519689680058-324335c77eba?auto=format&fit=crop&w=900&q=80","odm-products-item-8-image--plural":"https://images.unsplash.com/photo-1519689680058-324335c77eba?auto=format&fit=crop&w=900&q=80","odm-value-card-4-title":"Build a Real Brand","odm-value-card-4-title--plural":"Build a Real Brand","odm-value-card-1-alt":"Market research and product decision","odm-value-card-1-alt--plural":"Market research and product decision","odm-products-item-7-image":"https://images.unsplash.com/photo-1606760227091-3dd870d97f1d?auto=format&fit=crop&w=900&q=80","odm-products-item-7-image--plural":"https://images.unsplash.com/photo-1606760227091-3dd870d97f1d?auto=format&fit=crop&w=900&q=80","odm-products-item-11-alt":"Personalized gift items ODM customization","odm-products-item-11-alt--plural":"Personalized gift items ODM customization","odm-products-item-9-alt":"Travel accessories ODM customization","odm-products-item-9-alt--plural":"Travel accessories ODM customization","odm-value-card-3-title":"Transparent Cost & Risk Control","odm-value-card-3-title--plural":"Transparent Cost & Risk Control","odm-value-visual-top":"Smarter Decisions","odm-value-visual-top--plural":"Smarter Decisions","odm-value-visual-image":"https://cc-west-usa.cjdropshipping.com/operation-center/file_202605210659052057355483165237248.jpg","odm-value-visual-image--plural":"https://cc-west-usa.cjdropshipping.com/operation-center/file_202605210659052057355483165237248.jpg","odm-value-card-1-item-3":"Feasibility check","odm-value-card-1-item-3--plural":"Feasibility check","odm-value-card-2-item-2":"MOQ & customization alignment","odm-value-card-2-item-2--plural":"MOQ & customization alignment","odm-value-card-2-alt":"Reliable factory supplier support","odm-value-card-2-alt--plural":"Reliable factory supplier support","odm-value-card-3-item-3":"Risk evaluation","odm-value-card-3-item-3--plural":"Risk evaluation","odm-products-item-11-image":"https://images.unsplash.com/photo-1513201099705-a9746e1e201f?auto=format&fit=crop&w=900&q=80","odm-products-item-11-image--plural":"https://images.unsplash.com/photo-1513201099705-a9746e1e201f?auto=format&fit=crop&w=900&q=80","odm-value-card-1-item-2":"Product positioning","odm-value-card-1-item-2--plural":"Product positioning","odm-value-card-3-item-2":"IP / patent checks","odm-value-card-3-item-2--plural":"IP / patent checks","odm-value-card-1-item-1":"Market reference","odm-value-card-1-item-1--plural":"Market reference","odm-value-card-2-item-1":"Export-ready suppliers","odm-value-card-2-item-1--plural":"Export-ready suppliers","odm-value-card-3-item-1":"Cost breakdown","odm-value-card-3-item-1--plural":"Cost breakdown","odm-value-card-3-alt":"Transparent cost and risk control","odm-value-card-3-alt--plural":"Transparent cost and risk control","odm-products-item-8-alt":"Baby products ODM customization","odm-products-item-8-alt--plural":"Baby products ODM customization","odm-products-item-12-alt":"Custom packaging ODM customization","odm-products-item-12-alt--plural":"Custom packaging ODM customization","odm-value-title":"More Than Sourcing. We Help You Make the Right Decisions","odm-value-title--plural":"More Than Sourcing. We Help You Make the Right Decisions","odm-value-visual-bottom":"Brand Ready","odm-value-visual-bottom--plural":"Brand Ready","odm-products-item-10-title":"Electronic Accessories","odm-products-item-10-title--plural":"Electronic Accessories","odm-value-card-2-title":"Access to Reliable Suppliers","odm-value-card-2-title--plural":"Access to Reliable Suppliers","odm-value-card-3-image":"https://images.unsplash.com/photo-1450101499163-c8848c66ca85?auto=format&fit=crop&w=900&q=80","odm
31657-value-card-3-image--plural":"https://images.unsplash.com/photo-1450101499163-c8848c66ca85?auto=format&fit=crop&w=900&q=80","odm-products-item-7-alt":"Jewelry packaging ODM customization","odm-products-item-7-alt--plural":"Jewelry packaging ODM customization","odm-products-item-11-title":"Personalized Gift Items","odm-products-item-11-title--plural":"Personalized Gift Items","odm-products-item-12-image":"https://cc-west-usa.cjdropshipping.com/operation-center/file_202605210659052057355483165237248.jpg","odm-products-item-12-image--plural":"https://cc-west-usa.cjdropshipping.com/operation-center/file_202605210659052057355483165237248.jpg","odm-value-eyebrow":"Premium ODM Support","odm-value-eyebrow--plural":"Premium ODM Support","odm-value-visual-alt":"ODM product customization and packaging support","odm-value-visual-alt--plural":"ODM product customization and packaging support","odm-products-item-9-title":"Travel Accessories","odm-products-item-9-title--plural":"Travel Accessories","odm-value-card-3-desc":"Know everything before you commit.","odm-value-card-3-desc--plural":"Know everything before you commit.","odm-value-subtitle":"From product evaluation to reliable suppliers, transparent cost control, and brand-building support.","odm-value-subtitle--plural":"From product evaluation to reliable suppliers, transparent cost control, and brand-building support.","odm-products-item-10-alt":"Electronic accessories ODM customization","odm-products-item-10-alt--plural":"Electronic accessories ODM customization","odm-products-item-4-alt":"Home improvement products ODM customization","odm-products-item-4-alt--plural":"Home improvement products ODM customization","odm-comparison-row-9-label":"Best For","odm-comparison-row-9-label--plural":"Best For","odm-comparison-row-6-premium-strong":"In-depth analysis & optimization suggestions","odm-comparison-row-6-premium-strong--plural":"In-depth analysis & optimization suggestions","odm-comparison-row-7-basic":"Basic option","odm-comparison-row-7-basic--plural":"Basic o
31657ption","odm-comparison-row-4-basic":"1 supplier","odm-comparison-row-4-basic--plural":"1 supplier","odm-comparison-row-5-label":"Cost Analysis","odm-comparison-row-5-label--plural":"Cost Analysis","odm-products-item-1-title":"Beauty Tools","odm-products-item-1-title--plural":"Beauty Tools","odm-products-item-2-desc":"Pet products are suitable for ODM because sellers can customize colors, sizes, materials, product bundles, and packaging for different pet owners and niche markets.","odm-products-item-2-desc--plural":"Pet products are suitable for ODM because sellers can customize colors, sizes, materials, product bundles, and packaging for different pet owners and niche markets.","odm-comparison-row-9-premium-strong":"Serious sellers & brand builders","odm-comparison-row-9-premium-strong--plural":"Serious sellers & brand builders","odm-products-item-1-desc":"Beauty tools can be customized with colors, logo printing, packaging sets, private labels, and upgraded materials, making them ideal for sellers who want a more premium brand image.","odm-products-item-1-desc--plural":"Beauty tools can be customized with colors, logo printing, packaging sets, private labels, and upgraded materials, making them ideal for sellers who want a more premium brand image.","odm-products-item-7-desc":"Jewelry packaging can be customized with boxes, pouches, logo cards, thank-you cards, inserts, and premium materials, helping sellers improve perceived value and customer experience.","odm-products-item-7-desc--plural":"Jewelry packaging can be customized with boxes, pouches, logo cards, thank-you cards, inserts, and premium materials, helping sellers improve perceived value and customer experience.","odm-products-item-4-title":"Home Improvement Products","odm-products-item-4-title--plural":"Home Improvement Products","odm-products-item-5-alt":"Kitchen gadgets ODM customization","odm-products-item-5-alt--plural":"Kitchen gadgets ODM customization","odm-comparison-row-4-premium-strong":"3-5 vetted suppliers with comparison","odm-comparison-row-4-premium-strong--plural":"3-5 vetted suppliers with comparison","odm-products-item-6-image":"https://images.unsplash.com/photo-1515562141207-7a88fb7ce338?auto=format&fit=crop&w=900&q=80","odm-products-item-6-image--plural":"https://images.unsplash.com/photo-1515562141207-7a88fb7ce338?auto=format&fit=crop&w=900&q=80","odm-comparison-row-8-premium-strong":"Logo & packaging guidance","odm-comparison-row-8-premium-strong--plural":"Logo & packaging guidance","odm-products-item-2-title":"Pet Products","odm-products-item-2-title--plural":"Pet Products","odm-products-item-1-alt":"Beauty tools ODM customization","odm-products-item-1-alt--plural":"Beauty tools ODM customization","odm-products-subtitle":"ODM customization is especially useful for sellers who want to turn ordinary products into more brandable, differentiated, and market-ready items. From logo printing to packaging upgrades and product adju
31657stments, these categories are commonly suitable for ODM projects.","odm-products-subtitle--plural":"ODM customization is especially useful for sellers who want to turn ordinary products into more brandable, differentiated, and market-ready items. From logo printing to packaging upgrades and product adjustments, these categories are commonly suitable for ODM projects.","odm-comparison-row-6-basic":"Basic matching","odm-comparison-row-6-basic--plural":"Basic matching","odm-comparison-note":"Premium Advanced ODM is built for sellers who need faster response, deeper sourcing, and stronger branding support.","odm-comparison-note--plural":"Premium Advanced ODM is built for sellers who need faster response, deeper sourcing, and stronger branding support.","odm-products-eyebrow":"ODM Product Ideas","odm-products-eyebrow--plural":"ODM Product Ideas","odm-products-item-3-alt":"Fitness accessories ODM customization","odm-products-item-3-alt--plural":"Fitness accessories ODM customization","odm-products-item-5-title":"Kitchen Gadgets","odm-products-item-5-title--plural":"Kitchen Gadgets","odm-comparison-row-7-premium-mobile":"Full customization (product + packaging)","odm-comparison-row-7-premium-mobile--plural":"Full customization (product + packaging)","odm-comparison-row-4-label":"Supplier Options","odm-comparison-row-4-label--plural":"Supplier Options","odm-products-item-5-image":"https://images.unsplash.com/photo-1556911220-bff31c812dba?auto=format&fit=crop&w=900&q=80","odm-products-item-5-image--plural":"https://images.unsplash.com/photo-1556911220-bff31c812dba?auto=format&fit=crop&w=900&q=80","odm-comparison-row-7-premium-emphasis":"Product + packaging","odm-comparison-row-7-premium-emphasis--plural":"Product + packaging","odm-products-title":"What Products Are Suitable for ODM Customization?","odm-products-title--plural":"What Products Are Suitable for ODM Customization?","odm-comparison-row-7-premium-strong":"Full customization","odm-comparison-row-7-premium-strong--plural":"Full customization","odm-products-item-2-alt":"Pet products ODM customization","odm-products-item-2-alt--plural":"Pet products ODM customization","odm-products-item-3-desc":"Fitness accessories can be customized with brand logos, resistance levels, colors, training sets, and retail packaging, helping sellers build a more professional sports or wellness brand.","odm-products-item-3-desc--plural":"Fitness accessories can be customized with brand logos, resistance levels, colors, training sets, and retail packaging, helping sellers build a more professional sports or wellness brand.","odm-products-item-2-image":"https://images.unsplash.com/photo-1548199973-03cce0bbc87b?auto=format&fit=crop&w=900&q=80","odm-products-item-2-image--plural":"https://images.unsplash.com/photo-1548199973-03cce0bbc87b?auto=format&fit=crop&w=900&q=80","odm-products-item-6-desc":"Fashion accessories are highly suitable for ODM because sellers can customize styles, colors, packaging, labels, and seasonal collections to create a stronger brand identity.","odm-products-item-6-desc--plural":"Fashion accessories are highly suitable for ODM because sellers can customize styles, colors, packaging, labels, and seasonal collections to create a stronger brand identity.","odm-comparison-row-7-label":"Customization","odm-comparison-row-5-premium-strong":"Detailed cost breakdown","odm-comparison-row-5-premium-strong--plural":"Detailed cost breakdown","odm-comparison-row-9-basic":"Idea testing","odm-comparison-row-9-basic--plural":"Idea testing","odm-products-item-5-desc":"Kitchen gadgets can be customized through color matching, material selection, branded packaging, bundled sets, and small feature improvements to make products more giftable and unique.","odm-products-item-5-desc--plural":"Kitchen gadgets can be customized through color matching, material selection, branded packaging, bundled sets, and small feature improvements to make products more giftable and unique.","odm-products-item-6-title":"Fashion Accessories","odm-products-item-6-title--plural":"Fashion Accessories","odm-comparison-row-5-basic":"Simple quote","odm-comparison-row-5-basic--plural":"Simple quote","odm-products-item-3-image":"https://images.unsplash.com/photo-1517836357463-d25dfeac3438?auto=format&fit=crop&w=900&q=80","odm
31657-products-item-3-image--plural":"https://images.unsplash.com/photo-1517836357463-d25dfeac3438?auto=format&fit=crop&w=900&q=80","odm-products-item-4-desc":"Home improvement products are suitable for functional upgrades, material changes, accessory combinations, instruction inserts, and packaging customization for different household needs.","odm-products-item-4-desc--plural":"Home improvement products are suitable for functional upgrades, material changes, accessory combinations, instruction inserts, and packaging customization for different household needs.","odm-products-item-1-image":"https://images.unsplash.com/photo-1522335789203-aabd1fc54bc9?auto=format&fit=crop&w=900&q=80","odm-products-item-1-image--plural":"https://images.unsplash.com/photo-1522335789203-aabd1fc54bc9?auto=format&fit=crop&w=900&q=80","odm-comparison-row-8-label":"Branding Support","odm-comparison-row-8-label--plural":"Branding Support","odm-products-item-7-title":"Jewelry Packaging","odm-products-item-7-title--plural":"Jewelry Packaging","odm-products-item-6-alt":"Fashion accessories ODM customization","odm-products-item-6-alt--plural":"Fashion accessories ODM customization","odm-comparison-row-6-label":"Sourcing","odm-comparison-row-8-basic":"----","odm-comparison-row-8-basic--plural":"----","odm-products-item-4-image":"https://images.unsplash.com/photo-1581092918056-0c4c3acd3789?auto=format&fit=crop&w=900&q=80","odm-products-item-4-image--plural":"https://images.unsplash.com/photo-1581092918056-0c4c3acd3789?auto=format&fit=crop&w=900&q=80","odm-products-item-3-title":"Fitness Accessories","odm-products-item-3-title--plural":"Fitness Accessories","common-mycj-menu-ai":"AI","common-mycj-menu-ai--plural":"AI","ai-assistant-input-disclaimer":"AI-generated content may contain errors. Please verify.","ai-assistant-input-disclaimer--plural":"AI-generated content may contain errors. Please verify.","common-mycj-menu-claude":"Claude","common-mycj-menu-claude--plural":"Claude","common-mycj-menu-chatgpt":"ChatGPT","common-mycj-menu-chatgpt--plural":"ChatGPT","common-mycj-menu-codex":"CodeX","common-mycj-menu-codex--plural":"CodeX","printondemand-banner-title":"Print on Demand","printondemand-banner-subtitle":"The most touching word in the world is \\"Unique\\"","printondemand-banner-subtitle--plural":"The most touching word in the world is \\"Unique\\"","home-careers":"Careers","footer-careers":"Careers","common-mycj-menu-advertiser-agency":"Advertiser Agency","common-mycj-menu-advertiser-agency--plural":"Advertiser Agency","common-mycj-menu-profit-operator":"Profit Operator","common-mycj-menu-profit-operator--plural":"Profit Operator","careers-global-eyebrow":"Our Global Presence","careers-global-eyebrow--plural":"Our Global Presence","careers-why-perk-2-desc":"In a high-growth industry, 0-to-1 opportunities are everywhere. Top performers rise faster — here, capability sets your pace, not seniority.","careers-why-perk-2-desc--plural":"In a high-growth industry, 0-to-1 opportunities are everywhere. Top performers rise faster — here, capability sets your pace, not seniority.","careers-why-perk-6-title":"Learning & Enablement","careers-why-perk-6-title--plural":"Learning & Enablement","careers-life-thumb-1-sub":"Team Culture","careers-life-thumb-1-sub--plural":"Team Culture","careers-global-hub-3-desc":"Australia","careers-global-hub-3-desc--plural":"Australia","careers-life-thumb-1-title":"Elite Sales, Elated Sails","careers-life-thumb-1-title--plural":"Elite Sales, Elated Sails","careers-why-perk-1-desc":"Real cross-border career stages across Southeast Asia, Europe, the Middle East and the Americas. Overseas assignments and cross-regional collaboration expand your professional map as we scale worldwide.","careers-why-perk-1-desc--plural":"Real cross-border career stages across Southeast Asia, Europe, the Middle East and the Americas. Overseas assignments and cross-regional collaboration expand your professional map as we scale worldwide.","careers-country-ph":"Philippines","careers-country-ph--plural":"Philippines","careers-global-hub-2-title":"Southeast Asia","careers-global-hub-2-title--plural":"Southeast Asia","careers-country-pl":"Poland","careers-country-pl--plural":"Poland","careers-life-thumb-3-sub":"Now Playing","careers-life-thumb-3-sub--plural":"Now Playing","careers-life-thumb-4-title":"CCTV Report","careers-life-thumb-4-title--plural":"CCTV Report","careers-global-hub-5-title":"Middle East","careers-global-hub-5-title--plural":"Middle East","careers-country-ae":"United Arab Emirates","careers-country-ae--plural":"United Arab Emirates","careers-global-hub-8-title":"Latin America","careers-global-hub-8-title--plural":"Latin America","careers-why-perk-4-desc":"Colleagues from different c
31657ountries and cultures work side by side. Openness, equality and mutual success define how we collaborate.","careers-why-perk-4-desc--plural":"Colleagues from different countries and cultures work side by side. Openness, equality and mutual success define how we collaborate.","careers-hero-title-highlight":"Join Our Global Journey.","careers-hero-title-highlight--plural":"Join Our Global Journey.","careers-hero-secondary-cta":"Apply Now","careers-hero-secondary-cta--plural":"Apply Now","careers-why-perk-1-title":"Global Mobility","careers-why-perk-1-title--plural":"Global Mobility","careers-hero-primary-cta":"View Open Roles","careers-hero-primary-cta--plural":"View Open Roles","careers-country-id":"Indonesia","careers-country-id--plural":"Indonesia","careers-global-title":"Where We Operate","careers-global-title--plural":"Where We Operate","careers-global-hub-4-desc-v2":"Netherlands · Germany · Türkiye","careers-global-hub-4-desc-v2--plural":"Netherlands · Germany · Türkiye","careers-hero-title":"Worldwide Reach.","careers-hero-title--plural":"Worldwide Reach.","careers-country-jp":"Japan","careers-country-jp--plural":"Japan","careers-global-subtitle":"We\'re building local teams across key logistics and e-commerce hubs worldwide — hiring people who truly understand local markets.","careers-global-subtitle--plural":"We\'re building local teams across key logistics and e-commerce hubs worldwide — hiring people who truly understand local markets.","careers-gallery-eyebrow":"Working at CJ Dropshipping","careers-gallery-eyebrow--plural":"Working at CJ Dropshipping","careers-global-hub-7-title":"North America","careers-global-hub-7-title--plural":"North America","careers-country-au":"Australia","careers-country-au--plural":"Australia","careers-markets-label":"Operating across 18+ countries & regions · and expanding","careers-markets-label--plural":"Operating across 18+ countries & regions · and expanding","careers-why-eyebrow":"Why Join Us","careers-why-eyebrow--plural":"Why Join Us","careers-why-perk-5-desc":"Bali retreats, annual galas, festive parties and outdoor challenges — we work hard and live fully, our teammates are family members.","careers-why-perk-5-desc--plural":"Bali retreats, annual galas, festive parties and outdoor challenges — we work hard and live fully, our teammates are family members.","careers-life-thumb-3-title":"CJ Elite Global Journey","careers-life-thumb-3-title--plural":"CJ Elite Global Journey","careers-country-ro":"Romania","careers-country-ro--plural":"Romania","careers-country-ca":"Canada","careers-country-ca--plural":"Canada","careers-global-hub-1-title-v2":"More","careers-why-perk-3-title":"Competitive Rewards","careers-why-perk-3-title--plural":"Competitive Rewards","careers-markets-label-highlight":"18+","careers-markets-label-highlight--plural":"18+","careers-country-cn":"China","careers-life-title":"Step Inside Our World","careers-life-title--plural":"Step Inside Our World","careers-life-fullscreen":"Fullscreen","careers-life-fullscreen--plural":"Fullscreen","careers-global-hub-8-desc-v2":"Mexico · Brazil","careers-global-hub-8-desc-v2--plural":"Mexico · Brazil","careers-country-br":"Brazil","careers-life-thumb-2-title":"United in Pursuit of Passion","careers-life-thumb-2-title--plural":"United in Pursuit of Passion","careers-life-subtitle":"Experience our collaborative, global workspace through real footage from our teams.","careers-life-subtitle--plural":"Experience our collaborative, global workspace through real footage from our teams.","careers-global-hub-6-title":"Africa","careers-global-hub-6-title--plural":"Africa","careers-country-de":"Germany","careers-country-de--plural":"Germany","careers-global-hub-5-desc-v2":"Dubai · Saudi Arabia","careers-global-hub-5-desc-v2--plural":"Dubai · Saudi Arabia","careers-life-feature-desc":"Go behind the scenes of our passionate, world-class team — where high energy meets operational excellence.","careers-life-feature-desc--plural":"Go behind the scenes of our passionate, world-class team — where high energy meets operational excellence.","careers-hero-badge":"We\'re Hiring · Global Partners Wanted","careers-hero-badge--plural":"We\'re Hiring · Global Partners Wanted","careers-why-perk-2-title":"Fast-Track Growth","careers-why-perk-2-title--plural":"Fast-Track Growth","careers-country-th":"Thailand","careers-country-th--plural":"Thailand","careers-global-hub-1-desc-v2":"More markets coming soon","careers-global-hub-1-desc-v2--plural":"More markets coming soon","careers-gallery-title":"Life Beyond the Desk","careers-gallery-title--plural":"Life Beyond the Desk","careers-life-play":"Watch Full Video","careers-life-play--plural":"Watch Full Video","careers-country-us":"United States","careers-life-badge":"Featured · Team Culture","careers-life-badge--plural":"Featured · Team Culture","careers-hero-desc":"As a leading cross-border e-commerce and dropshipping fulfillment platform, we\'re scaling our global footprint at speed. We\'re looking for high-performing, visionary talents to drive worldwide growth, localization, forge strategic partnerships.","careers-hero-desc--plural":"As a leading cross-border e-commerce and dropshipping fulfillment platform, we\'re scaling our global footprint at speed. We\'re looking for high-performing, visionary talents to drive worldwide growth, localization, forge strategic partnerships.","careers-life-feature-title":"CJ Elite Global Journey","careers-life-feature-title--plural":"CJ Elite Global Journey","careers-hero-tag-1":"Global Markets","careers-hero-tag-1--plural":"Global Markets","careers-hero-tag-2":"High Growth","careers-hero-tag-2--plural":"High Growth","careers-hero-kicker":"Build the future of cross-border e-commerce and dropshipping — across every market that matters.","careers-hero-kicker--plural":"Build the future of cross-border e-commerce and dropshipping — across every market that matters.","careers-hero-tag-3":"Strategic Partnerships","careers-hero-tag-3--plural":"Strategic Partnerships","careers-life-eyebrow":"Life at CJ Dropshipping","careers-life-eyebrow--plural":"Life at CJ Dropshipping","careers-country-mx":"Mexico","careers-country-mx--plural":"Mexico","careers-country-my":"Malaysia","careers-life-thumb-2-sub":"Team Culture","careers-life-thumb-2-sub--plural":"Team Culture","careers-global-hub-7-desc":"Canada · USA","careers-global-hub-7-desc--plural":"Canada · USA","careers-why-perk-4-title":"Diverse & Inclusive","careers-why-perk-4-title--plural":"Diverse & Inclusive","careers-global-hub-2-desc-v2":"Vietnam · Thailand · Indonesia · Malaysia","careers-global-hub-2-desc-v2--plural":"Vietnam · Thailand · Indonesia · Malaysia","careers-country-fr":"France","careers-country-fr--plural":"France","careers-global-hub-4-title":"Europe","careers-global-hub-4-title--plural":"Europe","careers-country-es":"Spain","careers-country-es--plural":"Spain","careers-life-thumb-4-sub"
31657:"Team Culture","careers-life-thumb-4-sub--plural":"Team Culture","careers-why-perk-5-title":"Retreats & Team Building","careers-why-perk-5-title--plural":"Retreats & Team Building","careers-why-perk-6-desc":"Structured training, industry summits and shared global resources keep you at the forefront of cross-border e-commerce.","careers-why-perk-6-desc--plural":"Structured training, industry summits and shared global resources keep you at the forefront of cross-border e-commerce.","careers-global-hub-3-title":"Oceania","careers-global-hub-3-title--plural":"Oceania","careers-global-hub-6-desc-v2":"Morocco · Nigeria","careers-global-hub-6-desc-v2--plural":"Morocco · Nigeria","careers-why-title":"Why Build Your Career at CJ Dropshipping","careers-why-title--plural":"Why Build Your Career at CJ Dropshipping","careers-why-perk-3-desc":"Market-leading compensation plus performance-driven incentives and commission. The value you created for the business will turn into generous rewards.","careers-why-perk-3-desc--plural":"Market-leading compensation plus performance-driven incentives and commission. The value you created for the business will turn into generous rewards.","careers-why-subtitle":"More than a job — a stage to grow alongside a truly global platform. We\'re results-driven, and people-focused.","careers-why-subtitle--plural":"More than a job — a stage to grow alongside a truly global platform. We\'re results-driven, and people-focused.","careers-country-gb":"United Kingdom","careers-country-gb--plural":"United Kingdom","careers-hero-image-alt":"Global cross-border e-commerce team","careers-hero-image-alt--plural":"Global cross-border e-commerce team","codex-cta-subtitle":"Join thousands of smart dropshippers who are already scaling their stores with AI-driven operations.","codex-cta-subtitle--plural":"Join thousands of smart dropshippers who are already scaling their stores with AI-driven operations.","odm-hero-image-alt-1":"{{fullName}} ODM Custom Product Packaging Service","odm-hero-image-alt-1--plural":"{{fullName}} ODM Custom Product Packaging Service","codex-cta-title":"Ready to Automate Your Business?","codex-cta-title--plural":"Ready to Automate Your Business?","codex-cta-doc-button":"View Documentation","codex-cta-doc-button--plural":"View Documentation","careers-jobs-requirements":"Requirements","careers-jobs-requirements--plural":"Requirements","careers-job-1-rq-3":"Strong local market knowledge","careers-job-1-rq-3--plural":"Strong local market knowledge","careers-gallery-3-cap":"Annual Gala Night","careers-gallery-3-cap--plural":"Annual Gala Night","careers-job-1-rq-4":"Excellent negotiation skills","careers-job-1-rq-4--plural":"Excellent negotiation skills","claude-hero-badge":"New MCP Server Integration","claude-hero-badge--plural":"New MCP Server Integration","careers-job-1-rq-1":"Fluent in English and the local language","careers-job-1-rq-1--plural":"Fluent in English and the local language","careers-job-1-rq-2":"Dropshipping / e-commerce expansion experience","careers-job-1-rq-2--plural":"Dropshipping / e-commerce expansion experience","careers-job-2-rq-1":"Fluent English; native speakers preferred","careers-job-2-rq-1--plural":"Fluent English; native speakers preferred","careers-job-2-rq-3":"Dropshipping / cross-border e-commerce experience","careers-job-2-rq-3--plural":"Dropshipping / cross-border e-commerce experience","careers-job-2-rq-2":"Bachelor\'s degree or above","careers-job-2-rq-2--plural":"Bachelor\'s degree or above","careers-job-2-rq-4":"Outstanding communication skills","careers-job-2-rq-4--plural":"Outstanding communication skills","claude-prompts-title":"Recommended Prompts","claude-prompts-title--plural":"Recommended Prompts","careers-gallery-5-cap":"Festive Spirit","careers-gallery-5-cap--plural":"Festive Spirit","careers-job-3-rq-2":"Fluent in English and the local language","careers-job-3-rq-2--plural":"Fluent in English and the local language","careers-job-3-rq-1":"Degree in HR/ Administration/ Business related majors","careers-job-3-rq-1--plural":"Degree in HR/ Administration/ Business related majors","careers-job-3-rq-4":"Detail-oriented and professional","careers-job-3-rq-4--plural":"Detail-oriented and professional","careers-job-3-rq-3":"1-3 years of HR experience","careers-job-3-rq-3--plural":"1-3 years of HR experience","careers-process-step-2-desc":"An online HR screening to understand your background and career goals.","careers-process-step-2-desc--plural":"An online HR screening to understand your background and career goals.","careers-process-title":"Join Us in Four Simple Steps","careers-process-title--plural":"Join Us in Four Simple Steps","careers-worksite-title":"Work Locations · Overseas Postings","careers-worksite-title--plural":"Work Locations · Overseas Postings","careers-float-cta":"Apply Now","careers-float-cta--plural":"Apply Now","careers-process-step-4-no":"STEP 04","careers-process-step-4-no--plural":"STEP 04","careers-gallery-7-cap":"Holiday Party","careers-gallery-7-cap--plural":"Holiday Party","careers-jobs-eyebrow":"Open Positions","careers-jobs-eyebrow--plural":"Open Positions","careers-process-step-1-no":"STEP 01","careers-process-step-1-no--
31657plural":"STEP 01","claude-prompts-copied":"Copied!","claude-prompts-copied--plural":"Copied!","careers-job-1-subtitle":"Dropshipping · 0-to-1 Market Launch","careers-job-1-subtitle--plural":"Dropshipping · 0-to-1 Market Launch","careers-process-step-2-title":"Screening","careers-process-step-2-title--plural":"Screening","claude-hero-subtitle":"Connect CJdropshipping to Claude. Search products, sync orders, and track logistics through simple natural language.","claude-hero-subtitle--plural":"Connect CJdropshipping to Claude. Search products, sync orders, and track logistics through simple natural language.","careers-worksite-desc":"All roles above can be based at any of the following overseas stations (exact role & city confirmed during the interview).","careers-worksite-desc--plural":"All roles above can be based at any of the following overseas stations (exact role & city confirmed during the interview).","careers-jobs-title":"Find Your Next Big Opportunity","careers-jobs-title--plural":"Find Your Next Big Opportunity","careers-contact-title":"Ready to Join Our Team?","careers-contact-title--plural":"Ready to Join Our Team?","careers-contact-resume-note":"When applying, please note","careers-contact-resume-note--plural":"When applying, please note","claude-prompts-subtitle":"Click any prompt to copy it, then paste it into Claude to call the CJ MCP server.","claude-prompts-subtitle--plural":"Click any prompt to copy it, then paste it into Claude to call the CJ MCP server.","careers-worksite-loc-1":"Türkiye","careers-worksite-loc-1--plural":"Türkiye","careers-gallery-1-cap":"Annual Global Convention","careers-gallery-1-cap--plural":"Annual Global Convention","careers-worksite-loc-2":"Mexico","careers-worksite-loc-2--plural":"Mexico","careers-worksite-loc-3":"Brazil","careers-worksite-loc-4":"Vietnam","careers-worksite-loc-4--plural":"Vietnam","careers-worksite-loc-5":"Australia","careers-worksite-loc-5--plural":"Australia","careers-worksite-loc-6":"Canada","careers-worksite-loc-6--plural":"Canada","careers-process-subtitle":"A transparent, efficient hiring process designed to get you onboard faster.","careers-process-subtitle--plural":"A transparent, efficient hiring process designed to get you onboard faster.","careers-jobs-apply":"Apply Now","careers-jobs-apply--plural":"Apply Now","careers-process-step-1-desc":"Submit your resume and target role via email or WhatsApp.","careers-process-step-1-desc--plural":"Submit your resume and target role via email or WhatsApp.","careers-contact-divider":"or connect instantly","careers-contact-divider--plural":"or connect instantly","careers-worksite-loc-7":"Indonesia","careers-worksite-loc-7--plural":"Indonesia","careers-worksite-loc-8":"Thailand","careers-worksite-loc-8--plural":"Thailand","careers-worksite-loc-9":"the Netherlands","careers-worksite-loc-9--plural":"the Netherlands","careers-process-step-3-title":"Interview","careers-process-step-3-title--plural":"Interview","careers-process-step-4-desc":"Receive your offer and begin your global cross-border career.","careers-process-step-4-desc--plural":"Receive your offer and begin your global cross-border career.","claude-hero-cta-primary":"Start Using Now","claude-hero-cta-primary--plural":"Start Using Now","careers-contact-copy":"Copy email","careers-contact-copy--plural":"Copy email","careers-job-2-hl-3":"Partner relationship management","careers-job-2-hl-3--plural":"Partner relationship management","careers-job-2-hl-4":"Market expansion","careers-job-2-hl-4--plural":"Market expansion","careers-gallery-4-cap":"Outdoor Challenge","careers-gallery-4-cap--plural":"Outdoor Challenge","careers-process-step-4-title":"Offer & Onboard","careers-process-step-4-title--plural":"Offer & Onboard","careers-process-eyebrow":"How To Apply","careers-process-eyebrow--plural":"How To Apply","careers-process-step-1-title":"Apply","careers-contact-whatsapp":"Apply via WhatsApp","careers-contact-whatsapp--plural":"Apply via WhatsApp","careers-process-step-3-no":"STEP 03","careers-process-step-3-no--plural":"STEP 03","careers-jobs-highlights":"Highlights","careers-jobs-highlights--plural":"Highlights","careers-job-2-hl-1":"Local dropshipping business development","careers-job-2-hl-1--plural":"Local dropshipping business development","careers-job-3-title":"Overseas HR & Admin Specialist","careers-job-3-title--plural":"Overseas HR & Admin Specialist","careers-job-2-hl-2":"Resource integration (logistics / payments / KOLs)","careers-job-2-hl-2--plural":"Resource integration (logistics / payments / KOLs)","careers-gallery-6-cap":"Shared Meals, Shared Growth","careers-gallery-6-cap--plural":"Shared Meals, Shared Growth","careers-job-3-hl-1":"End-to-end recruitment lifecycle","careers-job-3-hl-1--plural":"End-to-end recruitment lifecycle","careers-job-3-hl-3":"Legal & compliance coordination","careers-job-3-hl-3--plural":"Legal & compliance coordination","careers-job-3-hl-2":"Multi-site coordination","careers-job-3-hl-2--plural":"Multi-site coordination","careers-worksite-loc-12":"UAE","careers-worksite-loc-12--plural":"UAE","careers-worksite-loc-13":"Saudi Arabia","careers-worksite-loc-10":"Spain","careers-worksite-loc-10--plural":"Spain","careers-worksite-loc-11":"Malta","careers-worksite-loc-11--plural":"Malta","claude-prompts-copy":"Copy","careers-jobs-location":"Multiple Locations","careers-jobs-location--plural":"Multiple Locations","careers-worksite-loc-16":"India","careers-worksite-loc-16--plural":"India","careers-worksite-loc-14":"Morocco","careers-worksite-loc-14--plural":"Morocco","careers-worksite-loc-15":"Pakistan","careers-job-3-hl-5":"Team culture building","careers-job-3-hl-5--plural":"Team culture building","careers-contact-resume-fields":"Role · Nationality · Preferred Posting Country · Name · Email · Availability Date","careers-contact-resume-fields--plural":"Role · Nationality · Preferred Posting Country · Name · Email · Availability Date","claude-hero-title":"Manage Your Dropshipping Business, ","claude-hero-title--plural":"Manage Your Dropshipping Business, ","careers-job-3-hl-4":"Administrative support","careers-job-3-hl-4--plural":"Administrative support","careers-contact-qr-label":"Scan to apply on WhatsApp","careers-contact-qr-label--plural":"Scan to apply on WhatsApp","careers-job-2-title":"Overseas Market BD","careers-job-2-title--plural":"Overseas Market BD","careers-process-step-3-desc":"An in-depth conversation with the hiring manager — a genuine two-way fit.","careers-process-step-3-desc--plural":"An in-depth conversation with the hiring manager — a genuine two-way fit.","claude-hero-title-highlight":"Right from Your Claude Chat","claude-hero-title-highlight--plural":"Right from Your Claude Chat","careers-contact-subtitle":"Open to talents worldwide — take the next step and apply directly via email or WhatsApp.","careers-contact-subtitle--plural":"Open to talents worldwide — take the next step and apply directly via email or WhatsApp.","careers-gallery-subtitle":"From annual galas to overseas summits, outdoor challenges to festive parties — we work hard, and we love harder.","careers-gallery-subtitle--plural":"From annual galas to overseas summits, outdoor challenges to festive parties — we work hard, and we love harder.","careers-job-1-title":"Overseas Market Lead","careers-job-1-title--plural":"Overseas Market Lead","claude-hero-cta-secondary":"View Documentation","claude-hero-cta-secondary--plural":"View Documentation","careers-job-2-subtitle":"Dropshipping Business Development","careers-job-2-subtitle--plural":"Dropshipping Business Development","careers-jobs-hot":"Hot","careers-jobs-hot--plural":"Hot","careers-process-step-2-no":"STEP 02","careers-process-step-2-no--plural":"STEP 02","careers-contact-copied":"Copied","careers-contact-copied--plural":"Copied","careers-job-1-hl-5":"Supply chain optimization","careers-job-1-hl-5--
31657plural":"Supply chain optimization","careers-job-1-hl-4":"B2B clients acquisition","careers-job-1-hl-4--plural":"B2B clients acquisition","careers-job-1-hl-3":"Build and manage local teams","careers-job-1-hl-3--plural":"Build and manage local teams","careers-job-1-hl-2":"Lead platform go-to-market strategy","careers-job-1-hl-2--plural":"Lead platform go-to-market strategy","careers-job-1-hl-1":"End-to-end 0-to-1 market launch","careers-job-1-hl-1--plural":"End-to-end 0-to-1 market launch","careers-gallery-2-cap":"Team Building","careers-gallery-2-cap--plural":"Team Building","careers-jobs-subtitle":"Take the next major step of your career with our fast-growing global team.","careers-jobs-subtitle--plural":"Take the next major step of your career with our fast-growing global team.","pod2-slide2-m2t":"Easy Test","pod2-slide2-m2t--plural":"Easy Test","pod2-slide2-m2s":"Multiple designs","pod2-slide2-m2s--plural":"Multiple designs","pod2-btn-start":"Start Print on Demand","pod2-btn-start--plural":"Start Print on Demand","pod2-slide1-desc":"Build niche clothing collections with custom graphics, logos, seasonal themes, and branded packaging options.","pod2-slide1-desc--plural":"Build niche clothing collections with custom graphics, logos, seasonal themes, and branded packaging options.","pod2-slide1-title":"T-shirts, Hoodies & Fashion Items","pod2-slide1-title--plural":"T-shirts, Hoodies & Fashion Items","pod2-slide4-title":"Personalized Jewelry Products","pod2-slide4-title--plural":"Personalized Jewelry Products","pod2-hero-point4":"Shopify, TikTok Shop & WooCommerce Integration","pod2-hero-point4--plural":"Shopify, TikTok Shop & WooCommerce Integration","pod2-hero-point5":"One-Stop POD Solution","pod2-hero-point5--plural":"One-Stop POD Solution","pod2-hero-point2":"Custom Products & Packaging","pod2-hero-point2--plural":"Custom Products & Packaging","pod2-hero-point3":"Global Fulfillment","pod2-hero-point3--plural":"Global Fulfillment","pod2-slide2-m1t":"Gift Value","pod2-slide2-m1t--plural":"Gift Value","pod2-slide2-m1s":"Emotional purchase","pod2-slide2-m1s--plural":"Emotional purchase","pod2-slide4-tag":"Jewelry & Accessories","pod2-slide4-tag--plural":"Jewelry & Accessories","pod2-hero-point1":"No Inventory Required","pod2-hero-point1--plural":"No Inventory Required","pod2-slide2-tag":"Personalized Gifts","pod2-slide2-tag--plural":"Personalized Gifts","pod2-slide4-m1t":"Premium Feel","pod2-slide4-m1t--plural":"Premium Feel","pod2-slide4-m1s":"Higher value","pod2-slide4-m1s--plural":"Higher value","pod2-hero-desc":"Create personalized products, sell under your own brand, and let {{name}} handle sourcing, production, quality control, and global fulfillment.","pod2-hero-desc--plural":"Create personalized products, sell under your own brand, and let {{name}} handle sourcing, production, quality control, and global fulfillment.","pod2-slide4-desc":"Offer engraved, name-based, couple, family, or memorial-style products for gift-focused ecommerce stores.","pod2-slide4-desc--plural":"Offer engraved, name-based, couple, family, or memorial-style products for gift-focused ecommerce stores.","pod2-hero-title":"Print on Demand: Start Your Ecommerce Journey with {{fullName}}","pod2-hero-title--plural":"Print on Demand: Start Your Ecommerce Journey with {{fullName}}","pod2-slide3-title":"Phone Cases & Daily Accessories","pod2-slide3-title--plural":"Phone Cases & Daily Accessories","pod2-slide1-tag":"Custom Apparel","pod2-slide1-tag--plural":"Custom Apparel","pod2-hero-trustpilot-reviews":"{{count}} reviews on Trustpilot","pod2-hero-trustpilot-reviews--plural":"{{count}} reviews on Trustpilot","pod2-hero-trustpilot":"Trustpilot","pod2-hero-trustpilot--plural":"Trustpilot","pod2-slide1-m1s":"Made after order","pod2-slide1-m1s--plural":"Made after order","pod2-slide1-m1t":"No Stock","pod2-slide1-m1t--plural":"No Stock","pod2-slide3-m2t":"Trendy","pod2-slide3-m2t--plural":"Trendy","pod2-slide2-span":"Gift-Focused Selling","pod2-slide2-span--plural":"Gift-Focused Selling","pod2-slide3-m2s":"Design-led sales","pod2-slide3-m2s--plural":"Design-led sales","pod2-slide4-span":"High Perceived Value","pod2-slide4-span--plural":"High Perceived Value","pod2-hero-label":"Print on Demand Solution","pod2-hero-label--plural":"Print on Demand Solution","pod2-slide1-span":"Brand-Ready POD","pod2-slide1-span--plural":"Brand-Ready POD","pod2-slide3-tag":"Phone Accessories","pod2-slide3-tag--plural":"Phone Accessories","pod2-hero-shopify":"Shopify","pod2-slide1-m2t":"Branding","pod2-slide1-m2s":"Logo & packaging","pod2-slide1-m2s--plural":"Logo & packaging","pod2-slide2-title":"Custom Mugs & Gift Products","pod2-slide2-title--plural":"Custom Mugs & Gift Products","pod2-slide3-m1s":"Easy to ship","pod2-slide3-m1s--plural":"Easy to ship","pod2-slide3-m1t":"Lightweight","pod2-slide3-m1t--plural":"Lightweight","pod2-slide3-desc":"Offer stylish accessories with custom artwork, trendy patterns, influencer designs, and flexible fulfillment.","pod2-slide3-desc--plural":"Offer stylish accessories with custom artwork, trendy patterns, influencer designs, and flexible fulfillment.","pod2-hero-shopify-reviews":"Based on {{count}} reviews","pod2-hero-shopify-reviews--plural":"Based on {{count}} reviews","pod2-slide2-desc":"Create products for holidays, birthdays, pet lovers, couples, families, teachers, and niche communities.","pod2-slide2-desc--plural":"Create products for holidays, birthdays, pet lovers, couples, families, teachers, and niche communities.","pod2-btn-explore":"Explore POD Products","pod2-btn-explore--plural":"Explore POD Products","pod2-slide3-span":"Style-Driven Products","pod2-slide3-span--plural":"Style-Driven Products","pod2-test-ethan-role":"Branding Consultant","pod2-test-ethan-role--plural":"Branding Consultant","pod2-faq-info-t":"Need help starting POD?","pod2-faq-info-t--plural":"Need help starting POD?","pod2-faq-info-s":"Cho
31657ose products, upload your designs, connect your store, and let {{name}} help handle production and fulfillment.","pod2-faq-info-s--plural":"Choose products, upload your designs, connect your store, and let {{name}} help handle production and fulfillment.","pod2-faq7-q":"What products are best for POD?","pod2-faq7-q--plural":"What products are best for POD?","pod2-test-noah-role":"Creator Merchandise Seller","pod2-test-noah-role--plural":"Creator Merchandise Seller","pod2-faq3-q":"Can {{name}} help me find custom products?","pod2-faq3-q--plural":"Can {{name}} help me find custom products?","pod2-test-nathan-role":"DTC Brand Builder","pod2-test-nathan-role--plural":"DTC Brand Builder","pod2-cta-label":"Start Your POD Journey","pod2-cta-label--plural":"Start Your POD Journey","pod2-faq7-a":"Popular POD products include apparel, mugs, phone cases, home decor, pet products, jewelry, accessories, and personalized gifts.","pod2-faq7-a--plural":"Popular POD products include apparel, mugs, phone cases, home decor, pet products, jewelry, accessories, and personalized gifts.","pod2-faq3-a":"Yes. If you cannot find the product you want, you can submit a sourcing request and {{name}} can help look for suitable suppliers.","pod2-faq3-a--plural":"Yes. If you cannot find the product you want, you can submit a sourcing request and {{name}} can help look for suitable suppliers.","pod2-category-btn":"Explore POD Products","pod2-category-btn--plural":"Explore POD Products","pod2-test-grace-role":"Sustainable Store Founder","pod2-test-grace-role--plural":"Sustainable Store Founder","pod2-faq6-q":"Can {{name}} fulfill POD orders automatically?","pod2-faq6-q--plural":"Can {{name}} fulfill POD orders automatically?","pod2-faq2-q":"Do I need inventory to start POD with {{name}}?","pod2-faq2-q--plural":"Do I need inventory to start POD with {{name}}?","pod2-cta-h2":"Ready to Start Your Print on Demand Business?","pod2-cta-h2--plural":"Ready to Start Your Print on Demand Business?","pod2-faq6-a":"Yes. After connecting your store, {{name}} can help sync orders, process fulfillment, and update tracking information.","pod2-faq6-a--plural":"Yes. After connecting your store, {{name}} can help sync orders, process fulfillment, and update tracking information.","pod2-faq2-a":"No. You can start with no inventory and produce products after orders are placed.","pod2-faq2-a--plural":"No. You can start with no inventory and produce products after orders are placed.","pod2-faq-desc":"Find quick answers about {{fullName}} Print on Demand, including custom products, design uploads, branding, fulfillment, samples, and how to get started.","pod2-faq-desc--plural":"Find quick answers about {{fullName}} Print on Demand, including custom products, design uploads, branding, fulfillment, samples, and how to get started.","pod2-test-ava-text":"I\'ve tested multiple POD providers; none match {{fullName}}\'s combination of speed, quality, and price.","pod2-test-ava-text--plural":"I\'ve tested multiple POD providers; none match {{fullName}}\'s combination of speed, quality, and price.","pod2-test-grace-text":"Their eco-friendly on-demand model aligns with my sustainability goals. No excess waste, just happy buyers.","pod2-test-grace-text--plural":"Their eco-friendly on-demand model aligns with my sustainability goals. No excess waste, just happy buyers.","pod2-faq9-q":"Can I order samples before selling?","pod2-faq9-q--plural":"Can I order samples before selling?","pod2-faq5-q":"Does {{name}} support custom packaging?","pod2-faq5-q--plural":"Does {{name}} support custom packaging?","pod2-faq1-q":"What is print on demand?","pod2-faq1-q--plural":"What is print on demand?","pod2-cta-btn2":"Submit a Custom Request","pod2-cta-btn2--plural":"Submit a Custom Request","pod2-cta-btn1":"Start POD with {{name}}","pod2-cta-btn1--plural":"Start POD with {{name}}","pod2-faq9-a":"Yes. Ordering samples is recommended so you can check product quality, print effect, packaging, and shipping experience.","pod2-faq9-a--plural":"Yes. Ordering samples is recommended so you can check product quality, print effect, packaging, and shipping experience.","pod2-faq5-a":"Yes. {{name}} can support branding options such as custom packaging, thank-you cards, labels, and other packaging solutions.","pod2-faq5-a--plural":"Yes. {{name}} can support branding options such as custom packaging, thank-you cards, labels, and other packaging solutions.","pod2-faq1-a":"Print on Demand is a business model where products are made only after customers place orders, so sellers do not need to hold inventory in advance.","pod2-faq1-a--plural":"Print on Demand is a business model where products are made only after customers place orders, so sellers do not need to hold inventory in advance.","pod2-test-olivia-text":"Offer
31657ing hundreds of customizable products expanded my catalog overnight. I\'m seeing higher average order values.","pod2-test-olivia-text--plural":"Offering hundreds of customizable products expanded my catalog overnight. I\'m seeing higher average order values.","pod2-faq-h2":"Print on Demand FAQs","pod2-faq-h2--plural":"Print on Demand FAQs","pod2-test-nathan-text":"Automated workflows let me focus on marketing while {{fullName}} handles printing, packing, and shipping flawlessly.","pod2-test-nathan-text--plural":"Automated workflows let me focus on marketing while {{fullName}} handles printing, packing, and shipping flawlessly.","pod2-faq10-a":"You can create a {{name}} account, choose or source POD products, upload your design, connect your store, and start selling.","pod2-faq10-a--plural":"You can create a {{name}} account, choose or source POD products, upload your design, connect your store, and start selling.","pod2-test-ethan-text":"Branding options like custom packing slips added a professional touch that keeps customers coming back.","pod2-test-ethan-text--plural":"Branding options like custom packing slips added a professional touch that keeps customers coming back.","pod2-faq8-q":"Is POD good for beginners?","pod2-faq8-q--plural":"Is POD good for beginners?","pod2-test-ava-role":"POD Business Owner","pod2-test-ava-role--plural":"POD Business Owner","pod2-faq4-q":"Can I use my own designs?","pod2-faq4-q--plural":"Can I use my own designs?","pod2-faq10-q":"How do I start POD with {{fullName}}?","pod2-faq10-q--plural":"How do I start POD with {{fullName}}?","pod2-faq-label":"FAQ","pod2-test-noah-text":"Launching limited-edition drops is effortless. I upload a design, and within days it\'s in my customers\' hands!","pod2-test-noah-text--plural":"Launching limited-edition drops is effortless. I upload a design, and within days it\'s in my customers\' hands!","pod2-faq8-a":"Yes. POD is beginner-friendly because it requires lower upfront investment and allows sellers to test designs without buying bulk inventory.","pod2-faq8-a--plural":"Yes. POD is beginner-friendly because it requires lower upfront investment and allows sellers to test designs without buying bulk inventory.","pod2-cta-desc":"Turn your ideas into custom products with {{fullName}}. From sourcing and customization to fulfillment and global shipping, {{name}} helps you build a flexible POD business without inventory pressure.","pod2-cta-desc--plural":"Turn your ideas into custom products with {{fullName}}. From sourcing and customization to fulfillment and global shipping, {{name}} helps you build a flexible POD business without inventory pressure.","pod2-faq4-a":"Yes. You can upload your own designs, logos, artwork, or personalized requirements depending on the product type.","pod2-faq4-a--plural":"Yes. You can upload your own designs, logos, artwork, or personalized requirements depending on the product type.","pod2-test-olivia-role":"Personalized Gift Seller","pod2-test-olivia-role--plural":"Personalized Gift Seller","chatgpt-capability-3-desc":"Real-time shipping updates and route predictions. Just ask \\"Where is order #1234?\\" and get an instant map link.","chatgpt-capability-3-desc--plural":"Real-time shipping updates and route predictions. Just ask \\"Where is order #1234?\\" and get an instant map link.","claude-capability-6-desc":"Personalized product suggestions based on your store\'s sales history and global market trends.","claude-capability-6-desc--plural":"Personalized product suggestions based on your store\'s sales history and global market trends.","claude-capabilities-title":"Intelligent Commerce ","claude-capabilities-title--plural":"Intelligent Commerce ","claude-prompt-9":"Check my current API call rate limit status","claude-prompt-9--plural":"Check my current API call rate limit status","claude-prompt-8":"Show me the product connection mappings between CJ and my Shopify store","claude-prompt-8--plural":"Show me the product connection mappings between CJ and my Shopify store","claude-prompt-7":"How much balance do I currently have in my CJ account?","claude-prompt-7--plural":"How much balance do I currently have in my CJ account?","chatgpt-hero-subtitle":"Connect CJdropshipping to ChatGPT. Search products, sync orders, and track logistics through simple natural language.","chatgpt-hero-subtitle--plural":"Connect CJdropshipping to ChatGPT. Search products, sync orders, and track logistics through simple natural language.","chatgpt-hero-badge":"New MCP Server Integration","chatgpt-hero-badge--plural":"New MCP Server Integration","claude-operation-step-2-alt":"Claude web app left sidebar with the Customize entry highlighted.","claude-operation-step-2-alt--plural":"Claude web app left sidebar with the Customize entry highlighted.","claude-operation-step-5-desc":"Ask Claude to use CJMCP — e.g. \\"Use CJMCP to view my current account\\". Approve with <strong>Always allow</strong> and Claude will call the CJ MCP tools and return structured data.","claude-operation-step-5-desc--plural":"Ask Claude to use CJMCP — e.g. \\"Use CJMCP to view my current account\\". Approve with <strong>Always allow</strong> and Claude will call the CJ MCP tools and return structured data.","chatgpt-prompt-10":"Show me all the stores connected to my CJ account","chatgpt-prompt-10--plural":"Show me all the stores connected to my CJ account","chatgpt-capability-4-title":"Inventory Insights","chatgpt-capability-4-title--plural":"Inventory Insights","chatgpt-capability-4-desc":"Monitor stock levels across global warehouses and receive low-inventory alerts automatically through AI analysis.","chatgpt-capability-4-desc--plural":"Monitor stock levels across global warehouses and receive low-inventory alerts automatically through AI analysis.","chatgpt-hero-cta-secondary":"View Documentation","chatgpt-hero-cta-secondary--plural":"View Documentation","chatgpt-capability-1-desc":"Instantly query millions of products from CJdropshipping\'s global catalog with natural language prompts.","chatgpt-capability-1-desc--plural":"Instantly query millions of products from CJdropshipping\'s global catalog with natural language prompts.","chatgpt-capability-1-title":"Product Search","chatgpt-capability-1-title--plural":"Product Search","claude-operation-title":"Deployment Process","claude-operation-title--plural":"Deployment Process","claude-capability-5-desc":"Ask business strategy questions like \\"What are the trending niches for Q4?\\" and get data-backed answers.","claude-capability-5-desc--plural":"Ask business strategy questions like \\"What are the trending niches for Q4?\\" and get data-backed answers.","claude-operation-step-3-label":"Connectors → + → Add custom connector","claude-operation-step-3-label--plural":"Connectors → + → Add custom connector","claude-capabilities-title-highlight":"At Your Fingertips","claude-capabilities-title-highlight--plural":"At Your Fingertips","claude-operation-step-4-desc":"Name the connector <strong>CJMCP</strong> and set the <strong>MCP Server URL</strong> to <code>https://developers.cjdropshipping.com/mcp/&lt;MCP Token&gt;</code> (replace <code>&lt;accessToken&gt;</code> with the token from the previous step), then click <strong>Add</strong>.","claude-operation-step-4-desc--plural":"Name the connector <strong>CJMCP</strong> and set the <strong>MCP Server URL</strong> to <code>https://developers.cjdropshipping.com/mcp/&lt;MCP Token&gt;</code> (replace <code>&lt;accessToken&gt;</code> with the token from the previous step), then click <strong>Add</strong>.","claude-capability-2-title":"Order Management","claude-operation-step-2-title":"Open Customize","claude-operation-step-2-title--plural":"Open Customize","claude-capability-5-title":"AI Commerce Q&A","claude-capability-5-title--plural":"AI Commerce Q&A","claude-faq-title":"Frequently Asked Questions","claude-faq-title--plural":"Frequently Asked Questions","chatgpt-capability-6-desc":"Personalized product suggestions based on your store\'s sales history and global market trends.","chatgpt-capability-6-desc--plural":"Personalized product suggestions based on your store\'s sales history and global market trends.","chatgpt-prompts-title":"Recommended Prompts","chatgpt-prompts-title--plural":"Recommended Prompts","chatgpt-hero-product-1-name":"Wireless Bluetooth Headphones, Small, Portable, And Very Practical.","chatgpt-hero-product-1-name--plural":"Wireless Bluetooth Headphones, Small, Portable, And Very Practical.","claude-operation-step-2-desc":"In the Claude web app, open the left sidebar and click <strong>Customize</strong> to manage connectors and integrations.","claude-operation-step-2-desc--plural":"In the Claude web app, open the left sidebar and click <strong>Customize</strong> to manage connectors and integrations.","claude-cta-title":"Ready to Automate Your Business?","claude-cta-title--plural":"Ready to Automate Your Business?","claude-faq-1-question":"Is the CJ MCP server free to use?","claude-faq-1-question--plural":"Is the CJ MCP server free to use?","claude-faq-1-answer":"Yes, the basic MCP server connection is free for all registered CJdropshipping users. Premium features like advanced analytics and higher API rate limits may require a professional tier subscription.","claude-faq-1-answer--plural":"Yes, the basic MCP server connection is free for all registered CJdropshipping users. Premium features like advanced analytics and higher API rate limits may require a professional tier subscription.","claude-operation-step-3-title":"Add a Custom Connector","claude-operation-step-3-title--plural":"Add a Custom Connector","chatgpt-operation-title":"Deployment Process","chatgpt-operation-title--plural":"Deployment Process","chatgpt-capabilities-title-highlight":"At Your Fingertips","chatgpt-capabilities-title-highlight--plural":"At Your Fingertips","claude-operation-step-2-label":"Open the Claude web app","claude-operation-step-2-label--plural":"Open the Claude web app","claude-capability-4-title":"Inventory Insights","claude-capability-4-title--plural":"Inventory Insights","claude-prompt-6":"Which of my orders are still waiting for payment?","claude-prompt-6--plural":"Which of my orders are still waiting for payment?","claude-prompt-5":"Open my shopping cart page so I can review the items in it","claude-prompt-5--plural":"Open my shopping cart page so I can review the items in it","claude-prompt-4":"Calculate the shipping cost for sending 2 units of variant CJYD277443801AZ from China to the US","claude-prompt-4--plural":"Calculate the shipping cost for sending 2 units of variant CJYD277443801AZ from China to the US","claude-prompt-3":"What warehouses does CJ have globally? Please list all locations","claude-prompt-3--plural":"What warehouses does CJ have globally? Please list all locations","claude-prompt-2":"What colors and sizes are available for product CJYD2774438?","claude-prompt-2--plural":"What colors and sizes are available for product CJYD2774438?","claude-faq-subtitle":"Find answers to common questions about our MCP server integration.","claude-faq-subtitle--plural":"Find answers to common questions about our MCP server integration.","chatgpt-hero-bot-intro":"Searching CJdropshipping inventory... I found 3 high-potential products for you:","chatgpt-hero-bot-intro--plural":"Searching CJdropshipping inventory... I found 3 high-potential products for you:","claude-prompt-1":"Search for \\"phone case\\" and show the first 20 results","claude-prompt-1--plural":"Search for \\"phone case\\" and show the first 20 results","claude-capability-4-desc":"Monitor stock levels across global warehouses and receive low-inventory alerts automatically through AI analysis.","claude-capability-4-desc--plural":"Monitor stock levels across global warehouses and receive low-inventory alerts automatically through AI analysis.","claude-prompt-10":"Show me all the stores connected to my CJ account","claude-prompt-10--plural":"Show me all the stores connected to my CJ account","claude-capability-1-desc":"Instantly query millions of products from CJdropshipping\'s global catalog with natural language prompts.","claude-capability-1-desc--plural":"Instantly query millions of products from CJdropshipping\'s global catalog with natural language prompts.","chatgpt-capability-3-title":"Logistics Tracking","chatgpt-capability-3-title--plural":"Logistics Tracking","claude-operation-step-4-alt":"Claude Add custom connector dialog with CJMCP name and the MCP Server URL filled in.","claude-operation-step-4-alt--plural":"Claude Add custom connector dialog with CJMCP name and the MCP Server URL filled in.","chatgpt-capability-5-title":"AI Commerce Q&A","chatgpt-capability-5-title--plural":"AI Commerce Q&A","claude-operation-step-4-title":"Configure CJMCP","claude-operation-step-4-title--plural":"Configure CJMCP","chatgpt-prompts-copy":"Copy","claude-operation-step-1-alt":"CJ API console API Key page with the key value and copy button highlighted.","claude-operation-step-1-alt--plural":"CJ API console API Key page with the key value and copy button highlighted.","chatgpt-hero-cta-primary":"Start Using Now","chatgpt-hero-cta-primary--
31657plural":"Start Using Now","chatgpt-operation-subtitle":"Integrate the powerful CJ MCP service into your ChatGPT environment in just six simple steps and unlock AI-driven supply chain automation.","chatgpt-operation-subtitle--plural":"Integrate the powerful CJ MCP service into your ChatGPT environment in just six simple steps and unlock AI-driven supply chain automation.","claude-capability-3-title":"Logistics Tracking","claude-capability-3-title--plural":"Logistics Tracking","chatgpt-capability-2-title":"Order Management","claude-operation-step-4-label":"Name it and set the MCP Server URL","claude-operation-step-4-label--plural":"Name it and set the MCP Server URL","claude-cta-doc-button":"View Documentation","claude-cta-doc-button--plural":"View Documentation","claude-faq-2-question":"Which AI models are supported?","claude-faq-2-question--plural":"Which AI models are supported?","claude-operation-step-1-label":"Copy your CJ API Key","claude-operation-step-1-label--plural":"Copy your CJ API Key","chatgpt-hero-title-highlight":"Right from Your AI Chat","chatgpt-hero-title-highlight--plural":"Right from Your AI Chat","claude-capability-6-title":"Smart Recommendations","claude-capability-6-title--plural":"Smart Recommendations","claude-faq-2-answer":"We currently officially support Claude, ChatGPT, and any environment compatible with the Model Context Protocol (MCP) standard.","claude-faq-2-answer--plural":"We currently officially support Claude, ChatGPT, and any environment compatible with the Model Context Protocol (MCP) standard.","chatgpt-prompt-2":"What colors and sizes are available for product CJYD2774438?","chatgpt-prompt-2--plural":"What colors and sizes are available for product CJYD2774438?","chatgpt-prompt-3":"What warehouses does CJ have globally? Please list all locations","chatgpt-prompt-3--plural":"What warehouses does CJ have globally? Please list all locations","chatgpt-prompt-1":"Search for \\"phone case\\" and show the first 20 results","chatgpt-prompt-1--plural":"Search for \\"phone case\\" and show the first 20 results","chatgpt-prompt-6":"Which of my orders are still waiting for payment?","chatgpt-prompt-6--plural":"Which of my orders are still waiting for payment?","chatgpt-prompt-7":"How much balance do I currently have in my CJ account?","chatgpt-prompt-7--plural":"How much balance do I currently have in my CJ account?","chatgpt-prompt-4":"Calculate the shipping cost for sending 2 units of variant CJYD277443801AZ from China to the US","chatgpt-prompt-4--plural":"Calculate the shipping cost for sending 2 units of variant CJYD277443801AZ from China to the US","chatgpt-hero-user-message":"Can you find me top-rated wireless headphones for under $30 on CJdropshipping?","chatgpt-hero-user-message--plural":"Can you find me top-rated wireless headphones for under $30 on CJdropshipping?","chatgpt-prompt-5":"Open my shopping cart page so I can review the items in it","chatgpt-prompt-5--plural":"Open my shopping cart page so I can review the items in it","chatgpt-prompt-8":"Show me the product connection mappings between CJ and my Shopify store","chatgpt-prompt-8--plural":"Show me the product connection mappings between CJ and my Shopify store","chatgpt-prompt-9":"Check my current API call rate limit status","chatgpt-prompt-9--plural":"Check my current API call rate limit status","claude-operation-step-1-desc":"Log in to your CJ account and open the <a href=\\"/my.html#/authorize/API\\">API</a>
31657 page. Copy your existing API Key & MCP Token, or click <strong>Add API</strong> to create one.","claude-operation-step-1-desc--plural":"Log in to your CJ account and open the <a href=\\"/my.html#/authorize/API\\">API</a> page. Copy your existing API Key & MCP Token, or click <strong>Add API</strong> to create one.","claude-faq-3-question":"How secure is my business data?","claude-faq-3-question--plural":"How secure is my business data?","chatgpt-prompts-copied":"Copied!","chatgpt-prompts-copied--plural":"Copied!","claude-operation-step-1-title":"Get Your API Key","claude-operation-step-1-title--plural":"Get Your API Key","chatgpt-capabilities-subtitle":"Ditch the complex dashboards. Speak to your data and let the AI handle the heavy lifting of running your store.","chatgpt-capabilities-subtitle--plural":"Ditch the complex dashboards. Speak to your data and let the AI handle the heavy lifting of running your store.","claude-capability-3-desc":"Real-time shipping updates and route predictions. Just ask \\"Where is order #1234?\\" and get an instant map link.","claude-capability-3-desc--plural":"Real-time shipping updates and route predictions. Just ask \\"Where is order #1234?\\" and get an instant map link.","chatgpt-prompts-subtitle":"Click any prompt to copy it, then paste it into ChatGPT to call the CJ MCP server.","chatgpt-prompts-subtitle--plural":"Click any prompt to copy it, then paste it into ChatGPT to call the CJ MCP server.","claude-cta-subtitle":"Join thousands of smart dropshippers who are already scaling their stores with AI-driven operations.","claude-cta-subtitle--plural":"Join thousands of smart dropshippers who are already scaling their stores with AI-driven operations.","claude-capabilities-subtitle":"Ditch the complex dashboards. Speak to your data and let the AI handle the heavy lifting of running your store.","claude-capabilities-subtitle--plural":"Ditch the complex dashboards. Speak to your data and let the AI handle the heavy lifting of running your store.","claude-operation-step-3-desc":"Go to <strong>Connectors</strong>, click the <strong>+</strong> button, then choose <strong>Add custom connector</strong>.","claude-operation-step-3-desc--plural":"Go to <strong>Connectors</strong>, click the <strong>+</strong> button, then choose <strong>Add custom connector</strong>.","claude-operation-step-5-alt":"Claude conversation where it requests permission to use the CJMCP connector with an Always allow option.","claude-operation-step-5-alt--plural":"Claude conversation where it requests permission to use the CJMCP connector with an Always allow option.","claude-operation-subtitle":"Connect the CJ MCP server to Claude\'s web app in just six simple steps and unlock AI-driven supply chain automation.","claude-operation-subtitle--plural":"Connect the CJ MCP server to Claude\'s web app in just six simple steps and unlock AI-driven supply chain automation.","claude-capability-2-desc":"Check order status, update details, and sync transactions between your store and CJ without leaving the chat.","claude-capability-2-desc--plural":"Check order status, update details, and sync transactions between your store and CJ without leaving the chat.","claude-operation-step-5-title":"Start Using in Chat","claude-operation-step-5-title--plural":"Start Using in Chat","chatgpt-hero-title":"Manage Your Dropshipping Business, ","chatgpt-hero-title--plural":"Manage Your Dropshipping Business, ","claude-faq-3-answer":"Security is our top priority. The MCP server uses encrypted tokens for authentication, and we never store your customer data or store credentials on the AI\'s servers—only the data required for the specific query is processed.","claude-faq-3-answer--plural":"Security is our top priority. The MCP server uses encrypted tokens for authentication, and we never store your customer data or store credentials on the AI\'s servers—only the data required for the specific query is processed.","claude-capability-1-title":"Product Search","claude-capability-1-title--plural":"Product Search","chatgpt-capability-6-title":"Smart Recommendations","chatgpt-capability-6-title--plural":"Smart Recommendations","chatgpt-hero-preview-title":"ChatGPT + CJ MCP Server","chatgpt-hero-preview-title--plural":"ChatGPT + CJ MCP Server","claude-operation-step-3-alt":"Claude Connectors panel with the + menu open and Add custom connector highlighted.","claude-operation-step-3-alt--plural":"Claude Connectors panel with the + menu open and Add custom connector highlighted.","chatgpt-hero-product-2-name":"Wireless In-ear Noise-reduction Bluetooth-compatible Headset","chatgpt-hero-product-2-name--plural":"Wireless In-ear Noise-reduction Bluetooth-compatible Headset","chatgpt-capability-5-desc":"Ask business strategy questions like \\"What are the trending niches for Q4?\\" and get data-backed answers.","chatgpt-capability-5-desc--plural":"Ask business strategy questions like \\"What are the trending niches for Q4?\\" and get data-backed answers.","chatgpt-capabilities-title":"Intelligent Commerce ","chatgpt-capabilities-title--plural":"Intelligent Commerce ","chatgpt-capability-2-desc":"Check order status, update details, and sync transactions between your store and CJ without leaving the chat.","chatgpt-capability-2-desc--plural":"Check order status, update details, and sync transactions between your store and CJ without leaving the chat.","claude-operation-step-5-label":"Chat to call CJ MCP","claude-operation-step-5-label--plural":"Chat to call CJ MCP","chatgpt-operation-step-6-desc":"Once configured, simply type commands like \\"find the latest trending products\\" in the chat. The AI will automatically call the CJ MCP server and return structured data.","chatgpt-operation-step-6-desc--plural":"Once configured, simply type commands like \\"find the latest trending products\\" in the chat. The AI will automatically call the CJ MCP server and return structured data.","chatgpt-operation-step-6-title":"Start Using in Chat","chatgpt-operation-step-6-title--plural":"Start Using in Chat","codex-operation-step-6-label":"Start calling CJ MCP tools","codex-operation-step-6-label--plural":"Start calling CJ MCP tools","chatgpt-operation-step-3-label":"View active integrations","chatgpt-operation-step-3-label--plural":"View active integrations","codex-faq-2-question":"Which AI models are supported?","codex-faq-2-question--plural":"Which AI models are supported?","chatgpt-operation-step-3-title":"Manage Enabled Apps","chatgpt-operation-step-3-title--plural":"Manage Enabled Apps","codex-operation-step-6-title":"CJMCP is Enabled","codex-operation-step-6-title--plural":"CJMCP is Enabled","chatgpt-operation-step-6-label":"Chat to call CJ MCP","chatgpt-operation-step-6-label--plural":"Chat to call CJ MCP","codex-prompts-subtitle":"Click any prompt to copy it, then paste it into Codex to call the CJ MCP server.","codex-prompts-subtitle--plural":"Click any prompt to copy it, then paste it into Codex to call the CJ MCP server.","codex-operation-step-3-label":"Find the Codex config file","codex-operation-step-3-label--plural":"Find the Codex config file","chatgpt-operation-step-3-alt":"The Connected Apps / MCP Servers management list in ChatGPT displaying active external integrations and their status.","chatgpt-operation-step-3-alt--plural":"The Connected Apps / MCP Servers management list in ChatGPT displaying active external integrations and their status.","codex-operation-title":"Deployment Process","codex-operation-title--plural":"Deployment Process","codex-operation-subtitle":"Wire the CJ MCP server into Codex with a few local configuration steps and unlock AI-driven supply chain automation.","codex-operation-subtitle--plural":"Wire the CJ MCP server into Codex with a few local configuration steps and unlock AI-driven supply chain automation.","chatgpt-faq-3-question":"How secure is my business data?","chatgpt-faq-3-question--plural":"How secure is my business data?","codex-faq-1-answer":"Yes, the basic MCP server connection is free for all registered CJdropshipping users. Premium features like advanced analytics and higher API rate limits may require a professional tier subscription.","codex-faq-1-answer--plural":"Yes, the basic MCP server connection is free for all registered CJdropshipping users. Premium features like advanced analytics and higher API rate limits may require a professional tier subscription.","codex-faq-2-answer":"We currently officially support ChatGPT, Claude, and any environment c
31657ompatible with the Model Context Protocol (MCP) standard.","codex-faq-2-answer--plural":"We currently officially support ChatGPT, Claude, and any environment compatible with the Model Context Protocol (MCP) standard.","codex-faq-3-answer":"Security is our top priority. The MCP server uses encrypted tokens for authentication, and we never store your customer data or store credentials on the AI\'s servers—only the data required for the specific query is processed.","codex-faq-3-answer--plural":"Security is our top priority. The MCP server uses encrypted tokens for authentication, and we never store your customer data or store credentials on the AI\'s servers—only the data required for the specific query is processed.","codex-capabilities-title-highlight":"At Your Fingertips","codex-capabilities-title-highlight--plural":"At Your Fingertips","codex-capabilities-subtitle":"Ditch the complex dashboards. Speak to your data and let the AI handle the heavy lifting of running your store.","codex-capabilities-subtitle--plural":"Ditch the complex dashboards. Speak to your data and let the AI handle the heavy lifting of running your store.","codex-operation-step-5-alt":"Codex prompt box with the /mcp command \\"Show MCP server status\\" being entered.","codex-operation-step-5-alt--plural":"Codex prompt box with the /mcp command \\"Show MCP server status\\" being entered.","chatgpt-operation-step-4-desc":"Select \\"Add New Server\\" or \\"Create Application\\". The system will guide you through an intuitive configuration interface for mounting CJdropshipping\'s powerful feature modules. Refer to this path for the <a href=\\"https://developers.cjdropshipping.com/en/api/api2/mcp.html#_2-chatgpt-remote-http-mode\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\">server URL</a>","chatgpt-operation-step-4-desc--plural":"Select \\"Add New Server\\" or \\"Create Application\\". The system will guide you through an intuitive configuration interface for mounting CJdropshipping\'s powerful feature modules. Refer to this path for the <a href=\\"https://developers.cjdropshipping.com/en/api/api2/mcp.html#_2-chatgpt-remote-http-mode\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\">server URL</a>","codex-prompt-1":"Search for \\"phone case\\" and show the first 20 results","codex-prompt-1--plural":"Search for \\"phone case\\" and show the first 20 results","codex-prompt-2":"What colors and sizes are available for product CJYD2774438?","codex-prompt-2--plural":"What colors and sizes are available for product CJYD2774438?","codex-prompt-3":"What warehouses does CJ have globally? Please list all locations","codex-prompt-3--plural":"What warehouses does CJ have globally? Please list all locations","codex-prompt-4":"Calculate the shipping cost for sending 2 units of variant CJYD277443801AZ from China to the US","codex-prompt-4--plural":"Calculate the shipping cost for sending 2 units of variant CJYD277443801AZ from China to the US","codex-prompt-5":"Open my shopping cart page so I can review the items in it","codex-prompt-5--plural":"Open my shopping cart page so I can review the items in it","codex-prompt-6":"Which of my orders are still waiting for payment?","codex-prompt-6--plural":"Which of my orders are still waiting for payment?","codex-prompt-7":"How much balance do I currently have in my CJ account?","codex-prompt-7--plural":"How much balance do I currently have in my CJ account?","codex-prompt-8":"Show me the product connection mappings between CJ and my Shopify store","codex-prompt-8--plural":"Show me the product connection mappings between CJ and my Shopify store","codex-prompt-9":"Check my current API call rate limit status","codex-prompt-9--plural":"Check my current API call rate limit status","chatgpt-operation-step-5-alt":"Server configuration form in ChatGPT where the CJ-provided endpoint and API key are entered.","chatgpt-operation-step-5-alt--plural":"Server configuration form in ChatGPT where the CJ-provided endpoint and API key are entered.","codex-prompt-10":"Show me all the stores connected to my CJ account","codex-prompt-10--plural":"Show me all the stores connected to my CJ account","codex-capability-2-title":"Order Management","codex-capability-5-title":"AI Commerce Q&A","codex-capability-5-title--plural":"AI Commerce Q&A","chatgpt-operation-step-1-title":"Go to Settings","chatgpt-operation-step-1-title--plural":"Go to Settings","codex-hero-title":"Manage Your Dropshipping Business, ","codex-hero-title--plural":"Manage Your Dropshipping Business, ","codex-operation-step-4-title":"Configure the MCP Server","codex-operation-step-4-title--plural":"Configure the MCP Server","codex-operation-step-1-label":"git + Node.js 20+","codex-operation-step-1-label--plural":"git + Node.js 20+","codex-faq-3-question":"How secure is my business data?","codex-faq-3-question--plural":"How secure is my business data?","chatgpt-operation-step-5-title":"Select the app","chatgpt-operation-step-5-title--plural":"Select the app","chatgpt-faq-1-answer":"Yes, the basic MCP server connection is free for all registered CJdropshipping users. Premium features like advanced analytics and higher API rate limits may require a professional tier subscription.","chatgpt-faq-1-answer--plural":"Yes, the basic MCP server connection is free for all registered CJdropshipping users. Premium features like advanced analytics and higher API rate limits may require a professional tier subscription.","codex-hero-badge":"New MCP Server Integration","codex-hero-badge--plural":"New MCP Server Integration","codex-operation-step-3-desc":"Find the Codex <code>config.toml</code> for your OS, and note your absolute <code>node</code> path.","codex-operation-step-3-desc--plural":"Find the Codex <code>config.toml</code> for your OS, and note your absolute <code>node</code> path.","codex-hero-subtitle":"Connect CJdropshipping to Codex. Search products, sync orders, and track logistics through simple natural language.","codex-hero-subtitle--plural":"Connect CJdropshipping to Codex. Search products, sync orders, and track logistics through simple natural language.","codex-operation-step-6-desc":"In the MCP panel, <strong>CJMCP</strong> shows as <strong>Enabled</strong> — you can now call the CJ MCP tools right from your prompts.","codex-operation-step-6-desc--plural":"In the MCP panel, <strong>CJMCP</strong> shows as <strong>Enabled</strong> — you can now call the CJ MCP tools right from your prompts.","codex-operation-step-2-label":"git clone api-mcp","codex-operation-step-2-label--plural":"git clone api-mcp","chatgpt-operation-step-2-desc":"In the settings menu, navigate to \\"Beta Features\\" or \\"Developer Options\\" and enable MCP developer mode. This step allows ChatGPT to communicate with external supply chain data interfaces.","chatgpt-operation-step-2-desc--plural":"In the settings menu, navigate to \\"Beta Features\\" or \\"Developer Options\\" and enable MCP developer mode. This step allows ChatGPT to communicate with external supply chain data interfaces.","chatgpt-operation-step-2-alt":"ChatGPT settings menu showing the Beta Features / Developer Options panel where MCP developer mode is switched on.","chatgpt-operation-step-2-alt--plural":"ChatGPT settings menu showing the Beta Features / Developer Options panel where MCP developer mode is switched on.","codex-operation-step-3-title":"Locate config.toml","codex-operation-step-3-title--plural":"Locate config.toml","codex-capability-3-title":"Logistics Tracking","codex-capability-3-title--plural":"Logistics Tracking","chatgpt-faq-subtitle":"Find answers to common questions about our MCP server integration.","chatgpt-faq-subtitle--plural":"Find answers to common questions about our MCP server integration.","codex-faq-1-question":"Is the CJ MCP server free to use?","codex-faq-1-question--plural":"Is the CJ MCP server free to use?","chatgpt-cta-doc-button":"View Documentation","chatgpt-cta-doc-button--plural":"View Documentation","chatgpt-faq-2-question":"Which AI models are supported?","chatgpt-faq-2-question--plural":"Which AI models are supported?","codex-capability-6-desc":"Personalized product suggestions based on your store\'s sales history and global market trends.","codex-capability-6-desc--plural":"Personalized product suggestions based on your store\'s sales history and global market trends.","chatgpt-operation-step-5-desc":"Enter / and the app you just created will show up. Simply select the matching app.","chatgpt-operation-step-5-desc--plural":"Enter / and the app you just created will show up. Simply select the matching app.","chatgpt-operation-step-5-label":"Choose the app in the input box.","chatgpt-operation-step-5-label--plural":"Choose the app in the input box.","chatgpt-operation-step-4-alt":"ChatGPT configuration interface for adding a new server or creating an application to mount CJdropshipping features.","chatgpt-operation-step-4-alt--plural":"ChatGPT configuration interface for adding a new server or creating an application to mount CJdropshipping features.","codex-faq-subtitle":"Find answers to common questions about our MCP server integration.","codex-faq-subtitle--plural":"Find answers to common questions about our MCP server integration.","codex-capability-4-title":"Inventory Insights","codex-capability-4-title--plural":"Inventory Insights","codex-capability-3-desc":"Real-time shipping updates and route predictions. Just ask \\"Where is order #1234?\\" and get an instant map link.","codex-capability-3-desc--plural":"Real-time shipping updates and route predictions. Just ask \\"Where is order #1234?\\" and get an instant map link.","chatgpt-operation-step-2-title":"Enable Developer Mode","chatgpt-operation-step-2-title--plural":"Enable Developer Mode","codex-capability-1-title":"Product Search","codex-capability-1-title--plural":"Product Search","codex-operation-step-2-desc":"Clone the official CJ MCP server repository to your local machine.","codex-operation-step-2-desc--plural":"Clone the official CJ MCP server repository to your local machine.","codex-operation-step-6-alt":"Codex MCP panel listing CJMCP as Enabled among the configured MCP servers.","codex-operation-step-6-alt--plural":"Codex MCP panel listing CJMCP as Enabled among the configured MCP servers.","chatgpt-operation-step-4-label":"Add a new MCP server","chatgpt-operation-step-4-label--plural":"Add a new MCP server","chatgpt-operation-step-6-alt":"ChatGPT conversation where a natural language command triggers the CJ MCP server and returns structured product data.","chatgpt-operation-step-6-alt--plural":"ChatGPT conversation where a natural language command triggers the CJ MCP server and returns structured product data.","codex-faq-title":"Frequently Asked Questions","codex-faq-title--plural":"Frequently Asked Questions","chatgpt-operation-step-4-title":"Create New App","chatgpt-operation-step-4-title--plural":"Create New App","codex-operation-step-1-desc":"Make sure <strong>git</strong> and <strong>Node.js 20+</strong> are installed on your machine before configuring the MCP server.","codex-operation-step-1-desc--plural":"Make sure <strong>git</strong> and <strong>Node.js 20+</strong> are installed on your machine before configuring the MCP server.","codex-operation-step-4-label":"Add CJMCP to config.toml","codex-operation-step-4-label--plural":"Add CJMCP to config.toml","codex-hero-title-highlight":"Right from Your Codex Workflow","codex-hero-title-highlight--plural":"Right from Your Codex Workflow","chatgpt-operation-step-1-desc":"First, open your ChatGPT personal center and click the settings icon in the bottom-left corner. This is the starting point for configuring all advanced extensions and MCP servers.","chatgpt-operation-step-1-desc--plural":"First, open your ChatGPT personal center and click the settings icon in the bottom-left corner. This is the starting point for configuring all advanced extensions and MCP servers.","codex-capability-2-desc":"Check order status, update details, and sync transactions between your store and CJ without leaving the chat.","codex-capability-2-desc--plural":"Check order status, update details, and sync transactions between your store and CJ without leaving the chat.","codex-operation-step-2-title":"Clone the MCP Repo","codex-operation-step-2-title--plural":"Clone the MCP Repo","codex-operation-step-5-title":"Restart & Run /mcp","codex-operation-step-5-title--plural":"Restart & Run /mcp","codex-operation-step-4-desc":"Add the <strong>CJMCP</strong> server block to <code>config.toml</code>, replacing <code>/PATH/TO/...</code> with your real node and repo paths.","codex-operation-step-4-desc--plural":"Add the <strong>CJMCP</strong> server block to <code>config.toml</code>, replacing <code>/PATH/TO/...</code> with your real node and repo paths.","chatgpt-operation-step-3-desc":"Open the \\"Connected Apps\\" or \\"MCP Servers\\" management list to view currently active external integrations. Here you can monitor the running status of your servers at any time.","chatgpt-operation-step-3-desc--plural":"Open the \\"Connected Apps\\" or \\"MCP Servers\\" management list to view currently active external integrations. Here you can monitor the running status of your servers at any time.","codex-capability-6-title":"Smart Recommendations","codex-capability-6-title--plural":"Smart Recommendations","codex-prompts-copied":"Copied!","codex-prompts-copied--plural":"Copied!","codex-hero-cta-secondary":"View Documentation","codex-hero-cta-secondary--plural":"View Documentation","codex-prompts-title":"Recommended Prompts","codex-prompts-title--plural":"Recommended Prompts","codex-capability-5-desc":"Ask business strategy questions like \\"What are the trending niches for Q4?\\" and get data-backed answers.","codex-capability-5-desc--plural":"Ask business strategy questions like \\"What are the trending niches for Q4?\\" and get data-backed answers.","codex-prompts-copy":"Copy","codex-operation-step-5-desc":"Restart Codex, then type <code>/mcp</code> (Show MCP server status) in the prompt box to list your configured MCP servers.","codex-operation-step-5-desc--plural":"Restart Codex, then type <code>/mcp</code> (Show MCP server status) in the prompt box to list your configured MCP servers.","chatgpt-operation-step-1-label":"Open your ChatGPT settings","chatgpt-operation-step-1-label--plural":"Open your ChatGPT settings","codex-hero-cta-primary":"Start Using Now","codex-hero-cta-primary--
31657plural":"Start Using Now","codex-operation-step-5-label":"Show MCP server status","codex-operation-step-5-label--plural":"Show MCP server status","chatgpt-faq-2-answer":"We currently officially support ChatGPT, Claude, and any environment compatible with the Model Context Protocol (MCP) standard.","chatgpt-faq-2-answer--plural":"We currently officially support ChatGPT, Claude, and any environment compatible with the Model Context Protocol (MCP) standard.","chatgpt-faq-3-answer":"Security is our top priority. The MCP server uses encrypted tokens for authentication, and we never store your customer data or store credentials on the AI\'s servers—only the data required for the specific query is processed.","chatgpt-faq-3-answer--plural":"Security is our top priority. The MCP server uses encrypted tokens for authentication, and we never store your customer data or store credentials on the AI\'s servers—only the data required for the specific query is processed.","codex-operation-step-1-title":"Install Prerequisites","codex-operation-step-1-title--plural":"Install Prerequisites","chatgpt-faq-1-question":"Is the CJ MCP server free to use?","chatgpt-faq-1-question--plural":"Is the CJ MCP server free to use?","codex-capability-1-desc":"Instantly query millions of products from CJdropshipping\'s global catalog with natural language prompts.","codex-capability-1-desc--plural":"Instantly query millions of products from CJdropshipping\'s global catalog with natural language prompts.","codex-capability-4-desc":"Monitor stock levels across global warehouses and receive low-inventory alerts automatically through AI analysis.","codex-capability-4-desc--plural":"Monitor stock levels across global warehouses and receive low-inventory alerts automatically through AI analysis.","chatgpt-cta-subtitle":"Join thousands of smart dropshippers who are already scaling their stores with AI-driven operations.","chatgpt-cta-subtitle--plural":"Join thousands of smart dropshippers who are already scaling their stores with AI-driven operations.","chatgpt-operation-step-1-alt":"ChatGPT personal center with the settings icon highlighted in the bottom-left corner as the entry point for MCP configuration.","chatgpt-operation-step-1-alt--plural":"ChatGPT personal center with the settings icon highlighted in the bottom-left corner as the entry point for MCP configuration.","chatgpt-operation-step-2-label":"Turn on MCP developer mode","chatgpt-operation-step-2-label--plural":"Turn on MCP developer mode","codex-capabilities-title":"Intelligent Commerce ","codex-capabilities-title--plural":"Intelligent Commerce ","chatgpt-faq-title":"Frequently Asked Questions","chatgpt-faq-title--plural":"Frequently Asked Questions","chatgpt-cta-title":"Ready to Automate Your Business?","chatgpt-cta-title--plural":"Ready to Automate Your Business?","pod2-proc2-p":"Upload your logo, artwork, pattern, text, or personalized design requirements to create custom products for your audience.","pod2-proc2-p--plural":"Upload your logo, artwork, pattern, text, or personalized design requirements to create custom products for your audience.","pod2-aud5-p":"A strong fit for sellers who want to build a long-term personalized product brand with packaging, design, and fulfillment support.","pod2-aud5-p--plural":"A strong fit for sellers who want to build a long-term personalized product brand with packaging, design, and fulfillment support.","pod2-proc3-h3":"Connect Your Store","pod2-proc3-h3--plural":"Connect Your Store","pod2-aud6-h3":"Agencies and Teams","pod2-aud6-h3--plural":"Agencies and Teams","pod2-brand3-p":"Include personalized cards to build customer trust and repeat purchases.","pod2-brand3-p--plural":"Include personalized cards to build customer trust and repeat purchases.","pod2-test-sophia-role":"Illustration Brand Founder","pod2-test-sophia-role--plural":"Illustration Brand Founder","pod2-brand3-t":"Thank-You Cards","pod2-brand3-t--plural":"Thank-You Cards","pod2-proc-step":"Step","pod2-proc-step--plural":"Step","pod2-aud1-p":"Ideal for sellers who want to test product ideas with lower upfront costs and less inventory pressure.","pod2-aud1-p--plural":"Ideal for sellers who want to test product ideas with lower upfront costs and less inventory pressure.","pod2-test-ryan-text":"Their dedicated support team guided me through every step, from design upload to order tracking. Outstanding service!","pod2-test-ryan-text--plural":"Their dedicated support team guided me through every step, from design upload to order tracking. Outstanding service!","pod2-test-mia-role":"Fashion Dropshipper","pod2-test-mia-role--plural":"Fashion Dropshipper","pod2-proc-b2-t":"Automated Fulfillment","pod2-proc-b2-t--plural":"Automated Fulfillment","pod2-proc-b2-s":"Order processing, production, and tracking can be handled more efficiently.","pod2-proc-b2-s--plural":"Order processing, production, and tracking can be handled more efficiently.","pod2-test-lucas-role":"Global Ecommerce Seller","pod2-test-lucas-role--plural":"Global Ecommerce Seller","pod2-aud1-h3":"New Dropshipping Beginners","pod2-aud1-h3--plural":"New Dropshipping Beginners","pod2-srv4-p":"After orders are synced, {{name}} helps manage order processing, production, packaging, shipping, and tracking updates.","pod2-srv4-p--plural":"After orders are synced, {{name}} helps manage order processing, production, packaging, shipping, and tracking updates.","pod2-srv4-h3":"Automated Fulfillment","pod2-srv4-h3--plural":"Automated Fulfillment","pod2-aud2-p":"Perfect for store owners who want to add custom product lines, increase average order value, and create stronger brand differentiation.","pod2-aud2-p--
31657plural":"Perfect for store owners who want to add custom product lines, increase average order value, and create stronger brand differentiation.","pod2-proc1-p":"Select products that fit your store positioning, such as T-shirts, hoodies, mugs, phone cases, pet accessories, home decor, and more.","pod2-proc1-p--plural":"Select products that fit your store positioning, such as T-shirts, hoodies, mugs, phone cases, pet accessories, home decor, and more.","pod2-test-h2":"What Sellers Say About {{fullName}} POD","pod2-test-h2--plural":"What Sellers Say About {{fullName}} POD","pod2-brand6-t":"Branded Customer Experience","pod2-brand6-t--plural":"Branded Customer Experience","pod2-net-n4":"Tracking Updates","pod2-net-n4--plural":"Tracking Updates","pod2-proc5-p":"{{name}} produces the product based on the order requirements, then helps with quality checks, packaging, shipping, and tracking updates.","pod2-proc5-p--plural":"{{name}} produces the product based on the order requirements, then helps with quality checks, packaging, shipping, and tracking updates.","pod2-net-n3":"Fulfillment","pod2-aud6-p":"Useful for teams that need to test different custom products, client campaigns, ad creatives, and niche product angles quickly.","pod2-aud6-p--plural":"Useful for teams that need to test different custom products, client campaigns, ad creatives, and niche product angles quickly.","pod2-aud-desc":"{{name}} Print on Demand is built for sellers, creators, and brands that want to test custom products, build stronger customer experiences, and scale without heavy inventory pressure.","pod2-aud-desc--plural":"{{name}} Print on Demand is built for sellers, creators, and brands that want to test custom products, build stronger customer experiences, and scale without heavy inventory pressure.","pod2-aud4-h3":"Influencers and Creators","pod2-aud4-h3--plural":"Influencers and Creators","pod2-brand-desc":"A strong POD store is not only about selling custom products. It is also about creating a memorable customer experience. With {{fullName}}, sellers can explore custom packaging, branded inserts, and private label solutions to make their store look more professional and trustworthy.","pod2-brand-desc--plural":"A strong POD store is not only about selling custom products. It is also about creating a memorable customer experience. With {{fullName}}, sellers can explore custom packaging, branded inserts, and private label solutions to make their store look more professional and trustworthy.","pod2-net-n2":"Order Syncing","pod2-net-n2--plural":"Order Syncing","pod2-brand2-p":"Create a more polished unboxing experience with branded packaging options.","pod2-brand2-p--plural":"Create a more polished unboxing experience with branded packaging options.","pod2-net-n1":"Product Listing","pod2-net-n1--plural":"Product Listing","pod2-brand2-t":"Custom Packaging","pod2-brand6-p":"Turn a simple order into a professional brand interaction from product to delivery.","pod2-brand6-p--plural":"Turn a simple order into a professional brand interaction from product to delivery.","pod2-test-desc":"From smoother fulfillment to better branding and global delivery, sellers use {{fullName}} POD to turn creative ideas into scalable ecommerce businesses.","pod2-test-desc--plural":"From smoother fulfillment to better branding and global delivery, sellers use {{fullName}} POD to turn creative ideas into scalable ecommerce businesses.","pod2-brand-c1-t":"Custom Logo","pod2-brand-c1-t--plural":"Custom Logo","pod2-map-h2":"Print on Demand: Global Fulfillment = Limitless Target Markets","pod2-map-h2--plural":"Print on Demand: Global Fulfillment = Limitless Target Markets","pod2-brand-c1-s":"Brand recognition","pod2-brand-c1-s--plural":"Brand recognition","pod2-test-mia-text":"Zero inventory risk allowed me to experiment freely with new collections. Sales have never looked better.","pod2-test-mia-text--plural":"Zero inventory risk allowed me to experiment freely with new collections. Sales have never looked better.","pod2-test-emily-role":"Art Shop Owner","pod2-test-emily-role--plural":"Art Shop Owner","pod2-srv5-h3":"Global Shipping","pod2-srv5-h3--plural":"Global Shipping","pod2-proc4-h3":"Customer Places an Order","pod2-proc4-h3--plural":"Customer Places an Order","pod2-map-s3n":"1,300+","pod2-map-s3n--plural":"1,300+","pod2-aud-h2":"Who Is {{name}} Print on Demand Best For?","pod2-aud-h2--plural":"Who Is {{name}} Print on Demand Best For?","pod2-proc-h2":"How {{fullName}} Print on Demand Works","pod2-proc-h2--plural":"How {{fullName}} Print on Demand Works","pod2-brand-h2":"Build a Real Brand with Custom Packaging","pod2-brand-h2--plural":"Build a Real Brand with Custom Packaging","pod2-aud-feat-h3":"From Product Testing to Brand Scaling","pod2-aud-feat-h3--plural":"From Product Testing to Brand Scaling","pod2-proc-b1-s":"Products are made after customers place orders.","pod2-proc-b1-s--plural":"Products are made after customers place orders.","pod2-proc-b1-t":"No Inventory Required","pod2-proc-b1-t--plural":"No Inventory Required","pod2-srv5-p":"{{name}} supports global fulfillment, helping sellers serve customers across different c
31657ountries and regions.","pod2-srv5-p--plural":"{{name}} supports global fulfillment, helping sellers serve customers across different countries and regions.","pod2-proc1-h3":"Choose a POD Product","pod2-proc1-h3--plural":"Choose a POD Product","pod2-net-h2":"Connect Your Store and Automate POD Fulfillment","pod2-net-h2--plural":"Connect Your Store and Automate POD Fulfillment","pod2-map-s2n":"200+","pod2-map-s2n--plural":"200+","pod2-test-emily-text":"{{fullName}} POD transformed my small art shop. Orders flow smoothly and quality always wows my customers.","pod2-test-emily-text--plural":"{{fullName}} POD transformed my small art shop. Orders flow smoothly and quality always wows my customers.","pod2-aud3-p":"Suitable for testing short-video-driven products, interest-based niches, seasonal gifts, and fast-moving product ideas.","pod2-aud3-p--plural":"Suitable for testing short-video-driven products, interest-based niches, seasonal gifts, and fast-moving product ideas.","pod2-brand5-t":"Private Label Support","pod2-brand5-t--plural":"Private Label Support","pod2-proc4-p":"Once a customer places an order in your store, the order can be synced to {{name}} for the next production and fulfillment step.","pod2-proc4-p--plural":"Once a customer places an order in your store, the order can be synced to {{name}} for the next production and fulfillment step.","pod2-map-desc":"Reach more customers with {{fullName}}\'s global fulfillment support.","pod2-map-desc--plural":"Reach more customers with {{fullName}}\'s global fulfillment support.","pod2-brand1-p":"Add your logo to selected products, packaging, or brand materials.","pod2-brand1-p--plural":"Add your logo to selected products, packaging, or brand materials.","pod2-brand1-t":"Custom Logo","pod2-brand1-t--plural":"Custom Logo","pod2-brand5-p":"Explore private label options for sellers who want stronger brand ownership.","pod2-brand5-p--plural":"Explore private label options for sellers who want stronger brand ownership.","pod2-brand-c2-t":"Thank-You Cards","pod2-brand-c2-t--plural":"Thank-You Cards","pod2-brand-label":"Branding Support","pod2-brand-label--plural":"Branding Support","pod2-brand-c2-s":"Customer loyalty","pod2-brand-c2-s--plural":"Customer loyalty","pod2-aud2-h3":"Shopify Store Owners","pod2-aud2-h3--plural":"Shopify Store Owners","pod2-proc-label":"POD Workflow","pod2-proc-label--plural":"POD Workflow","pod2-map-s3l":"Unique products","pod2-map-s3l--plural":"Unique products","pod2-srv3-h3":"Quality Control","pod2-srv3-h3--plural":"Quality Control","pod2-map-s1l":"Total orders completed","pod2-map-s1l--plural":"Total orders completed","pod2-aud-feat-span":"{{name}} POD Fit","pod2-aud-feat-span--plural":"{{name}} POD Fit","pod2-proc2-h3":"Upload Your Design","pod2-proc2-h3--plural":"Upload Your Design","pod2-map-s1n":"100M+","pod2-map-s1n--plural":"100M+","pod2-aud5-h3":"DTC Brand Builders","pod2-aud5-h3--plural":"DTC Brand Builders","pod2-brand-c3-t":"Private Label","pod2-brand-c3-t--plural":"Private Label","pod2-test-daniel-text":"Their seamless integration saved me hours every week. I can\'t imagine running my store without {{fullName}}.","pod2-test-daniel-text--plural":"Their seamless integration saved me hours every week. I can\'t imagine running my store without {{fullName}}.","pod2-net-desc":"{{fullName}} integrates with major ecommerce platforms, helping sellers automate product listing, order syncing, fulfillment, and tracking updates.","pod2-net-desc--plural":"{{fullName}} integrates with major ecommerce platforms, helping sellers automate product listing, order syncing, fulfillment, and tracking updates.","pod2-aud-label":"Best For","pod2-aud-label--plural":"Best For","pod2-srv6-p":"Combine POD products with custom packaging, thank-you cards, labels, and brand inserts to create a more professional customer experience.","pod2-srv6-p--plural":"Combine POD products with custom packaging, thank-you cards, labels, and brand inserts to create a more professional customer experience.","pod2-map-s2l":"Countries and territories","pod2-map-s2l--plural":"Countries and territories","pod2-test-sophia-text":"The print accuracy and vibrant colors consistently exceed expectations. My designs truly come to life!","pod2-test-sophia-text--plural":"The print accuracy and vibrant colors consistently exceed expectations. My designs truly come to life!","pod2-proc5-h3":"{{name}} Produces and Ships","pod2-proc5-h3--plural":"{{name}} Produces and Ships","pod2-brand-ov-t":"Branded Packaging","pod2-brand-ov-t--plural":"Branded Packaging","pod2-aud4-p":"Great for launching fan merchandise, personal brand products, creator collections, and community-based items.","pod2-aud4-p--plural":"Great for launching fan merchandise, personal brand products, creator collections, and community-based items.","pod2-test-ryan-role":"Store Operations Manager","pod2-test-ryan-role--plural":"Store Operations Manager","pod2-brand-ov-s":"Make your POD orders look more professional from the first impression.","pod2-brand-ov-s--plural":"Make your POD orders look more professional from the first impression.","pod2-proc3-p":"Connect your Shopify, WooCommerce, TikTok Shop, or other supported ecommerce store to {{name}} for smoother order syncing.","pod2-proc3-p--plural":"Connect your Shopify, WooCommerce, TikTok Shop, or other supported ecommerce store to {{name}} for smoother order syncing.","pod2-brand4-p":"Use small branded details to make every package feel more memorable.","pod2-brand4-p--
31657plural":"Use small branded details to make every package feel more memorable.","pod2-proc-desc":"From choosing a product to production and shipping, {{fullName}} helps you simplify the full Print on Demand workflow.","pod2-proc-desc--plural":"From choosing a product to production and shipping, {{fullName}} helps you simplify the full Print on Demand workflow.","pod2-brand4-t":"Stickers & Inserts","pod2-brand4-t--plural":"Stickers & Inserts","pod2-brand-c3-s":"Professional identity","pod2-brand-c3-s--plural":"Professional identity","pod2-aud-feat-p":"Whether you are starting small or building a long-term custom product brand, {{name}} helps connect product sourcing, production, fulfillment, shipping, and branding support in one workflow.","pod2-aud-feat-p--plural":"Whether you are starting small or building a long-term custom product brand, {{name}} helps connect product sourcing, production, fulfillment, shipping, and branding support in one workflow.","pod2-aud3-h3":"TikTok Shop Sellers","pod2-aud3-h3--plural":"TikTok Shop Sellers","pod2-test-label":"Seller Reviews","pod2-test-label--plural":"Seller Reviews","pod2-test-lucas-text":"Global fulfillment is a game-changer. My European and Australian customers rave about the fast delivery.","pod2-test-lucas-text--plural":"Global fulfillment is a game-changer. My European and Australian customers rave about the fast delivery.","pod2-brand-c4-t":"Inserts","pod2-brand-c4-t--plural":"Inserts","pod2-brand-c4-s":"Better unboxing","pod2-brand-c4-s--plural":"Better unboxing","pod2-proc-b3-s":"Combine POD products with packaging, labels, and custom branding options.","pod2-proc-b3-s--plural":"Combine POD products with packaging, labels, and custom branding options.","pod2-proc-b3-t":"Brand-Friendly Workflow","pod2-proc-b3-t--plural":"Brand-Friendly Workflow","pod2-srv3-p":"{{name}} can help inspect products before shipment to reduce quality issues and improve the customer experience.","pod2-srv3-p--plural":"{{name}} can help inspect products before shipment to reduce quality issues and improve the customer experience.","pod2-srv6-h3":"Branding Support","pod2-srv6-h3--plural":"Branding Support","pod2-test-daniel-role":"Shopify Store Owner","pod2-test-daniel-role--plural":"Shopify Store Owner","pod2-cat-label":"POD Product Categories","pod2-cat-label--plural":"POD Product Categories","pod2-ben3-em":"Less Competition","pod2-ben3-em--plural":"Less Competition","pod2-diff3-h3":"More Diverse Product Choices","pod2-diff3-h3--plural":"More Diverse Product Choices","pod2-foot2s":"After order","pod2-foot2s--plural":"After order","pod2-foot2t":"Produce","pod2-foot2t--plural":"Produce","pod2-slide4-m2t":"Personalized","pod2-slide4-m2t--plural":"Personalized","pod2-intro-tab2-title":"Unboxing 8 Hot Selling POD Products / How to Make POD Products on {{name}} Dropshipping","pod2-intro-tab2-title--plural":"Unboxing 8 Hot Selling POD Products / How to Make POD Products on {{name}} Dropshipping","pod2-slide4-m2s":"Made for gifting","pod2-slide4-m2s--plural":"Made for gifting","pod2-srv-desc":"{{fullName}} helps sellers turn custom ideas into sellable products with a complete Print on Demand workflow, covering product sourcing, custom production, quality control, fulfillment, global shipping, and branding support.","pod2-srv-desc--plural":"{{fullName}} helps sellers turn custom ideas into sellable products with a complete Print on Demand workflow, covering product sourcing, custom production, quality control, fulfillment, global shipping, and branding support.","pod2-srv1-h3":"Product Sourcing","pod2-diff-label":"Why {{fullName}}","pod2-diff-label--plural":"Why {{fullName}}","pod2-ben5-h3":"Flexible Product Testing","pod2-ben5-h3--plural":"Flexible Product Testing","pod2-diff5-p":"In addition to platform tools and product resources, {{fullName}} can provide more direct support for sellers who need a smoother POD experience. This makes it easier to solve issues faster, communicate requirements more clearly, and move from product ideas to actual fulfillment with more confidence.","pod2-diff5-p--plural":"In addition to platform tools and product resources, {{fullName}} can provide more direct support for sellers who need a smoother POD experience. This makes it easier to solve issues faster, communicate requirements more clearly, and move from product ideas to actual fulfillment with more confidence.","pod2-srv-float3":"No Upfront Costs","pod2-srv-float3--plural":"No Upfront Costs","pod2-intro-label":"Print on Demand Basics","pod2-intro-label--plural":"Print on Demand Basics","pod2-diff1-p":"{{fullName}} helps sellers improve efficiency across the entire POD workflow. From product selection and design upload to order syncing, production, packing, shipping, and tracking updates, the process is more connected and easier to manage.","pod2-diff1-p--plural":"{{fullName}} helps sellers improve efficiency across the entire POD workflow. From product selection and design upload to order syncing, production, packing, shipping, and tracking updates, the process is more connected and easier to manage.","pod2-ben3-p":"Compared with generic trending products, POD products are harder to compare directly. Unique designs help your store stand out from similar sellers.","pod2-ben3-p--plural":"Compared with generic trending products, POD products are harder to compare directly. Unique designs help your store stand out from similar sellers.","pod2-foot3t":"Fulfill","pod2-foot3t--plural":"Fulfill","pod2-ben-desc":"Print on Demand helps ecommerce sellers reduce inventory pressure, test creative ideas faster, and build more unique brands through personalized products.","pod2-ben-desc--plural":"Print on Demand helps ecommerce sellers reduce inventory pressure, test creative ideas faster, and build more unique brands through personalized products.","pod2-foot3s":"{{name}}
31657 handles shipping","pod2-foot3s--plural":"{{name}} handles shipping","pod2-intro-p2":"For ecommerce sellers, POD is especially useful for building niche brands, testing creative ideas, and selling personalized products with higher perceived value.","pod2-intro-p2--plural":"For ecommerce sellers, POD is especially useful for building niche brands, testing creative ideas, and selling personalized products with higher perceived value.","pod2-srv-float1":"Global Print Network","pod2-srv-float1--plural":"Global Print Network","pod2-srv-float2":"Fast Shipping Times","pod2-srv-float2--plural":"Fast Shipping Times","pod2-intro-p1":"Print on Demand is a flexible business model that allows sellers to offer customized products without holding inventory. Products are produced only after customers place orders, which helps reduce upfront costs and inventory risk.","pod2-intro-p1--plural":"Print on Demand is a flexible business model that allows sellers to offer customized products without holding inventory. Products are produced only after customers place orders, which helps reduce upfront costs and inventory risk.","pod2-thumb1":"Apparel","pod2-thumb1--plural":"Apparel","pod2-thumb2":"Mugs","pod2-thumb2--plural":"Mugs","pod2-intro-h2":"What Is Print on Demand?","pod2-intro-h2--plural":"What Is Print on Demand?","pod2-intro-h3":"Your Idea, Your Brand, Our Fulfillment","pod2-intro-h3--plural":"Your Idea, Your Brand, Our Fulfillment","pod2-intro-tab1-note":"Watch how sellers can use {{fullName}}\'s Print on Demand service to choose products, add designs, and start selling custom items more efficiently.","pod2-intro-tab1-note--plural":"Watch how sellers can use {{fullName}}\'s Print on Demand service to choose products, add designs, and start selling custom items more efficiently.","pod2-cat-desc":"Browse POD-ready product ideas across popular ecommerce categories. Choose a niche, test designs, and build custom product collections with {{fullName}}.","pod2-cat-desc--plural":"Browse POD-ready product ideas across popular ecommerce categories. Choose a niche, test designs, and build custom product collections with {{fullName}}.","pod2-thumb5":"Decor","pod2-thumb5--plural":"Decor","pod2-thumb3":"Cases","pod2-thumb3--plural":"Cases","pod2-ben1-em":"Lower Risk","pod2-ben1-em--plural":"Lower Risk","pod2-thumb4":"Jewelry","pod2-thumb4--plural":"Jewelry","pod2-ben6-h3":"Easier Seasonal Campaigns","pod2-ben6-h3--plural":"Easier Seasonal Campaigns","pod2-diff4-li3":"Combine POD flexibility with broader fulfillment strength","pod2-diff4-li3--plural":"Combine POD flexibility with broader fulfillment strength","pod2-diff-h2":"What Makes {{fullName}} Different?","pod2-diff-h2--plural":"What Makes {{fullName}} Different?","pod2-diff4-li2":"Improve delivery experience for growing stores","pod2-diff4-li2--plural":"Improve delivery experience for growing stores","pod2-diff4-li1":"Support sellers targeting international markets","pod2-diff4-li1--plural":"Support sellers targeting international markets","pod2-diff5-h3":"One-on-One Dedicated Service","pod2-diff5-h3--plural":"One-on-One Dedicated Service","pod2-intro-note-t":"Why sellers like POD","pod2-intro-note-t--plural":"Why sellers like POD","pod2-intro-note-s":"It is a low-risk way to test product ideas, launch custom collections, and build a more branded ecommerce business without the pressure of bulk inventory.","pod2-intro-note-s--plural":"It is a low-risk way to test product ideas, launch custom collections, and build a more branded ecommerce business without the pressure of bulk inventory.","pod2-ben-h2":"Why Print on Demand Is a Smart Choice for Ecommerce Sellers","pod2-ben-h2--plural":"Why Print on Demand Is a Smart Choice for Ecommerce Sellers","pod2-slide5-span":"Lifestyle Collections","pod2-slide5-span--plural":"Lifestyle Collections","pod2-srv-h2":"{{fullName}} Print on Demand Services","pod2-srv-h2--plural":"{{fullName}} Print on Demand Services","pod2-diff2-li1":"Support for custom product sourcing requests","pod2-diff2-li1--plural":"Support for custom product sourcing requests","pod2-ben3-h3":"Less Price Competition","pod2-ben3-h3--plural":"Less Price Competition","pod2-ben-label":"POD Advantages","pod2-ben-label--plural":"POD Advantages","pod2-ben2-p":"Personalized products often carry stronger emotional value. Customers are more willing to pay for custom names, designs, patterns, and meaningful gifts.","pod2-ben2-p--plural":"Personalized products often carry stronger emotional value. Customers are more willing to pay for custom names, designs, patterns, and meaningful gifts.","pod2-diff2-li2":"Better flexibility for production coordination","pod2-diff2-li2--plural":"Better flexibility for production coordination","pod2-diff2-p":"{{fullName}} is not limited to a simple design-upload model. With broader sourcing capability and factory-related supply chain resources, sellers can explore more flexible product solutions, customization options, and production support.","pod2-diff2-p--plural":"{{fullName}} is not limited to a simple design-upload model. With broader sourcing capability and factory-related supply chain resources, sellers can explore more flexible product solutions, customization options, and production support.","pod2-diff2-li3":"Suitable for sellers who want more than standard POD items","pod2-diff2-li3--plural":"Suitable for sellers who want more than standard POD items","pod2-ben6-p":"POD is perfect for holidays, events, and limited-time campaigns. Sellers can launch themed products for Valentine\'s Day, Mother\'s Day, Halloween, Christmas, and more.","pod2-ben6-p--plural":"POD is perfect for holidays, events, and limited-time campaigns. Sellers can launch themed products for Valentine\'s Day, Mother\'s Day, Halloween, Christmas, and more.","pod2-ben6-em":"Seasonal Campaigns","pod2-ben6-em--plural":"Seasonal Campaigns","pod2-intro-tab2-tag":"Product Ideas","pod2-intro-tab2-tag--plural":"Product Ideas","pod2-srv1-p":"{{name}} can help sellers find products suitable for customization, including apparel, accessories, home decor, pet products, gifts, and more.","pod2-srv1-p--plural":"{{name}} can help sellers find products suitable for customization, including apparel, accessories, home decor, pet products, gifts, and more.","pod2-srv2-h3":"Custom Production","pod2-srv2-h3--plural":"Custom Production","pod2-ben4-h3":"Better for Brand Building","pod2-ben4-h3--plural":"Better for Brand Building","pod2-diff-desc":"{{fullName}} offers more than a basic Print on Demand solution. From operational efficiency and factory-backed supply advantages to diverse product options, global fulfillment support, and dedicated one-on-one service, {{name}} helps sellers build a stronger and more scalable POD business.","pod2-diff-desc--plural":"{{fullName}} offers more than a basic Print on Demand solution. From operational efficiency and factory-backed supply advantages to diverse product options, global fulfillment support, and dedicated one-on-one service, {{name}} helps sellers build a stronger and more scalable POD business.","pod2-slide5-desc":"Build collections around family memories, pets, quotes, lifestyle themes, room styles, and seasonal campaigns.","pod2-slide5-desc--plural":"Build collections around family memories, pets, quotes, lifestyle themes, room styles, and seasonal campaigns.","pod2-ben1-h3":"Lower Startup Risk","pod2-ben1-h3--plural":"Lower Startup Risk","pod2-slide5-title":"Wall Art, Pillows & Home Decor","pod2-slide5-title--plural":"Wall Art, Pillows & Home Decor","pod2-intro-step1":"Choose Products","pod2-intro-step1--plural":"Choose Products","pod2-diff3-p":"{{name}} supports a wide range of customizable products for different niches and selling strategies. Sellers can test more product ideas, reach more audiences, and avoid being restricted to a narrow POD catalog.","pod2-diff3-p--plural":"{{name}} supports a wide range of customizable products for different niches and selling strategies. Sellers can test more product ideas, reach more audiences, and avoid being restricted to a narrow POD catalog.","pod2-diff2-h3":"Factory Advantages and Stronger Supply Support","pod2-diff2-h3--plural":"Factory Advantages and Stronger Supply Support","pod2-intro-step2":"Upload De
31657sign","pod2-intro-step2--plural":"Upload Design","pod2-ben1-p":"You do not need to buy bulk inventory in advance. POD makes it easier for beginners to test products and markets without heavy stock pressure.","pod2-ben1-p--plural":"You do not need to buy bulk inventory in advance. POD makes it easier for beginners to test products and markets without heavy stock pressure.","pod2-intro-step3":"Customer Orders","pod2-intro-step3--plural":"Customer Orders","pod2-srv-label":"{{name}} POD Capabilities","pod2-srv-label--plural":"{{name}} POD Capabilities","pod2-intro-step4":"{{name}} Produces & Ships","pod2-intro-step4--plural":"{{name}} Produces & Ships","pod2-ben5-p":"Sellers can quickly test different designs, styles, niches, and seasonal ideas without purchasing large quantities of inventory upfront.","pod2-ben5-p--plural":"Sellers can quickly test different designs, styles, niches, and seasonal ideas without purchasing large quantities of inventory upfront.","pod2-ben4-em":"Brand Building","pod2-ben4-em--plural":"Brand Building","pod2-diff5-li2":"Better assistance for customization and sourcing needs","pod2-diff5-li2--plural":"Better assistance for customization and sourcing needs","pod2-diff5-li1":"More direct communication for product and order support","pod2-diff5-li1--plural":"More direct communication for product and order support","pod2-diff5-li3":"Helpful for sellers who want more guidance while scaling","pod2-diff5-li3--plural":"Helpful for sellers who want more guidance while scaling","pod2-intro-tab1-title":"How to Use {{fullName}}\'s Print on Demand Service","pod2-intro-tab1-title--plural":"How to Use {{fullName}}\'s Print on Demand Service","pod2-srv2-p":"Support custom production based on your designs, patterns, logos, text, colors, and personalized product requirements.","pod2-srv2-p--plural":"Support custom production based on your designs, patterns, logos, text, colors, and personalized product requirements.","pod2-ben2-h3":"Higher Profit Potential","pod2-ben2-h3--plural":"Higher Profit Potential","pod2-slide5-m1s":"Strong visual appeal","pod2-slide5-m1s--plural":"Strong visual appeal","pod2-slide5-m1t":"Lifestyle","pod2-slide5-m1t--plural":"Lifestyle","pod2-diff1-h3":"Higher Efficiency for Daily Operations","pod2-diff1-h3--plural":"Higher Efficiency for Daily Operations","pod2-ben5-em":"Flexible Testing","pod2-ben5-em--plural":"Flexible Testing","pod2-slide5-tag":"Home Decor","pod2-slide5-tag--plural":"Home Decor","pod2-diff3-li2":"Useful for niche testing and seasonal campaigns","pod2-diff3-li2--plural":"Useful for niche testing and seasonal campaigns","pod2-diff3-li1":"Apparel, accessories, gifts, pet items, jewelry, and home decor","pod2-diff3-li1--plural":"Apparel, accessories, gifts, pet items, jewelry, and home decor","pod2-intro-tab2-note":"Explore hot-selling POD product ideas and see how POD products can be made on {{name}} Dropshipping, from creative concept to finished product.","pod2-intro-tab2-note--plural":"Explore hot-selling POD product ideas and see how POD products can be made on {{name}} Dropshipping, from creative concept to finished product.","pod2-diff3-li3":"Better flexibility for expanding product collections","pod2-diff3-li3--plural":"Better flexibility for expanding product collections","pod2-slide5-m2t":"Seasonal","pod2-slide5-m2t--plural":"Seasonal","pod2-cat-h2":"Explore Custom Products You Can Sell with {{name}} Print on Demand","pod2-cat-h2--plural":"Explore Custom Products You Can Sell with {{name}} Print on Demand","pod2-ben2-em":"Profit Potential","pod2-ben2-em--plural":"Profit Potential","pod2-slide5-m2s":"Campaign-ready","pod2-slide5-m2s--plural":"Campaign-ready","pod2-diff4-h3":"Global Warehousing and Fulfillment Support","pod2-diff4-h3--plural":"Global Warehousing and Fulfillment Support","pod2-diff4-p":"For products with stable sales, {{fullName}} can support broader fulfillment strategies through its warehousing and global shipping capabilities. This helps sellers improve delivery efficiency and serve more markets with a better customer experience.","pod2-diff4-p--plural":"For products with stable sales, {{fullName}} can support broader fulfillment strategies through its warehousing and global shipping capabilities. This helps sellers improve delivery efficie
31657ncy and serve more markets with a better customer experience.","pod2-intro-tab1-tag":"Tutorial","pod2-ben4-p":"Custom products are ideal for niche brands built around pet owners, couples, family memories, holiday gifts, hobbies, and lifestyle communities.","pod2-ben4-p--plural":"Custom products are ideal for niche brands built around pet owners, couples, family memories, holiday gifts, hobbies, and lifestyle communities.","pod2-diff1-li3":"Spend more time on marketing and store growth","pod2-diff1-li3--plural":"Spend more time on marketing and store growth","pod2-foot1s":"Upload artwork","pod2-foot1s--plural":"Upload artwork","pod2-foot1t":"Design","pod2-diff1-li1":"Reduce manual order handling","pod2-diff1-li1--plural":"Reduce manual order handling","pod2-diff1-li2":"Improve workflow speed from store to fulfillment","pod2-diff1-li2--plural":"Improve workflow speed from store to fulfillment","ship-from-total-shipping-cost":"Total Shipping Cost","advertisingservice-card-google-description-5-title":"Avoid Association Risks:","advertisingservice-card-google-description-5-title--plural":"Avoid Association Risks:","advertisingservice-card-google-description-5-text":"Each account operates independently, effectively preventing bans due to account associations.","advertisingservice-card-google-description-5-text--plural":"Eac
31657h account operates independently, effectively preventing bans due to account associations.","partnershiphome-hero-ring-marketing":"Marketing","partnershiphome-hero-ring-erp":"ERP","partnershiphome-hero-ring-erp--plural":"ERP","partnershiphome-hero-ring-marketplace":"Marketplace","partnershiphome-hero-ring-marketplace--plural":"Marketplace","partnershiphome-hero-explore":"Join {{fullName}}","partnershiphome-hero-explore--plural":"Join {{fullName}}","partnershiphome-directory-reset-all":"Reset all filters","partnershiphome-directory-reset-all--plural":"Reset all filters","partnershiphome-directory-title":"Build a stronger ecommerce stack","partnershiphome-directory-title--plural":"Build a stronger ecommerce stack","partnershiphome-hero-ring-payment":"Payments","partnershiphome-directory-kicker":"Partner Directory","partnershiphome-directory-kicker--plural":"Partner Directory","partnershiphome-hero-label":"CJ Partner Network","partnershiphome-hero-label--plural":"CJ Partner Network","partnershiphome-hero-become":"Become a Partner","partnershiphome-hero-become--plural":"Become a Partner","partnershiphome-hero-ring-logistics":"Logistics","partnershiphome-hero-ring-logistics--plural":"Logistics","partnershiphome-hero-title":"The right partners for","partnershiphome-hero-title--plural":"The right partners for","partnershiphome-directory-desc":"Search the CJ partner ecosystem by business category to find solutions that fit your current growth stage.","partnershiphome-directory-desc--plural":"Search the CJ partner ecosystem by business category to find solutions that fit your current growth stage.","partnershiphome-hero-ring-technology":"Technology","partnershiphome-hero-ring-technology--plural":"Technology","partnershiphome-directory-category":"Partner category","partnershiphome-directory-category--plural":"Partner category","partnershiphome-directory-filter-toggle":"Filter partners","partnershiphome-directory-filter-toggle--plural":"Filter partners","partnershiphome-hero-desc":"Explore ecommerce platforms, marketing solutions, payment providers, logistics services and technology tools that can support your business from launch to global expansion.","partnershiphome-hero-desc--plural":"Explore ecommerce platforms, marketing solutions, payment providers, logistics services and technology tools that can support your business from launch to global expansion.","partnershiphome-directory-all":"All","partnershiphome-hero-title-highlight":"every stage of ecommerce growth.","partnershiphome-hero-title-highlight--plural":"every stage of ecommerce growth.","advertisingservice-multiplatform-card-1-alt":"Meta Logo","advertisingservice-multiplatform-card-1-alt--plural":"Meta Logo","advertisingservice-hero-cta-get-started":"Get Started","advertisingservice-multiplatform-description":"Launch, test, and scale your campaigns across Meta, Google, TikTok, Bing, Taboola, and more with trusted agency ad account solutions.","advertisingservice-multiplatform-description--plural":"Launch, test, and scale your campaigns across Meta, Google, TikTok, Bing, Taboola, and more with trusted agency ad account solutions.","advertisingservice-hero-feature-3-title":"Fast Human Support","advertisingservice-hero-feature-3-title--plural":"Fast Human Support","advertisingservice-multiplatform-title":"Multi-Platform Ad Accounts","advertisingservice-multiplatform-title--plural":"Multi-Platform Ad Accounts","advertisingservice-workorder-suggestion":"You may submit a request for advertising, after which our exclusive advertising consultant will contact you.","advertisingservice-workorder-suggestion--plural":"You may submit a request for advertising, after which our exclusive advertising consultant will contact you.","advertisingservice-hero-title-accent":"Limitless Advertising","advertisingservice-hero-title-accent--plural":"Limitless Advertising","advertisingservice-hero-description":"We provide premium agency ad accounts for Facebook, Google, TikTok, and Snapchat, engineered for stability and performance at scale.","advertisingservice-hero-description--plural":"We provide premium agency ad accounts for Facebook, Google, TikTok, and Snapchat, engineered for stability and performance at scale.","advertisingservice-hero-contact-email":"Email","advertisingservice-multiplatform-card-1-desc":"Run high-performing ads and scale your dropshipping store with trusted, whitelisted Meta accounts.","advertisingservice-multiplatform-card-1-desc--plural":"Run high-performing ads and scale your dropshipping store with trusted, whitelisted Meta accounts.","advertisingservice-multiplatform-eyebrow":"Platform-ready accounts at scale","advertisingservice-multiplatform-eyebrow--plural":"Platform-ready accounts at scale","advertisingservice-hero-feature-3-desc":"When account issues happen mid-campaign, you get direct human supp
31657ort to help follow up quickly and keep the process moving.","advertisingservice-hero-feature-3-desc--plural":"When account issues happen mid-campaign, you get direct human support to help follow up quickly and keep the process moving.","advertisingservice-hero-contact-whatsapp":"WhatsApp","advertisingservice-multiplatform-card-1-title":"Meta Agency Ad Accounts","advertisingservice-multiplatform-card-1-title--plural":"Meta Agency Ad Accounts","advertisingservice-marquee-logo-applovin":"AppLovin","advertisingservice-marquee-logo-applovin--plural":"AppLovin","advertisingservice-multiplatform-title-accent":"Built for Scaling","advertisingservice-multiplatform-title-accent--plural":"Built for Scaling","advertisingservice-hero-feature-4-title":"Ads Approved in Seconds","advertisingservice-hero-feature-4-title--plural":"Ads Approved in Seconds","advertisingservice-marquee-logo-google":"Google","advertisingservice-workorder-submit":"Submit","advertisingservice-marquee-logo-bing":"Bing","advertisingservice-marquee-logo-bing--plural":"Bing","advertisingservice-hero-title":"Unlock","advertisingservice-hero-feature-1-desc":"E-commerce, supplements, finance, coaching. We know what to do to keep your campaigns compliant and live.","advertisingservice-hero-feature-1-desc--plural":"E-commerce, supplements, finance, coaching. We know what to do to keep your campaigns compliant and live.","advertisingservice-marquee-logo-tiktok":"TikTok","advertisingservice-marquee-logo-snapchat":"Snapchat","advertisingservice-marquee-logo-snapchat--plural":"Snapchat","advertisingservice-hero-panel-tag":"Agency Support","advertisingservice-hero-panel-tag--plural":"Agency Support","advertisingservice-hero-feature-2-desc":"From $1K to $100K, your account grows with you, no ceilings, no friction.","advertisingservice-hero-feature-2-desc--plural":"From $1K to $100K, your account grows with you, no ceilings, no friction.","advertisingservice-hero-note":"Account availability and approval remain subject to platform policies and advertiser eligibility.","advertisingservice-hero-note--plural":"Account availability and approval remain subject to platform policies and advertiser eligibility.","advertisingservice-marquee-logo-meta":"Meta","advertisingservice-marquee-logo-meta--plural":"Meta","advertisingservice-hero-feature-2-title":"Scale Without Spend Limits","advertisingservice-hero-feature-2-title--plural":"Scale Without Spend Limits","advertisingservice-workorder-message-placeholder":"Please enter such information as product weight and destination country so that we can solve your doubts and offer you personalized shipping solutions as soon as possible.","advertisingservice-workorder-message-placeholder--plural":"Please enter such information as product weight and destination country so that we can solve your doubts and offer you personalized shipping solutions as soon as possible.","advertisingservice-hero-title-tail":"with Whitelisted Agency Ad Accounts","advertisingservice-hero-title-tail--plural":"with Whitelisted Agency Ad Accounts","advertisingservice-marquee-logo-outbrain":"Outbrain","advertisingservice-marquee-logo-outbrain--plural":"Outbrain","advertisingservice-hero-feature-4-desc":"Our agency accounts carry the trust Meta responds to. Your campaigns go live while others are still waiting.","advertisingservice-hero-feature-4-desc--plural":"Our agency accounts carry the trust Meta responds to. Your campaigns go live while others are still waiting.","advertisingservice-marquee-label":"Supported Platforms","advertisingservice-marquee-label--plural":"Supported Platforms","advertisingservice-hero-panel-title":"Why our clients choose CJ","advertisingservice-hero-panel-title--plural":"Why our clients choose CJ","advertisingservice-marquee-logo-taboola":"Taboola","advertisingservice-marquee-logo-taboola--plural":"Taboola","advertisingservice-hero-feature-1-title":"Run Ads For All Verticals","advertisingservice-hero-feature-1-title--plural":"Run Ads For All Verticals","partnershiphome-directory-empty-reset":"Reset filters","partnershiphome-directory-empty-reset--plural":"Reset filters","partnershiphome-directory-no-partners":"No partners found","partnershiphome-directory-no-partners--plural":"No partners found","partnershiphome-brand-badge-text":"For approved partners","partnershiphome-brand-badge-text--plural":"For approved partners","partnershiphome-directory-next-aria":"Next page","partnershiphome-directory-next-aria--plural":"Next page","partnershiphome-directory-result-meta-single":"Showing {{start}}–{{end}} of {{total}} partner","partnershiphome-directory-result-meta-single--plural":"Showing {{start}}–{{end}} of {{total}} partner","partnershiphome-directory-sort-featured":"Featured first","partnershiphome-directory-sort-featured--plural":"Featured first","partnershiphome-brand-icon-text":"For digital placements","partnershiphome-brand-icon-text--plural":"For digital placements","partnershiphome-directory-next":"Next","partnershiphome-directory-clear-search":"Clear partner search","partnershiphome-directory-clear-search--plural":"Clear partner search","partnershiphome-directory-p
31657ages-aria":"Partner directory pages","partnershiphome-directory-pages-aria--plural":"Partner directory pages","partnershiphome-directory-card-visit":"Visit partner","partnershiphome-directory-card-visit--plural":"Visit partner","partnershiphome-cta-eyebrow":"{{fullName}} Partner Program","partnershiphome-cta-eyebrow--plural":"{{fullName}} Partner Program","partnershiphome-cta-desc":"Partner with {{fullName}} to connect your products, services, or technology with ecommerce businesses around the world.","partnershiphome-cta-desc--plural":"Partner with {{fullName}} to connect your products, services, or technology with ecommerce businesses around the world.","partnershiphome-directory-sort":"Sort partners","partnershiphome-directory-sort--plural":"Sort partners","partnershiphome-directory-result-meta":"Showing {{start}}–{{end}} of {{total}} partners","partnershiphome-directory-result-meta--plural":"Showing {{start}}–{{end}} of {{total}} partners","partnershiphome-brand-primary-title":"Primary logo","partnershiphome-brand-primary-title--plural":"Primary logo","partnershiphome-brand-desc":"Download approved {{fullName}} logos, icons and partner assets.","partnershiphome-brand-desc--plural":"Download approved {{fullName}} logos, icons and partner assets.","partnershiphome-directory-page-aria":"Go to page {{page}}","partnershiphome-directory-page-aria--plural":"Go to page {{page}}","partnershiphome-brand-format":"SVG · PNG","partnershiphome-brand-format--plural":"SVG · PNG","partnershiphome-directory-prev-aria":"Previous page","partnershiphome-directory-prev-aria--plural":"Previous page","partnershiphome-brand-download":"Download","partnershiphome-brand-badge-title":"Partner badge","partnershiphome-brand-badge-title--plural":"Partner badge","partnershiphome-brand-light-title":"Light logo","partnershiphome-brand-light-title--plural":"Light logo","partnershiphome-directory-chip-search":"Search: {{value}}","partnershiphome-directory-chip-search--plural":"Search: {{value}}","partnershiphome-cta-title":"Become a {{fullName}} Partner today","partnershiphome-cta-title--plural":"Become a {{fullName}} Partner today","partnershiphome-brand-label":"CJ Brand Resources","partnershiphome-brand-label--plural":"CJ Brand Resources","partnershiphome-directory-search-placeholder":"Search partners","partnershiphome-directory-search-placeholder--plural":"Search partners","partnershiphome-directory-chip-remove":"Remove {{value}} filter","partnershiphome-directory-chip-remove--plural":"Remove {{value}} filter","partnershiphome-directory-sort-az":"Name A–Z","partnershiphome-directory-sort-az--plural":"Name A–Z","partnershiphome-directory-chip-category":"Category: {{value}}","partnershiphome-directory-chip-category--plural":"Category: {{value}}","partnershiphome-brand-light-text":"For dark backgrounds","partnershiphome-brand-light-text--plural":"For dark backgrounds","partnershiphome-brand-title":"Official brand assets","partnershiphome-brand-title--plural":"Official brand assets","partnershiphome-cta-apply":"Apply to Become a Partner","partnershiphome-cta-apply--plural":"Apply to Become a Partner","partnershiphome-brand-primary-text":"For light backgrounds","partnershiphome-brand-primary-text--plural":"For light backgrounds","partnershiphome-directory-empty-desc":"Try removing one or more filters or searching with a broader keyword.","partnershiphome-directory-empty-desc--plural":"Try removing one or more filters or searching with a broader keyword.","partnershiphome-brand-icon-title":"Brand icon","partnershiphome-brand-icon-title--plural":"Brand icon","partnershiphome-directory-empty-title":"No matching partners","partnershiphome-directory-empty-title--plural":"No matching partners","partnershiphome-directory-prev":"Previous","partnershiphome-directory-prev--plural":"Previous","partnershiphome-brand-download-aria":"Download {{fullName}} {{asset}}","partnershiphome-brand-download-aria--plural":"Download {{fullName}} {{asset}}","partnershiphome-directory-sort-za":"Name Z–A","partnershiphome-directory-sort-za--plural":"Name Z–A","entity-process-summary-1":"Personalized document checklist","entity-process-summary-1--plural":"Personalized document checklist","entity-process-summary-3":"Compliance deadline coordination","entity-process-summary-3--plural":"Compliance deadline coordination","entity-process-summary-2":"Dedicated company setup assistance","entity-process-summary-2--plural":"Dedicated company setup assistance","entity-process-summary-4":"Digital corporate document delivery","entity-process-summary-4--plural":"Digital corporate document delivery","entity-process-step-2-title":"Finalize the Plan with Your Consultant","entity-process-step-2-title--plural":"Finalize the Plan with Your Consultant","entity-cta-ghost":"Find My Plan","entity-cta-ghost--plural":"Find My Plan","entity-process-step-5-title":"Receive Your Corporate Documents","entity-process-step-5-title--plural":"Receive Your Corporate Documents","entity-process-step-1-text":"Use the CJ Entity Plan Finder or speak with our specialist to choose the structure and service level that best match your business.","entity-process-step-1-text--plural":"Use the CJ Entity Plan Finder or speak with our specialist to choose the structure and service level that best match your business.","entity-process-eyebrow":"A Clear, Managed Process","entity-process-eyebrow--plural":"A Clear, Managed Process","entity-cta-small":"Service availability is subject to KYC and compliance review. Response times may vary depending on inquiry volume.","entity-cta-small--plural":"Service availability is subject to KYC and compliance review. Response times may vary depending on inquiry volume.","entity-process-title-highlight":"to Ongoing Compliance","entity-process-title-highlight--plural":"to Ongoing Compliance","entity-cta-contact-3-label":"WeChat","entity-cta-contact-3-label--plural":"WeChat","entity-cta-contact-title":"Contact Our Specialist","entity-cta-contact-title--plural":"Contact Our Specialist","entity-process-step-1-label":"Choose","entity-process-step-1-label--plural":"Choose","entity-process-step-4-title":"Complete Company Registration","entity-process-step-4-title--plural":"Complete Company Registration","entity-cta-contact-2-label":"WhatsApp","entity-process-step-2-text":"Work with your dedicated consultant to confirm the service plan, company structure, address requirements, timeline, and next steps.","entity-process-step-2-text--plural":"Work with your dedicated consultant to confirm the service plan, company structure, address requirements, timeline, and next steps.","entity-process-title":"From Application","entity-process-title--plural":"From Application","entity-process-step-5-text":"Once registration is completed, your corporate documents are organized and delivered digitally for convenient access.","entity-process-step-5-text--plural":"Once registration is completed, your corporate documents are organized and delivered digitally for convenient access.","entity-cta-title":"Ready to Launch with","entity-cta-title--plural":"Ready to Launch with","entity-process-step-2-label":"Consult","entity-process-step-2-label--plural":"Consult","entity-process-step-3-title":"Submit Your Registration Documents","entity-process-step-3-title--plural":"Submit Your Registration Documents","entity-process-step-6-text":"We monitor key compliance deadlines and coordinate the filings, audit support, and services included in your selected plan.","entity-process-step-6-text--plural":"We monitor key compliance deadlines and coordinate the filings, audit support, and services included in your selected plan.","entity-cta-description":"Set up your Hong Kong company with a managed service covering registration, compliance, privacy solutions, and address support. Speak with our specialist today and get the plan that fits your business structure and growth goals.","entity-cta-description--plural":"Set up your Hong Kong company with a managed service covering registration, compliance, privacy solutions, and address support. Speak with our specialist today and get the plan that fits your business structure and growth goals.","entity-cta-contact-1-label":"Contact Person","entity-cta-eyebrow":"Start Your Hong Kong Company","entity-cta-eyebrow--plural":"Start Your Hong Kong Company","entity-cta-tag-3":"Privacy Options","entity-cta-tag-3--plural":"Privacy Options","entity-cta-tag-4":"Address Support","entity-cta-tag-4--plural":"Address Support","entity-cta-tag-1":"Managed Compliance","entity-cta-tag-1--plural":"Managed Compliance","entity-cta-tag-2":"Clear Pricing","entity-cta-tag-2--plural":"Clear Pricing","entity-cta-contact-status":"Direct specialist support","entity-cta-contact-status--
31657plural":"Direct specialist support","entity-process-step-6-label":"Maintain","entity-process-step-6-label--plural":"Maintain","entity-cta-title-highlight":"CJ Entity?","entity-cta-title-highlight--plural":"CJ Entity?","entity-process-description":"CJ Entity coordinates each stage of your Hong Kong company setup, from selecting the right service plan and completing KYC to company registration, document delivery, and ongoing compliance support.","entity-process-description--plural":"CJ Entity coordinates each stage of your Hong Kong company setup, from selecting the right service plan and completing KYC to company registration, document delivery, and ongoing compliance support.","entity-process-step-3-label":"Submit","entity-process-step-1-title":"Select Your Plan","entity-process-step-1-title--plural":"Select Your Plan","entity-process-step-4-label":"Register","entity-process-step-3-text":"Provide the required identification, address verification, company information, director and shareholder details, and other registration materials for review.","entity-process-step-3-text--plural":"Provide the required identification, address verification, company information, director and shareholder details, and other registration materials for review.","entity-process-summary-title":"Clear steps. Dedicated guidance. Fewer administrative burdens.","entity-process-summary-title--plural":"Clear steps. Dedicated guidance. Fewer administrative burdens.","entity-process-step-4-text":"Our team prepares and submits the required incorporation, company registration, and business registration documents.","entity-process-step-4-text--plural":"Our team prepares and submits the required incorporation, company registration, and business registration documents.","entity-process-button":"Start Your Company Setup","entity-process-button--plural":"Start Your Company Setup","entity-process-summary-label":"One Coordinated Service","entity-process-summary-label--plural":"One Coordinated Service","entity-process-step-5-label":"Receive","entity-process-step-5-label--plural":"Receive","entity-process-step-6-title":"Stay Supported","entity-process-step-6-title--plural":"Stay Supported","entity-cta-primary":"Talk to Danny Fang","entity-cta-primary--plural":"Talk to Danny Fang","entity-cta-contact-text":"Ready to get started? Contact Danny directly and receive guidance on the next steps for your company setup.","entity-cta-contact-text--plural":"Ready to get started? Contact Danny directly and receive guidance on the next steps for your company setup.","advertisingservice-workorder-field-tip-prefix":"Please enter","advertisingservice-lightcta-eyebrow":"CJ Advertising Account Services","advertisingservice-lightcta-eyebrow--plural":"CJ Advertising Account Services","advertisingservice-audience-card-3-title":"Established Brands","advertisingservice-audience-card-3-title--plural":"Established Brands","advertisingservice-guarantee-seal-label":"100% Guaranteed Premium Seal","advertisingservice-guarantee-seal-label--plural":"100% Guaranteed Premium Seal","advertisingservice-workorder-message-label":"Message","advertisingservice-guarantee-card-2-title":"Secure & Reliable Protection","advertisingservice-guarantee-card-2-title--plural":"Secure & Reliable Protection","advertisingservice-audience-card-6-label":"Regional Operations","advertisingservice-audience-card-6-label--plural":"Regional Operations","advertisingservice-audience-card-3-label":"Brand Expansion","advertisingservice-audience-card-3-label--plural":"Brand Expansion","advertisingservice-guarantee-card-3-desc":"Our team is here to support you every step of the way for the best results.","advertisingservice-guarantee-card-3-desc--plural":"Our team is here to support you every step of the way for the best results.","advertisingservice-workorder-message-tip":"Please enter message","advertisingservice-workorder-message-tip--plural":"Please enter message","advertisingservice-lightcta-button":"Apply for an Ad Account","advertisingservice-lightcta-button--plural":"Apply for an Ad Account","advertisingservice-audience-card-2-label":"Cross-Border Ecommerce","advertisingservice-audience-card-2-label--plural":"Cross-Border Ecommerce","advertisingservice-guarantee-seal-word":"Guarantee","advertisingservice-guarantee-seal-word--plural":"Guarantee","advertisingservice-guarantee-card-1-desc":"If any account issue occurs, we provide fast replacements to minimize downtime.","advertisingservice-guarantee-card-1-desc--plural":"If any account issue occurs, we provide fast replacements to minimize downtime.","advertisingservice-workorder-link-tip":"You can check it in the","advertisingservice-workorder-link-tip--plural":"You can check it in the","advertisingservice-lightcta-title":"Ready to Scale Your Advertising?","advertisingservice-lightcta-title--plural":"Ready to Scale Your Advertising?","advertisingservice-lightcta-feature-2":"Compliance Guidance","advertisingservice-lightcta-feature-2--plural":"Compliance Guidance","advertisingservice-lightcta-feature-1":"Professional Account Setup","advertisingservice-lightcta-feature-1--plural":"Professional Account Setup","advertisingservice-guarantee-card-3-title":"Ongoing Expert Guidance","advertisingservice-guarantee-card-3-title--plural":"Ongoing Expert Guidance","advertisingservice-lightcta-feature-3":"Dedicated CJ Support","advertisingservice-lightcta-feature-3--plural":"Dedicated CJ Support","advertisingservice-audience-card-6-desc":"Assess suitable advertising account options for different c
31657ountries and regional operations.","advertisingservice-audience-card-6-desc--plural":"Assess suitable advertising account options for different countries and regional operations.","advertisingservice-lightcta-card-title":"Launch Your Ad Account with CJ","advertisingservice-lightcta-card-title--plural":"Launch Your Ad Account with CJ","advertisingservice-guarantee-title":"Your Success is Our Commitment","advertisingservice-guarantee-title--plural":"Your Success is Our Commitment","advertisingservice-audience-card-2-title":"Dropshipping Sellers","advertisingservice-audience-card-2-title--plural":"Dropshipping Sellers","advertisingservice-guarantee-seal-percent":"100%","advertisingservice-guarantee-seal-percent--plural":"100%","advertisingservice-lightcta-note":"Professional support from application to launch","advertisingservice-lightcta-note--plural":"Professional support from application to launch","advertisingservice-audience-card-3-foot":"Support for broader structures","advertisingservice-audience-card-3-foot--plural":"Support for broader structures","advertisingservice-audience-card-6-foot":"Built for multi-market coverage","advertisingservice-audience-card-6-foot--plural":"Built for multi-market coverage","advertisingservice-guarantee-seal-premium":"Premium","advertisingservice-guarantee-seal-premium--plural":"Premium","advertisingservice-guarantee-card-1-title":"Account Replacement Support","advertisingservice-guarantee-card-1-title--plural":"Account Replacement Support","advertisingservice-audience-card-4-desc":"Organize advertising access and account structures for eligible clients or brands.","advertisingservice-audience-card-4-desc--plural":"Organize advertising access and account structures for eligible clients or brands.","advertisingservice-audience-card-2-foot":"Built around product ads","advertisingservice-audience-card-2-foot--plural":"Built around product ads","advertisingservice-audience-card-4-label":"Client Account Access","advertisingservice-audience-card-4-label--plural":"Client Account Access","advertisingservice-audience-card-3-desc":"Prepare separate account structures for new stores, product lines or target regions.","advertisingservice-audience-card-3-desc--plural":"Prepare separate account structures for new stores, product lines or target regions.","advertisingservice-lightcta-description":"Open and manage your advertising accounts with professional support from CJ. From account setup and compliance guidance to campaign launch, we help you advertise more efficiently and reach the right customers across global markets.","advertisingservice-lightcta-description--plural":"Open and manage your advertising accounts with professional support from CJ. From account setup and compliance guidance to campaign launch, we help you advertise more efficiently and reach the right customers across global markets.","advertisingservice-audience-card-1-foot":"Clearer onboarding support","advertisingservice-audience-card-1-foot--plural":"Clearer onboarding support","advertisingservice-audience-card-4-foot":"Organized multi-client access","advertisingservice-audience-card-4-foot--plural":"Organized multi-client access","advertisingservice-audience-card-1-title":"New Ecommerce Advertisers","advertisingservice-audience-card-1-title--plural":"New Ecommerce Advertisers","advertisingservice-audience-card-2-desc":"Explore account options designed around cross-border ecommerce and product advertising.","advertisingservice-audience-card-2-desc--plural":"Explore account options designed around cross-border ecommerce and product advertising.","advertisingservice-audience-card-5-desc":"Review AppLovin account suitability for mobile user acquisition or app promotion.","advertisingservice-audience-card-5-desc--plural":"Review AppLovin account suitability for mobile user acquisition or app promotion.","advertisingservice-guarantee-description":"We stand behind every account we provide. Our 100% guarantee ensures your business never stops moving.","advertisingservice-guarantee-description--plural":"We stand behind every account we provide. Our 100% guarantee ensures your business never stops moving.","advertisingservice-lightcta-card-label":"Start Growing Today","advertisingservice-lightcta-card-label--plural":"Start Growing Today","advertisingservice-audience-card-4-title":"Agencies and Media Buyers","advertisingservice-audience-card-4-title--plural":"Agencies and Media Buyers","advertisingservice-audience-card-5-title":"Mobile App Advertisers","advertisingservice-audience-card-5-title--plural":"Mobile App Advertisers","advertisingservice-audience-card-5-label":"App User Acquisition","advertisingservice-audience-card-5-label--plural":"App User Acquisition","advertisingservice-guarantee-card-2-desc":"All accounts are protected with unique IPs and advanced security systems.","advertisingservice-guarantee-card-2-desc--plural":"All accounts are protected with unique IPs and advanced security systems.","advertisingservice-audience-card-5-foot":"Focused on app promotion","advertisingservice-audience-card-5-foot--plural":"Focused on app promotion","advertisingservice-workorder-fail-message":"Ticket has been suspended for update. Please contact your agent directly for any doubts.","advertisingservice-workorder-fail-message--plural":"Ticket has been suspended for update. Please contact your agent directly for any doubts.","advertisingservice-workorder-link-text":"Ticket List.","advertisingservice-workorder-link-text--plural":"Ticket List.","advertisingservice-audience-card-6-title":"Multi-Market Sellers","advertisingservice-audience-card-6-title--plural":"Multi-Market Sellers","advertisingservice-audience-card-1-desc":"Get clearer guidance for your first advertising account application and initial setup.","advertisingservice-audience-card-1-desc--plural":"Get clearer guidance for your first advertising account application and initial setup.","advertisingservice-lightcta-card-text":"Tell us about your business and advertising goals. Our team will help you choose the right account solution and support you from application to launch.","advertisingservice-lightcta-card-text--plural":"Tell us about your business and advertising goals. Our team will help you choose the right account solution and support you from application to launch.","entity-plans-3-feature-7":"Dedicated physical corporate address","entity-plans-3-feature-7--plural":"Dedicated physical corporate address","entity-compare-col-1-name":"Standard","entity-compare-col-1-name--plural":"Standard","entity-plans-3-feature-8":"
31657Verification preparation support","entity-plans-3-feature-8--plural":"Verification preparation support","entity-plans-3-feature-9":"Genuine lease agreement and electricity bill statement upon request","entity-plans-3-feature-9--plural":"Genuine lease agreement and electricity bill statement upon request","entity-compare-title-highlight":"Clearly Compared","entity-compare-title-highlight--plural":"Clearly Compared","entity-plans-3-feature-3":"Company secretary appointment","entity-plans-3-feature-3--plural":"Company secretary appointment","entity-plans-3-feature-4":"Annual statutory filing support","entity-plans-3-feature-4--plural":"Annual statutory filing support","entity-plans-3-feature-5":"Audit and tax filing coordination","entity-plans-3-feature-5--plural":"Audit and tax filing coordination","entity-plans-3-feature-6":"Compliance deadline monitoring","entity-plans-3-feature-6--plural":"Compliance deadline monitoring","entity-plans-3-feature-1":"Hong Kong company incorporation","entity-plans-3-feature-1--plural":"Hong Kong company incorporation","entity-plans-4-title":"Ultimate Enterprise Suite","entity-plans-4-title--plural":"Ultimate Enterprise Suite","entity-fit-title-line2":"Business?","entity-fit-title-line2--plural":"Business?","entity-plans-3-feature-2":"Government registration support","entity-plans-3-feature-2--plural":"Government registration support","entity-compare-status-not-included":"Not Included","entity-compare-status-not-included--plural":"Not Included","entity-compare-col-2-name":"Executive Privacy","entity-compare-col-2-name--plural":"Executive Privacy","entity-compare-status-standard":"Standard","entity-compare-status-standard--plural":"Standard","entity-compare-mobile-hint":"Swipe to compare all plans","entity-compare-mobile-hint--plural":"Swipe to compare all plans","entity-fit-eyebrow":"Built for Global Entrepreneurs","entity-fit-eyebrow--plural":"Built for Global Entrepreneurs","entity-fit-card-5-title":"International Founders","entity-fit-card-5-title--plural":"International Founders","entity-plans-3-subtitle":"A stronger corporate setup for Amazon and global marketplaces.","entity-plans-3-subtitle--plural":"A stronger corporate setup for Amazon and global marketplaces.","entity-compare-col-3-price":"$198 / month","entity-compare-col-3-price--plural":"$198 / month","entity-plans-3-badge":"Built for E-Commerce","entity-plans-3-badge--plural":"Built for E-Commerce","entity-fit-card-2-title":"Shopify and DTC Brands","entity-fit-card-2-title--plural":"Shopify and DTC Brands","entity-plans-2-subtitle":"Enhanced public-record privacy for global founders.","entity-plans-2-subtitle--plural":"Enhanced public-record privacy for global founders.","entity-compare-col-3-name":"E-Commerce Growth","entity-compare-col-3-name--plural":"E-Commerce Growth","entity-fit-card-6-text":"Use professionally documented nominee arrangements to enhance privacy on public company records.","entity-fit-card-6-text--plural":"Use professionally documented nominee arrangements to enhance privacy on public company records.","entity-plans-3-number":"Plan 3","entity-plans-3-number--plural":"Plan 3","entity-compare-status-included":"Included","entity-compare-status-included--plural":"Included","entity-fit-card-3-title":"Trading and Sourcing Companies","entity-fit-card-3-title--plural":"Trading and Sourcing Companies","entity-compare-col-3-badge":"E-Commerce Choice","entity-compare-col-3-badge--plural":"E-Commerce Choice","entity-fit-card-5-text":"Set up a Hong Kong company without handling every filing and administrative deadline alone.","entity-fit-card-5-text--plural":"Set up a Hong Kong company without handling every filing and administrative deadline alone.","entity-compare-description":"Compare the services included in each CJ Entity plan and choose the company structure that best matches your privacy, address, and compliance requirements.","entity-compare-description--plural":"Compare the services included in each CJ Entity plan and choose the company structure that best matches your privacy, address, and compliance requirements.","entity-plans-note":"All plans are subject to KYC and AML review, document approval, business activity assessment, and service eligibility. Platform, marketplace, bank, and payment provider approvals are independently determined by the relevant third party.","entity-plans-note--plural":"All plans are subject to KYC and AML review, document approval, business activity assessment, and service eligibility. Platform, marketplace, bank, and payment provider approvals are independently determined by the relevant third party.","entity-compare-col-2-price":"$170 / month","entity-compare-col-2-price--plural":"$170 / month","entity-plans-2-feature-3":"Company secretary appointment","entity-plans-2-feature-3--plural":"Company secretary appointment","entity-plans-2-feature-2":"Government registration support","entity-plans-2-feature-2--plural":"Government registration support","entity-plans-3-best-for":"Amazon sellers and businesses requiring a dedicated physical corporate address.","entity-plans-3-best-for--plural":"Amazon sellers and businesses requiring a dedicated physical corporate address.","entity-plans-2-feature-1":"Hong Kong company incorporation","entity-plans-2-feature-1--plural":"Hong Kong company incorporation","entity-plans-2-feature-8":"Nominee Shareholder Setup & Maintenance","entity-plans-2-feature-8--plural":"Nominee Shareholder Setup & Maintenance","entity-plans-2-feature-7":"Nominee Director Setup & Maintenance","entity-plans-2-feature-7--plural":"Nominee Director Setup & Maintenance","entity-plans-3-features-title":"Standard Compliance, plus","entity-plans-3-features-title--plural":"Standard Compliance, plus","entity-plans-2-feature-6":"Compliance deadline monitoring","entity-plans-2-feature-6--plural":"Compliance deadline monitoring","entity-plans-2-feature-5":"Audit and tax filing coordination","entity-plans-2-feature-5--plural":"Audit and tax filing coordination","entity-plans-2-feature-4":"Annual statutory filing support","entity-plans-2-feature-4--plural":"Annual statutory filing support","entity-fit-card-2-text":"Build an international company structure that can grow alongside your store and customer base.","entity-fit-card-2-text--plural":"Build an international company structure that can grow alongside your store and customer base.","entity-compare-col-1-price":"$145 / month","entity-compare-col-1-price--plural":"$145 / month","entity-plans-2-number":"Plan 2","entity-plans-2-number--plural":"Plan 2","entity-fit-card-4-title":"Consultants","entity-fit-card-4-title--plural":"Consultants","entity-plans-4-badge":"Complete Solution","entity-plans-4-badge--plural":"Complete Solution","entity-plans-4-button":"Cho
31657ose Ultimate Suite","entity-plans-4-button--plural":"Choose Ultimate Suite","entity-fit-card-3-text":"Establish a Hong Kong company for international sourcing, purchasing, consulting, and cross-border trade.","entity-fit-card-3-text--plural":"Establish a Hong Kong company for international sourcing, purchasing, consulting, and cross-border trade.","entity-plans-1-button":"Choose Standard Compliance","entity-plans-1-button--plural":"Choose Standard Compliance","entity-plans-2-button":"Choose Executive Privacy","entity-plans-2-button--plural":"Choose Executive Privacy","entity-plans-3-button":"Choose E-Commerce Growth","entity-plans-3-button--plural":"Choose E-Commerce Growth","entity-compare-col-4-price":"$223 / month","entity-compare-col-4-price--plural":"$223 / month","entity-plans-2-badge":"Privacy Choice","entity-plans-2-badge--plural":"Privacy Choice","entity-compare-note":"Service availability is subject to KYC and AML review, business activity assessment, document approval, and the final signed service agreement. Third-party platform, marketplace, banking, and payment provider approvals cannot be guaranteed.","entity-compare-note--plural":"Service availability is subject to KYC and AML review, business activity assessment, document approval, and the final signed service agreement. Third-party platform, marketplace, banking, and payment provider approvals cannot be guaranteed.","entity-plans-4-best-for":"High-growth e-commerce companies requiring privacy, a dedicated address, and priority support.","entity-plans-4-best-for--plural":"High-growth e-commerce companies requiring privacy, a dedicated address, and priority support.","entity-plans-2-features-title":"Standard Compliance, plus","entity-plans-2-features-title--plural":"Standard Compliance, plus","entity-compare-row-3":"Company Secretary","entity-compare-row-3--plural":"Company Secretary","entity-fit-card-4-text":"Operate through a professional corporate entity with ongoing secretarial and compliance support.","entity-fit-card-4-text--plural":"Operate through a professional corporate entity with ongoing secretarial and compliance support.","entity-compare-row-2":"Government Registration Support","entity-compare-row-2--plural":"Government Registration Support","entity-fit-card-1-text":"Create a structured corporate presence with dedicated address options and verification preparation support.","entity-fit-card-1-text--plural":"Create a structured corporate presence with dedicated address options and verification preparation support.","entity-compare-row-5":"Annual Statutory Filings","entity-compare-row-5--plural":"Annual Statutory Filings","entity-compare-title":"Everything You Need,","entity-compare-title--plural":"Everything You Need,","entity-compare-row-4":"Standard Registered Office","entity-compare-row-4--plural":"Standard Registered Office","entity-compare-row-7":"Tax Filing Coordination","entity-compare-row-7--plural":"Tax Filing Coordination","entity-compare-row-6":"Audit Coordination","entity-compare-row-6--plural":"Audit Coordination","entity-compare-row-9":"Nominee Shareholder","entity-compare-row-9--plural":"Nominee Shareholder","entity-compare-row-8":"Nominee Director","entity-compare-row-8--plural":"Nominee Director","entity-compare-status-priority":"Priority","entity-compare-status-priority--plural":"Priority","entity-fit-card-6-title":"Privacy-Conscious Owners","entity-fit-card-6-title--plural":"Privacy-Conscious Owners","entity-compare-eyebrow":"Compare Your Options","entity-compare-eyebrow--plural":"Compare Your Options","entity-compare-row-1":"Hong Kong Company Formation","entity-compare-row-1--plural":"Hong Kong Company Formation","entity-plans-2-title":"Executive Privacy","entity-plans-2-title--plural":"Executive Privacy","entity-plans-1-feature-4":"Annual statutory filing support","entity-plans-1-feature-4--plural":"Annual statutory filing support","entity-plans-4-subtitle":"Privacy, physical presence, and compliance in one plan.","entity-plans-4-subtitle--plural":"Privacy, physical presence, and compliance in one plan.","entity-plans-1-feature-3":"Company secretary appointment","entity-plans-1-feature-3--plural":"Company secretary appointment","entity-plans-1-feature-2":"Government registration support","entity-plans-1-feature-2--plural":"Government registration support","entity-plans-2-best-for":"Business owners who prefer enhanced privacy on publicly accessible company records.","entity-plans-2-best-for--plural":"Business owners who prefer enhanced privacy on publicly accessible company records.","entity-plans-1-feature-6":"Compliance deadline monitoring","entity-plans-1-feature-6--plural":"Compliance deadline monitoring","entity-plans-1-feature-5":"Audit and tax filing coordination","entity-plans-1-feature-5--plural":"Audit and tax filing coordination","entity-compare-col-4-name":"Ultimate Suite","entity-compare-col-4-name--plural":"Ultimate Suite","entity-compare-row-10":"Dedicated Physical Address","entity-compare-row-10--plural":"Dedicated Physical Address","entity-plans-4-feature-1":"Hong Kong company incorporation","entity-plans-4-feature-1--plural":"Hong Kong company incorporation","entity-plans-4-feature-3":"Audit and tax filing coordination","entity-plans-4-feature-3--plural":"Audit and tax filing coordination","entity-plans-4-feature-2":"Company secretary and statutory filings","entity-plans-4-feature-2--plural":"Company secretary and statutory filings","entity-plans-4-feature-5":"Dedicated physical corporate address","entity-plans-4-feature-5--plural":"Dedicated physical corporate address","entity-plans-4-feature-4":"Nominee director and shareholder services","entity-plans-4-feature-4--plural":"Nominee director and shareholder services","entity-plans-4-feature-7":"Genuine lease agreement and electricity bill statement upon request","entity-plans-4-feature-7--plural":"Genuine lease agreement and electricity bill statement upon request","entity-compare-row-13":"Priority Support","entity-compare-row-13--plural":"Priority Support","entity-plans-4-feature-6":"Mail scanning and priority support","entity-plans-4-feature-6--plural":"Mail scanning and priority support","entity-compare-row-11":"Mail Receiving and Scanning","entity-compare-row-11--plural":"Mail Receiving and Scanning","entity-compare-row-12":"Verification Preparation Support","entity-compare-row-12--plural":"Verification Preparation Support","entity-plans-4-features-title":"Complete service package","entity-plans-4-features-title--plural":"Complete service package","entity-fit-title":"Is CJ Entity Right for Your","entity-fit-title--plural":"Is CJ Entity Right for Your","entity-plans-3-title":"E-Commerce Growth","entity-plans-3-title--plural":"E-Commerce Growth","entity-compare-service-head":"Services","entity-fit-card-1-title":"Amazon Sellers","entity-fit-card-1-title--plural":"Amazon Sellers","entity-plans-4-number":"Plan 4","entity-plans-4-number--plural":"Plan 4","advertisingservice-multiplatform-card-2-title":"Google Agency Ad Accounts","advertisingservice-multiplatform-card-2-title--plural":"Google Agency Ad Accounts","advertisingservice-accountsetup-barrier-2-title":"Regional Restrictions","advertisingservice-accountsetup-barrier-2-title--plural":"Regional Restrictions","advertisingservice-accountsetup-step-6-label":"Handover","advertisingservice-accountsetup-step-6-label--plural":"Handover","advertisingservice-realbenefits-card-4-label":"Scale Performance Graph","advertisingservice-realbenefits-card-4-label--plural":"Scale Performance Graph","advertisingservice-audience-description":"Whether you are opening your first account or planning a broader advertising structure, the service can be reviewed around your needs.","advertisingservice-audience-description--plural":"Whether you are opening your first account or planning a broader advertising structure, the service can be reviewed around your needs.","advertisingservice-realbenefits-card-1-label":"Verticals","advertisingservice-realbenefits-card-1-label--plural":"Verticals","advertisingservice-audience-kicker":"Built for Different Business Needs","advertisingservice-audience-kicker--plural":"Built for Different Business Needs","advertisingservice-realbenefits-card-4-alt":"Digital advertising performance dashboard showing campaign growth","advertisingservice-realbenefits-card-4-alt--plural":"Digital advertising performance dashboard showing campaign growth","advertisingservice-accountsetup-barrier-1-desc":"Understand which business information and documents may be required before you apply.","advertisingservice-accountsetup-barrier-1-desc--plural":"Understand which business information and documents may be required before you apply.","advertisingservice-accountsetup-step-6-title":"Launch Preparation","advertisingservice-accountsetup-step-6-title--plural":"Launch Preparation","advertisingservice-accountsetup-eyebrow":"Remove Setup Barriers","advertisingservice-accountsetup-eyebrow--plural":"Remove Setup Barriers","advertisingservice-accountsetup-barrier-2-desc":"Review suitable account options based on your business location and advertising markets.","advertisingservice-accountsetup-barrier-2-desc--plural":"Review suitable account options based on your business location and advertising markets.","advertisingservice-multiplatform-card-8-title":"Outbrain Agency Ad Accounts","advertisingservice-multiplatform-card-8-title--plural":"Outbrain Agency Ad Accounts","advertisingservice-multiplatform-card-8-desc":"Drive scalable native traffic through content discovery and high-intent audience placements.","advertisingservice-multiplatform-card-8-desc--plural":"Drive scalable native traffic through content discovery and high-intent audience placements.","advertisingservice-threestep-step-1-num":"Step 1","advertisingservice-accountsetup-step-6-desc":"Receive the account handover information and basic guidance needed to begin building campaigns.","advertisingservice-accountsetup-step-6-desc--plural":"Receive the account handover information and basic guidance needed to begin building campaigns.","advertisingservice-multiplatform-card-5-title":"AppLovin Agency Ad Accounts","advertisingservice-multiplatform-card-5-title--plural":"AppLovin Agency Ad Accounts","advertisingservice-multiplatform-card-8-alt":"Outbrain Logo","advertisingservice-multiplatform-card-8-alt--plural":"Outbrain Logo","advertisingservice-accountsetup-step-1-label":"Assessment","advertisingservice-accountsetup-step-1-label--plural":"Assessment","advertisingservice-realbenefits-card-6-alt":"Designer preparing advertising creatives on a laptop","advertisingservice-realbenefits-card-6-alt--plural":"Designer preparing advertising creatives on a laptop","advertisingservice-audience-title-accent":"Ecommerce Growth","advertisingservice-audience-title-accent--plural":"Ecommerce Growth","advertisingservice-threestep-description":"Get approved, scale campaigns, and grow your business faster. Our simple process ensures you’re up and running in no time.","advertisingservice-threestep-description--plural":"Get approved, scale campaigns, and grow your business faster. Our simple process ensures you’re up and running in no time.","advertisingservice-realbenefits-card-2-title":"Run Aggressive D2C Claims","advertisingservice-realbenefits-card-2-title--plural":"Run Aggressive D2C Claims","advertisingservice-accountsetup-step-4-label":"Verification","advertisingservice-accountsetup-step-4-label--plural":"Verification","advertisingservice-threestep-step-3-num":"Step 3","advertisingservice-realbenefits-card-6-label":"Creative Approval Process","advertisingservice-realbenefits-card-6-label--plural":"Creative Approval Process","advertisingservice-accountsetup-step-4-title":"Business Verification Guidance","advertisingservice-accountsetup-step-4-title--plural":"Business Verification Guidance","advertisingservice-multiplatform-card-7-desc":"Reach premium audiences and scale native traffic across trusted publisher networks.","advertisingservice-multiplatform-card-7-desc--plural":"Reach premium audiences and scale native traffic across trusted publisher networks.","advertisingservice-accountsetup-barrier-4-desc":"Plan clearer account structures for multiple stores, brands, teams or target markets.","advertisingservice-accountsetup-barrier-4-desc--plural":"Plan clearer account structures for multiple stores, brands, teams or target markets.","advertisingservice-threestep-title":"Launch Faster with Agency Ad Accounts","advertisingservice-threestep-title--plural":"Launch Faster with Agency Ad Accounts","advertisingservice-realbenefits-card-6-desc":"Test more creatives, launch faster, and move from review to live delivery with priority platform status.","advertisingservice-realbenefits-card-6-desc--plural":"Test more creatives, launch faster, and move from review to live delivery with priority platform status.","advertisingservice-accountsetup-barrier-4-title":"Scaling Account Structure","advertisingservice-accountsetup-barrier-4-title--plural":"Scaling Account Structure","advertisingservice-multiplatform-card-6-alt":"Snapchat Logo","advertisingservice-multiplatform-card-6-alt--plural":"Snapchat Logo","advertisingservice-accountsetup-step-4-desc":"Prepare business details and supporting documents in line with platform onboarding requirements.","advertisingservice-accountsetup-step-4-desc--plural":"Prepare business details and supporting documents in line with platform onboarding requirements.","advertisingservice-audience-card-1-label":"First Account Setup","advertisingservice-audience-card-1-label--plural":"First Account Setup","advertisingservice-accountsetup-barrier-3-title":"Billing and Access Setup","advertisingservice-accountsetup-barrier-3-title--plural":"Billing and Access Setup","advertisingservice-realbenefits-title":"Break Through Ad Restrictions, Rejections,","advertisingservice-realbenefits-title--plural":"Break Through Ad Restrictions, Rejections,","advertisingservice-accountsetup-process-title":"More Than Ad Account Opening","advertisingservice-accountsetup-process-title--plural":"More Than Ad Account Opening","advertisingservice-accountsetup-step-3-label":"Application","advertisingservice-accountsetup-step-3-label--plural":"Application","advertisingservice-accountsetup-step-3-title":"Registration Assistance","advertisingservice-accountsetup-step-3-title--plural":"Registration Assistance","advertisingservice-realbenefits-card-1-title":"Run Ads Across Multiple Verticals","advertisingservice-realbenefits-card-1-title--plural":"Run Ads Across Multiple Verticals","advertisingservice-realbenefits-description":"Stable agency ad accounts built for advertisers who need reliable delivery, scalable spend, and fewer disruptions across major platforms.","advertisingservice-realbenefits-description--plural":"Stable agency ad accounts built for advertisers who need reliable delivery, scalable spend, and fewer disruptions across major platforms.","advertisingservice-audience-title":"Designed for Different Stages of","advertisingservice-audience-title--plural":"Designed for Different Stages of","advertisingservice-realbenefits-title-accent":"and Account Limits","advertisingservice-realbenefits-title-accent--plural":"and Account Limits","advertisingservice-multiplatform-card-7-title":"Taboola Agency Ad Accounts","advertisingservice-multiplatform-card-7-title--plural":"Taboola Agency Ad Accounts","advertisingservice-realbenefits-card-1-alt":"Marketing team working across multiple digital platforms","advertisingservice-realbenefits-card-1-alt--plural":"Marketing team working across multiple digital platforms","advertisingservice-multiplatform-card-4-alt":"TikTok Logo","advertisingservice-multiplatform-card-4-alt--plural":"TikTok Logo","advertisingservice-realbenefits-card-3-alt":"Health and wellness products displayed on shelves","advertisingservice-realbenefits-card-3-alt--plural":"Health and wellness products displayed on shelves","advertisingservice-threestep-step-3-title":"Start Ads with Confidence","advertisingservice-threestep-step-3-title--plural":"Start Ads with Confidence","advertisingservice-threestep-step-1-desc":"Send us your business details so we can find the right fit.","advertisingservice-threestep-step-1-desc--plural":"Send us your business details so we can find the right fit.","advertisingservice-multiplatform-card-2-al
31657t":"Google Logo","advertisingservice-multiplatform-card-2-alt--plural":"Google Logo","advertisingservice-accountsetup-step-1-desc":"We review your platform, business type, website, target market and expected advertising budget.","advertisingservice-accountsetup-step-1-desc--plural":"We review your platform, business type, website, target market and expected advertising budget.","advertisingservice-accountsetup-step-2-title":"Account Solution Matching","advertisingservice-accountsetup-step-2-title--plural":"Account Solution Matching","advertisingservice-multiplatform-card-3-desc":"Boost your brand with strong and rare Microsoft ad account solutions built for scalable search advertising.","advertisingservice-multiplatform-card-3-desc--plural":"Boost your brand with strong and rare Microsoft ad account solutions built for scalable search advertising.","advertisingservice-multiplatform-card-4-desc":"Test product creatives faster through video while scaling campaigns with better reach and engagement.","advertisingservice-multiplatform-card-4-desc--plural":"Test product creatives faster through video while scaling campaigns with better reach and engagement.","advertisingservice-accountsetup-process-eyebrow":"Complete Setup Support","advertisingservice-accountsetup-process-eyebrow--plural":"Complete Setup Support","advertisingservice-accountsetup-step-2-label":"Recommendation","advertisingservice-multiplatform-card-6-title":"Snapchat Agency Ad Accounts","advertisingservice-multiplatform-card-6-title--plural":"Snapchat Agency Ad Accounts","advertisingservice-accountsetup-step-5-label":"Configuration","advertisingservice-accountsetup-step-5-label--plural":"Configuration","advertisingservice-realbenefits-card-3-desc":"Support more stable delivery and stronger reach for health category campaigns with whitelisted status.","advertisingservice-realbenefits-card-3-desc--plural":"Support more stable delivery and stronger reach for health category campaigns with whitelisted status.","advertisingservice-threestep-title-accent":"in 3 Clear Steps","advertisingservice-threestep-title-accent--plural":"in 3 Clear Steps","advertisingservice-realbenefits-card-3-title":"Move Beyond Health Category Restrictions","advertisingservice-realbenefits-card-3-title--plural":"Move Beyond Health Category Restrictions","advertisingservice-realbenefits-card-5-alt":"Business account handoff represented by a professional handshake","advertisingservice-realbenefits-card-5-alt--plural":"Business account handoff represented by a professional handshake","advertisingservice-accountsetup-cta":"Talk to an Account Specialist","advertisingservice-accountsetup-cta--plural":"Talk to an Account Specialist","advertisingservice-threestep-step-3-desc":"Start running ads quickly with stable, scalable accounts.","advertisingservice-threestep-step-3-desc--plural":"Start running ads quickly with stable, scalable accounts.","advertisingservice-accountsetup-barrier-1-title":"Verification Complexity","advertisingservice-accountsetup-barrier-1-title--plural":"Verification Complexity","advertisingservice-realbenefits-card-6-title":"Speed Up Creative Approval","advertisingservice-realbenefits-card-6-title--plural":"Speed Up Creative Approval","advertisingservice-realbenefits-card-5-label":"Account Handoff","advertisingservice-realbenefits-card-5-label--plural":"Account Handoff","advertisingservice-realbenefits-card-4-desc":"Expand campaign capacity with agency ad account support built for high-volume growth and massive spend.","advertisingservice-realbenefits-card-4-desc--plural":"Expand campaign capacity with agency ad account support built for high-volume growth and massive spend.","advertisingservice-accountsetup-step-3-desc":"Get guided support for the account application process and required information preparation.","advertisingservice-accountsetup-step-3-desc--plural":"Get guided support for the account application process and required information preparation.","advertisingservice-accountsetup-step-5-title":"Initial Account Setup","advertisingservice-accountsetup-step-5-title--plural":"Initial Account Setup","advertisingservice-threestep-step-2-num":"Step 2","advertisingservice-realbenefits-card-1-desc":"From beauty and wellness to e-commerce, apps, and gaming—reach your audience without platform friction.","advertisingservice-realbenefits-card-1-desc--plural":"From beauty and wellness to e-commerce, apps, and gaming—reach your audience without platform friction.","advertisingservice-accountsetup-title":"Account Setup Should Not","advertisingservice-accountsetup-title--plural":"Account Setup Should Not","advertisingservice-multiplatform-card-2-desc":"Scale Search, Shopping, and Display campaigns with higher approval and reach buyers ready to purchase.","advertisingservice-multiplatform-card-2-desc--plural":"Scale Search, Shopping, and Display campaigns with higher approval and reach buyers ready to purchase.","advertisingservice-multiplatform-card-5-desc":"Scale product campaigns through premium mobile app traffic and performance-driven delivery.","advertisingservice-multiplatform-card-5-desc--plural":"Scale product campaigns through premium mobile app traffic and performance-driven delivery.","advertisingservice-accountsetup-description":"Business verification, regional requirements, billing settings and access permissions can make ad account opening harder than expected. CJ helps organize the process from initial assessment to account handover.","advertisingservice-accountsetup-description--plural":"Business verification, regional requirements, billing settings and access permissions can make ad account opening harder than expected. CJ helps organize the process from initial assessment to account handover.","advertisingservice-accountsetup-title-accent":"Slow Down Your Growth","advertisingservice-accountsetup-title-accent--plural":"Slow Down Your Growth","advertisingservice-multiplatform-card-6-desc":"Reach younger buyers with lower CPMs and scale impulse-friendly product campaigns through visual ads.","advertisingservice-multiplatform-card-6-desc--plural":"Reach younger buyers with lower CPMs and scale impulse-friendly product campaigns through visual ads.","advertisingservice-multiplatform-card-4-title":"TikTok Agency Ad Accounts","advertisingservice-multiplatform-card-4-title--plural":"TikTok Agency Ad Accounts","advertisingservice-multiplatform-card-7-alt":"Taboola Logo","advertisingservice-multiplatform-card-7-alt--plural":"Taboola Logo","advertisingservice-threestep-step-1-title":"Share Your Business Info","advertisingservice-threestep-step-1-title--plural":"Share Your Business Info","advertisingservice-realbenefits-card-2-label":"D2C Results","advertisingservice-realbenefits-card-2-label--plural":"D2C Results","advertisingservice-realbenefits-card-5-title":"Keep Your Ads Running","advertisingservice-realbenefits-card-5-title--plural":"Keep Your Ads Running","advertisingservice-threestep-eyebrow":"Platform-ready accounts at scale","advertisingservice-threestep-eyebrow--plural":"Platform-ready accounts at scale","advertisingservice-accountsetup-step-1-title":"Account Eligibility Review","advertisingservice-accountsetup-step-1-title--plural":"Account Eligibility Review","advertisingservice-realbenefits-card-2-desc":"Drive fast growth with bold, high-impact offers built for D2C brands that need to scale aggressively.","advertisingservice-realbenefits-card-2-desc--plural":"Drive fast growth with bold, high-impact offers built for D2C brands that need to scale aggressively.","advertisingservice-threestep-step-2-title":"Top Up Your Account Easily","advertisingservice-threestep-step-2-title--plural":"Top Up Your Account Easily","advertisingservice-multiplatform-card-3-title":"Bing Agency Ad Accounts","advertisingservice-multiplatform-card-3-title--plural":"Bing Agency Ad Accounts","advertisingservice-realbenefits-card-5-desc":"If your ad account gets disabled, we’ll instantly replace it for you, so your campaigns continue running without interruption.","advertisingservice-realbenefits-card-5-desc--plural":"If your ad account gets disabled, we’ll instantly replace it for you, so your campaigns continue running without interruption.","advertisingservice-accountsetup-step-2-desc":"Receive a suitable solution based on account availability, advertiser eligibility and operational needs.","advertisingservice-accountsetup-step-2-desc--plural":"Receive a suitable solution based on account availability, advertiser eligibility and operational needs.","advertisingservice-multiplatform-card-5-alt":"AppLovin Logo","advertisingservice-multiplatform-card-5-alt--plural":"AppLovin Logo","advertisingservice-accountsetup-process-intro":"A structured service designed to help advertisers move from initial requirements to a properly configured account.","advertisingservice-accountsetup-process-intro--plural":"A structured service designed to help advertisers move from initial requirements to a properly configured account.","advertisingservice-accountsetup-step-5-desc":"Configure account access, permissions, business assets and ke
31657y settings before campaign launch.","advertisingservice-accountsetup-step-5-desc--plural":"Configure account access, permissions, business assets and key settings before campaign launch.","advertisingservice-multiplatform-card-3-alt":"Bing Logo","advertisingservice-multiplatform-card-3-alt--plural":"Bing Logo","advertisingservice-realbenefits-card-2-alt":"Team planning a high-growth D2C advertising strategy","advertisingservice-realbenefits-card-2-alt--plural":"Team planning a high-growth D2C advertising strategy","advertisingservice-threestep-step-2-desc":"Get approved and access your account without delay.","advertisingservice-threestep-step-2-desc--plural":"Get approved and access your account without delay.","advertisingservice-realbenefits-card-4-title":"Scale Without Limits","advertisingservice-realbenefits-card-4-title--plural":"Scale Without Limits","advertisingservice-accountsetup-barrier-3-desc":"Prepare key account settings, user access and billing configuration for a smoother launch.","advertisingservice-accountsetup-barrier-3-desc--plural":"Prepare key account settings, user access and billing configuration for a smoother launch.","advertisingservice-realbenefits-card-3-label":"Health Categorization","advertisingservice-realbenefits-card-3-label--plural":"Health Categorization","entity-support-description":"Starting a company is only the first step. CJ Entity brings company formation, compliance management, document coordination, audit support, and ongoing business services together under one clear service relationship.","entity-support-description--plural":"Starting a company is only the first step. CJ Entity brings company formation, compliance management, document coordination, audit support, and ongoing business services together under one clear service relationship.","entity-hero-feature-2-title":"Enhanced Public-Record Privacy","entity-hero-feature-2-title--plural":"Enhanced Public-Record Privacy","entity-plans-1-best-for":"Trading companies, consultants, agencies, and global e-commerce businesses.","entity-plans-1-best-for--plural":"Trading companies, consultants, agencies, and global e-commerce businesses.","entity-support-card-4-text":"Work directly with a specialist who understands international company structures and e-commerce operations.","entity-support-card-4-text--plural":"Work directly with a specialist who understands international company structures and e-commerce operations.","entity-finder-plan-2-monthly":"$170 USD per month","entity-finder-plan-2-monthly--plural":"$170 USD per month","entity-plans-upfront-label":"Upfront Setup","entity-plans-upfront-label--plural":"Upfront Setup","entity-hero-price-1-unit":"USD","entity-hero-price-1-unit--plural":"USD","entity-support-card-3-title":"Flexible Solutions","entity-support-card-3-title--plural":"Flexible Solutions","entity-finder-plan-1-best-for":"International trading businesses, consultants, agencies, and e-commerce companies that do not require nominee services or a dedicated physical address.","entity-finder-plan-1-best-for--plural":"International trading businesses, consultants, agencies, and e-commerce companies that do not require nominee services or a dedicated physical address.","entity-hero-price-1-label":"Setup Fee From","entity-hero-price-1-label--plural":"Setup Fee From","entity-finder-q1-number":"Question 1","entity-finder-q1-number--plural":"Question 1","entity-finder-title-highlight":"in 10 Seconds","entity-finder-title-highlight--plural":"in 10 Seconds","entity-finder-plan-1-title":"Plan 1: Standard Compliance","entity-finder-plan-1-title--plural":"Plan 1: Standard Compliance","entity-finder-plan-1-upfront":"$900 upfront setup","entity-finder-plan-1-upfront--plural":"$900 upfront setup","entity-hero-title":"Launch Your","entity-hero-title--plural":"Launch Your","entity-hero-image-alt":"Hong Kong skyline and company formation services","entity-hero-image-alt--plural":"Hong Kong skyline and company formation services","entity-finder-plan-4-title":"Plan 4: Ultimate Enterprise Suite","entity-finder-plan-4-title--plural":"Plan 4: Ultimate Enterprise Suite","entity-plans-1-number":"Plan 1","entity-plans-1-number--plural":"Plan 1","entity-plans-1-title":"Standard Compliance","entity-plans-1-title--plural":"Standard Compliance","entity-finder-q1-title":"Do you sell on Amazon or require a dedicated physical business address?","entity-finder-q1-title--plural":"Do you sell on Amazon or require a dedicated physical business address?","entity-finder-plan-1-monthly":"$145 USD per month","entity-finder-plan-1-monthly--plural":"$145 USD per month","entity-hero-feature-2-text":"Nominee director and shareholder options","entity-hero-feature-2-text--plural":"Nominee director and shareholder options","entity-plans-best-for-label":"Best for:","entity-plans-best-for-label--plural":"Best for:","entity-finder-q1-description":"Choose Yes if you require a unique physical address for marketplace, banking, operational, or compliance documentation.","entity-finder-q1-description--plural":"Choose Yes if you require a unique physical address for marketplace, banking, operational, or compliance documentation.","entity-hero-cta-secondary":"Contact Danny","entity-hero-cta-secondary--plural":"Contact Danny","entity-finder-plan-2-best-for":"Global founders who prefer enhanced public-record privacy while retaining beneficial ownership and operational control.","entity-finder-plan-2-best-for--plural":"Global founders who prefer enhanced public-record privacy while retaining beneficial ownership and operational control.","entity-plans-1-features-title":"What is included","entity-plans-1-features-title--plural":"What is included","entity-support-card-1-title":"Clear Pricing","entity-support-card-1-title--plural":"Clear Pricing","entity-hero-trust-3":"Dedicated Support","entity-hero-trust-3--plural":"Dedicated Support","entity-hero-feature-3-text":"One coordinated service for ongoing support","entity-hero-feature-3-text--plural":"One coordinated service for ongoing support","entity-finder-plan-2-tag-3":"Privacy Structure","entity-finder-plan-2-tag-3--plural":"Privacy Structure","entity-finder-plan-2-tag-2":"Nominee Shareholder","entity-finder-plan-2-tag-2--plural":"Nominee Shareholder","entity-finder-q2-description":"Choose Yes if you prefer a professionally structured nominee director and nominee shareholder arrangement.","entity-finder-q2-description--plural":"Choose Yes if you prefer a professionally structured nominee director and nominee shareholder arrangement.","entity-hero-trust-2":"Transparent Pricing","entity-hero-trust-2--plural":"Transparent Pricing","entity-hero-trust-1":"Managed Compliance","entity-hero-trust-1--plural":"Managed Compliance","entity-plans-monthly-suffix":"/ month","entity-plans-monthly-suffix--plural":"/ month","entity-support-card-2-title":"Ongoing Compliance","entity-support-card-2-title--plural":"Ongoing Compliance","entity-finder-q2-number":"Question 2","entity-finder-q2-number--plural":"Question 2","entity-finder-button":"View Recommended Plan","entity-finder-button--plural":"View Recommended Plan","entity-finder-plan-2-upfront":"$1,200 upfront setup","entity-finder-plan-2-upfront--plural":"$1,200 upfront setup","entity-hero-price-2-unit":"USD / MONTH","entity-hero-price-2-unit--plural":"USD / MONTH","entity-support-card-3-text":"Choose standard compliance, enhanced privacy, dedicated address support, or a complete managed service package.","entity-support-card-3-text--plural":"Choose standard compliance, enhanced privacy, dedicated address support, or a complete managed service package.","entity-plans-eyebrow":"Simple, Transparent Plans","entity-plans-eyebrow--plural":"Simple, Transparent Plans","entity-plans-title-highlight":"for Your Business","entity-plans-title-highlight--plural":"for Your Business","entity-finder-plan-3-tag-3":"Verification Preparation","entity-finder-plan-3-tag-3--plural":"Verification Preparation","entity-finder-plan-3-tag-2":"Mail Scanning","entity-finder-plan-3-tag-2--plural":"Mail Scanning","entity-finder-plan-3-tag-1":"Dedicated Address","entity-finder-plan-3-tag-1--plural":"Dedicated Address","entity-hero-disclaimer":"Services are subject to KYC, AML review, document approval, and eligibility. Third-party platform, bank, and marketplace approvals cannot be guaranteed.","entity-hero-disclaimer--plural":"Services are subject to KYC, AML review, document approval, and eligibility. Third-party platform, bank, and marketplace approvals cannot be guaranteed.","entity-finder-plan-4-description":"A fully coordinated package combining enhanced privacy, a dedicated physical address, and ongoing compliance support.","entity-finder-plan-4-description--plural":"A fully coordinated package combining enhanced privacy, a dedicated physical address, and ongoing compliance support.","entity-finder-plan-3-description":"A Hong Kong company solution designed for Amazon sellers and businesses requiring a dedicated physical address.","entity-finder-plan-3-description--plural":"A Hong Kong company solution designed for Amazon sellers and businesses requiring a dedicated physical address.","entity-finder-plan-2-description":"A professionally structured Hong Kong company package with enhanced privacy on publicly accessible corporate records.","entity-finder-plan-2-description--plural":"A professionally structured Hong Kong company package with enhanced privacy on publicly accessible corporate records.","entity-plans-monthly-label":"Monthly Service","entity-plans-monthly-label--plural":"Monthly Service","entity-finder-plan-4-monthly":"$785 USD per month","entity-finder-plan-4-monthly--plural":"$785 USD per month","entity-hero-subheading":"Build Globally. Stay Compliant.","entity-hero-subheading--plural":"Build Globally. Stay Compliant.","entity-finder-plan-1-description":"The essential Hong Kong company formation and ongoing compliance package for international entrepreneurs.","entity-finder-plan-1-description--plural":"The essential Hong Kong company formation and ongoing compliance package for international entrepreneurs.","entity-hero-feature-1-title":"Dedicated Address Options","entity-hero-feature-1-title--plural":"Dedicated Address Options","entity-finder-q2-option-yes":"Yes, I want enhanced public-record privacy","entity-finder-q2-option-yes--plural":"Yes, I want enhanced public-record privacy","entity-finder-q2-option-no":"No, I can be listed publicly","entity-finder-q2-option-no--plural":"No, I can be listed publicly","entity-hero-description":"Set up and manage your Hong Kong company through one coordinated service. From incorporation and company secretary support to audit coordination, enhanced privacy options, and dedicated address solutions, CJ Entity helps global entrepreneurs operate with greater confidence.","entity-hero-description--plural":"Set up and manage your Hong Kong company through one coordinated service. From incorporation and company secretary support to audit coordination, enhanced privacy options, and dedicated address solutions, CJ Entity helps global entrepreneurs operate with greater confidence.","entity-hero-cta-primary":"Find My Plan","entity-hero-cta-primary--
31657plural":"Find My Plan","entity-finder-plan-4-best-for":"High-growth e-commerce companies and international founders seeking a comprehensive corporate support package.","entity-finder-plan-4-best-for--plural":"High-growth e-commerce companies and international founders seeking a comprehensive corporate support package.","entity-finder-recommendation-label":"Your Recommended Plan","entity-finder-recommendation-label--plural":"Your Recommended Plan","entity-finder-plan-4-tag-2":"Dedicated Address","entity-finder-plan-4-tag-2--plural":"Dedicated Address","entity-finder-plan-4-tag-3":"Priority Support","entity-finder-plan-4-tag-3--plural":"Priority Support","entity-finder-plan-4-tag-1":"Enhanced Privacy","entity-finder-plan-4-tag-1--plural":"Enhanced Privacy","entity-support-title-highlight":"Fully Supported","entity-support-title-highlight--plural":"Fully Supported","entity-finder-plan-2-tag-1":"Nominee Director","entity-finder-plan-2-tag-1--plural":"Nominee Director","entity-finder-plan-1-tag-3":"Audit Coordination","entity-finder-plan-1-tag-3--plural":"Audit Coordination","entity-support-card-4-title":"Dedicated Support","entity-support-card-4-title--plural":"Dedicated Support","entity-finder-description":"Answer two quick questions to identify the Hong Kong company formation and compliance plan that best matches your business structure, privacy preferences, and operating requirements.","entity-finder-description--plural":"Answer two quick questions to identify the Hong Kong company formation and compliance plan that best matches your business structure, privacy preferences, and operating requirements.","entity-support-card-2-text":"Stay prepared for annual returns, statutory records, tax filings, audit coordination, and important compliance deadlines.","entity-support-card-2-text--plural":"Stay prepared for annual returns, statutory records, tax filings, audit coordination, and important compliance deadlines.","entity-finder-q1-option-no":"No, a standard registered address is sufficient","entity-finder-q1-option-no--plural":"No, a standard registered address is sufficient","entity-finder-plan-3-upfront":"$3,500 upfront setup","entity-finder-plan-3-upfront--plural":"$3,500 upfront setup","entity-finder-q2-title":"Do you want enhanced privacy on the public company register?","entity-finder-q2-title--plural":"Do you want enhanced privacy on the public company register?","entity-finder-plan-2-title":"Plan 2: Executive Privacy","entity-finder-plan-2-title--plural":"Plan 2: Executive Privacy","entity-finder-q1-option-yes":"Yes, I need a dedicated physical address","entity-finder-q1-option-yes--plural":"Yes, I need a dedicated physical address","entity-plans-1-feature-1":"Hong Kong company incorporation","entity-plans-1-feature-1--plural":"Hong Kong company incorporation","entity-hero-service-4":"Privacy & Address Options","entity-hero-service-4--plural":"Privacy & Address Options","entity-hero-service-2":"Corporate Secretary Support","entity-hero-service-2--plural":"Corporate Secretary Support","entity-hero-service-3":"Audit & Filing Coordination","entity-hero-service-3--plural":"Audit & Filing Coordination","entity-hero-service-1":"Hong Kong Company Formation","entity-hero-service-1--plural":"Hong Kong Company Formation","entity-plans-1-subtitle":"The essential foundation for global startups.","entity-plans-1-subtitle--plural":"The essential foundation for global startups.","entity-finder-plan-1-tag-2":"Company Secretary","entity-finder-plan-1-tag-2--plural":"Company Secretary","entity-finder-plan-1-tag-1":"Company Formation","entity-finder-plan-1-tag-1--plural":"Company Formation","entity-finder-title":"Find Your CJ Entity Plan","entity-finder-title--plural":"Find Your CJ Entity Plan","entity-finder-plan-3-monthly":"$766 USD per month","entity-finder-plan-3-monthly--plural":"$766 USD per month","entity-support-title":"Your Hong Kong Company,","entity-support-title--plural":"Your Hong Kong Company,","entity-hero-price-2-label":"Monthly Support From","entity-hero-price-2-label--plural":"Monthly Support From","entity-finder-plan-4-upfront":"$4,000 upfront setup","entity-finder-plan-4-upfront--plural":"$4,000 upfront setup","entity-finder-best-for-label":"Best For","entity-finder-best-for-label--plural":"Best For","entity-support-card-1-text":"Understand your setup fee and monthly service costs before getting started, with clearly defined plan inclusions.","entity-support-card-1-text--plural":"Understand your setup fee and monthly service costs before getting started, with clearly defined plan inclusions.","entity-finder-plan-3-title":"Plan 3: E-Commerce Growth","entity-finder-plan-3-title--plural":"Plan 3: E-Commerce Growth","entity-finder-plan-3-best-for":"Amazon sellers, international e-commerce brands, and businesses that require dedicated physical address documentation.","entity-finder-plan-3-best-for--plural":"Amazon sellers, international e-commerce brands, and businesses that require dedicated physical address documentation.","entity-plans-title":"Choose the Right Foundation","entity-plans-title--plural":"Choose the Right Foundation","entity-hero-title-strong":"Hong Kong Company.","entity-hero-title-strong--plural":"Hong Kong Company.","entity-hero-feature-1-text":"For eligible business and verification needs","entity-hero-feature-1-text--plural":"For eligible business and verification needs","entity-hero-feature-3-title":"Built for Global Entrepreneurs","entity-hero-feature-3-title--plural":"Built for Global Entrepreneurs","entity-plans-description":"Each plan combines Hong Kong company formation with ongoing compliance support. Choose the level of privacy, address support, and service coverage your business needs.","entity-plans-description--plural":"Eac
31657h plan combines Hong Kong company formation with ongoing compliance support. Choose the level of privacy, address support, and service coverage your business needs.","advertisingservice-lightcta-card-title-site":"Launch Your Ad Account with {{name}}","advertisingservice-lightcta-card-title-site--plural":"Launch Your Ad Account with {{name}}","advertisingservice-hero-panel-title-site":"Why our clients choose {{name}}","advertisingservice-hero-panel-title-site--plural":"Why our clients choose {{name}}","entity-cta-title-highlight-site":"{{name}} Entity?","entity-cta-title-highlight-site--plural":"{{name}} Entity?","entity-hero-description-site":"Set up and manage your Hong Kong company through one coordinated service. From incorporation and company secretary support to audit coordination, enhanced privacy options, and dedicated address solutions, {{name}} Entity helps global entrepreneurs operate with greater confidence.","entity-hero-description-site--plural":"Set up and manage your Hong Kong company through one coordinated service. From incorporation and company secretary support to audit coordination, enhanced privacy options, and dedicated address solutions, {{name}} Entity helps global entrepreneurs operate with greater confidence.","partnershiphome-directory-desc-site":"Search the {{name}} partner ecosystem by business category to find solutions that fit your current growth stage.","partnershiphome-directory-desc-site--plural":"Search the {{name}} partner ecosystem by business category to find solutions that fit your current growth stage.","partnershiphome-hero-explore-site":"Join {{fullName}}","partnershiphome-hero-explore-site--plural":"Join {{fullName}}","partnershiphome-hero-label-site":"{{name}} Partner Network","partnershiphome-hero-label-site--plural":"{{name}} Partner Network","partnershiphome-brand-label-site":"{{name}} Brand Resources","partnershiphome-brand-label-site--plural":"{{name}} Brand Resources","entity-support-description-site":"Starting a company is only the first step. {{name}} Entity brings company formation, compliance management, document coordination, audit support, and ongoing business services together under one clear service relationship.","entity-support-description-site--plural":"Starting a company is only the first step. {{name}} Entity brings company formation, compliance management, document coordination, audit support, and ongoing business services together under one clear service relationship.","entity-finder-title-site":"Find Your {{name}} Entity Plan","entity-finder-title-site--plural":"Find Your {{name}} Entity Plan","entity-fit-title-site":"Is {{name}} Entity Right for Your","entity-fit-title-site--plural":"Is {{name}} Entity Right for Your","entity-process-step-1-text-site":"Use the {{name}} Entity Plan Finder or speak with our specialist to choose the structure and service level that best match your business.","entity-process-step-1-text-site--plural":"Use the {{name}} Entity Plan Finder or speak with our specialist to choose the structure and service level that best match your business.","entity-process-description-site":"{{name}} Entity coordinates each stage of your Hong Kong company setup, from selecting the right service plan and completing KYC to company registration, document delivery, and ongoing compliance support.","entity-process-description-site--plural":"{{name}} Entity coordinates each stage of your Hong Kong company setup, from selecting the right service plan and completing KYC to company registration, document delivery, and ongoing compliance support.","entity-compare-description-site":"Compare the services included in each {{name}} Entity plan and choose the company structure that best matches your privacy, address, and compliance requirements.","entity-compare-description-site--plural":"Compare the services included in each {{name}} Entity plan and choose the company structure that best matches your privacy, address, and compliance requirements.","advertisingservice-lightcta-eyebrow-site":"{{name}} Advertising Account Services","advertisingservice-lightcta-eyebrow-site--plural":"{{name}} Advertising Account Services","advertisingservice-lightcta-description-site":"Open and manage your advertising accounts with professional support from {{name}}. From account setup and compliance guidance to campaign launch, we help you advertise more efficiently and reach the right customers across global markets.","advertisingservice-lightcta-description-site--plural":"Open and manage your advertising accounts with professional support from {{name}}. From account setup and compliance guidance to campaign launch, we help you advertise more efficiently and reach the right customers across global markets.","advertisingservice-lightcta-feature-3-site":"Dedicated {{name}} Support","advertisingservice-lightcta-feature-3-site--plural":"Dedicated {{name}} Support","advertisingservice-accountsetup-description-site":"Business verification, regional requirements, billing settings and access permissions can make ad account opening harder than expected. {{name}} helps organize the process from initial assessment to account handover.","advertisingservice-accountsetup-description-site--plural":"Business verification, regional requirements, billing settings and access permissions can make ad account opening harder than expected. {{name}} helps organize the process from initial assessment to account handover.","advertisingservice-lightcta-button-2-site":"Explore {{name}} Ads","advertisingservice-lightcta-button-2-site--plural":"Explore {{name}}
31657 Ads","--plural":"Returns or exchanges due to product quality or logistics issues or after-sales compensation are not accepted.","common-inventory-warning-tips":"{{count}} item require replenishment","common-inventory-warning-tips--plural":"{{count}} items require replenishment","home-brand-packaging":"Custom Packaging","home-brand-packaging--plural":"Custom Packaging","common-mycj-menu-brand-packaging":"Brand Packaging","common-mycj-menu-brand-packaging--plural":"Brand Packaging","common-mycj-menu-odm":"ODM Service","common-mycj-menu-odm--plural":"ODM Service","common-mycj-menu-cj-entity":"CJ Entity","common-mycj-menu-cj-entity--plural":"CJ Entity","cjbusinesstravel-city-guangzhou-name":"Guangzhou","cjbusinesstravel-city-guangzhou-name--plural":"Guangzhou","cjbusinesstravel-city-guangzhou-nav":"Food & Trade","cjbusinesstravel-city-guangzhou-nav--plural":"Food & Trade","cjbusinesstravel-city-guangzhou-subtitle":"Food, Trade and Southern Culture","cjbusinesstravel-city-guangzhou-subtitle--plural":"Food, Trade and Southern Culture","cjbusinesstravel-xp-1-text":"Explore ancient cities, imperial palaces, temples, traditional gardens, historic neighborhoods, and villages that preserve China’s rich history and culture.","cjbusinesstravel-xp-1-text--plural":"Explore ancient cities, imperial palaces, temples, traditional gardens, historic neighborhoods, and villages that preserve China’s rich history and culture.","cjbusinesstravel-trip-route-4-text":"Choose how long you stay in each city.","cjbusinesstravel-trip-route-4-text--plural":"Choose how long you stay in each city.","cjbusinesstravel-xp-2-tagline":"Cities & innovation","cjbusinesstravel-xp-2-tagline--plural":"Cities & innovation","cjbusinesstravel-trip-route-5-text":"Receive and confirm your personalized itinerary.","cjbusinesstravel-trip-route-5-text--plural":"Receive and confirm your personalized itinerary.","cjbusinesstravel-trip-feature-6-text":"Additional destinations can be added according to your travel goals, schedule, and special requirements.","cjbusinesstravel-trip-feature-6-text--plural":"Additional destinations can be added according to your travel goals, schedule, and special requirements.","cjbusinesstravel-trip-route-5-title":"Confirm Your Journey","cjbusinesstravel-trip-route-5-title--plural":"Confirm Your Journey","cjbusinesstravel-xp-4-category":"Local Lifestyle","cjbusinesstravel-xp-4-category--plural":"Local Lifestyle","cjbusinesstravel-trip-route-2-title":"Select Your Cities","cjbusinesstravel-trip-route-2-title--plural":"Select Your Cities","cjbusinesstravel-trip-description-lead":"We create a personalized China itinerary based on your","cjbusinesstravel-trip-description-lead--plural":"We create a personalized China itinerary based on your","cjbusinesstravel-trip-feature-5-text":"Combine city sightseeing and cultural experiences with optional business meetings and industrial visits.","cjbusinesstravel-trip-feature-5-text--plural":"Combine city sightseeing and cultural experiences with optional business meetings and industrial visits.","cjbusinesstravel-xp-3-title":"Understand China Through Food","cjbusinesstravel-xp-3-title--plural":"Understand China Through Food","cjbusinesstravel-trip-feature-3-title":"Customized Multi-City Routes","cjbusinesstravel-trip-feature-3-title--plural":"Customized Multi-City Routes","cjbusinesstravel-trip-description-tail":". Choose one city for a deeper experience or combine several destinations into a customized multi-city journey.","cjbusinesstravel-trip-description-tail--plural":". Choose one city for a deeper experience or combine several destinations into a customized multi-city journey.","cjbusinesstravel-xp-3-category":"Chinese Food Journey","cjbusinesstravel-xp-3-category--plural":"Chinese Food Journey","cjbusinesstravel-xp-3-name":"Chinese Food","cjbusinesstravel-xp-3-name--plural":"Chinese Food","cjbusinesstravel-svc-eyebrow":"Our Travel Services","cjbusinesstravel-svc-eyebrow--plural":"Our Travel Services","cjbusinesstravel-xp-3-tagline":"Regional flavors","cjbusinesstravel-xp-3-tagline--plural":"Regional flavors","cjbusinesstravel-xp-subheading":"Featured experiences may include:","cjbusinesstravel-xp-subheading--plural":"Featured experiences may include:","cjbusinesstravel-trip-description-strong":"travel dates, budget, interests, and preferred travel style","cjbusinesstravel-trip-description-strong--plural":"travel dates, budget, interests, and preferred travel style","cjbusinesstravel-xp-4-text":"Experience a more authentic side of China through neighborhood life, local markets, traditional activities, public spaces, tea culture, and everyday transportation.","cjbusinesstravel-xp-4-text--plural":"Experience a more authentic side of China through neighborhood life, local markets, traditional activities, public spaces, tea culture, and everyday transportation.","cjbusinesstravel-trip-route-3-title":"Add Experiences","cjbusinesstravel-trip-route-3-title--plural":"Add Experiences","cjbusinesstravel-xp-2-category":"Modern China","cjbusinesstravel-xp-2-category--plural":"Modern China","cjbusinesstravel-trip-feature-2-title":"Single-City Deep Experience","cjbusinesstravel-trip-feature-2-title--plural":"Single-City Deep Experience","cjbusinesstravel-xp-4-title":"Go Beyond Traditional Sightseeing","cjbusinesstravel-xp-4-title--plural":"Go Beyond Traditional Sightseeing","cjbusinesstravel-xp-1-media-title":"Step into China’s Living History","cjbusinesstravel-xp-1-media-title--plural":"Step into China’s Living History","cjbusinesstravel-trip-feature-3-text":"Combine several Chinese cities into one coordinated journey based on distance, transportation, and 
31657your travel interests.","cjbusinesstravel-trip-feature-3-text--plural":"Combine several Chinese cities into one coordinated journey based on distance, transportation, and your travel interests.","cjbusinesstravel-xp-3-text":"Discover the culture of different Chinese regions through local restaurants, traditional dining customs, famous dishes, markets, night streets, and authentic local snacks.","cjbusinesstravel-xp-3-text--plural":"Discover the culture of different Chinese regions through local restaurants, traditional dining customs, famous dishes, markets, night streets, and authentic local snacks.","cjbusinesstravel-trip-planner-subtitle":"Flexible cities, flexible days, and flexible experiences","cjbusinesstravel-trip-planner-subtitle--plural":"Flexible cities, flexible days, and flexible experiences","cjbusinesstravel-xp-2-name":"Modern China","cjbusinesstravel-xp-2-name--plural":"Modern China","cjbusinesstravel-trip-route-3-text":"Combine culture, food, nature, and local life.","cjbusinesstravel-trip-route-3-text--plural":"Combine culture, food, nature, and local life.","cjbusinesstravel-trip-title-lead":"Explore China Through a Journey","cjbusinesstravel-trip-title-lead--plural":"Explore China Through a Journey","cjbusinesstravel-xp-title-em":"Real China","cjbusinesstravel-xp-title-em--plural":"Real China","cjbusinesstravel-xp-4-media-alt":"Authentic Chinese local lifestyle and cultural experience","cjbusinesstravel-xp-4-media-alt--plural":"Authentic Chinese local lifestyle and cultural experience","cjbusinesstravel-svc-1-title":"Transportation Across China","cjbusinesstravel-svc-1-title--plural":"Transportation Across China","cjbusinesstravel-trip-route-4-title":"Set Your Travel Pace","cjbusinesstravel-trip-route-4-title--plural":"Set Your Travel Pace","cjbusinesstravel-trip-feature-1-text":"Your itinerary is planned according to your travel dates, available budget, personal interests, and preferred pace.","cjbusinesstravel-trip-feature-1-text--plural":"Your itinerary is planned according to your travel dates, available budget, personal interests, and preferred pace.","cjbusinesstravel-trip-feature-4-title":"Flexible Travel Duration","cjbusinesstravel-trip-feature-4-title--plural":"Flexible Travel Duration","cjbusinesstravel-trip-route-1-title":"Choose Your Dates","cjbusinesstravel-trip-route-1-title--plural":"Choose Your Dates","cjbusinesstravel-xp-4-tagline":"Everyday China","cjbusinesstravel-xp-4-tagline--plural":"Everyday China","cjbusinesstravel-xp-1-media-alt":"Historic China, traditional architecture and cultural landmarks","cjbusinesstravel-xp-1-media-alt--plural":"Historic China, traditional architecture and cultural landmarks","cjbusinesstravel-trip-planner-title":"Your Personalized China Route","cjbusinesstravel-trip-planner-title--plural":"Your Personalized China Route","cjbusinesstravel-xp-title-lead":"Experience the","cjbusinesstravel-xp-title-lead--plural":"Experience the","cjbusinesstravel-xp-3-chip-1":"Guangzhou Morning Tea","cjbusinesstravel-xp-3-chip-1--plural":"Guangzhou Morning Tea","cjbusinesstravel-xp-4-chip-4":"Old Streets","cjbusinesstravel-xp-4-chip-4--plural":"Old Streets","cjbusinesstravel-xp-3-chip-2":"Chengdu Hot Pot","cjbusinesstravel-xp-3-chip-2--plural":"Chengdu Hot Pot","cjbusinesstravel-xp-4-chip-5":"Local Communities","cjbusinesstravel-xp-4-chip-5--plural":"Local Communities","cjbusinesstravel-xp-2-chip-1":"Shanghai Skyline","cjbusinesstravel-xp-2-chip-1--plural":"Shanghai Skyline","cjbusinesstravel-xp-4-chip-6":"Hanfu Experience","cjbusinesstravel-xp-4-chip-6--plural":"Hanfu Experience","cjbusinesstravel-trip-feature-1-title":"Designed Around Your Preferences","cjbusinesstravel-trip-feature-1-title--plural":"Designed Around Your Preferences","cjbusinesstravel-xp-1-chip-5":"Suzhou Gardens","cjbusinesstravel-xp-1-chip-5--plural":"Suzhou Gardens","cjbusinesstravel-xp-1-chip-6":"Hangzhou West Lake","cjbusinesstravel-xp-1-chip-6--plural":"Hangzhou West Lake","cjbusinesstravel-xp-2-chip-6":"High-Speed Rail","cjbusinesstravel-xp-2-chip-6--plural":"High-Speed Rail","cjbusinesstravel-xp-1-chip-1":"Forbidden City","cjbusinesstravel-xp-1-chip-1--plural":"Forbidden City","cjbusinesstravel-xp-2-chip-3":"Guangzhou Night Views","cjbusinesstravel-xp-2-chip-3--plural":"Guangzhou Night Views","cjbusinesstravel-xp-3-chip-5":"Beijing Roast Duck","cjbusinesstravel-xp-3-chip-5--plural":"Beijing Roast Duck","cjbusinesstravel-xp-1-chip-2":"Great Wall","cjbusinesstravel-xp-1-chip-2--plural":"Great Wall","cjbusinesstravel-xp-2-title":"Experience China’s Modern Energy","cjbusinesstravel-xp-2-title--plural":"Experience China’s Modern Energy","cjbusinesstravel-xp-2-chip-2":"Shenzhen Innovation","cjbusinesstravel-xp-2-chip-2--plural":"Shenzhen Innovation","cjbusinesstravel-xp-3-chip-6":"Night Markets","cjbusinesstravel-xp-3-chip-6--plural":"Night Markets","cjbusinesstravel-xp-4-chip-1":"Local Markets","cjbusinesstravel-xp-4-chip-1--plural":"Local Markets","cjbusinesstravel-xp-1-chip-3":"Xi’an Ancient City","cjbusinesstravel-xp-1-chip-3--plural":"Xi’an Ancient City","cjbusinesstravel-xp-2-chip-5":"Chongqing Cityscape","cjbusinesstravel-xp-2-chip-5--plural":"Chongqing Cityscape","cjbusinesstravel-xp-3-chip-3":"Xi’an Noodles","cjbusinesstravel-xp-3-chip-3--plural":"Xi’an Noodles","cjbusinesstravel-xp-4-chip-2":"Traditional Tea Houses","cjbusinesstravel-xp-4-chip-2--plural":"Traditional Tea Houses","cjbusinesstravel-xp-1-chip-4":"Terracotta Army","cjbusinesstravel-xp-1-chip-4--plural":"Terracotta Army","cjbusinesstravel-xp-2-chip-4":"Hangzhou Digital Economy","cjbusinesstravel-xp-2-chip-4--plural":"Hangzhou Digital Economy","cjbusinesstravel-xp-3-chip-4":"Shanghai Cuisine","cjbusinesstravel-xp-3-chip-4--plural":"Shanghai Cuisine","cjbusinesstravel-xp-4-chip-3":"City Parks","cjbusinesstravel-xp-4-chip-3--plural":"City Parks","cjbusinesstravel-xp-intro":"Explore China through its history, modern cities, regional cuisine, and everyday local life. Select an experience to preview what can be included in your personalized journey.","cjbusinesstravel-xp-intro--plural":"Explore China through its history, modern cities, regional cuisine, and everyday local life. Select an experience to preview what can be included in your personalized journey.","cjbusinesstravel-trip-feature-2-text":"Choose one destination and explore its culture, food, landmarks, neighborhoods, and local lifestyle in greater depth.","cjbusinesstravel-trip-feature-2-text--plural":"Choose one destination and explore its culture, food, landmarks, neighborhoods, and local lifestyle in greater depth.","cjbusinesstravel-xp-3-media-title":"Taste China, One City at a Time","cjbusinesstravel-xp-3-media-title--plural":"Taste China, One City at a Time","cjbusinesstravel-xp-2-media-title":"Discover the Energy of Modern China","cjbusinesstravel-xp-2-media-title--plural":"Discover the Energy of Modern China","cjbusinesstravel-trip-title-em":"Designed for You","cjbusinesstravel-trip-title-em--plural":"Designed for You","cjbusinesstravel-xp-1-tagline":"History & heritage","cjbusinesstravel-xp-1-tagline--plural":"History & heritage","cjbusinesstravel-xp-rail-label":"Featured China experiences","cjbusinesstravel-xp-rail-label--plural":"Featured China experiences","cjbusinesstravel-xp-4-media-title":"Experience China Like a Local","cjbusinesstravel-xp-4-media-title--plural":"Experience China Like a Local","cjbusinesstravel-svc-description":"From transportation and accommodation to sightseeing and itinerary coordination, our local team helps manage the details of your journey across China.","cjbusinesstravel-svc-description--plural":"From transportation and accommodation to sightseeing and itinerary coordination, our local team helps manage the details of your journey across China.","cjbusinesstravel-trip-feature-4-text":"Adjust the total number of travel days and decide how long you would like to stay in each destination.","cjbusinesstravel-trip-feature-4-text--plural":"Adjust the total number of travel days and decide how long you would like to stay in each destination.","cjbusinesstravel-xp-eyebrow":"Featured China Experiences","cjbusinesstravel-xp-eyebrow--plural":"Featured China Experiences","cjbusinesstravel-xp-1-media-label":"History & Heritage","cjbusinesstravel-xp-1-media-label--plural":"History & Heritage","cjbusinesstravel-xp-3-media-alt":"Traditional Chinese food and local dining experience","cjbusinesstravel-xp-3-media-alt--plural":"Traditional Chinese food and local dining experience","cjbusinesstravel-xp-2-media-label":"Modern Cities","cjbusinesstravel-xp-2-media-label--plural":"Modern Cities","cjbusinesstravel-trip-feature-6-title":"More Chinese Cities Available","cjbusinesstravel-trip-feature-6-title--plural":"More Chinese Cities Available","cjbusinesstravel-trip-route-1-text":"Travel at a time that works for you.","cjbusinesstravel-trip-route-1-text--plural":"Travel at a time that works for you.","cjbusinesstravel-trip-route-2-text":"Choose one city or multiple destinations.","cjbusinesstravel-trip-route-2-text--plural":"Choose one city or multiple destinations.","cjbusinesstravel-svc-title-lead":"Travel China with","cjbusinesstravel-svc-title-lead--plural":"Travel China with","cjbusinesstravel-xp-4-media-label":"Local Lifestyle","cjbusinesstravel-xp-4-media-label--plural":"Local Lifestyle","cjbusinesstravel-xp-3-media-label":"Food Journey","cjbusinesstravel-xp-3-media-label--plural":"Food Journey","cjbusinesstravel-xp-2-media-alt":"Modern Chinese city skyline and urban lifestyle","cjbusinesstravel-xp-2-media-alt--plural":"Modern Chinese city skyline and urban lifestyle","cjbusinesstravel-trip-feature-5-title":"Travel and Business Combined","cjbusinesstravel-trip-feature-5-title--plural":"Travel and Business Combined","cjbusinesstravel-xp-1-category":"Historic China","cjbusinesstravel-xp-1-category--plural":"Historic China","cjbusinesstravel-xp-2-text":"Discover modern cities, technology, digital development, innovative industries, striking skylines, and the distinctive rhythm of contemporary urban life.","cjbusinesstravel-xp-2-text--plural":"Discover modern cities, technology, digital development, innovative industries, striking skylines, and the distinctive rhythm of contemporary urban life.","cjbusinesstravel-xp-4-name":"Local Lifestyle","cjbusinesstravel-xp-4-name--plural":"Local Lifestyle","cjbusinesstravel-xp-1-name":"Historic China","cjbusinesstravel-xp-1-name--plural":"Historic China","cjbusinesstravel-xp-1-title":"Discover China’s Cultural Heritage","cjbusinesstravel-xp-1-title--plural":"Discover China’s Cultural Heritage","cjbusinesstravel-trip-tag-2":"Customized Multi-City Journey","cjbusinesstravel-trip-tag-2--plural":"Customized Multi-City Journey","cjbusinesstravel-trip-tag-3":"Flexible Travel Duration","cjbusinesstravel-trip-tag-3--plural":"Flexible Travel Duration","cjbusinesstravel-svc-title-em":"Comfort and Confidence","cjbusinesstravel-svc-title-em--plural":"Comfort and Confidence","cjbusinesstravel-trip-tag-1":"Single-City Deep Experience","cjbusinesstravel-trip-tag-1--plural":"Single-City Deep Experience","cjbusinesstravel-trip-tag-4":"Optional Business Activities","cjbusinesstravel-trip-tag-4--plural":"Optional Business Activities","amount-changed-refresh":"Got it, refresh","amount-changed-refresh--plural":"Got it, refresh","amount-changed-amount-due":"Amount due","amount-changed-amount-due--plural":"Amount due","amount-changed-col-order":"Order Number","amount-changed-col-changes":"Changes","amount-changed-col-changes--plural":"Changes","amount-changed-col-reference":"Reference Number","amount-changed-title":"Payment details updated, please review before paying","amount-changed-title--plural":"Payment details updated, please review before paying","amount-changed-content":"The following orders were updated before your payment. Please review the latest details before paying:","amount-changed-content--plural":"The following orders were updated before your payment. Please review the latest details before paying:","footer-about-cjdropshipping":"About CJdropshipping","footer-about-cjdropshipping--plural":"About CJdropshipping","footer-integrations":"Integrations","footer-integrations--plural":"Integrations","footer-solutions":"Solutions","footer-solutions--plural":"Solutions","footer-whistleblower
31657-policy":"Whistleblower Policy","footer-whistleblower-policy--plural":"Whistleblower Policy","footer-mercado":"Mercado","footer-sourcing-agent":"Sourcing Agent","footer-sourcing-agent--plural":"Sourcing Agent","footer-partners":"Partners","footer-partners--plural":"Partners","footer-temu":"Temu","footer-temu--plural":"Temu","footer-shoplazza":"Shoplazza","footer-shoplazza--plural":"Shoplazza","footer-tiktok-shop":"TikTok Shop","footer-tiktok-shop--plural":"TikTok Shop","footer-nuvemshop":"Nuvemshop","footer-wed2c":"WED2C","footer-aliexpress":"AliExpress","footer-etsy":"Etsy","footer-payment-agency":"Payment Agency","footer-payment-agency--plural":"Payment Agency","footer-follow-cjdropshipping":"Follow CJdropshipping","footer-follow-cjdropshipping--plural":"Follow CJdropshipping","footer-source-and-manage-anywhere-get-the-cjdropshipping-app":"Source & Manage Anywhere - Get the CJdropshipping App","footer-source-and-manage-anywhere-get-the-cjdropshipping-app--plural":"Source & Manage Anywhere - Get the CJdropshipping App","footer-cjdropshipping-vs-others":"CJdropshipping vs Others","footer-cjdropshipping-vs-others--plural":"CJdropshipping vs Others","footer-product-sourcing-request":"Product Sourcing Request","footer-product-sourcing-request--plural":"Product Sourcing Request","footer-quality-assurance":"Quality Assurance","footer-quality-assurance--plural":"Quality Assurance","footer-global-products":"Global Products","order-summary-fee-bill":"Bill","order-summary-fee-bill--plural":"Bill","ai-assistant-case-empty":"Case content is unavailable.","ai-assistant-case-empty--plural":"Case content is unavailable.","ai-assistant-send":"Send","ai-assistant-view-detail":"View detail","ai-assistant-view-detail--plural":"View detail","ai-assistant-select-product":"Select product","ai-assistant-select-product--plural":"Select product","ai-assistant-product-added-success":"Added to my products successfully.","ai-assistant-search-at-least-3-characters":"Please enter at least 3 characters to search","ai-assistant-search-at-least-3-characters--plural":"Please enter at least 3 characters to search","ai-assistant-failed-to-load-messages":"Failed to load earlier messages.","ai-assistant-failed-to-load-messages--plural":"Failed to load earlier messages.","ai-assistant-input-max-length-reached":"Maximum 10,000 characters reached.","ai-assistant-input-max-length-reached--plural":"Maximum 10,000 characters reached.","ai-assistant-stop-generating":"Stop generating","ai-assistant-stop-generating--plural":"Stop generating","admin-select-conversation":"Select a conversation from the dropdown above to view messages.","admin-select-conversation--plural":"Select a conversation from the dropdown above to view messages.","ai-assistant-product-add-failed":"The server is busy now. Please try again later.","ai-assistant-opp-type-blue-ocean":"Blue ocean","ai-assistant-opp-type-blue-ocean--plural":"Blue ocean","ai-assistant-opp-metric-competition":"Competition","ai-assistant-opp-metric-competition--plural":"Competition","ai-assistant-opp-metric-growth":"Growth","ai-assistant-opp-metric-growth--plural":"Growth","ai-assistant-opp-metric-monthly-sales":"Monthly sales","ai-assistant-opp-metric-monthly-sales--plural":"Monthly sales","ai-assistant-recommended":"Recommended","ai-assistant-order-place-your-choice":"Your choice","ai-assistant-order-place-your-choice--plural":"Your choice","ai-assistant-opp-metric-ad-density":"Ad density","ai-assistant-opp-metric-ad-density--plural":"Ad density","ai-assistant-opp-score":"Score","ai-assistant-opp-score--plural":"Score","ai-assistant-opp-rep-market-price":"Market price","ai-assistant-opp-rep-market-price--plural":"Market price","ai-assistant-opp-metric-ad-share":"Ad share","ai-assistant-opp-metric-ad-share--plural":"Ad share","ai-assistant-opp-low-confidence":"Low confidence","ai-assistant-opp-low-confidence--plural":"Low confidence","ai-assistant-candidates-empty-neutral":"No candidates available to show.","ai-assistant-candidates-empty-neutral--plural":"No candidates available to show.","ai-assistant-opp-type-golden-cross":"Golden cross","ai-assistant-opp-type-golden-cross--plural":"Golden cross","ai-assistant-opp-type-watch":"Watch","ai-assistant-opp-type-watch--plural":"Watch","ai-assistant-opp-representatives":"Market reference · not CJ products","ai-assistant-opp-representatives--plural":"Market reference · not CJ products","ai-assistant-opp-budget-overflow":"Some content was left out for length — ask about a category to see the rest.","ai-assistant-opp-budget-overflow--plural":"Some content was left out for length — ask about a category to see the rest.","ai-assistant-open-in-full-page":"Opens the full page","ai-assistant-open-in-full-page--plural":"Opens the full page","ai-assistant-logistics-estimation":"Logistics Estimation","ai-assistant-logistics-estimation--plural":"Logistics Estimation","ai-assistant-report":"Report","ai-assistant-exec-starting":"Getting things under way","ai-assistant-exec-starting--plural":"Getting things under way","ai-assistant-workspace-generating":"Workspace is being generated","ai-assistant-workspace-generating--plural":"Workspace is being generated","ai-assistant-scroll-to-latest":"Scroll to latest","ai-assistant-scroll-to-latest--plural":"Scroll to latest","ai-assistant-workspace-preparing":"Preparing workspace content...","ai-assistant-workspace-preparing--plural":"Preparing workspace content...","ai-assistant-exec-done":"All steps finished","ai-assistant-exec-done--plural":"All steps finished","ai-assistant-copy-message":"Copy message","ai-assistant-copy-message--plural":"Copy message","ai-assistant-no-workspace-content":"No w
31657orkspace content","ai-assistant-no-workspace-content--plural":"No workspace content","ai-assistant-similar-candidates":"CJ Similar Candidates","ai-assistant-similar-candidates--plural":"CJ Similar Candidates","ai-assistant-sourcing-request":"Sourcing Request","ai-assistant-opportunity-categories":"Opportunity Categories","ai-assistant-opportunity-categories--plural":"Opportunity Categories","ai-assistant-exec-waiting":"Lining up this batch","ai-assistant-exec-waiting--plural":"Lining up this batch","ai-assistant-exec-show-all":"Show earlier steps","ai-assistant-exec-show-all--plural":"Show earlier steps","ai-assistant-task-tab-finished":"Done","ai-assistant-task-tab-finished--plural":"Done","ai-assistant-done":"Done","ai-assistant-done--plural":"Done","ai-assistant-my-stores":"View my stores","ai-assistant-my-stores--plural":"View my stores","ai-assistant-decision-remaining":"Still needed","ai-assistant-decision-remaining--plural":"Still needed","ai-assistant-stores-in-task":"Stores in this task","ai-assistant-stores-in-task--plural":"Stores in this task","ai-assistant-task-close-title":"Close this task?","ai-assistant-task-close-title--plural":"Close this task?","ai-assistant-dec-processing":"Processing","ai-assistant-max-6-images-can-be-uploaded":"Up to 6 images can be uploaded.","ai-assistant-max-6-images-can-be-uploaded--plural":"Up to 6 images can be uploaded.","ai-assistant-dec-on-hold":"on hold","ai-assistant-dec-on-hold--plural":"on hold","ai-assistant-task-got-it":"Got it","ai-assistant-task-tab-running":"Processing","ai-assistant-task-cancel-title":"Cancel this queued task?","ai-assistant-task-cancel-title--plural":"Cancel this queued task?","ai-assistant-task-status-partial":"Partly done","ai-assistant-task-status-partial--plural":"Partly done","ai-assistant-stores-truncated":"More stores not listed","ai-assistant-stores-truncated--plural":"More stores not listed","ai-assistant-task-cancel-go":"Cancel task","ai-assistant-task-cancel-go--plural":"Cancel task","ai-assistant-copy-for-support":"Copy for support","ai-assistant-copy-for-support--plural":"Copy for support","ai-assistant-task-status-pending":"Queued","ai-assistant-task-status-pending--plural":"Queued","ai-assistant-dec-unknown":"unknown","ai-assistant-dec-unknown--plural":"unknown","ai-assistant-task-status-running":"Processing","ai-assistant-task-tab-pending":"Queued","ai-assistant-task-tab-pending--plural":"Queued","ai-assistant-task-close-go":"Close task","ai-assistant-task-close-go--plural":"Close task","ai-assistant-task-cancel":"Cancel","ai-assistant-need-decision-suffix":"need your decision","ai-assistant-need-decision-suffix--plural":"need your decision","ai-assistant-task-empty":"No running task in this conversation. Ask the assistant to place & pay orders and the progress will appear here.","ai-assistant-task-empty--plural":"No running task in this conversation. Ask the assistant to place & pay orders and the progress will appear here.","ai-assistant-select-all-none":"Select all / none","ai-assistant-select-all-none--plural":"Select all / none","ai-assistant-orders-succeeded":"Succeeded","ai-assistant-task-collapse":"Collapse","ai-assistant-opened-handle-then-done":"Opened — handle it, then mark done","ai-assistant-opened-handle-then-done--plural":"Opened — handle it, then mark done","ai-assistant-task-already-final-title":"This task is already finished","ai-assistant-task-already-final-title--plural":"This task is already finished","ai-assistant-copied":"Copied","ai-assistant-copied--plural":"Copied","ai-assistant-task-cancel-too-late-body":"It left the queue before I could cancel it, so nothing changed. Use “Close” to stop it instead.","ai-assistant-task-cancel-too-late-body--plural":"It left the queue before I could cancel it, so nothing changed. Use “Close” to stop it instead.","ai-assistant-process-store-orders":"Process Store Orders","ai-assistant-process-store-orders--plural":"Process Store Orders","ai-assistant-task-status-interrupted":"Interrupted","ai-assistant-task-status-interrupted--plural":"Interrupted","ai-assistant-task-status-failed":"Failed","ai-assistant-task-expand":"Expand","ai-assistant-order":"Order","ai-assistant-dec-done":"done","ai-assistant-dec-done--plural":"done","ai-assistant-paid":"Paid","ai-assistant-view-per-order":"View per-order","ai-assistant-view-per-order--plural":"View per-order","ai-assistant-task-already-final-body":"Nothing changed — this task had already wrapped up on its own. Current status: {status}.","ai-assistant-task-already-final-body--plural":"Nothing changed — it had already wrapped up on its own. Current status:","ai-assistant-not-done-yet":"Not done yet","ai-assistant-not-done-yet--plural":"Not done yet","ai-assistant-orders-failed":"Failed","ai-assistant-task-detail
31657s":"Details","ai-assistant-remove":"Remove","ai-assistant-on-hold":"on hold","ai-assistant-on-hold--plural":"on hold","ai-assistant-task-close":"Close","ai-assistant-task-gone":"This task no longer exists.","ai-assistant-task-gone--plural":"This task no longer exists.","ai-assistant-task-cancel-too-late-title":"This task has already started","ai-assistant-task-cancel-too-late-title--plural":"This task has already started","ai-assistant-needs-decision":"Needs your decision","ai-assistant-needs-decision--plural":"Needs your decision","ai-assistant-task-status-success":"Done","ai-assistant-task-status-success--plural":"Done","ai-assistant-task-status-canceled":"Canceled","ai-assistant-task-keep":"Keep it","ai-assistant-task-keep--plural":"Keep it","ai-assistant-task-tab-empty":"Nothing here right now.","ai-assistant-task-tab-empty--plural":"Nothing here right now.","ai-assistant-decision-none-checked":"These orders will stay on hold. Select at least one order to proceed.","ai-assistant-decision-none-checked--plural":"These orders will stay on hold. Select at least one order to proceed.","ai-assistant-stores":"Stores","ai-assistant-stores--plural":"Stores","ai-assistant-task-not-yours":"This task does not belong to the current account. You can start a new one.","ai-assistant-task-not-yours--plural":"This task does not belong to the current account. You can start a new one.","ai-assistant-orders-on-hold":"On hold","ai-assistant-orders-on-hold--plural":"On hold","ai-assistant-task-close-body":"Orders already paid stay done; any unresolved exceptions are kept on hold in the queue — you can reopen it later.","ai-assistant-task-close-body--plural":"Orders already paid stay done; any unresolved exceptions are kept on hold in the queue — you can reopen it later.","ai-assistant-dec-pending":"pending","ai-assistant-dec-pending--plural":"pending","ai-assistant-total-to-pay":"Total you\'ll pay","ai-assistant-total-to-pay--plural":"Total you\'ll pay","ai-assistant-store-auth-wait-stream":"You can submit once the reply above is complete.","ai-assistant-store-auth-wait-stream--plural":"You can submit once the reply above is complete.","ai-assistant-store-auth-unsupported":"This card needs a newer version of the app. Please update and try again.","ai-assistant-store-auth-unsupported--plural":"This card needs a newer version of the app. Please update and try again.","ai-assistant-agreement-privacy-policy":"Privacy Policy","ai-assistant-orders":"Orders","ai-assistant-amount-pending":"Amounts are still being calculated.","ai-assistant-amount-pending--plural":"Amounts are still being calculated.","ai-assistant-coupon-change-failed":"Couldn\'t apply this coupon — it may have just expired. Please review and try again.","ai-assistant-coupon-change-failed--plural":"Couldn\'t apply this coupon — it may have just expired. Please review and try again.","ai-assistant-product-quantity":"Product Quantity","ai-assistant-product-quantity--plural":"Product Quantity","ai-assistant-store-auth-authorized":"This store is connected now.","ai-assistant-store-auth-authorized--plural":"This store is connected now.","ai-assistant-coupon":"Coupon","ai-assistant-sync-range":"Sync Range","ai-assistant-sync-range--plural":"Sync Range","ai-assistant-variant-selection-limit":"You can select up to 3 variants.","ai-assistant-variant-selection-limit--plural":"You can select up to 3 variants.","ai-assistant-recheck":"Recheck","ai-assistant-date-start":"Start","ai-assistant-pay-expires-in":"Pay expires in","ai-assistant-pay-expires-in--plural":"Pay expires in","ai-assistant-coupon-none":"No coupon","ai-assistant-coupon-none--plural":"No coupon","ai-assistant-pay-remind-once":"We haven\'t confirmed the payment for this batch yet. You can pay again or come back later.","ai-assistant-pay-remind-once--plural":"We haven\'t confirmed the payment for this batch yet. You can pay again or come back later.","ai-assistant-product-cost":"Product Cost","ai-assistant-store-auth-timeout":"We couldn\'t confirm the result. Please don\'t submit again — ask me to check it for you.","ai-assistant-store-auth-timeout--plural":"We couldn\'t confirm the result. Please don\'t submit again — ask me to check it for you.","ai-assistant-payment-round":"Payment roun
31657d","ai-assistant-payment-round--plural":"Payment round","ai-assistant-task-card-done":"Done","ai-assistant-task-card-done--plural":"Done","ai-assistant-coupon-applying":"Applying…","ai-assistant-coupon-applying--plural":"Applying…","ai-assistant-store-not-found":"No matching store","ai-assistant-store-not-found--plural":"No matching store","ai-assistant-pay-on-cashier":"Pay via cashier","ai-assistant-pay-on-cashier--plural":"Pay via cashier","ai-assistant-cost-diff-same":"same","ai-assistant-cost-diff-same--plural":"same","ai-assistant-payment-summary":"Payment Summary","ai-assistant-payment-summary--plural":"Payment Summary","ai-assistant-max-10mb-per-file-up-to-6-images":"Max 10MB per file. Up to 6 images can be uploaded.","ai-assistant-max-10mb-per-file-up-to-6-images--plural":"Max 10MB per file. Up to 6 images can be uploaded.","ai-assistant-coupon-confirm":"Confirm coupon change","ai-assistant-coupon-confirm--plural":"Confirm coupon change","ai-assistant-price-locked":"Price locked, will be recalculated","ai-assistant-price-locked--plural":"Price locked, will be recalculated","ai-assistant-open-product-detail":"Open product detail","ai-assistant-open-product-detail--plural":"Open product detail","ai-assistant-cost-difference":"Difference","ai-assistant-duty":"Duty","ai-assistant-duty--plural":"Duty","ai-assistant-store-auth-reveal":"Show","ai-assistant-store-auth-reveal--plural":"Show","ai-assistant-agreement-user-agreement":"User Agreement","ai-assistant-store-auth-all-required":"All fields are required","ai-assistant-store-auth-all-required--plural":"All fields are required","ai-assistant-sourcing-request-result":"Sourcing Request Result","ai-assistant-sourcing-request-result--plural":"Sourcing Request Result","ai-assistant-generating-pdf":"Generating PDF...","ai-assistant-generating-pdf--plural":"Generating PDF...","ai-assistant-coupon-auto":"Best coupon (automatic)","ai-assistant-coupon-auto--plural":"Best coupon (automatic)","ai-assistant-agreement-refund-policy":"Refund, Resend & Returns Policy","ai-assistant-agreement-refund-policy--plural":"Refund, Resend & Returns Policy","ai-assistant-store-auth-hide":"Hide","ai-assistant-candidates-trimmed":"Some candidates are not all shown.","ai-assistant-candidates-trimmed--plural":"Some candidates are not all shown.","ai-assistant-date-end":"End","ai-assistant-view-order-list":"View order list","ai-assistant-view-order-list--plural":"View order list","ai-assistant-store-auth-link-blocked":"This authorization link looks invalid, so it was not opened. Please contact support.","ai-assistant-store-auth-link-blocked--plural":"This authorization link looks invalid, so it was not opened. Please contact support.","ai-assistant-export-pdf-failed":"Failed to generate PDF. Please try again.","ai-assistant-export-pdf-failed--plural":"Failed to generate PDF. Please try again.","ai-assistant-not-now-review-first":"Not now — I\'ll review first","ai-assistant-not-now-review-first--plural":"Not now — I\'ll review first","ai-assistant-pay":"Pay","ai-assistant-view-details":"View details","ai-assistant-view-details--plural":"View details","ai-assistant-task-card-expired":"Expired","ai-assistant-form-required-hint":"Please fill the required fields.","ai-assistant-form-required-hint--plural":"Please fill the required fields.","ai-assistant-close-1":"Queued task canceled.","ai-assistant-close-1--plural":"Queued task canceled.","ai-assistant-close-3":"Task closed automatically after a long wait.","ai-assistant-close-3--plural":"Task closed automatically after a long wait.","ai-assistant-close-2":"Task closed manually.","ai-assistant-close-2--plural":"Task closed manually.","ai-assistant-order-fail-9019":"This order is already paid and has been removed from this run.","ai-assistant-order-fail-9019--plural":"This order is already paid and has been removed from this run.","ai-assistant-pipe-done":"Done","ai-assistant-pipe-done--plural":"Done","ai-assistant-order-fail-9018":"This order cannot be placed again in its current status.","ai-assistant-order-fail-9018--plural":"This order cannot be placed again in its current status.","ai-assistant-order-fail-9017":"We could not find this order in the selected store.","ai-assistant-order-fail-9017--plural":"We could not find this order in the selected store.","ai-assistant-order-fail-9016":"This order did not meet the submission requirements. Check the order list for details.","ai-assistant-order-fail-9016--plural":"This order did not meet the submission requirements. Check the order list for details.","ai-assistant-pipe-fix-exceptions":"Fix exceptions","ai-assistant-pipe-fix-exceptions--plural":"Fix exceptions","ai-assistant-order-fail-9013":"This order has an open dispute and cannot be placed.","ai-assistant-order-fail-9013--plural":"This order has an open dispute and cannot be placed.","ai-assistant-step-validate":"Validating orders","ai-assistant-step-validate--plural":"Validating orders","ai-assistant-step-pay-confirm":"Confirming","ai-assistant-step-pay-confirm--plural":"Confirming","ai-assistant-step-submit":"Submitting orders","ai-assistant-step-submit--plural":"Submitting orders","ai-assistant-abort-3":"The task ran past its continuation limit and stopped.","ai-assistant-abort-3--plural":"The task ran past its continuation limit and stopped.","ai-assistant-abort-2":"The queue was full, so the task stopped. You can start it again.","ai-assistant-abort-2--plural":"The queue was full, so the task stopped. You can start it again.","ai-assistant-abort-5":"One of the steps failed.","ai-assistant-abort-5--plural":"One of the steps failed. See the step list above.","ai-assistant-abort-4":"The saved credentials were missing, so the task stopped.","ai-assistant-abort-4--plural":"The saved credentials were missing, so the task stopped.","ai-assistant-abort-1":"Your login session expired, so the task stopped.","ai-assistant-abort-1--plural":"Your login session expired, so the task stopped.","ai-assistant-task-canceled":"The task was canceled.","ai-assistant-task-canceled--plural":"The task was canceled.","ai-assistant-abort-7":"The task could not recover after submitting.","ai-assistant-abort-7--plural":"The task could not recover after submitting.","ai-assistant-abort-6":"The amounts did not match at submission, so nothing was charged.","ai-assistant-abort-6--plural":"The amounts did not match at submission, so nothing was charged.","ai-assistant-abort-8":"The pulled orders did not match the list, so the task stopped.","ai-assistant-abort-8--plural":"The pulled orders did not match the list, so the task stopped.","ai-assistant-step-pick":"Adding to Orders Picking","ai-assistant-step-pick--plural":"Adding to Orders Picking","ai-assistant-task-success":"All done.","ai-assistant-task-success--plural":"All done.","ai-assistant-task-failed":"The task failed.","ai-assistant-task-failed--plural":"The task failed.","ai-assistant-task-center":"Tasks","ai-assistant-task-center--plural":"Tasks","ai-assistant-order-fail-generic":"This batch wasn\'t paid. Please try again later or check the order list.","ai-assistant-order-fail-generic--plural":"This batch wasn\'t paid. Please try again later or check the order list.","ai-assistant-pipe-pull-triage":"Pull & triage","ai-assistant-pipe-pull-triage--plural":"Pull & triage","ai-assistant-task-partial":"Done. Some orders are still on hold.","ai-assistant-task-partial--plural":"Done. Some orders are still on hold.","ai-assistant-step-collecting-orders":"Collecting orders","ai-assistant-step-collecting-orders--plural":"Collecting orders","ai-assistant-step-pay-precheck":"Pre-checking payment","ai-assistant-step-pay-precheck--plural":"Pre-checking payment","ai-assistant-task-interrupted":"The task was interrupted.","ai-assistant-task-interrupted--plural":"The task was interrupted.","ai-assistant-step-sync-store":"Syncing store orders","ai-assistant-step-sync-store--plural":"Syncing store orders","ai-assistant-order-fail-9009":"Skipped in this run (duplicate or out of scope).","ai-assistant-order-fail-9009--plural":"Skipped in this run (duplicate or out of scope).","ai-assistant-order-fail-9008":"Store sync timed out. Please try again later.","ai-assistant-order-fail-9008--plural":"Store sync timed out. Please try again later.","ai-assistant-order-fail-9007":"We could not create the payment order. Please try again.","ai-assistant-order-fail-9007--plural":"We could not create the payment order. Please try again.","ai-assistant-order-fail-9005":"The product weight changed. The amount needs to be confirmed again.","ai-assistant-order-fail-9005--plural":"The product weight changed. The amount needs to be confirmed again.","ai-assistant-order-fail-9004":"This bundle has a configuration error and cannot be placed.","ai-assistant-order-fail-9004--plural":"This bundle has a configuration error and cannot be placed.","ai-assistant-order-fail-9003":"Fulfillment details (customs, weight, declaration) are missing for this product.","ai-assistant-order-fail-9003--plural":"Fulfillment details (customs, weight, declaration) are missing for this product.","ai-assistant-step-pay-execute":"Paying","ai-assistant-order-fail-9002":"This order is incomplete. Check the sourcing progress under Incomplete Orders.","ai-assistant-order-fail-9002--plural":"This order is incomplete. Check the sourcing progress under Incomplete Orders.","ai-assistant-pipe-pay-normal":"Pay normal orders","ai-assistant-pipe-pay-normal--plural":"Pay normal orders","ai-assistant-order-fail-9001":"Something went wrong with this order. Please try again later.","ai-assistant-order-fail-9001--plural":"Something went wrong with this order. Please try again later.","ai-assistant-step-precheck":"Pre-checking orders","ai-assistant-step-precheck--plural":"Pre-checking orders","ai-assistant-agreement":"By clicking, you agree to the {userAgreement}, {privacyPolicy} and {refundPolicy}.","ai-assistant-agreement--plural":"By clicking, you agree to the {userAgreement}, {privacyPolicy} and {refundPolicy}.","ai-assistant-stores-all":"All Stores","ai-assistant-stores-all--plural":"All Stores","ai-assistant-info-locked":"Locked","ai-assistant-info-locked--plural":"Locked","ai-assistant-payment-method":"Payment Method","ai-assistant-cj-wallet":"CJ Wallet","ai-assistant-cj-wallet--plural":"CJ Wallet","ai-assistant-exec-pill-partial":"Partial","ai-assistant-exec-pill-partial--plural":"Partial","ai-assistant-exec-pill-completed":"Completed","ai-assistant-exec-pill-failed":"Failed","wallet-remaining-limit":"Remaining Limit","wallet-remaining-limit--plural":"Remaining Limit","ai-assistant-per-order":"order","ai-assistant-total-icms":"Total ICMS","ai-assistant-total-icms--plural":"Total ICMS","ai-assistant-customs-duty":"Customs Duty","ai-assistant-customs-duty--plural":"Customs Duty","ai-assistant-price-lock-expired":"Price lock expired — tap Recheck to refresh","ai-assistant-price-lock-expired--plural":"Price lock expired — tap Recheck to refresh","ai-assistant-customs-clearance-fees":"Customs Clearance Fees","ai-assistant-customs-clearance-fees--plural":"Customs Clearance Fees","ai-assistant-total-shipping-cost":"Total Shipping Cost","ai-assistant-label-handling-cost":"Total Product Label Handling Cost","ai-assistant-label-handling-cost--plural":"Total Product Label Handling Cost","ai-assistant-batch-payable-for":"Batch still payable for","ai-assistant-batch-payable-for--plural":"Batch still payable for","ai-assistant-amount-off":"Amount Off","ai-assistant-total-vat-upon-ioss":"Total VAT upon IOSS","ai-assistant-total-vat-upon-ioss--plural":"Total VAT upon IOSS","ai-assistant-total-ioss-handling-fee":"Total IOSS Handling Fee","ai-assistant-total-ioss-handling-fee--plural":"Total IOSS Handling Fee","ai-assistant-taxes":"Taxes","ai-assistant-taxes--plural":"Taxes","ai-assistant-total-duty":"Total Duty","ai-assistant-total-duty--plural":"Total Duty","ai-assistant-price-lock-recheck-note":"When the lock ends, you\'ll need to Recheck before paying","ai-assistant-price-lock-recheck-note--plural":"When the lock ends, you\'ll need to Recheck before paying","ai-assistant-average-cogs":"Average COGS","ai-assistant-average-cogs--plural":"Average COGS","ai-assistant-total-product-cost":"Total Product Cost","common-top-cj-chrome-extension-is-only-available-on-google-chrome":"CJ Chrome Extension is only available on Google Chrome. Please switch to Chrome and try again.","common-top-cj-chrome-extension-is-only-available-on-google-chrome--plural":"CJ Chrome Extension is only available on Google Chrome. Please switch to Chrome and try again.","common-top-browser-not-supported":"Browser Not Supported","common-top-browser-not-supported--plural":"Browser Not Supported","common-top-extension-ready":"CJ Chrome Extension Is Ready","common-top-extension-ready--plural":"CJ Chrome Extension Is Ready","common-top-continue":"Continue","common-top-extension-ready-continue-to-the-platform-you
31657-selected":"The extension is installed. Continue to the platform you selected.","common-top-extension-ready-continue-to-the-platform-you-selected--plural":"The extension is installed. Continue to the platform you selected.","common-top-if-you-had-installed-the-extension-please-click-refresh-button":"If you had installed the extension, please click Refresh button.","common-top-if-you-had-installed-the-extension-please-click-refresh-button--plural":"If you had installed the extension, please click Refresh button.","common-top-close":"Close","common-top-refresh-page-required":"Refresh Page Required:","common-top-refresh-page-required--plural":"Refresh Page Required:","ai-assistant-orders-synced":"Synced","ai-assistant-orders-synced--plural":"Synced","ai-assistant-amount-paid":"Amount paid","ai-assistant-amount-paid--plural":"Amount paid","common-auto-order-and-pay":"Auto order & pay","common-auto-order-and-pay--plural":"Auto order & pay","common-auto-pay-handle-with-ai":"Handle with AI","common-auto-pay-handle-with-ai--plural":"Handle with AI","common-auto-pay-top-up":"Top up","common-auto-pay-top-up--plural":"Top up","common-auto-pay-pending-tips":"{{count}} orders are waiting for your decision.","common-auto-pay-pending-tips--plural":"{{count}} orders are waiting for your decision.","common-auto-pay-to-order-list":"To Order List","common-auto-pay-to-order-list--plural":"To Order List","common-auto-pay-low-balance-tips":"Low CJ Wallet — covers about {{count}} days. Top up to avoid pauses.","common-auto-pay-low-balance-tips--plural":"Low CJ Wallet — covers about {{count}} days. Top up to avoid pauses.","ai-assistant-coupon-unusable":"Not available","ai-assistant-coupon-unusable--plural":"Not available","ai-assistant-done-needs-open":"Open the link above first","ai-assistant-done-needs-open--plural":"Open the link above first","ai-assistant-paid-badge":"Paid","ai-assistant-decision-done-missing":"Not marked done yet","ai-assistant-decision-done-missing--plural":"Not marked done yet","ai-assistant-copy-failed":"Couldn\'t copy automatically — please select the text and copy it manually.","ai-assistant-copy-failed--plural":"Couldn\'t copy automatically — please select the text and copy it manually.","ai-assistant-copy-todo":"Copy to-do","ai-assistant-copy-todo--plural":"Copy to-do","ai-assistant-decision-done-missing-tip":"Handle them and press Done, or pick “Not done yet” — submitting now puts these orders on hold and they will not come back to a card.","ai-assistant-decision-done-missing-tip--plural":"Handle them and press Done, or pick “Not done yet” — submitting now puts these orders on hold and they will not come back to a card.","ai-assistant-payment-processing":"Processing…","ai-assistant-payment-processing--plural":"Processing…","ai-assistant-paid-at":"Paid at","ai-assistant-paid-at--plural":"Paid at","ai-assistant-coupon-usable":"Yes","ai-assistant-coupon-rule-off-only":"{off} off","ai-assistant-coupon-rule-off-only--plural":"{off} off","ai-assistant-coupon-rule":"{off} off on a purchase of {min} or more","ai-assistant-coupon-rule--plural":"{off} off on a purchase of {min} or more","ai-assistant-coupon-not-to-use":"Not to Use","ai-assistant-coupon-not-to-use--plural":"Not to Use","ai-assistant-payment-window-expires":"Payment window expires in {time}","ai-assistant-payment-window-expires--plural":"Payment window expires in {time}","ai-assistant-price-lock-ends":"Price lock ends in {time} — tap Recheck to refresh the price before paying","ai-assistant-price-lock-ends--plural":"Price lock ends in {time} — tap Recheck to refresh the price before paying","ai-assistant-clock-info-lock":"Information lock validity period: {time}","ai-assistant-clock-info-lock--plural":"Information lock validity period: {time}","ai-assistant-clock-lock-expired":"The lock has expired","ai-assistant-clock-lock-expired--plural":"The lock has expired","ai-assistant-clock-info-lock-tip":"Price, shipping and stock stay fixed until this ends. After that, tap Recheck before paying.","ai-assistant-clock-info-lock-tip--plural":"Price, shipping and stock stay fixed until this ends. After that, tap Recheck before paying.","ai-assistant-clock-inventory-reserved":"Inventory Reserved: {time}","ai-assistant-clock-inventory-reserved--plural":"Inventory Reserved: {time}","ai-assistant-clock-lock-expired-tip":"The price has expired. Tap Recheck before paying — the price may have changed.","ai-assistant-clock-lock-expired-tip--plural":"The price has expired. Tap Recheck before paying — the price may have changed.","ai-assistant-clock-inventory-reserved-tip":"Please make payment within 24 hours during which the inventory will be reserved. After it, the inventory will be released.","ai-assistant-clock-inventory-released":"Inventory Released","ai-assistant-clock-inventory-released-tip":"Inventory has been released as the order was not paid within 24 hours. The inventory status may change, so please pay the order timely.","ai-assistant-task-tab-ended":"Ended","ai-assistant-settlement-reminder-view":"View","ai-assistant-settlement-frozen-paid":"Paid {amount}","ai-assistant-settlement-frozen-paid--plural":"Paid {amount}","ai-assistant-settlement-frozen-awaiting":"Awaiting payment","ai-assistant-settlement-frozen-awaiting--plural":"Awaiting payment","ai-assistant-settlement-frozen-pay-now":"Pay now","ai-assistant-settlement-frozen-pay-now--plural":"Pay now","ai-assistant-settlement-reminder":"{count} payment pending","ai-assistant-settlement-reminder--plural":"{count} payments pending","ai-assistant-exec-waiting-for-you":"Waiting for you","ai-assistant-exec-waiting-for-you--plural":"Waiting for you","ai-assistant-exec-view-in-tasks":"View in Tasks","ai-assistant-exec-view-in-tasks--plural":"View in Tasks","ai-assistant-cashier-hint":"This payment can\'t be completed with CJ Wallet here. Please pay on the cashier page.","ai-assistant-cashier-hint--plural":"This payment can\'t be completed with CJ Wallet here. Please pay on the cashier page.","ai-assistant-pay-amount-on-cashier":"Pay {amount} via cashier","ai-assistant-pay-amount-on-cashier--plural":"Pay {amount} via cashier","ai-assistant-cashier-retry-wallet":"Try CJ Wallet again","ai-assistant-cashier-retry-wallet--plural":"Try CJ Wallet again","ai-assistant-pay-blocked-paid":"This order has already been paid.","ai-assistant-pay-blocked-paid--plural":"This order has already been paid.","ai-assistant-pay-blocked-processing":"Payment is processing, please wait.","ai-assistant-pay-blocked-processing--plural":"Payment is processing, please wait.","ai-assistant-pay-blocked-price-lock":"The price lock on this order has expired. Please recheck it before paying.","ai-assistant-pay-blocked-price-lock--plural":"The price lock on this order has expired. Please recheck it before paying.","ai-assistant-pay-blocked-abnormal":"Payment result is being confirmed. Please do not pay again.","ai-assistant-pay-blocked-abnormal--plural":"Payment result is being confirmed. Please do not pay again.","ai-assistant-form-amount-invalid":"Enter an amount above 0, with up to 2 decimal places.","ai-assistant-form-amount-invalid--plural":"Enter an amount above 0, with up to 2 decimal places.","ai-assistant-form-hours-invalid":"Enter a whole number within the allowed range.","ai-assistant-form-hours-invalid--plural":"Enter a whole number within the allowed range.","ai-assistant-form-remove":"Remove","ai-assistant-form-time-invalid":"Enter a time as HH:mm.","ai-assistant-form-time-invalid--plural":"Enter a time as HH:mm.","ai-assistant-autopay-handle":"Handle","ai-assistant-autopay-handle--plural":"Handle","ai-assistant-form-add-time":"Add","ai-assistant-pay-not-started":"This payment didn\'t start. You can tap Pay again — you won\'t be charged twice.","ai-assistant-pay-not-started--plural":"This payment didn\'t start. You can tap Pay again — you won\'t be charged twice.","ai-assistant-order-fail-9026":"This order is over your auto-pay limit. It was not placed or charged. Please confirm payment on the order list.","ai-assistant-order-fail-9026--plural":"This order is over your auto-pay limit. It was not placed or charged. Please confirm payment on the order list.","ai-assistant-pay-blocked-not-ai":"This order was not placed by AI. Please pay at the checkout page.","ai-assistant-pay-blocked-not-ai--plural":"This order was not placed by AI. Please pay at the checkout page.","ai-assistant-unread-messages":"unread messages","ai-assistant-unread-messages--plural":"unread messages","ai-assistant-select-stores":"Select stores","ai-assistant-select-stores--plural":"Select stores","ai-assistant-form-date-invalid":"Pick a date within the allowed range — no later than today in the selected time zone.","ai-assistant-form-date-invalid--plural":"Pick a date within the allowed range — no later than today in the selected time zone.","ai-assistant-decision-run-groups":"run {count} group","ai-assistant-decision-run-groups--plural":"run {count} groups","ai-assistant-decision-retried-title":"Didn\'t go through last time — choose again","ai-assistant-decision-retried-title--plural":"Didn\'t go through last time — choose again","ai-assistant-decision-group-index":"Group {index} / {total}","ai-assistant-decision-group-index--plural":"Group {index} / {total}","ai-assistant-pay-cancelled-note":"You cancelled this payment. The order stays in your order list and remains payable for {N} more hour — just tell me when you\'re ready and I\'ll bring it back.","ai-assistant-pay-cancelled-note--plural":"You cancelled this payment. The order stays in your order list and remains payable for {N} more hours — just tell me when you\'re ready and I\'ll bring it back.","ai-assistant-pay-cancelled":"Payment cancelled","ai-assistant-pay-cancelled--plural":"Payment cancelled","ai-assistant-pay-cancelled-note-no-hours":"You cancelled this payment. The order stays in your order list — just tell me when you\'re ready and I\'ll bring it back.","ai-assistant-pay-cancelled-note-no-hours--plural":"You cancelled this payment. The order stays in your order list — just tell me when you\'re ready and I\'ll bring it back.","ai-assistant-settlement-frozen-cancelled":"Cancelled · {amount}","ai-assistant-settlement-frozen-cancelled--plural":"Cancelled · {amount}","ai-assistant-task-closed-manually-count":"Closed manually · {n} succeeded","ai-assistant-task-closed-manually-count--plural":"Closed manually · {n} succeeded","ai-assistant-task-closed-timeout-count":"Closed after a long wait · {n} succeeded","ai-assistant-task-closed-timeout-count--plural":"Closed after a long wait · {n} succeeded","ai-assistant-task-closed-manually":"Closed manually","ai-assistant-task-closed-manually--
31657plural":"Closed manually","ai-assistant-task-closed-timeout":"Closed after a long wait","ai-assistant-task-closed-timeout--plural":"Closed after a long wait","ai-assistant-task-other-tasks":"Other tasks in this chat","ai-assistant-task-other-tasks--plural":"Other tasks in this chat","ai-assistant-task-closed-pay-cancelled":"You cancelled this payment","ai-assistant-task-closed-pay-cancelled--plural":"You cancelled this payment","ai-assistant-task-list-capped":"Showing the latest {n}","ai-assistant-task-list-capped--plural":"Showing the latest {n}","ai-assistant-settlement-frozen-cancelled-plain":"Cancelled","ai-assistant-stock-out-shortfall":"shortfall {n}","ai-assistant-stock-out-shortfall--plural":"shortfall {n}"}');
31658// EXTERNAL MODULE: ./src/components/CjHeader/const/languages.ts
31659var languages = __webpack_require__(45163);
31660;// ./src/common/i18next-refact.ts
31661function i18next_refact_typeof(o) { "@babel/helpers - typeof"; return i18next_refact_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, i18next_refact_typeof(o); }
31662var i18next_refact_assign = undefined && undefined.__assign || function () {
31663  i18next_refact_assign = Object.assign || function (t) {
31664    for (var s, i = 1, n = arguments.length; i < n; i++) {
31665      s = arguments[i];
31666      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
31667    }
31668    return t;
31669  };
31670  return i18next_refact_assign.apply(this, arguments);
31671};
31672
31673
31674var transObj = {
31675  en: en_common_namespaceObject
31676};
31677var localeFallbackLoaders = {
31678  zh: function zh() {
31679    return __webpack_require__.e(/* import() */ 5772).then(__webpack_require__.t.bind(__webpack_require__, 15772, 19));
31680  },
31681  th: function th() {
31682    return __webpack_require__.e(/* import() */ 406).then(__webpack_require__.t.bind(__webpack_require__, 40406, 19));
31683  },
31684  de: function de() {
31685    return __webpack_require__.e(/* import() */ 4639).then(__webpack_require__.t.bind(__webpack_require__, 24639, 19));
31686  },
31687  fr: function fr() {
31688    return __webpack_require__.e(/* import() */ 9506).then(__webpack_require__.t.bind(__webpack_require__, 59506, 19));
31689  },
31690  id: function id() {
31691    return __webpack_require__.e(/* import() */ 1261).then(__webpack_require__.t.bind(__webpack_require__, 21261, 19));
31692  }
31693};
31694var fallbackLoading = {};
31695function ensureLocaleFallback(i18next, lng) {
31696  if (!lng || lng === 'en' || transObj[lng]) return Promise.resolve(transObj[lng]);
31697  if (typeof window === 'undefined' || typeof document === 'undefined') {
31698    return Promise.resolve(transObj[lng]);
31699  }
31700  var loader = localeFallbackLoaders[lng];
31701  if (!loader) return Promise.resolve(undefined);
31702  if (!fallbackLoading[lng]) {
31703    fallbackLoading[lng] = loader().then(function (mod) {
31704      var data = mod && mod["default"] || mod;
31705      if (data && i18next_refact_typeof(data) === 'object') {
31706        transObj[lng] = data;
31707        if (i18next && i18next.addResourceBundle) {
31708          var oldTrans = i18next.getResourceBundle && i18next.getResourceBundle(lng, 'translation') || {};
31709          i18next.addResourceBundle(lng, 'translation', i18next_refact_assign(i18next_refact_assign({}, data), oldTrans), true, true);
31710        }
31711      }
31712      return data;
31713    })["catch"](function (error) {
31714      console.warn('[i18n] locale fallback load failed:', lng, error && error.message);
31715      return undefined;
31716    });
31717  }
31718  return fallbackLoading[lng];
31719}
31720var run = false;
31721var customizeI18next = function customizeI18next(i18next, initialLng) {
31722  if (run) return;
31723  var lng = initialLng;
31724  if (!languages/* sixCountryLanguage */.V.includes(lng)) lng = 'en';
31725  initialCommonTranslation(i18next, lng);
31726  if (lng !== 'en') ensureLocaleFallback(i18next, lng);
31727  i18next.t = function (t) {
31728    return function () {
31729      var _a, _b;
31730      var arg = [];
31731      for (var _i = 0; _i < arguments.length; _i++) {
31732        arg[_i] = arguments[_i];
31733      }
31734      var key = arg[0];
31735      var result = t.apply(this, arg);
31736      if (!result) return arg[1] || key;
31737      if (typeof result === 'string' && result.indexOf('-') > -1 && key === result && ((_a = transObj === null || transObj === void 0 ? void 0 : transObj[lng]) === null || _a === void 0 ? void 0 : _a[key])) {
31738        result = transObj[lng][key];
31739      }
31740      if (i18next_refact_typeof(result) === 'object' && ((_b = transObj === null || transObj === void 0 ? void 0 : transObj[lng]) === null || _b === void 0 ? void 0 : _b[key])) {
31741        var text_1 = transObj[lng][key] || '';
31742        if (i18next_refact_typeof(arg[1]) === 'object') {
31743          var vars_1 = arg[1];
31744          var reg = /\{\{(.+?)\}\}/g;
31745          var arr = text_1.match(reg);
31746          if (arr) {
31747            arr.forEach(function (item) {
31748              var key = item.replace(/\{\{(.+?)\}\}/, '$1');
31749              text_1 = text_1.replace(item, vars_1[key]);
31750            });
31751          }
31752        }
31753        return text_1 || key;
31754      }
31755      if (/\{\{(.+?)\}\}/g.test(result)) {
31756        var reg = /\{\{(.+?)\}\}/g;
31757        var arr = result.match(reg);
31758        if (arr) {
31759          arr.forEach(function (item) {
31760            var key = item.replace(/\{\{(.+?)\}\}/, '$1');
31761            result = result.replace(item, arg[1][key]);
31762          });
31763        }
31764      }
31765      return result;
31766    };
31767  }(i18next.t);
31768  run = true;
31769};
31770function initialCommonTranslation(i18next, lng) {
31771  try {
31772    var pullCommon = transObj[lng];
31773    if (pullCommon && i18next_refact_typeof(pullCommon) === 'object') {
31774      var oldTrans = i18next.getResourceBundle(lng, 'translation') || {};
31775      i18next.addResourceBundle(lng, 'translation', i18next_refact_assign(i18next_refact_assign({}, pullCommon), oldTrans), true, true);
31776    }
31777  } catch (error) {
31778    console.warn('Error loading common translation:', error);
31779  }
31780}
31781/* harmony default export */ const i18next_refact = (customizeI18next);
31782;// ./src/components/CjProductDetail/hooks/use-lazy-component.ts
31783
31784function useLazyComponent(active, loader, options) {
31785  if (options === void 0) {
31786    options = {};
31787  }
31788  var _a = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(null),
31789    Component = _a[0],
31790    setComponent = _a[1];
31791  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
31792    if (!active || Component) return;
31793    var mounted = true;
31794    loader().then(function (mod) {
31795      var LazyComponent = 'default' in mod ? mod["default"] : mod;
31796      if (mounted) setComponent(function () {
31797        return LazyComponent;
31798      });
31799    })["catch"](function (error) {
31800      var _a = options.componentName,
31801        componentName = _a === void 0 ? 'unknown' : _a,
31802        _b = options.chunkName,
31803        chunkName = _b === void 0 ? 'unknown' : _b;
31804      console.error("[use-lazy-component] load failed component=".concat(componentName, " chunk=").concat(chunkName, " active=").concat(active), error);
31805    });
31806    return function () {
31807      mounted = false;
31808    };
31809  }, [active, Component, loader]);
31810  return Component;
31811}
31812// EXTERNAL MODULE: ./src/components/Menu/hooks/useIsAiChat.ts
31813var useIsAiChat = __webpack_require__(92575);
31814;// ./src/hook/use-changed.ts
31815var use_changed_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
31816  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
31817    if (ar || !(i in from)) {
31818      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
31819      ar[i] = from[i];
31820    }
31821  }
31822  return to.concat(ar || Array.prototype.slice.call(from));
31823};
31824
31825/* harmony default export */ const use_changed = (function (cb, deps) {
31826  if (cb === void 0) {
31827    cb = function cb() {};
31828  }
31829  if (deps === void 0) {
31830    deps = [];
31831  }
31832  var frist = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(true);
31833  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
31834    if (frist.current) {
31835      frist.current = false;
31836      return;
31837    }
31838    cb === null || cb === void 0 ? void 0 : cb();
31839  }, use_changed_spreadArray([], deps, true));
31840});
31841;// ./src/components/Menu/hooks/useHasMenu.ts
31842var useHasMenu_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
31843  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
31844    if (ar || !(i in from)) {
31845      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
31846      ar[i] = from[i];
31847    }
31848  }
31849  return to.concat(ar || Array.prototype.slice.call(from));
31850};
31851
31852
31853
31854
31855
31856var newmycjPaths = ['/invoiceNew/walletInvoice', '/payment', '/invoiceNew/orderInvoice', '/purchase/detial', '/differences', '/dispute/createDispute', '/dropshipping/orderConfirmation', '/dispute/detail', '/cancelEmail', '/productEvaluate/create', '/productEvaluate/detail', '/dashboard/cogs/detail', '/authorize/erpAuthorization', '/authorize/newAuthorizationPage', '/aiAssistant', '/authorizePage'];
31857var mobileOnlyNoMenuPages = ['/agents', '/agents/detail', '/global-warehouses', '/ready-to-ship', '/mentors'];
31858var noMenuPages = useHasMenu_spreadArray(useHasMenu_spreadArray(['/ouroffers', '/overview', '/aboutus', '/contactus', '/user-agreement', '/dispute-policy.html', '/report-platform', '/privacyPolicy', '/help-center', '/storeAuthorizationAgreement', '/service-fee', '/odm', '/printonDemand/home', '/prime', '/sourcing', '/fulfillmentservice', '/logistics', '/partnership/home', '/partnership', '/cj-entity', '/cj-business-travel', '/worldfirst', '/forgotPassword.html', '/facebookEmail.html', '/apiAuthorization.html', '/authorize.html', '/bind.html', '/bindSuccess.html', '/emailTmp.html', '/cj-faq.html', '/cj-term-of-use-seo.html', '/cjAppDownload.html', '/cus-sourcing.html', '/emailVerified.html', '/error.html', '/error02.html', '/facebookdele.html', '/features.html', '/firstAuthFromShop.html', '/firstAuthFromShopify.html', '/fromShopifyLoading.html', '/fx_mobileAccess.html', '/googlePluginLoginLoading.html', '/invoice.html', '/404', '/manualList.html', '/passreset-success.html', '/passWordEmail.html', '/payment-error.html', '/payment-success.html', '/payoneer-auth.html', '/policy.html', '/promotedoperation.html', '/login.html', '/register.html', '/register-success.html', '/resetPassword.html', '/second-authorize.html', '/suppList.html', '/toLogin.html', '/verify_email.html', '/wallet-invoice.html', '/advertisingservice', '/tiktokShopAd', '/loancredit', '/usrule.html', '/welcome.html', '/integrations/temu', '/integrations/shopify', '/integrations/shoplazza', '/integrations/woocommerce', '/integrations/tiktok-shop', '/high-quality-factory', '/agents/product-development', '/agents/cogs-reduction', '/agents/faster-order-fulfillment', '/agents/shorten-delivery-time', '/agents/cj-account-management', '/agents/customer-success-growth', '/agents/visiting-guide', '/free-temu-tiktok-stores', '/odm', '/careers', '/authRedirect.html', '/alternatives', '/ai/chatgpt', '/ai/claude', '/ai/codex', '/cjdropshipping-vs-zendrop', '/cjdropshipping-vs-autods', '/cjdropshipping-vs-spocket', '/cjdropshipping-vs-aliexpress', '/cjdropshipping-vs-day-one-fulfillment'], mobileOnlyNoMenuPages, true), newmycjPaths.reduce(function (sum, path) {
31859  sum.push.apply(sum, [path, "/mine".concat(path)]);
31860  return sum;
31861}, []), true);
31862var noMenu = function noMenu(routePath, siteCheck, SHOWMESSAGE, token, isM) {
31863  var pagesToCheck = isM ? noMenuPages : noMenuPages.filter(function (path) {
31864    return !mobileOnlyNoMenuPages.includes(path);
31865  });
31866  var configNoMenu = pagesToCheck.some(function (path) {
31867    var reg = new RegExp('^' + path);
31868    return reg.test(routePath);
31869  });
31870  if (/^\/mine\/calculation/i.test(routePath) && !token) {
31871    return true;
31872  }
31873  if (siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.isSite('QS')) {
31874    if (!siteCheck.isShow('show-side-menu')) {
31875      return true;
31876    }
31877    if (!(0,use_is_mycj/* isMyCjPageCheck */.h)(routePath) || /\/purchase\/purchaseCart/.test(routePath)) {
31878      return true;
31879    }
31880  } else if (siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.isSite('CJ')) {
31881    if (!siteCheck.isShow('show-side-menu')) {
31882      return true;
31883    }
31884    if (!(0,common/* isSafeUser */.dn)(SHOWMESSAGE, token) && routePath == '/') {
31885      return true;
31886    }
31887  } else if ((0,common/* is1688 */.G3)(siteCheck)) {
31888    if (!siteCheck.isShow('show-side-menu')) {
31889      return true;
31890    }
31891    if (!(0,use_is_mycj/* isMyCjPageCheck */.h)(routePath)) return true;
31892  } else if (siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.isSite('QK')) {
31893    if (!siteCheck.isShow('show-side-menu')) {
31894      return true;
31895    }
31896  }
31897  return configNoMenu;
31898};
31899function useNotMenu() {
31900  var _a = (0,PropsContext/* useGlobalProps */.v)(),
31901    routePath = _a.path,
31902    SHOWMESSAGE = _a.otherCookies.SHOWMESSAGE,
31903    token = _a.loginInfo.token,
31904    isM = _a.isM;
31905  var _b = (0,use_parent_platform/* default */.A)(),
31906    isCj = _b.isCj,
31907    isSupplierShop = _b.isSupplierShop,
31908    isBlog = _b.isBlog,
31909    isFlowVersionPage = _b.isFlowVersionPage;
31910  if (isSupplierShop || isBlog || isFlowVersionPage) return true;
31911  var siteCheck = (0,use_site_check/* default */.A)();
31912  return noMenu(routePath, siteCheck, SHOWMESSAGE, token, isM) && isCj;
31913}
31914;// ./src/components/Menu/components/THLogo/index.less
31915// extracted by mini-css-extract-plugin
31916/* harmony default export */ const THLogo = ({"logo":"logo--nt_xD","alogo":"alogo--hqIuw","logoInfo":"logoInfo--dBfZk"});
31917;// ./src/components/Menu/components/THLogo/index.tsx
31918
31919
31920
31921function THLogo_THLogo(_a) {
31922  var _b;
31923  var logo = _a.logo;
31924  var _c = (0,PropsContext/* useGlobalProps */.v)(),
31925    i18next = _c.i18n,
31926    siteCheck = _c.siteCheck;
31927  var style = {};
31928  if (!siteCheck.isSite('TH', 'CF')) {
31929    style = {
31930      width: siteCheck.data('logo-width') + 'px',
31931      height: siteCheck.data('logo-height') + 'px'
31932    };
31933  }
31934  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31935    className: THLogo.logo
31936  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("a", {
31937    href: "/",
31938    className: THLogo.alogo
31939  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("img", {
31940    src: logo,
31941    style: style
31942  }), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31943    className: THLogo.logoInfo
31944  }, siteCheck.isSite('TH', 'CF') && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
31945    className: "notranslate"
31946  }, (_b = siteCheck.data('full-name')) !== null && _b !== void 0 ? _b : '1688.tech')))));
31947}
31948// EXTERNAL MODULE: ./src/components/message/index.tsx + 1 modules
31949var message = __webpack_require__(23126);
31950// EXTERNAL MODULE: ./src/common/add-store.ts
31951var add_store = __webpack_require__(21421);
31952// EXTERNAL MODULE: ./src/common/toast.ts
31953var toast = __webpack_require__(50937);
31954;// ./src/components/Menu/hooks/useAppStore.ts
31955var useAppStore_assign = undefined && undefined.__assign || function () {
31956  useAppStore_assign = Object.assign || function (t) {
31957    for (var s, i = 1, n = arguments.length; i < n; i++) {
31958      s = arguments[i];
31959      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
31960    }
31961    return t;
31962  };
31963  return useAppStore_assign.apply(this, arguments);
31964};
31965var useAppStore_awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
31966  function adopt(value) {
31967    return value instanceof P ? value : new P(function (resolve) {
31968      resolve(value);
31969    });
31970  }
31971  return new (P || (P = Promise))(function (resolve, reject) {
31972    function fulfilled(value) {
31973      try {
31974        step(generator.next(value));
31975      } catch (e) {
31976        reject(e);
31977      }
31978    }
31979    function rejected(value) {
31980      try {
31981        step(generator["throw"](value));
31982      } catch (e) {
31983        reject(e);
31984      }
31985    }
31986    function step(result) {
31987      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
31988    }
31989    step((generator = generator.apply(thisArg, _arguments || [])).next());
31990  });
31991};
31992var useAppStore_generator = undefined && undefined.__generator || function (thisArg, body) {
31993  var _ = {
31994      label: 0,
31995      sent: function sent() {
31996        if (t[0] & 1) throw t[1];
31997        return t[1];
31998      },
31999      trys: [],
32000      ops: []
32001    },
32002    f,
32003    y,
32004    t,
32005    g;
32006  return g = {
32007    next: verb(0),
32008    "throw": verb(1),
32009    "return": verb(2)
32010  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
32011    return this;
32012  }), g;
32013  function verb(n) {
32014    return function (v) {
32015      return step([n, v]);
32016    };
32017  }
32018  function step(op) {
32019    if (f) throw new TypeError("Generator is already executing.");
32020    while (g && (g = 0, op[0] && (_ = 0)), _) try {
32021      if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
32022      if (y = 0, t) op = [op[0] & 2, t.value];
32023      switch (op[0]) {
32024        case 0:
32025        case 1:
32026          t = op;
32027          break;
32028        case 4:
32029          _.label++;
32030          return {
32031            value: op[1],
32032            done: false
32033          };
32034        case 5:
32035          _.label++;
32036          y = op[1];
32037          op = [0];
32038          continue;
32039        case 7:
32040          op = _.ops.pop();
32041          _.trys.pop();
32042          continue;
32043        default:
32044          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
32045            _ = 0;
32046            continue;
32047          }
32048          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
32049            _.label = op[1];
32050            break;
32051          }
32052          if (op[0] === 6 && _.label < t[1]) {
32053            _.label = t[1];
32054            t = op;
32055            break;
32056          }
32057          if (t && _.label < t[2]) {
32058            _.label = t[2];
32059            _.ops.push(op);
32060            break;
32061          }
32062          if (t[2]) _.ops.pop();
32063          _.trys.pop();
32064          continue;
32065      }
32066      op = body.call(thisArg, _);
32067    } catch (e) {
32068      op = [6, e];
32069      y = 0;
32070    } finally {
32071      f = t = 0;
32072    }
32073    if (op[0] & 5) throw op[1];
32074    return {
32075      value: op[0] ? op[1] : void 0,
32076      done: true
32077    };
32078  }
32079};
32080
32081
32082
32083
32084
32085
32086var appListCache = null;
32087var appListRequest = null;
32088function useAddStore(props) {
32089  var _this = this;
32090  var axios = props.axios,
32091    updateCallBack = props.updateCallBack,
32092    _a = props.appType,
32093    appType = _a === void 0 ? 1 : _a;
32094  var businessTypeMap = {
32095    0: window.i18next.t('common-mycj-menu-smart-website-builder', 'Smart Website Builder'),
32096    1: window.i18next.t('common-mycj-menu-cross-border-ecommerce-platform', 'Cross-Border E-commerce Platform'),
32097    2: window.i18next.t('common-mycj-menu-erp-platform', 'ERP Platform'),
32098    4: window.i18next.t('common-mycj-menu-ai', 'AI'),
32099    3: window.i18next.t('common-mycj-menu-others-a', 'Others')
32100  };
32101  var BUSINESS_TYPE_ORDER = [0, 1, 2, 4, 3];
32102  var TAB_KEY = {
32103    ALL: 1,
32104    INSTALLED: 2
32105  };
32106  var tabList = [{
32107    label: window.i18next.t('common-mycj-menu-all', 'All'),
32108    value: TAB_KEY.ALL
32109  }, {
32110    label: window.i18next.t('common-mycj-menu-installed', 'Installed'),
32111    value: TAB_KEY.INSTALLED
32112  }];
32113  var _b = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(TAB_KEY.ALL),
32114    activeTab = _b[0],
32115    setActiveTab = _b[1];
32116  var _c = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
32117    isVisible = _c[0],
32118    setIsVisible = _c[1];
32119  var _d = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)([]),
32120    list = _d[0],
32121    setList = _d[1];
32122  var _e = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(null),
32123    deleteItem = _e[0],
32124    setDeleteItem = _e[1];
32125  var _f = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
32126    showDeleteModal = _f[0],
32127    setShowDeleteModal = _f[1];
32128  var _g = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
32129    loading = _g[0],
32130    setLoading = _g[1];
32131  var platformShow = new platform_show/* default */.Ay();
32132  var userAddStore = new add_store/* default */.A();
32133  var updateData = function updateData(d) {
32134    userAddStore.save(d);
32135    updateCallBack === null || updateCallBack === void 0 ? void 0 : updateCallBack();
32136  };
32137  var getList = function getList(params) {
32138    return useAppStore_awaiter(_this, void 0, void 0, function () {
32139      var useCache, d, platforms, newList, _loop_1, _i, BUSINESS_TYPE_ORDER_1, key, res_1, d, platforms, newList, _loop_2, _a, BUSINESS_TYPE_ORDER_2, key, res, d, platforms, newList, _loop_3, _b, BUSINESS_TYPE_ORDER_3, key;
32140      return useAppStore_generator(this, function (_c) {
32141        switch (_c.label) {
32142          case 0:
32143            useCache = !(params === null || params === void 0 ? void 0 : params.force) && appListCache;
32144            if (useCache) {
32145              d = appListCache;
32146              updateData(d);
32147              if (params === null || params === void 0 ? void 0 : params.onlyUpdate) return [2];
32148              platforms = (d === null || d === void 0 ? void 0 : d.platforms) || [];
32149              newList = [];
32150              _loop_1 = function _loop_1(key) {
32151                var obj = {};
32152                obj.title = businessTypeMap[key];
32153                obj.list = platforms.filter(function (item) {
32154                  return item.businessType === key;
32155                }).map(function (item) {
32156                  var _a;
32157                  var code = (_a = item.platformCode) === null || _a === void 0 ? void 0 : _a.toLowerCase();
32158                  if (code == 'miaoshou') {
32159                    return useAppStore_assign(useAppStore_assign({}, item), {
32160                      showPlatformName: window.i18next.t("common-mycj-menu-miaoshou", 'MiaoshouERP') || platformShow.showPlatformName(code) || item.platformName
32161                    });
32162                  }
32163                  return useAppStore_assign(useAppStore_assign({}, item), {
32164                    showPlatformName: platformShow.showPlatformName(code) || item.platformName
32165                  });
32166                });
32167                newList.push(obj);
32168              };
32169              for (_i = 0, BUSINESS_TYPE_ORDER_1 = BUSINESS_TYPE_ORDER; _i < BUSINESS_TYPE_ORDER_1.length; _i++) {
32170                key = BUSINESS_TYPE_ORDER_1[_i];
32171                _loop_1(key);
32172              }
32173              setList(newList);
32174              return [2];
32175            }
32176            if (!appListRequest) return [3, 2];
32177            return [4, appListRequest];
32178          case 1:
32179            res_1 = _c.sent();
32180            if (!(res_1 === null || res_1 === void 0 ? void 0 : res_1.success)) return [2];
32181            d = res_1 === null || res_1 === void 0 ? void 0 : res_1.data;
32182            updateData(d);
32183            if (params === null || params === void 0 ? void 0 : params.onlyUpdate) return [2];
32184            platforms = (d === null || d === void 0 ? void 0 : d.platforms) || [];
32185            newList = [];
32186            _loop_2 = function _loop_2(key) {
32187              var obj = {};
32188              obj.title = businessTypeMap[key];
32189              obj.list = platforms.filter(function (item) {
32190                return item.businessType === key;
32191              }).map(function (item) {
32192                var _a;
32193                var code = (_a = item.platformCode) === null || _a === void 0 ? void 0 : _a.toLowerCase();
32194                if (code == 'miaoshou') {
32195                  return useAppStore_assign(useAppStore_assign({}, item), {
32196                    showPlatformName: window.i18next.t("common-mycj-menu-miaoshou", 'MiaoshouERP') || platformShow.showPlatformName(code) || item.platformName
32197                  });
32198                }
32199                return useAppStore_assign(useAppStore_assign({}, item), {
32200                  showPlatformName: platformShow.showPlatformName(code) || item.platformName
32201                });
32202              });
32203              newList.push(obj);
32204            };
32205            for (_a = 0, BUSINESS_TYPE_ORDER_2 = BUSINESS_TYPE_ORDER; _a < BUSINESS_TYPE_ORDER_2.length; _a++) {
32206              key = BUSINESS_TYPE_ORDER_2[_a];
32207              _loop_2(key);
32208            }
32209            setList(newList);
32210            return [2];
32211          case 2:
32212            if (!(params === null || params === void 0 ? void 0 : params.onlyUpdate)) {
32213              setLoading(true);
32214            }
32215            appListRequest = axios({
32216              method: 'post',
32217              url: 'userCenterForeignWeb/userApp/list',
32218              data: {
32219                deviceType: 'PC',
32220                affiliateId: js_cookie/* default */.A.get('invite-token') || ''
32221              }
32222            }).then(function (_a) {
32223              var err = _a[0],
32224                res = _a[1];
32225              if (err || !res) return null;
32226              return res;
32227            });
32228            return [4, appListRequest];
32229          case 3:
32230            res = _c.sent();
32231            appListRequest = null;
32232            setLoading(false);
32233            if (!res) return [2];
32234            if (res === null || res === void 0 ? void 0 : res.success) {
32235              d = res === null || res === void 0 ? void 0 : res.data;
32236              appListCache = d;
32237              updateData(d);
32238              if (params === null || params === void 0 ? void 0 : params.onlyUpdate) return [2];
32239              platforms = (d === null || d === void 0 ? void 0 : d.platforms) || [];
32240              newList = [];
32241              _loop_3 = function _loop_3(key) {
32242                var obj = {};
32243                obj.title = businessTypeMap[key];
32244                obj.list = platforms.filter(function (item) {
32245                  return item.businessType === key;
32246                }).map(function (item) {
32247                  var _a;
32248                  var code = (_a = item.platformCode) === null || _a === void 0 ? void 0 : _a.toLowerCase();
32249                  if (code == 'miaoshou') {
32250                    return useAppStore_assign(useAppStore_assign({}, item), {
32251                      showPlatformName: window.i18next.t("common-mycj-menu-miaoshou", 'MiaoshouERP') || platformShow.showPlatformName(code) || item.platformName
32252                    });
32253                  }
32254                  return useAppStore_assign(useAppStore_assign({}, item), {
32255                    showPlatformName: platformShow.showPlatformName(code) || item.platformName
32256                  });
32257                });
32258                newList.push(obj);
32259              };
32260              for (_b = 0, BUSINESS_TYPE_ORDER_3 = BUSINESS_TYPE_ORDER; _b < BUSINESS_TYPE_ORDER_3.length; _b++) {
32261                key = BUSINESS_TYPE_ORDER_3[_b];
32262                _loop_3(key);
32263              }
32264              setList(newList);
32265            } else if (res === null || res === void 0 ? void 0 : res.message) {
32266              message["default"].error(res === null || res === void 0 ? void 0 : res.message);
32267            }
32268            return [2];
32269        }
32270      });
32271    });
32272  };
32273  var cancelDelete = function cancelDelete() {
32274    setShowDeleteModal(false);
32275    setDeleteItem(null);
32276  };
32277  var confirmDeleteApp = function confirmDeleteApp() {
32278    return useAppStore_awaiter(_this, void 0, void 0, function () {
32279      var success;
32280      return useAppStore_generator(this, function (_a) {
32281        switch (_a.label) {
32282          case 0:
32283            if (!deleteItem) return [2];
32284            return [4, uninstallApp(deleteItem)];
32285          case 1:
32286            success = _a.sent();
32287            if (success) {
32288              cancelDelete();
32289              getList({
32290                onlyUpdate: !isVisible,
32291                force: true
32292              });
32293            }
32294            return [2];
32295        }
32296      });
32297    });
32298  };
32299  var deleteStore = function deleteStore(app) {
32300    return useAppStore_awaiter(_this, void 0, void 0, function () {
32301      var _a;
32302      return useAppStore_generator(this, function (_b) {
32303        setDeleteItem(useAppStore_assign(useAppStore_assign({}, app), {
32304          showPlatformName: platformShow.showPlatformName((_a = app.platformCode) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || app.platformName
32305        }));
32306        setShowDeleteModal(true);
32307        return [2];
32308      });
32309    });
32310  };
32311  var installApp = function installApp(app, options) {
32312    return useAppStore_awaiter(_this, void 0, void 0, function () {
32313      var _a, err, res;
32314      return useAppStore_generator(this, function (_b) {
32315        switch (_b.label) {
32316          case 0:
32317            setLoading(true);
32318            return [4, axios({
32319              method: 'post',
32320              url: 'userCenterForeignWeb/userApp/install',
32321              data: {
32322                appCode: app.platformCode,
32323                type: appType
32324              }
32325            })];
32326          case 1:
32327            _a = _b.sent(), err = _a[0], res = _a[1];
32328            setLoading(false);
32329            if (err || !res) return [2, false];
32330            if (res === null || res === void 0 ? void 0 : res.success) {
32331              if (!(options === null || options === void 0 ? void 0 : options.silentToast)) {
32332                (0,toast/* default */.A)(window.i18next.t('common-mycj-menu-installed-successfully', 'Installed Successfully'));
32333              }
32334              getList({
32335                force: true
32336              });
32337              return [2, true];
32338            } else if (res === null || res === void 0 ? void 0 : res.message) {
32339              message["default"].error(res === null || res === void 0 ? void 0 : res.message);
32340            }
32341            return [2, false];
32342        }
32343      });
32344    });
32345  };
32346  var uninstallApp = function uninstallApp(app, options) {
32347    return useAppStore_awaiter(_this, void 0, void 0, function () {
32348      var _a, err, res;
32349      return useAppStore_generator(this, function (_b) {
32350        switch (_b.label) {
32351          case 0:
32352            setLoading(true);
32353            return [4, axios({
32354              method: 'post',
32355              url: 'userCenterForeignWeb/userApp/uninstall',
32356              data: {
32357                appCode: app.platformCode,
32358                type: appType
32359              }
32360            })];
32361          case 1:
32362            _a = _b.sent(), err = _a[0], res = _a[1];
32363            setLoading(false);
32364            if (err || !res) return [2, false];
32365            if (res === null || res === void 0 ? void 0 : res.success) {
32366              if (!(options === null || options === void 0 ? void 0 : options.silentToast)) {
32367                (0,toast/* default */.A)(window.i18next.t('common-mycj-menu-uninstalled-successfully', 'Uninstalled Successfully'));
32368              }
32369              return [2, true];
32370            }
32371            if (res === null || res === void 0 ? void 0 : res.message) {
32372              message["default"].error(res === null || res === void 0 ? void 0 : res.message);
32373            }
32374            return [2, false];
32375        }
32376      });
32377    });
32378  };
32379  var hideBodyScroll = function hideBodyScroll(bol) {
32380    if (bol) {
32381      document.body.style.overflow = 'hidden';
32382    } else {
32383      document.body.style.overflow = 'auto';
32384    }
32385  };
32386  var handleClose = function handleClose() {
32387    setIsVisible(false);
32388    hideBodyScroll(false);
32389  };
32390  var openAddStore = function openAddStore() {
32391    return useAppStore_awaiter(_this, void 0, void 0, function () {
32392      return useAppStore_generator(this, function (_a) {
32393        switch (_a.label) {
32394          case 0:
32395            return [4, getList()];
32396          case 1:
32397            _a.sent();
32398            setActiveTab(TAB_KEY.ALL);
32399            setIsVisible(true);
32400            hideBodyScroll(true);
32401            return [2];
32402        }
32403      });
32404    });
32405  };
32406  var changeTab = function changeTab(key) {
32407    setActiveTab(key);
32408    var appStoreContainer = document.querySelector('.appStoreContent');
32409    if (appStoreContainer) {
32410      appStoreContainer.scrollTo({
32411        top: 0,
32412        behavior: 'smooth'
32413      });
32414    }
32415  };
32416  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
32417    var handleKeyDown = function handleKeyDown(e) {
32418      if (e.key === 'Escape' && isVisible) {
32419        handleClose();
32420      }
32421    };
32422    if (isVisible) {
32423      document.addEventListener('keydown', handleKeyDown);
32424    }
32425    return function () {
32426      document.removeEventListener('keydown', handleKeyDown);
32427    };
32428  }, [isVisible, handleClose]);
32429  return {
32430    isVisible: isVisible,
32431    handleClose: handleClose,
32432    openAddStore: openAddStore,
32433    deleteStore: deleteStore,
32434    installApp: installApp,
32435    uninstallApp: uninstallApp,
32436    list: list,
32437    tabList: tabList,
32438    activeTab: activeTab,
32439    setActiveTab: setActiveTab,
32440    TAB_KEY: TAB_KEY,
32441    deleteItem: deleteItem,
32442    showDeleteModal: showDeleteModal,
32443    cancelDelete: cancelDelete,
32444    confirmDeleteApp: confirmDeleteApp,
32445    loading: loading,
32446    changeTab: changeTab
32447  };
32448}
32449;// ./src/components/Menu/hooks/useMenuUpdateGuide.ts
32450
32451
32452
32453
32454
32455var STORAGE_KEY = 'showMenuUpdateGuide_v1';
32456var LATEST_VERSION = '1.1';
32457function useMenuUpdateGuide(options) {
32458  var _a = options.isCjSiteShow,
32459    isCjSiteShow = _a === void 0 ? false : _a;
32460  var _b = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
32461    visible = _b[0],
32462    setVisible = _b[1];
32463  var _c = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)('full'),
32464    guideMode = _c[0],
32465    setGuideMode = _c[1];
32466  var changeBodyOverflow = function changeBodyOverflow(lock) {
32467    if (lock) {
32468      (0,common/* lockBodyScroll */.zI)();
32469    } else {
32470      (0,common/* unlockBodyScroll */.Wg)();
32471    }
32472  };
32473  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
32474    if (!isCjSiteShow || useIsCf()) {
32475      setVisible(false);
32476      changeBodyOverflow(false);
32477      return;
32478    }
32479    var alreadyShown = store/* default */.A.get(STORAGE_KEY);
32480    var startTime = new Date('2026-03-16 00:00:00').getTime();
32481    var endTime = new Date('2026-04-30 23:59:59').getTime();
32482    var nowTime = Date.now();
32483    var startTimeV1_1 = new Date('2026-04-07 00:00:00').getTime();
32484    var endTimeV1_1 = new Date('2026-04-30 23:59:59').getTime();
32485    if (alreadyShown === LATEST_VERSION) {
32486      setVisible(false);
32487      changeBodyOverflow(false);
32488      if (nowTime > endTime) {
32489        store/* default */.A.del(STORAGE_KEY);
32490      }
32491      return;
32492    }
32493    var isInTimeWindow = nowTime >= startTime && nowTime < endTime;
32494    var isInTimeWindowV1_1 = nowTime >= startTimeV1_1 && nowTime < endTimeV1_1;
32495    if (!isInTimeWindow && !isInTimeWindowV1_1) {
32496      setVisible(false);
32497      changeBodyOverflow(false);
32498      return;
32499    }
32500    var timer = setTimeout(function () {
32501      var SHOWMESSAGE = js_cookie/* default */.A.get('SHOWMESSAGE');
32502      if ((SHOWMESSAGE === null || SHOWMESSAGE === void 0 ? void 0 : SHOWMESSAGE.indexOf('R')) > -1) {
32503        if ((alreadyShown === true || alreadyShown === 'true') && isInTimeWindowV1_1) {
32504          setGuideMode('mini');
32505        } else if (!alreadyShown) {
32506          setGuideMode('full');
32507        }
32508        changeBodyOverflow(true);
32509        setVisible(true);
32510      }
32511    }, 1200);
32512    return function () {
32513      clearTimeout(timer);
32514      changeBodyOverflow(false);
32515    };
32516  }, [isCjSiteShow]);
32517  var onOK = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function () {
32518    store/* default */.A.set(STORAGE_KEY, LATEST_VERSION);
32519    setVisible(false);
32520    changeBodyOverflow(false);
32521  }, []);
32522  return {
32523    visible: visible,
32524    guideMode: guideMode,
32525    onOK: onOK
32526  };
32527}
32528;// ./src/components/Menu/components/zesty/CollapsedIcon/index.less
32529// extracted by mini-css-extract-plugin
32530/* harmony default export */ const CollapsedIcon = ({"collapsedIcon":"collapsedIcon--icJfc","collapsed":"collapsed--t3MfC"});
32531;// ./src/components/Menu/components/zesty/CollapsedIcon/index.tsx
32532
32533
32534
32535
32536function CollapsedIcon_CollapsedIcon(_a) {
32537  var _b;
32538  var onClick = _a.onClick,
32539    isCollapsed = _a.isCollapsed;
32540  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
32541    className: classnames_default()(CollapsedIcon.collapsedIcon, (_b = {}, _b[CollapsedIcon.collapsed] = isCollapsed, _b)),
32542    onClick: onClick
32543  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
32544    type: 'right'
32545  }));
32546}
32547;// ./src/components/Menu/components/ServiceCenter/service-config.ts
32548var SERVICE_LIST = [{
32549  key: '3pl_fulfillment',
32550  appCode: 'mycj_3pl',
32551  name: '3PL Fulfillment',
32552  menuName: '3PL Fulfillment',
32553  description: "Enjoy hassle-free order processing and lightning-fast global shipping for your own products stocked in CJ's warehouse.",
32554  detailUrl: 'https://www.cjdropshipping.com/fulfillmentservice',
32555  isPreInstalled: true
32556}, {
32557  key: 'odm',
32558  appCode: 'mycj_odm',
32559  name: 'ODM Service',
32560  menuName: 'ODM Service',
32561  description: 'Build a high-margin, unique brand with custom-tailored products, personalized logos, and premium branded packaging.',
32562  detailUrl: 'https://www.cjdropshipping.com/odm',
32563  isPreInstalled: false
32564}, {
32565  key: 'brand_packaging',
32566  appCode: 'mycj_brand_packaging',
32567  name: 'Brand Packaging',
32568  menuName: 'Brand Packaging',
32569  description: 'Turn one-time buyers into loyal customers with packaging that speaks volumes.',
32570  detailUrl: 'https://www.cjdropshipping.com/customPackaging',
32571  isPreInstalled: false
32572}, {
32573  key: 'print_on_demand',
32574  appCode: 'mycj_print_on_demand',
32575  name: 'Print on Demand',
32576  menuName: 'Print on Demand',
32577  description: 'Bring your creative visions to life with custom-printed merchandise.',
32578  detailUrl: 'https://www.cjdropshipping.com/printonDemand/home',
32579  isPreInstalled: false
32580}, {
32581  key: 'buy_sell_yourstore',
32582  appCode: 'mycj_buy_sell_yourstore',
32583  name: 'Buy/Sell Your Store',
32584  menuName: 'Buy/Sell Your Store',
32585  description: 'Selling ready & healthy stores is a smart way to turn your excess costs of online business into immediate profit.',
32586  detailUrl: 'https://blog.cjdropshipping.com/detail/Sell-Your-Shopify-Store-for-Cash-Today-',
32587  isPreInstalled: false
32588}, {
32589  key: 'payment_agency',
32590  appCode: 'mycj_payment_agency',
32591  name: 'Payment Agency',
32592  menuName: 'Payment Agency',
32593  description: 'One-stop Payment Solution for Dropshipping. The trusted choice of millions of entrepreneurs.',
32594  detailUrl: 'https://www.cjdropshipping.com/payment-agency',
32595  isPreInstalled: false
32596}, {
32597  key: 'credit_service',
32598  appCode: 'mycj_credit_service',
32599  name: 'Credit Service',
32600  menuName: 'Credit Service',
32601  description: 'Short-Term Credit Support for Company with Good Reputation.',
32602  detailUrl: 'https://www.cjdropshipping.com/loancredit',
32603  isPreInstalled: false
32604}, {
32605  key: 'fast_shipping',
32606  appCode: 'mycj_fast_shipping',
32607  name: 'Faster Shipping Service',
32608  menuName: 'Faster Shipping Service',
32609  description: 'With our comprehensive shipping service and high-quality suppliers, offer an experience-oriented shipping solution.',
32610  detailUrl: 'https://www.cjdropshipping.com/logistics',
32611  isPreInstalled: false
32612}, {
32613  key: 'advertiser_agency',
32614  appCode: 'mycj_advertiser_agency',
32615  name: 'Advertiser Agency',
32616  menuName: 'Advertiser Agency',
32617  description: 'We Set Up, You Scale. Reliable Ad Accounts, Multi-Vertical Support & Managed Ad Service.',
32618  detailUrl: 'https://www.cjdropshipping.com/advertisingservice',
32619  isPreInstalled: false
32620}, {
32621  key: 'profit_operator',
32622  appCode: 'mycj_profit_operator',
32623  name: 'Profit Operator',
32624  menuName: 'Profit Operator',
32625  description: 'We Operate, You Earn. Launch Your US/EU Local Store with Zero Investment & Risk.',
32626  detailUrl: 'https://www.cjdropshipping.com/free-temu-tiktok-stores',
32627  isPreInstalled: false
32628}, {
32629  key: 'cj_entity',
32630  appCode: 'mycj_cj_entity',
32631  name: 'CJ Entity',
32632  menuName: 'CJ Entity',
32633  description: 'Launch your Hong Kong company for e-commerce.',
32634  detailUrl: 'https://www.cjdropshipping.com/cj-entity',
32635  isPreInstalled: false
32636}];
32637var PRE_INSTALLED_KEYS = SERVICE_LIST.filter(function (s) {
32638  return s.isPreInstalled;
32639}).map(function (s) {
32640  return s.key;
32641});
32642var ALL_SERVICE_KEYS = SERVICE_LIST.map(function (s) {
32643  return s.key;
32644});
32645var MENU_NAME_TO_SERVICE_KEY = SERVICE_LIST.reduce(function (acc, item) {
32646  acc[item.menuName] = item.key;
32647  return acc;
32648}, {});
32649var SERVICE_KEY_TO_APP_CODE = SERVICE_LIST.reduce(function (acc, item) {
32650  acc[item.key] = item.appCode;
32651  return acc;
32652}, {});
32653;// ./src/common/after-lcp-scheduler.ts
32654var DEFAULT_LCP_TIMEOUT = 2500;
32655var lcpReached = false;
32656var started = false;
32657var idSeq = 0;
32658var queue = [];
32659var readyResolvers = [];
32660function after_lcp_scheduler_isBrowser() {
32661  return typeof window !== 'undefined' && typeof document !== 'undefined';
32662}
32663function runQueue() {
32664  if (!queue.length) return;
32665  var pending = queue.slice().sort(function (a, b) {
32666    return b.priority - a.priority || a.id - b.id;
32667  });
32668  queue = [];
32669  pending.forEach(function (item) {
32670    try {
32671      item.task();
32672    } catch (error) {
32673      console.error('[after-lcp-scheduler] task failed', error);
32674    }
32675  });
32676}
32677function markReached() {
32678  if (lcpReached) return;
32679  lcpReached = true;
32680  runQueue();
32681  while (readyResolvers.length) {
32682    var resolve = readyResolvers.shift();
32683    resolve && resolve();
32684  }
32685}
32686function ensureStarted(timeout) {
32687  if (started || lcpReached) return;
32688  started = true;
32689  if (!after_lcp_scheduler_isBrowser()) {
32690    markReached();
32691    return;
32692  }
32693  var settleTimer = null;
32694  var settle = function settle() {
32695    if (settleTimer) {
32696      clearTimeout(settleTimer);
32697      settleTimer = null;
32698    }
32699    markReached();
32700  };
32701  try {
32702    if ('PerformanceObserver' in window) {
32703      var observer_1 = new PerformanceObserver(function () {
32704        observer_1.disconnect();
32705        setTimeout(settle, 0);
32706      });
32707      observer_1.observe({
32708        type: 'largest-contentful-paint',
32709        buffered: true
32710      });
32711    }
32712  } catch (error) {}
32713  var onInteract = function onInteract() {
32714    return settle();
32715  };
32716  try {
32717    window.addEventListener('pointerdown', onInteract, {
32718      once: true,
32719      passive: true
32720    });
32721    window.addEventListener('keydown', onInteract, {
32722      once: true
32723    });
32724  } catch (error) {}
32725  settleTimer = setTimeout(settle, timeout > 0 ? timeout : DEFAULT_LCP_TIMEOUT);
32726}
32727function scheduleAfterLcp(task, options) {
32728  if (options === void 0) {
32729    options = {};
32730  }
32731  var _a = options.priority,
32732    priority = _a === void 0 ? 0 : _a,
32733    _b = options.timeout,
32734    timeout = _b === void 0 ? DEFAULT_LCP_TIMEOUT : _b;
32735  if (!after_lcp_scheduler_isBrowser()) {
32736    return function () {};
32737  }
32738  if (lcpReached) {
32739    setTimeout(function () {
32740      try {
32741        task();
32742      } catch (error) {
32743        console.error('[after-lcp-scheduler] task failed', error);
32744      }
32745    }, 0);
32746    return function () {};
32747  }
32748  var item = {
32749    id: ++idSeq,
32750    task: task,
32751    priority: priority
32752  };
32753  queue.push(item);
32754  ensureStarted(timeout);
32755  return function () {
32756    queue = queue.filter(function (q) {
32757      return q.id !== item.id;
32758    });
32759  };
32760}
32761function whenAfterLcp(timeout) {
32762  if (timeout === void 0) {
32763    timeout = DEFAULT_LCP_TIMEOUT;
32764  }
32765  if (lcpReached || !after_lcp_scheduler_isBrowser()) return Promise.resolve();
32766  return new Promise(function (resolve) {
32767    readyResolvers.push(resolve);
32768    ensureStarted(timeout);
32769  });
32770}
32771function isAfterLcp() {
32772  return lcpReached;
32773}
32774/* harmony default export */ const after_lcp_scheduler = ((/* unused pure expression or super */ null && (scheduleAfterLcp)));
32775;// ./src/components/Menu/hooks/useServiceSubscription.ts
32776var useServiceSubscription_assign = undefined && undefined.__assign || function () {
32777  useServiceSubscription_assign = Object.assign || function (t) {
32778    for (var s, i = 1, n = arguments.length; i < n; i++) {
32779      s = arguments[i];
32780      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
32781    }
32782    return t;
32783  };
32784  return useServiceSubscription_assign.apply(this, arguments);
32785};
32786var useServiceSubscription_awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
32787  function adopt(value) {
32788    return value instanceof P ? value : new P(function (resolve) {
32789      resolve(value);
32790    });
32791  }
32792  return new (P || (P = Promise))(function (resolve, reject) {
32793    function fulfilled(value) {
32794      try {
32795        step(generator.next(value));
32796      } catch (e) {
32797        reject(e);
32798      }
32799    }
32800    function rejected(value) {
32801      try {
32802        step(generator["throw"](value));
32803      } catch (e) {
32804        reject(e);
32805      }
32806    }
32807    function step(result) {
32808      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
32809    }
32810    step((generator = generator.apply(thisArg, _arguments || [])).next());
32811  });
32812};
32813var useServiceSubscription_generator = undefined && undefined.__generator || function (thisArg, body) {
32814  var _ = {
32815      label: 0,
32816      sent: function sent() {
32817        if (t[0] & 1) throw t[1];
32818        return t[1];
32819      },
32820      trys: [],
32821      ops: []
32822    },
32823    f,
32824    y,
32825    t,
32826    g;
32827  return g = {
32828    next: verb(0),
32829    "throw": verb(1),
32830    "return": verb(2)
32831  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
32832    return this;
32833  }), g;
32834  function verb(n) {
32835    return function (v) {
32836      return step([n, v]);
32837    };
32838  }
32839  function step(op) {
32840    if (f) throw new TypeError("Generator is already executing.");
32841    while (g && (g = 0, op[0] && (_ = 0)), _) try {
32842      if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
32843      if (y = 0, t) op = [op[0] & 2, t.value];
32844      switch (op[0]) {
32845        case 0:
32846        case 1:
32847          t = op;
32848          break;
32849        case 4:
32850          _.label++;
32851          return {
32852            value: op[1],
32853            done: false
32854          };
32855        case 5:
32856          _.label++;
32857          y = op[1];
32858          op = [0];
32859          continue;
32860        case 7:
32861          op = _.ops.pop();
32862          _.trys.pop();
32863          continue;
32864        default:
32865          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
32866            _ = 0;
32867            continue;
32868          }
32869          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
32870            _.label = op[1];
32871            break;
32872          }
32873          if (op[0] === 6 && _.label < t[1]) {
32874            _.label = t[1];
32875            t = op;
32876            break;
32877          }
32878          if (t && _.label < t[2]) {
32879            _.label = t[2];
32880            _.ops.push(op);
32881            break;
32882          }
32883          if (t[2]) _.ops.pop();
32884          _.trys.pop();
32885          continue;
32886      }
32887      op = body.call(thisArg, _);
32888    } catch (e) {
32889      op = [6, e];
32890      y = 0;
32891    } finally {
32892      f = t = 0;
32893    }
32894    if (op[0] & 5) throw op[1];
32895    return {
32896      value: op[0] ? op[1] : void 0,
32897      done: true
32898    };
32899  }
32900};
32901var useServiceSubscription_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
32902  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
32903    if (ar || !(i in from)) {
32904      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
32905      ar[i] = from[i];
32906    }
32907  }
32908  return to.concat(ar || Array.prototype.slice.call(from));
32909};
32910
32911
32912
32913
32914
32915
32916
32917
32918var SUBSCRIBED_STATUS = 1;
32919var UNINSTALLED_STATUS = 2;
32920var mergePreInstalledKeys = function mergePreInstalledKeys(keys) {
32921  var mergedSet = PRE_INSTALLED_KEYS.concat(keys);
32922  return mergedSet.filter(function (v, i, a) {
32923    return a.indexOf(v) === i;
32924  });
32925};
32926var buildServiceListByKeys = function buildServiceListByKeys(keys) {
32927  var mergedKeys = mergePreInstalledKeys(keys);
32928  return SERVICE_LIST.map(function (item) {
32929    return useServiceSubscription_assign(useServiceSubscription_assign({}, item), {
32930      status: mergedKeys.includes(item.key) ? SUBSCRIBED_STATUS : UNINSTALLED_STATUS,
32931      installTime: undefined
32932    });
32933  });
32934};
32935var getSubscribedKeysFromInstalledAppCache = function getSubscribedKeysFromInstalledAppCache() {
32936  var _a;
32937  try {
32938    var addStore = new add_store/* default */.A();
32939    var cacheValue = (_a = addStore.get()) === null || _a === void 0 ? void 0 : _a.value;
32940    var services = cacheValue === null || cacheValue === void 0 ? void 0 : cacheValue.services;
32941    if (!Array.isArray(services)) return null;
32942    var appCodeToKeyMap_1 = Object.keys(SERVICE_KEY_TO_APP_CODE).reduce(function (acc, key) {
32943      acc[String(SERVICE_KEY_TO_APP_CODE[key]).toLowerCase()] = key;
32944      return acc;
32945    }, {});
32946    var keys = services.filter(function (item) {
32947      return Number(item === null || item === void 0 ? void 0 : item.status) === SUBSCRIBED_STATUS;
32948    }).map(function (item) {
32949      return appCodeToKeyMap_1[String((item === null || item === void 0 ? void 0 : item.appCode) || '').toLowerCase()];
32950    }).filter(Boolean);
32951    return mergePreInstalledKeys(keys);
32952  } catch (e) {
32953    return null;
32954  }
32955};
32956var initSubscriptions = function initSubscriptions() {
32957  var cachedKeys = getSubscribedKeysFromInstalledAppCache();
32958  if (cachedKeys) {
32959    return cachedKeys;
32960  }
32961  var keys;
32962  if (bar_config/* isNewUser */.mv) {
32963    keys = useServiceSubscription_spreadArray([], PRE_INSTALLED_KEYS, true);
32964  } else {
32965    keys = useServiceSubscription_spreadArray([], ALL_SERVICE_KEYS, true);
32966  }
32967  return keys;
32968};
32969function useServiceSubscription(props) {
32970  var _this = this;
32971  if (props === void 0) {
32972    props = {};
32973  }
32974  var axios = props.axios,
32975    updateCallBack = props.updateCallBack,
32976    _a = props.deferInitialFetch,
32977    deferInitialFetch = _a === void 0 ? false : _a;
32978  var appStoreActions = useAddStore({
32979    axios: axios,
32980    updateCallBack: updateCallBack,
32981    appType: 2
32982  });
32983  var _b = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(function () {
32984      return initSubscriptions();
32985    }),
32986    subscribedKeys = _b[0],
32987    setSubscribedKeys = _b[1];
32988  var _c = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(function () {
32989      return buildServiceListByKeys(initSubscriptions());
32990    }),
32991    serviceList = _c[0],
32992    setServiceList = _c[1];
32993  var _d = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
32994    loading = _d[0],
32995    setLoading = _d[1];
32996  var _e = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
32997    isModalVisible = _e[0],
32998    setIsModalVisible = _e[1];
32999  var hasRefreshedServiceStatusRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(false);
33000  var syncBySubscribedKeys = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (keys) {
33001    var mergedKeys = mergePreInstalledKeys(keys);
33002    setSubscribedKeys(mergedKeys);
33003    setServiceList(buildServiceListByKeys(mergedKeys));
33004  }, []);
33005  var refreshServiceStatus = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function () {
33006    return useServiceSubscription_awaiter(_this, void 0, void 0, function () {
33007      var shouldShowLoading, _a, err, res, addStore, services, appCodeToKeyMap, statusMap, installTimeMap, nextList, nextSubscribedKeys;
33008      var _b;
33009      return useServiceSubscription_generator(this, function (_c) {
33010        switch (_c.label) {
33011          case 0:
33012            if (!axios) return [2];
33013            shouldShowLoading = hasRefreshedServiceStatusRef.current;
33014            if (shouldShowLoading) {
33015              setLoading(true);
33016            }
33017            return [4, axios({
33018              method: 'post',
33019              url: 'userCenterForeignWeb/userApp/list',
33020              data: {
33021                deviceType: 'PC',
33022                affiliateId: js_cookie/* default */.A.get('invite-token') || ''
33023              }
33024            })];
33025          case 1:
33026            _a = _c.sent(), err = _a[0], res = _a[1];
33027            hasRefreshedServiceStatusRef.current = true;
33028            if (shouldShowLoading) {
33029              setLoading(false);
33030            }
33031            if (err || !res || !(res === null || res === void 0 ? void 0 : res.success)) return [2];
33032            try {
33033              addStore = new add_store/* default */.A();
33034              addStore.save(res === null || res === void 0 ? void 0 : res.data);
33035            } catch (e) {}
33036            services = ((_b = res === null || res === void 0 ? void 0 : res.data) === null || _b === void 0 ? void 0 : _b.services) || [];
33037            appCodeToKeyMap = Object.keys(SERVICE_KEY_TO_APP_CODE).reduce(function (acc, key) {
33038              acc[String(SERVICE_KEY_TO_APP_CODE[key]).toLowerCase()] = key;
33039              return acc;
33040            }, {});
33041            statusMap = {};
33042            installTimeMap = {};
33043            services.forEach(function (item) {
33044              var serviceKey = appCodeToKeyMap[String((item === null || item === void 0 ? void 0 : item.appCode) || '').toLowerCase()];
33045              if (serviceKey) {
33046                statusMap[serviceKey] = Number(item === null || item === void 0 ? void 0 : item.status) || UNINSTALLED_STATUS;
33047                var parsedInstallTime = Number(item === null || item === void 0 ? void 0 : item.installTime);
33048                if (!Number.isNaN(parsedInstallTime)) {
33049                  installTimeMap[serviceKey] = parsedInstallTime;
33050                }
33051              }
33052            });
33053            nextList = SERVICE_LIST.map(function (item) {
33054              return useServiceSubscription_assign(useServiceSubscription_assign({}, item), {
33055                status: PRE_INSTALLED_KEYS.includes(item.key) ? SUBSCRIBED_STATUS : statusMap[item.key] || UNINSTALLED_STATUS,
33056                installTime: installTimeMap[item.key]
33057              });
33058            });
33059            nextSubscribedKeys = mergePreInstalledKeys(nextList.filter(function (item) {
33060              return Number(item.status) === SUBSCRIBED_STATUS;
33061            }).map(function (item) {
33062              return item.key;
33063            }));
33064            setServiceList(nextList);
33065            setSubscribedKeys(nextSubscribedKeys);
33066            return [2];
33067        }
33068      });
33069    });
33070  }, [axios]);
33071  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
33072    if (!axios) return;
33073    if (!deferInitialFetch) {
33074      void refreshServiceStatus();
33075      return;
33076    }
33077    var cancel = scheduleAfterLcp(function () {
33078      void refreshServiceStatus();
33079    });
33080    return cancel;
33081  }, [axios, refreshServiceStatus, deferInitialFetch]);
33082  var isSubscribed = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (key) {
33083    return subscribedKeys.includes(key);
33084  }, [subscribedKeys]);
33085  var canUnsubscribe = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (key) {
33086    return !PRE_INSTALLED_KEYS.includes(key);
33087  }, []);
33088  var subscribe = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (key) {
33089    if (!axios) {
33090      var next = useServiceSubscription_spreadArray([], subscribedKeys, true);
33091      if (!next.includes(key)) next.push(key);
33092      syncBySubscribedKeys(next);
33093      return;
33094    }
33095    var appCode = SERVICE_KEY_TO_APP_CODE[key];
33096    if (!appCode) return;
33097    void function () {
33098      return useServiceSubscription_awaiter(_this, void 0, void 0, function () {
33099        var success;
33100        return useServiceSubscription_generator(this, function (_a) {
33101          switch (_a.label) {
33102            case 0:
33103              setLoading(true);
33104              return [4, appStoreActions.installApp({
33105                platformCode: appCode,
33106                platformName: key
33107              }, {
33108                silentToast: true
33109              })];
33110            case 1:
33111              success = _a.sent();
33112              if (!success) return [3, 3];
33113              (0,toast/* toast_success */.q)('Subscribed Successfully');
33114              return [4, refreshServiceStatus()];
33115            case 2:
33116              _a.sent();
33117              _a.label = 3;
33118            case 3:
33119              setLoading(false);
33120              return [2];
33121          }
33122        });
33123      });
33124    }();
33125  }, [axios, appStoreActions, refreshServiceStatus, subscribedKeys, syncBySubscribedKeys]);
33126  var unsubscribe = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (key) {
33127    if (!canUnsubscribe(key)) return;
33128    if (!axios) {
33129      syncBySubscribedKeys(subscribedKeys.filter(function (k) {
33130        return k !== key;
33131      }));
33132      return;
33133    }
33134    var appCode = SERVICE_KEY_TO_APP_CODE[key];
33135    if (!appCode) return;
33136    void function () {
33137      return useServiceSubscription_awaiter(_this, void 0, void 0, function () {
33138        var success;
33139        return useServiceSubscription_generator(this, function (_a) {
33140          switch (_a.label) {
33141            case 0:
33142              setLoading(true);
33143              return [4, appStoreActions.uninstallApp({
33144                platformCode: appCode
33145              }, {
33146                silentToast: true
33147              })];
33148            case 1:
33149              success = _a.sent();
33150              if (!success) return [3, 3];
33151              (0,toast/* default */.A)('Unsubscribed Successfully');
33152              return [4, refreshServiceStatus()];
33153            case 2:
33154              _a.sent();
33155              _a.label = 3;
33156            case 3:
33157              setLoading(false);
33158              return [2];
33159          }
33160        });
33161      });
33162    }();
33163  }, [axios, appStoreActions, canUnsubscribe, refreshServiceStatus, subscribedKeys, syncBySubscribedKeys]);
33164  var toggleSubscription = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (key) {
33165    if (subscribedKeys.includes(key)) {
33166      unsubscribe(key);
33167    } else {
33168      subscribe(key);
33169    }
33170  }, [subscribedKeys, subscribe, unsubscribe]);
33171  var openServiceCenter = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function () {
33172    if (!axios) {
33173      setIsModalVisible(true);
33174      return;
33175    }
33176    void function () {
33177      return useServiceSubscription_awaiter(_this, void 0, void 0, function () {
33178        return useServiceSubscription_generator(this, function (_a) {
33179          switch (_a.label) {
33180            case 0:
33181              return [4, refreshServiceStatus()];
33182            case 1:
33183              _a.sent();
33184              setIsModalVisible(true);
33185              return [2];
33186          }
33187        });
33188      });
33189    }();
33190  }, [axios, refreshServiceStatus]);
33191  var closeServiceCenter = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function () {
33192    setIsModalVisible(false);
33193  }, []);
33194  return {
33195    subscribedKeys: subscribedKeys,
33196    isSubscribed: isSubscribed,
33197    subscribe: subscribe,
33198    unsubscribe: unsubscribe,
33199    toggleSubscription: toggleSubscription,
33200    canUnsubscribe: canUnsubscribe,
33201    serviceList: serviceList,
33202    loading: loading,
33203    isModalVisible: isModalVisible,
33204    openServiceCenter: openServiceCenter,
33205    closeServiceCenter: closeServiceCenter
33206  };
33207}
33208;// ./src/common/hydrate-when.ts
33209
33210
33211var DEFAULT_EVENTS = ['click', 'focus', 'mouseenter', 'touchstart'];
33212function hydrate_when_isBrowser() {
33213  return typeof window !== 'undefined' && typeof document !== 'undefined';
33214}
33215function useHydrateWhen(strategy, options) {
33216  if (strategy === void 0) {
33217    strategy = 'immediate';
33218  }
33219  if (options === void 0) {
33220    options = {};
33221  }
33222  var _a = options.rootMargin,
33223    rootMargin = _a === void 0 ? '240px' : _a,
33224    _b = options.events,
33225    events = _b === void 0 ? DEFAULT_EVENTS : _b,
33226    _c = options.idleTimeout,
33227    idleTimeout = _c === void 0 ? 2000 : _c,
33228    _d = options.afterLcpTimeout,
33229    afterLcpTimeout = _d === void 0 ? 2500 : _d;
33230  var ref = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(null);
33231  var _e = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(strategy === 'immediate'),
33232    active = _e[0],
33233    setActive = _e[1];
33234  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
33235    if (active) return;
33236    if (!hydrate_when_isBrowser()) {
33237      return;
33238    }
33239    var cleanup;
33240    if (strategy === 'visible') {
33241      var target = ref.current;
33242      if (!target || !('IntersectionObserver' in window)) {
33243        setActive(true);
33244        return;
33245      }
33246      var observer_1 = new IntersectionObserver(function (entries) {
33247        if (entries.some(function (entry) {
33248          return entry.isIntersecting;
33249        })) {
33250          setActive(true);
33251          observer_1.disconnect();
33252        }
33253      }, {
33254        rootMargin: rootMargin
33255      });
33256      observer_1.observe(target);
33257      cleanup = function cleanup() {
33258        return observer_1.disconnect();
33259      };
33260    } else if (strategy === 'interaction') {
33261      var target_1 = ref.current;
33262      if (!target_1) {
33263        var id = scheduleIdle(function () {
33264          return setActive(true);
33265        }, idleTimeout);
33266        cleanup = id;
33267      } else {
33268        var onTrigger_1 = function onTrigger_1() {
33269          return setActive(true);
33270        };
33271        events.forEach(function (evt) {
33272          return target_1.addEventListener(evt, onTrigger_1, {
33273            once: true,
33274            passive: true
33275          });
33276        });
33277        cleanup = function cleanup() {
33278          return events.forEach(function (evt) {
33279            return target_1.removeEventListener(evt, onTrigger_1);
33280          });
33281        };
33282      }
33283    } else if (strategy === 'idle') {
33284      cleanup = scheduleIdle(function () {
33285        return setActive(true);
33286      }, idleTimeout);
33287    } else if (strategy === 'afterLcp') {
33288      cleanup = scheduleAfterLcp(function () {
33289        return setActive(true);
33290      }, {
33291        timeout: afterLcpTimeout
33292      });
33293    }
33294    return function () {
33295      cleanup && cleanup();
33296    };
33297  }, [active, strategy, rootMargin, idleTimeout, afterLcpTimeout]);
33298  var trigger = function trigger() {
33299    return setActive(true);
33300  };
33301  return {
33302    active: active,
33303    ref: ref,
33304    trigger: trigger
33305  };
33306}
33307function scheduleIdle(cb, timeout) {
33308  if (!hydrate_when_isBrowser()) return function () {};
33309  var w = window;
33310  if (typeof w.requestIdleCallback === 'function') {
33311    var handle_1 = w.requestIdleCallback(cb, {
33312      timeout: timeout
33313    });
33314    return function () {
33315      return w.cancelIdleCallback && w.cancelIdleCallback(handle_1);
33316    };
33317  }
33318  var timer = setTimeout(cb, Math.min(timeout, 200));
33319  return function () {
33320    return clearTimeout(timer);
33321  };
33322}
33323// EXTERNAL MODULE: ./src/common/authority-utils.ts
33324var authority_utils = __webpack_require__(25435);
33325;// ./src/components/Menu/index.tsx
33326var Menu_assign = undefined && undefined.__assign || function () {
33327  Menu_assign = Object.assign || function (t) {
33328    for (var s, i = 1, n = arguments.length; i < n; i++) {
33329      s = arguments[i];
33330      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
33331    }
33332    return t;
33333  };
33334  return Menu_assign.apply(this, arguments);
33335};
33336
33337
33338
33339
33340
33341
33342
33343
33344
33345
33346
33347
33348
33349
33350
33351
33352
33353
33354var loadMenuChatBox = function loadMenuChatBox() {
33355  return Promise.all(/* import() */[__webpack_require__.e(1554), __webpack_require__.e(326)]).then(__webpack_require__.bind(__webpack_require__, 91554));
33356};
33357
33358
33359
33360
33361
33362var loadAppStore = function loadAppStore() {
33363  return __webpack_require__.e(/* import() */ 6164).then(__webpack_require__.bind(__webpack_require__, 16164));
33364};
33365
33366var loadMenuUpdateGuide = function loadMenuUpdateGuide() {
33367  return Promise.all(/* import() */[__webpack_require__.e(5503), __webpack_require__.e(2440)]).then(__webpack_require__.bind(__webpack_require__, 62440));
33368};
33369
33370
33371
33372var loadServiceCenter = function loadServiceCenter() {
33373  return __webpack_require__.e(/* import() */ 5579).then(__webpack_require__.bind(__webpack_require__, 85579));
33374};
33375
33376
33377
33378
33379var _handlerMenusAuth = function handlerMenusAuth(menus, token) {
33380  return menus.map(function (menu) {
33381    return Menu_assign(Menu_assign({}, menu), {
33382      route: !token ? (0,common/* handleAuthUrl */.gQ)((menu === null || menu === void 0 ? void 0 : menu.route) || '') : menu === null || menu === void 0 ? void 0 : menu.route,
33383      childs: _handlerMenusAuth((menu === null || menu === void 0 ? void 0 : menu.childs) || [], token)
33384    });
33385  });
33386};
33387var PureMenu = /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().memo(function () {
33388  var _a, _b, _c;
33389  var notMenu = useNotMenu();
33390  var _d = (0,PropsContext/* useGlobalProps */.v)(),
33391    otherCookies = _d.otherCookies,
33392    cjDomain = _d.cjDomain,
33393    getDomainByUrl = _d.getDomainByUrl,
33394    loginInfo = _d.loginInfo;
33395  var $axios = (0,useAxios/* useAxios */.q)(getDomainByUrl);
33396  var siteCheck = (0,use_site_check/* default */.A)();
33397  var isCJSite = siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.isSite('CJ');
33398  var useNewAiChat = (0,useIsAiChat/* default */.A)(siteCheck);
33399  var chatAfterLcp = typeof window !== 'undefined' && window.__MF_MENU_CHAT_AFTER_LCP__ === true;
33400  var chatActive = useHydrateWhen(chatAfterLcp ? 'afterLcp' : 'immediate').active;
33401  var LazyChatBox = useLazyComponent(!useNewAiChat && chatActive, loadMenuChatBox, {
33402    componentName: 'ChatBox',
33403    chunkName: 'cjheader-chatbox'
33404  });
33405  var enhancersAfterLcp = typeof window !== 'undefined' && window.__MF_MENU_ENHANCERS_AFTER_LCP__ === true;
33406  var enhancersActive = useHydrateWhen(enhancersAfterLcp ? 'afterLcp' : 'immediate').active;
33407  if (notMenu || useNewAiChat) {
33408    var dom_1 = document.getElementById('chat-icon-box');
33409    if (!dom_1) {
33410      var div_1 = document.createElement('div');
33411      div_1.setAttribute('id', "chat-icon-box");
33412      document.body.appendChild(div_1);
33413      loadMenuChatBox().then(function (m) {
33414        return external_root_ReactDOM_commonjs2_react_dom_commonjs_react_dom_amd_react_dom_default().render(/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(m["default"], {
33415          axios: $axios
33416        }), div_1);
33417      });
33418    }
33419    if (notMenu) {
33420      return null;
33421    }
33422  }
33423  var dom = document.getElementById('chat-icon-box');
33424  !useNewAiChat && dom && document.body.removeChild(dom);
33425  var _e = useHideAuthorize($axios, isCJSite),
33426    showAuthorizeListData = _e.showAuthorizeListData,
33427    _menus = _e.menus,
33428    updateMenus = _e.updateMenus;
33429  var hasAuthorization = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useMemo)(function () {
33430    return _menus.filter(function (item) {
33431      return item.name === 'Authorization';
33432    }).length > 0;
33433  }, [_menus]);
33434  var isZesty = siteCheck.isSite('ZS');
33435  var logoHref = isCJSite ? (0,cj_href/* cjHref */.F)('/home') : cjDomain;
33436  var _f = useIsCollapsed(),
33437    isCollapsed = _f.isCollapsed,
33438    allowSwitchToggle = _f.allowSwitch,
33439    toggleCollapsed = _f.toggle;
33440  var highlight = hooks_useActiveRoute();
33441  var isVip = (0,useIsVip/* default */.A)();
33442  var menuContainerRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(null);
33443  var appStoreHooks = useAddStore({
33444    axios: $axios,
33445    updateCallBack: function updateCallBack() {
33446      if (isCJSite && updateMenus) {
33447        updateMenus();
33448      }
33449    }
33450  });
33451  var menuUpdateGuideHooks = useMenuUpdateGuide({
33452    isCjSiteShow: isCJSite
33453  });
33454  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
33455    if (menuUpdateGuideHooks.visible && isCollapsed) {
33456      toggleCollapsed('0');
33457    }
33458  }, [menuUpdateGuideHooks.visible, isCollapsed, toggleCollapsed]);
33459  var menus = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useMemo)(function () {
33460    return _handlerMenusAuth(_menus, loginInfo === null || loginInfo === void 0 ? void 0 : loginInfo.token);
33461  }, [_menus, loginInfo === null || loginInfo === void 0 ? void 0 : loginInfo.token, siteCheck]);
33462  var serviceSubscription = useServiceSubscription({
33463    axios: $axios,
33464    deferInitialFetch: typeof window !== 'undefined' && window.__MF_MENU_SVC_DEFER__ === true,
33465    updateCallBack: function updateCallBack() {
33466      if (isCJSite && updateMenus) {
33467        updateMenus();
33468      }
33469    }
33470  });
33471  var LazyAppStore = useLazyComponent(isCJSite && hasAuthorization && enhancersActive, loadAppStore, {
33472    componentName: 'AppStore',
33473    chunkName: 'menu-appstore'
33474  });
33475  var LazyMenuUpdateGuide = useLazyComponent(enhancersActive, loadMenuUpdateGuide, {
33476    componentName: 'MenuUpdateGuide',
33477    chunkName: 'menu-update-guide'
33478  });
33479  var LazyServiceCenter = useLazyComponent(isCJSite && enhancersActive, loadServiceCenter, {
33480    componentName: 'ServiceCenter',
33481    chunkName: 'menu-service-center'
33482  });
33483  var filteredMenus = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useMemo)(function () {
33484    if (!isCJSite) return menus;
33485    var serviceInstallTimeMap = serviceSubscription.serviceList.reduce(function (acc, item) {
33486      acc[item.key] = Number(item.installTime) || 0;
33487      return acc;
33488    }, {});
33489    return menus.map(function (menu) {
33490      if (menu.name === 'Service') {
33491        var sourceChilds = menu.childs || [];
33492        var childsWithIndex = sourceChilds.map(function (child, index) {
33493          return {
33494            child: child,
33495            index: index
33496          };
33497        }).filter(function (_a) {
33498          var child = _a.child;
33499          var serviceKey = MENU_NAME_TO_SERVICE_KEY[child.name];
33500          if (!serviceKey) return true;
33501          if (PRE_INSTALLED_KEYS.includes(serviceKey)) return true;
33502          return serviceSubscription.isSubscribed(serviceKey);
33503        }).sort(function (a, b) {
33504          var aKey = MENU_NAME_TO_SERVICE_KEY[a.child.name];
33505          var bKey = MENU_NAME_TO_SERVICE_KEY[b.child.name];
33506          var aIsPreInstalled = aKey ? PRE_INSTALLED_KEYS.includes(aKey) : false;
33507          var bIsPreInstalled = bKey ? PRE_INSTALLED_KEYS.includes(bKey) : false;
33508          if (aIsPreInstalled !== bIsPreInstalled) {
33509            return aIsPreInstalled ? -1 : 1;
33510          }
33511          var aInstallTime = aKey ? serviceInstallTimeMap[aKey] || 0 : 0;
33512          var bInstallTime = bKey ? serviceInstallTimeMap[bKey] || 0 : 0;
33513          if (aInstallTime === bInstallTime) {
33514            return a.index - b.index;
33515          }
33516          return aInstallTime - bInstallTime;
33517        }).map(function (_a) {
33518          var child = _a.child;
33519          return child;
33520        });
33521        return Menu_assign(Menu_assign({}, menu), {
33522          childs: childsWithIndex
33523        });
33524      }
33525      return menu;
33526    });
33527  }, [menus, isCJSite, serviceSubscription.subscribedKeys, serviceSubscription.serviceList]);
33528  var isGoogleTrans = !languages/* sixCountryLanguage */.V.includes(otherCookies.lng);
33529  use_changed(function () {
33530    window.dispatchEvent(new CustomEvent('resizeMenu', {
33531      detail: {
33532        width: isCollapsed ? isZesty ? zestyMenuCollapsedWidth : collapsedWidth : expandedWidth
33533      }
33534    }));
33535  }, [isCollapsed]);
33536  var logoStyles = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useMemo)(function () {
33537    var style = {};
33538    if (isQs(siteCheck)) {
33539      style.height = 70;
33540      style.backgroundColor = '#41424c';
33541    } else if ((0,common/* is1688 */.G3)(siteCheck)) {
33542      style.height = 76;
33543    }
33544    return style;
33545  }, [siteCheck]);
33546  var NormalLogo = (0,common/* is1688 */.G3)(siteCheck) ? (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(THLogo_THLogo, {
33547    logo: siteCheck.data('logo')
33548  })) : (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("img", {
33549    key: "normalLogo",
33550    src: siteCheck.data('logo'),
33551    width: siteCheck.data('logo-width'),
33552    height: siteCheck.data('logo-height')
33553  }));
33554  var handleToggleCollapsed = function handleToggleCollapsed() {
33555    if (menuUpdateGuideHooks.visible) return;
33556    toggleCollapsed();
33557  };
33558  var collapsedKey = isZesty ? 'zs' : 'cj';
33559  var CollapsedIcon = (_a = {}, _a['cj'] = /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
33560    className: Menu/* default */.A['collapsed-icon'],
33561    onClick: handleToggleCollapsed,
33562    "data-gtag-element": "toggle"
33563  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
33564    type: isCollapsed ? 'lujingbeifen2' : 'zuo'
33565  })), _a['zs'] = /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(CollapsedIcon_CollapsedIcon, {
33566    onClick: handleToggleCollapsed,
33567    isCollapsed: isCollapsed
33568  }), _a)[collapsedKey];
33569  var menuWidth = isCollapsed ? isZesty ? zestyMenuCollapsedWidth : collapsedWidth : expandedWidth;
33570  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement((external_root_React_commonjs2_react_commonjs_react_amd_react_default()).Fragment, null, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
33571    style: {
33572      width: menuWidth,
33573      height: '100vh',
33574      flexShrink: 0
33575    }
33576  }), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
33577    className: classnames_default()(Menu/* default */.A['mycj-menu'], (_b = {
33578      notranslate: !isGoogleTrans
33579    }, _b[Menu/* default */.A.collapsed] = isCollapsed, _b[Menu/* default */.A.vip] = isVip, _b[Menu/* default */.A.zs] = isZesty, _b)),
33580    "data-gtag-module": "cj_menu"
33581  }, allowSwitchToggle && !menuUpdateGuideHooks.visible && CollapsedIcon, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
33582    className: classnames_default()(Menu/* default */.A.logo, (_c = {}, _c[Menu/* default */.A['shadow-logo']] = (0,common/* is1688 */.G3)(siteCheck), _c[Menu/* default */.A.zs] = isZesty, _c)),
33583    style: logoStyles
33584  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("a", {
33585    href: logoHref,
33586    "data-gtag-element": "logo"
33587  }, isCollapsed ? (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("img", {
33588    key: "collapsedLogo",
33589    src: siteCheck.data('favicon'),
33590    width: 36,
33591    height: 36
33592  })) : NormalLogo)), isCollapsed && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(components_Menu_MenuCollapsed, {
33593    isActive: highlight.isActive,
33594    isParentActive: highlight.isParentActive,
33595    showAuthorizeListData: showAuthorizeListData,
33596    menus: filteredMenus,
33597    openAddStore: appStoreHooks.openAddStore,
33598    openServiceCenter: isCJSite ? serviceSubscription.openServiceCenter : undefined
33599  })), !isCollapsed && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(components_Menu_MenuNormal, {
33600    isActive: highlight.isActive,
33601    isParentActive: highlight.isParentActive,
33602    showAuthorizeListData: showAuthorizeListData,
33603    menus: filteredMenus,
33604    openAddStore: appStoreHooks.openAddStore,
33605    menuContainerRef: menuContainerRef,
33606    openServiceCenter: isCJSite ? serviceSubscription.openServiceCenter : undefined,
33607    disableScroll: menuUpdateGuideHooks.visible
33608  })), !useNewAiChat && chatActive && LazyChatBox ? (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(LazyChatBox, {
33609    needCollapsed: true,
33610    isCollapsed: isCollapsed,
33611    axios: $axios
33612  })) : null, isCJSite && hasAuthorization && enhancersActive && LazyAppStore && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(LazyAppStore, Menu_assign({}
33612, appStoreHooks))), enhancersActive && LazyMenuUpdateGuide && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(LazyMenuUpdateGuide, {
33613    visible: menuUpdateGuideHooks.visible && !isCollapsed,
33614    onOK: menuUpdateGuideHooks.onOK,
33615    isCollapsed: isCollapsed,
33616    menuContainerRef: menuContainerRef,
33617    guideMode: menuUpdateGuideHooks.guideMode
33618  })), isCJSite && enhancersActive && LazyServiceCenter && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(LazyServiceCenter, {
33619    visible: serviceSubscription.isModalVisible,
33620    onClose: serviceSubscription.closeServiceCenter,
33621    serviceList: serviceSubscription.serviceList,
33622    loading: serviceSubscription.loading,
33623    isSubscribed: serviceSubscription.isSubscribed,
33624    canUnsubscribe: serviceSubscription.canUnsubscribe,
33625    toggleSubscription: serviceSubscription.toggleSubscription
33626  }))));
33627});
33628function Menu_Menu(_a) {
33629  var _b = _a.getDomainByUrl,
33630    getDomainByUrl = _b === void 0 ? function (url) {
33631      return url;
33632    } : _b,
33633    _c = _a.platform,
33634    platform = _c === void 0 ? 'cj' : _c;
33635  i18next_refact(window.i18next, 'en');
33636  var data = {
33637    platform: platform,
33638    getDomainByUrl: getDomainByUrl
33639  };
33640  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(PropsContext/* default */.A.Provider, {
33641    value: data
33642  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(PureMenu, null));
33643}
33644})();
33645
33646/******/ 	return __webpack_exports__;
33647/******/ })()
33648;
33649});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.