PageSourceSearch

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

js cjdropshipping.com collected 2026-09-24 08:37:37 UTC 1,918,585 bytes, 33,604 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.tiktok), {
4691    nameTrans: function nameTrans() {
4692      return "".concat(window.i18next.t("common-mycj-menu-tiktok"));
4693    },
4694    version: 2,
4695    type: 'authorize',
4696    active: false
4697  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.tiktok_us), {
4698    nameTrans: function nameTrans() {
4699      return "".concat(window.i18next.t("common-mycj-menu-tiktok-us"));
4700    },
4701    version: 2,
4702    type: 'authorize',
4703    active: false
4704  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.tiktok_us_cross), {
4705    nameTrans: function nameTrans() {
4706      return "".concat(window.i18next.t("common-mycj-menu-tiktok-us-cross"));
4707    },
4708    version: 2,
4709    type: 'authorize',
4710    active: false
4711  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.woocommerce), {
4712    nameTrans: function nameTrans() {
4713      return "".concat(window.i18next.t("common-mycj-menu-woocommerce"));
4714    },
4715    version: 2,
4716    type: 'authorize',
4717    active: false
4718  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.ebay), {
4719    nameTrans: function nameTrans() {
4720      return "".concat(window.i18next.t("common-mycj-menu-ebay"));
4721    },
4722    version: 2,
4723    type: 'authorize',
4724    active: false
4725  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.api), {
4726    nameTrans: function nameTrans() {
4727      return "".concat(window.i18next.t("common-mycj-menu-api"));
4728    },
4729    version: 2,
4730    type: 'authorize',
4731    active: false
4732  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.etsy), {
4733    nameTrans: function nameTrans() {
4734      return "".concat(window.i18next.t("common-mycj-menu-etsy"));
4735    },
4736    version: 2,
4737    type: 'authorize',
4738    active: false
4739  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.aliexpress), {
4740    nameTrans: function nameTrans() {
4741      return "".concat(window.i18next.t("common-mycj-menu-aliexpress"));
4742    },
4743    version: 2,
4744    type: 'authorize',
4745    active: false
4746  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.wix), {
4747    nameTrans: function nameTrans() {
4748      return "".concat(window.i18next.t("common-mycj-menu-wix"));
4749    },
4750    version: 2,
4751    type: 'authorize',
4752    active: false
4753  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.lazada), {
4754    nameTrans: function nameTrans() {
4755      return "".concat(window.i18next.t("common-mycj-menu-lazada"));
4756    },
4757    version: 2,
4758    type: 'authorize',
4759    active: false
4760  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.shopee), {
4761    nameTrans: function nameTrans() {
4762      return "".concat(window.i18next.t("common-mycj-menu-shopee"));
4763    },
4764    version: 2,
4765    type: 'authorize',
4766    active: false
4767  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.squarespace), {
4768    nameTrans: function nameTrans() {
4769      return "".concat(window.i18next.t("common-mycj-menu-squarespace"));
4770    },
4771    version: 2,
4772    type: 'authorize',
4773    active: false
4774  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.shoplazza), {
4775    nameTrans: function nameTrans() {
4776      return "".concat(window.i18next.t("common-mycj-menu-shoplazza"));
4777    },
4778    version: 2,
4779    type: 'authorize',
4780    active: false
4781  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.magento), {
4782    nameTrans: function nameTrans() {
4783      return "".concat(window.i18next.t("common-mycj-menu-magento"));
4784    },
4785    version: 2,
4786    type: 'authorize',
4787    active: false
4788  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.bigcommerce), {
4789    nameTrans: function nameTrans() {
4790      return "".concat(window.i18next.t("common-mycj-menu-bigcommerce"));
4791    },
4792    version: 2,
4793    type: 'authorize',
4794    active: false
4795  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.prestashop), {
4796    nameTrans: function nameTrans() {
4797      return "".concat(window.i18next.t("common-mycj-menu-prestashop"));
4798    },
4799    version: 2,
4800    type: 'authorize',
4801    active: false
4802  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.allvalue), {
4803    nameTrans: function nameTrans() {
4804      return "".concat(window.i18next.t("common-mycj-menu-allvalue"));
4805    },
4806    version: 2,
4807    type: 'authorize',
4808    active: false
4809  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.nuvemshop), {
4810    nameTrans: function nameTrans() {
4811      return "".concat(window.i18next.t("common-mycj-menu-nuvemshop"));
4812    },
4813    version: 2,
4814    type: 'authorize',
4815    active: false
4816  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.mercado), {
4817    nameTrans: function nameTrans() {
4818      return "".concat(window.i18next.t("common-mycj-menu-mercado"));
4819    },
4820    version: 2,
4821    type: 'authorize',
4822    active: false
4823  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.shipstation), {
4824    nameTrans: function nameTrans() {
4825      return "".concat(window.i18next.t("common-mycj-menu-shipstation"));
4826    },
4827    version: 2,
4828    type: 'authorize',
4829    active: false
4830  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.orangeconnex), {
4831    nameTrans: function nameTrans() {
4832      return "".concat(window.i18next.t("common-mycj-menu-orangeconnex"));
4833    },
4834    version: 2,
4835    type: 'authorize',
4836    active: false
4837  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.chatgpt), {
4838    nameTrans: function nameTrans() {
4839      return "".concat(window.i18next.t('common-mycj-menu-chatgpt', 'ChatGPT'));
4840    },
4841    version: 2,
4842    type: 'authorize',
4843    active: false
4844  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.codex), {
4845    nameTrans: function nameTrans() {
4846      return "".concat(window.i18next.t('common-mycj-menu-codex', 'CodeX'));
4847    },
4848    version: 2,
4849    type: 'authorize',
4850    active: false
4851  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.claude), {
4852    nameTrans: function nameTrans() {
4853      return "".concat(window.i18next.t('common-mycj-menu-claude', 'Claude'));
4854    },
4855    version: 2,
4856    type: 'authorize',
4857    active: false
4858  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORMAll */ .Z8.others), {
4859    nameTrans: function nameTrans() {
4860      return "".concat(window.i18next.t("common-mycj-menu-others"));
4861    },
4862    version: 2,
4863    type: 'authorize',
4864    active: false
4865  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.mabang), {
4866    nameTrans: function nameTrans() {
4867      return "".concat(window.i18next.t("common-mycj-menu-mabang"));
4868    },
4869    version: 2,
4870    type: 'authorize',
4871    active: false
4872  }), __assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_1__/* .PLATFORM */ .i9.miaoshou), {
4873    nameTrans: function nameTrans() {
4874      return "".concat(window.i18next.t("common-mycj-menu-miaoshou"));
4875    },
4876    version: 2,
4877    type: 'authorize',
4878    active: false
4879  })]
4880}, {
4881  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'))),
4882  nameVal: "My CJ",
4883  nameTrans: function nameTrans() {
4884    var _a;
4885    return window.i18next.t("common-mycj-my-site", {
4886      siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
4887    });
4888  },
4889  iconclass: 'bianzu32',
4890  active: false,
4891  childs: [{
4892    name: 'Settings',
4893    nameTrans: function nameTrans() {
4894      return "".concat(window.i18next.t("common-mycj-menu-settings", 'Settings'));
4895    },
4896    code: 'mycj_profile',
4897    route: '/my.html#/profile/info',
4898    active: false
4899  }, {
4900    name: 'Wallet',
4901    nameTrans: function nameTrans() {
4902      return "".concat(window.i18next.t("common-mycj-menu-wallet"));
4903    },
4904    code: 'mycj_wallet',
4905    route: '/mine/wallet',
4906    active: false
4907  }, {
4908    name: 'Ticket',
4909    nameTrans: function nameTrans() {
4910      return "".concat(window.i18next.t("common-mycj-menu-ticket"));
4911    },
4912    code: 'mycj_ticket',
4913    route: '/mine/ticket',
4914    active: false
4915  }, {
4916    name: 'CJ Prime',
4917    nameTrans: function nameTrans() {
4918      return "".concat(window.i18next.t("common-mycj-menu-cj-prime", 'CJ Prime'));
4919    },
4920    route: '/prime',
4921    target: '_blank',
4922    active: false
4923  }, {
4924    name: 'Shipping Calculation',
4925    nameTrans: function nameTrans() {
4926      return "".concat(window.i18next.t("common-mycj-menu-shipping-calculation", 'Shipping Calculation'));
4927    },
4928    code: 'mycj_shipping_calculation',
4929    route: '/calculation.html',
4930    active: false
4931  }, {
4932    name: 'Recent Activity',
4933    nameTrans: function nameTrans() {
4934      return "".concat(window.i18next.t("common-mycj-menu-recent-activity", 'Recent Activity'));
4935    },
4936    active: false,
4937    childs: [{
4938      name: 'Browsing History',
4939      nameTrans: function nameTrans() {
4940        return "".concat(window.i18next.t("common-mycj-menu-browsing-history"));
4941      },
4942      code: 'mycj_browsing_history',
4943      route: '/viewHistory',
4944      active: false
4945    }, {
4946      name: 'Products Records',
4947      nameTrans: function nameTrans() {
4948        return "".concat(window.i18next.t("common-mycj-menu-products-records"));
4949      },
4950      route: '/my.html#/products-connection/history',
4951      code: 'mycj_products_records',
4952      active: false
4953    }, {
4954      name: 'Video Records',
4955      nameTrans: function nameTrans() {
4956        return "".concat(window.i18next.t("common-mycj-menu-video-records"));
4957      },
4958      code: 'mycj_video_list',
4959      route: '/mine/listVideos',
4960      active: false
4961    }, {
4962      name: 'Saved Factories',
4963      nameTrans: function nameTrans() {
4964        return "".concat(window.i18next.t("common-mycj-menu-saved-suppliers", 'Saved Factories'));
4965      },
4966      route: '/savedFactories',
4967      active: false
4968    }, {
4969      name: 'Export List',
4970      nameTrans: function nameTrans() {
4971        return "".concat(window.i18next.t("common-mycj-menu-export-list"));
4972      },
4973      iconclass: 'liwuicon_',
4974      code: 'mycj_export_list',
4975      route: '/mine/exportList',
4976      active: false
4977    }]
4978  }]
4979}];
4980var menuPath = {};
4981var menuNames = {};
4982function loops(list, parent) {
4983  return (list || []).map(function (_a) {
4984    var route = _a.route,
4985      childs = _a.childs,
4986      name = _a.name,
4987      version = _a.version;
4988    var _route = route;
4989    var node = menuNames[name] = menuPath[_route] = {
4990      parent: parent,
4991      name: name,
4992      version: version,
4993      route: _route
4994    };
4995    node['childs'] = loops(childs, node);
4996    return node;
4997  });
4998}
4999function getPath(name) {
5000  var obj = menuNames[name];
5001  var arr = [];
5002  while (obj && obj.name) {
5003    if (obj.childs && obj.childs[0]) {
5004      arr.push(obj.name);
5005    } else {
5006      arr.push(obj.name);
5007    }
5008    if (!obj.parent) break;
5009    obj = obj.parent;
5010  }
5011  return arr;
5012}
5013loops(menus, null);
5014var createAuthTree = function createAuthTree() {
5015  var authMapByRoute = [];
5016  var _fun = function fun(list) {
5017    return list.map(function (l) {
5018      if (l.route && l.code) authMapByRoute.push({
5019        name: l.name,
5020        code: l.code,
5021        route: l.route
5022      });
5023      return {
5024        name: l.name,
5025        code: l.code,
5026        route: l.route,
5027        children: l.childs && _fun(l.childs)
5028      };
5029    });
5030  };
5031  return [_fun(menus), authMapByRoute];
5032};
5033/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAuthTree);
5034
5035/***/ }),
5036
5037/***/ 36694:
5038/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5039
5040"use strict";
5041/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5042/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
5043/* harmony export */ });
5044/* harmony import */ var rc_util_es_ref__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19284);
5045/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
5046/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
5047
5048
5049var TriggerWrapper = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(function (props, ref) {
5050  var children = props.children,
5051    getTriggerDOMNode = props.getTriggerDOMNode;
5052  var canUseRef = (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_0__/* .supportRef */ .f3)(children);
5053
5054  // When use `getTriggerDOMNode`, we should do additional work to get the real dom
5055  var setRef = react__WEBPACK_IMPORTED_MODULE_1__.useCallback(function (node) {
5056    (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_0__/* .fillRef */ .Xf)(ref, getTriggerDOMNode ? getTriggerDOMNode(node) : node);
5057  }, [getTriggerDOMNode]);
5058  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));
5059  return canUseRef ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.cloneElement(children, {
5060    ref: mergedRef
5061  }) : children;
5062});
5063if (false) // removed by dead control flow
5064{}
5065/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TriggerWrapper);
5066
5067/***/ }),
5068
5069/***/ 36762:
5070/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5071
5072"use strict";
5073/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5074/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
5075/* harmony export */ });
5076/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(81002);
5077var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
5078  function adopt(value) {
5079    return value instanceof P ? value : new P(function (resolve) {
5080      resolve(value);
5081    });
5082  }
5083  return new (P || (P = Promise))(function (resolve, reject) {
5084    function fulfilled(value) {
5085      try {
5086        step(generator.next(value));
5087      } catch (e) {
5088        reject(e);
5089      }
5090    }
5091    function rejected(value) {
5092      try {
5093        step(generator["throw"](value));
5094      } catch (e) {
5095        reject(e);
5096      }
5097    }
5098    function step(result) {
5099      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
5100    }
5101    step((generator = generator.apply(thisArg, _arguments || [])).next());
5102  });
5103};
5104var __generator = undefined && undefined.__generator || function (thisArg, body) {
5105  var _ = {
5106      label: 0,
5107      sent: function sent() {
5108        if (t[0] & 1) throw t[1];
5109        return t[1];
5110      },
5111      trys: [],
5112      ops: []
5113    },
5114    f,
5115    y,
5116    t,
5117    g;
5118  return g = {
5119    next: verb(0),
5120    "throw": verb(1),
5121    "return": verb(2)
5122  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
5123    return this;
5124  }), g;
5125  function verb(n) {
5126    return function (v) {
5127      return step([n, v]);
5128    };
5129  }
5130  function step(op) {
5131    if (f) throw new TypeError("Generator is already executing.");
5132    while (g && (g = 0, op[0] && (_ = 0)), _) try {
5133      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;
5134      if (y = 0, t) op = [op[0] & 2, t.value];
5135      switch (op[0]) {
5136        case 0:
5137        case 1:
5138          t = op;
5139          break;
5140        case 4:
5141          _.label++;
5142          return {
5143            value: op[1],
5144            done: false
5145          };
5146        case 5:
5147          _.label++;
5148          y = op[1];
5149          op = [0];
5150          continue;
5151        case 7:
5152          op = _.ops.pop();
5153          _.trys.pop();
5154          continue;
5155        default:
5156          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
5157            _ = 0;
5158            continue;
5159          }
5160          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
5161            _.label = op[1];
5162            break;
5163          }
5164          if (op[0] === 6 && _.label < t[1]) {
5165            _.label = t[1];
5166            t = op;
5167            break;
5168          }
5169          if (t && _.label < t[2]) {
5170            _.label = t[2];
5171            _.ops.push(op);
5172            break;
5173          }
5174          if (t[2]) _.ops.pop();
5175          _.trys.pop();
5176          continue;
5177      }
5178      op = body.call(thisArg, _);
5179    } catch (e) {
5180      op = [6, e];
5181      y = 0;
5182    } finally {
5183      f = t = 0;
5184    }
5185    if (op[0] & 5) throw op[1];
5186    return {
5187      value: op[0] ? op[1] : void 0,
5188      done: true
5189    };
5190  }
5191};
5192
5193var ossHostConfig = __webpack_require__(47280);
5194var dexieLoadPromise = null;
5195function loadDexieScript() {
5196  return __awaiter(this, void 0, Promise, function () {
5197    return __generator(this, function (_a) {
5198      if (typeof Dexie !== 'undefined') {
5199        return [2, Promise.resolve()];
5200      }
5201      if (dexieLoadPromise) {
5202        return [2, dexieLoadPromise];
5203      }
5204      dexieLoadPromise = new Promise(function (resolve, reject) {
5205        var existingScript = document.querySelector('script[src*="[email protected]"]');
5206        if (existingScript) {
5207          if (typeof Dexie !== 'undefined') {
5208            resolve();
5209            return;
5210          }
5211          var checkCount_1 = 0;
5212          var maxChecks_1 = 50;
5213          var checkInterval_1 = setInterval(function () {
5214            checkCount_1++;
5215            if (typeof Dexie !== 'undefined') {
5216              clearInterval(checkInterval_1);
5217              resolve();
5218            } else if (checkCount_1 >= maxChecks_1) {
5219              clearInterval(checkInterval_1);
5220              reject(new Error('Dexie 加载超时:全局变量未定义'));
5221            }
5222          }, 100);
5223          return;
5224        }
5225        var script = document.createElement('script');
5226        script.src = "".concat(ossHostConfig["production"] || 'https://sv-resource.oss-accelerate.aliyuncs.com', "/common-public/[email protected]");
5227        script.async = true;
5228        script.onload = function () {
5229          if (typeof Dexie !== 'undefined') {
5230            resolve();
5231          } else {
5232            reject(new Error('Dexie 加载失败:全局变量未定义'));
5233          }
5234        };
5235        script.onerror = function () {
5236          reject(new Error('Dexie 脚本加载失败'));
5237        };
5238        document.head.appendChild(script);
5239      });
5240      return [2, dexieLoadPromise];
5241    });
5242  });
5243}
5244var CacheDatabase = function () {
5245  function CacheDatabase(DexieClass) {
5246    this.db = new DexieClass('CacheDatabase');
5247    this.db.version(1).stores({
5248      cache: 'key, timestamp, expiresAt'
5249    });
5250    this.cache = this.db.cache;
5251  }
5252  return CacheDatabase;
5253}();
5254var DexieCache = function () {
5255  function DexieCache() {
5256    this.db = null;
5257    this.DEFAULT_EXPIRE_TIME = 10 * 60 * 1000;
5258    this.DB_NAME = 'CacheDatabase';
5259  }
5260  DexieCache.prototype.initDB = function () {
5261    return __awaiter(this, void 0, Promise, function () {
5262      return __generator(this, function (_a) {
5263        switch (_a.label) {
5264          case 0:
5265            if (!_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) {
5266              throw new Error('Dexie cache only works in browser environment');
5267            }
5268            return [4, loadDexieScript()];
5269          case 1:
5270            _a.sent();
5271            if (!this.db) {
5272              this.db = new CacheDatabase(Dexie);
5273            }
5274            return [2, this.db];
5275        }
5276      });
5277    });
5278  };
5279  DexieCache.prototype.generateCacheKey = function (key) {
5280    return key;
5281  };
5282  DexieCache.prototype.isExpired = function (item) {
5283    if (item.expiresAt === null) {
5284      return false;
5285    }
5286    return Date.now() > item.expiresAt;
5287  };
5288  DexieCache.prototype.getCache = function (options) {
5289    return __awaiter(this, void 0, Promise, function () {
5290      var key, _a, deleteExpiredCache, _b, getExpiredCache, db, cacheKey, item, error_1;
5291      return __generator(this, function (_c) {
5292        switch (_c.label) {
5293          case 0:
5294            key = options.key, _a = options.deleteExpiredCache, deleteExpiredCache = _a === void 0 ? true : _a, _b = options.getExpiredCache, getExpiredCache = _b === void 0 ? false : _b;
5295            if (!_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) {
5296              return [2, null];
5297            }
5298            _c.label = 1;
5299          case 1:
5300            _c.trys.push([1, 7,, 8]);
5301            return [4, this.initDB()];
5302          case 2:
5303            db = _c.sent();
5304            cacheKey = this.generateCacheKey(key);
5305            return [4, db.cache.get(cacheKey)];
5306          case 3:
5307            item = _c.sent();
5308            if (!item) {
5309              return [2, null];
5310            }
5311            if (!this.isExpired(item)) return [3, 6];
5312            if (!deleteExpiredCache) return [3, 5];
5313            return [4, db.cache["delete"](cacheKey)];
5314          case 4:
5315            _c.sent();
5316            _c.label = 5;
5317          case 5:
5318            if (getExpiredCache) {
5319              return [2, item];
5320            }
5321            return [2, null];
5322          case 6:
5323            return [2, item];
5324          case 7:
5325            error_1 = _c.sent();
5326            console.warn('获取 Dexie 缓存失败:', error_1);
5327            return [2, null];
5328          case 8:
5329            return [2];
5330        }
5331      });
5332    });
5333  };
5334  DexieCache.prototype.setCache = function (options) {
5335    return __awaiter(this, void 0, Promise, function () {
5336      var key, data, expireTime, db, cacheKey, now, expiresAt, item, error_2;
5337      return __generator(this, function (_a) {
5338        switch (_a.label) {
5339          case 0:
5340            key = options.key, data = options.data, expireTime = options.expireTime;
5341            if (!_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) {
5342              return [2];
5343            }
5344            _a.label = 1;
5345          case 1:
5346            _a.trys.push([1, 4,, 5]);
5347            return [4, this.initDB()];
5348          case 2:
5349            db = _a.sent();
5350            cacheKey = this.generateCacheKey(key);
5351            now = Date.now();
5352            expiresAt = expireTime === undefined || expireTime === null ? null : now + expireTime;
5353            item = {
5354              key: cacheKey,
5355              data: data,
5356              timestamp: now,
5357              expiresAt: expiresAt
5358            };
5359            return [4, db.cache.put(item)];
5360          case 3:
5361            _a.sent();
5362            return [3, 5];
5363          case 4:
5364            error_2 = _a.sent();
5365            console.warn('设置 Dexie 缓存失败:', error_2);
5366            return [3, 5];
5367          case 5:
5368            return [2];
5369        }
5370      });
5371    });
5372  };
5373  DexieCache.prototype.deleteCache = function (options) {
5374    return __awaiter(this, void 0, Promise, function () {
5375      var key, db, cacheKey, error_3;
5376      return __generator(this, function (_a) {
5377        switch (_a.label) {
5378          case 0:
5379            key = options.key;
5380            if (!_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) {
5381              return [2];
5382            }
5383            _a.label = 1;
5384          case 1:
5385            _a.trys.push([1, 4,, 5]);
5386            return [4, this.initDB()];
5387          case 2:
5388            db = _a.sent();
5389            cacheKey = this.generateCacheKey(key);
5390            return [4, db.cache["delete"](cacheKey)];
5391          case 3:
5392            _a.sent();
5393            return [3, 5];
5394          case 4:
5395            error_3 = _a.sent();
5396            console.warn('删除 Dexie 缓存失败:', error_3);
5397            return [3, 5];
5398          case 5:
5399            return [2];
5400        }
5401      });
5402    });
5403  };
5404  DexieCache.prototype.cleanExpiredCache = function () {
5405    return __awaiter(this, void 0, Promise, function () {
5406      var db, now_1, allItems, expiredItems, keys, error_4;
5407      return __generator(this, function (_a) {
5408        switch (_a.label) {
5409          case 0:
5410            if (!_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) {
5411              return [2];
5412            }
5413            _a.label = 1;
5414          case 1:
5415            _a.trys.push([1, 6,, 7]);
5416            return [4, this.initDB()];
5417          case 2:
5418            db = _a.sent();
5419            now_1 = Date.now();
5420            return [4, db.cache.toArray()];
5421          case 3:
5422            allItems = _a.sent();
5423            expiredItems = allItems.filter(function (item) {
5424              return item.expiresAt !== null && item.expiresAt < now_1;
5425            });
5426            if (!(expiredItems.length > 0)) return [3, 5];
5427            keys = expiredItems.map(function (item) {
5428              return item.key;
5429            });
5430            return [4, db.cache.bulkDelete(keys)];
5431          case 4:
5432            _a.sent();
5433            console.log("\u6E05\u7406\u4E86 ".concat(expiredItems.length, " \u4E2A\u8FC7\u671F\u7F13\u5B58\u9879"));
5434            _a.label = 5;
5435          case 5:
5436            return [3, 7];
5437          case 6:
5438            error_4 = _a.sent();
5439            console.warn('清理过期缓存失败:', error_4);
5440            return [3, 7];
5441          case 7:
5442            return [2];
5443        }
5444      });
5445    });
5446  };
5447  DexieCache.prototype.clearAllCache = function () {
5448    return __awaiter(this, void 0, Promise, function () {
5449      var db, error_5;
5450      return __generator(this, function (_a) {
5451        switch (_a.label) {
5452          case 0:
5453            if (!_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) {
5454              return [2];
5455            }
5456            _a.label = 1;
5457          case 1:
5458            _a.trys.push([1, 4,, 5]);
5459            return [4, this.initDB()];
5460          case 2:
5461            db = _a.sent();
5462            return [4, db.cache.clear()];
5463          case 3:
5464            _a.sent();
5465            console.log('清除所有 Dexie 缓存');
5466            return [3, 5];
5467          case 4:
5468            error_5 = _a.sent();
5469            console.warn('清除所有缓存失败:', error_5);
5470            return [3, 5];
5471          case 5:
5472            return [2];
5473        }
5474      });
5475    });
5476  };
5477  DexieCache.prototype.getCachedData = function (key, requestFn, options) {
5478    if (options === void 0) {
5479      options = {};
5480    }
5481    return __awaiter(this, void 0, Promise, function () {
5482      var expireTime, _a, forceRefresh, cached, data, error_6, cached;
5483      return __generator(this, function (_b) {
5484        switch (_b.label) {
5485          case 0:
5486            expireTime = options.expireTime, _a = options.forceRefresh, forceRefresh = _a === void 0 ? false : _a;
5487            return [4, this.cleanExpiredCache()];
5488          case 1:
5489            _b.sent();
5490            if (!!forceRefresh) return [3, 3];
5491            return [4, this.getCache({
5492              key: key
5493            })];
5494          case 2:
5495            cached = _b.sent();
5496            if (cached) {
5497              console.log("\u4ECE Dexie \u7F13\u5B58\u83B7\u53D6\u6570\u636E: ".concat(key));
5498              return [2, cached.data];
5499            }
5500            _b.label = 3;
5501          case 3:
5502            console.log("\u53D1\u8D77\u65B0\u8BF7\u6C42: ".concat(key));
5503            _b.label = 4;
5504          case 4:
5505            _b.trys.push([4, 7,, 9]);
5506            return [4, requestFn()];
5507          case 5:
5508            data = _b.sent();
5509            return [4, this.setCache({
5510              key: key,
5511              data: data,
5512              expireTime: expireTime
5513            })];
5514          case 6:
5515            _b.sent();
5516            return [2, data];
5517          case 7:
5518            error_6 = _b.sent();
5519            return [4, this.getCache({
5520              key: key
5521            })];
5522          case 8:
5523            cached = _b.sent();
5524            if (cached) {
5525              console.warn("\u8BF7\u6C42\u5931\u8D25\uFF0C\u8FD4\u56DE\u8FC7\u671F\u7F13\u5B58\u6570\u636E: ".concat(key), error_6);
5526              return [2, cached.data];
5527            }
5528            throw error_6;
5529          case 9:
5530            return [2];
5531        }
5532      });
5533    });
5534  };
5535  DexieCache.prototype.getCacheStats = function () {
5536    return __awaiter(this, void 0, Promise, function () {
5537      var db, allItems, now_2, expiredItems, error_7;
5538      return __generator(this, function (_a) {
5539        switch (_a.label) {
5540          case 0:
5541            if (!_index__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) {
5542              return [2, {
5543                totalItems: 0,
5544                expiredItems: 0
5545              }];
5546            }
5547            _a.label = 1;
5548          case 1:
5549            _a.trys.push([1, 4,, 5]);
5550            return [4, this.initDB()];
5551          case 2:
5552            db = _a.sent();
5553            return [4, db.cache.toArray()];
5554          case 3:
5555            allItems = _a.sent();
5556            now_2 = Date.now();
5557            expiredItems = allItems.filter(function (item) {
5558              return item.expiresAt !== null && item.expiresAt < now_2;
5559            }).length;
5560            return [2, {
5561              totalItems: allItems.length,
5562              expiredItems: expiredItems
5563            }];
5564          case 4:
5565            error_7 = _a.sent();
5566            console.warn('获取缓存统计失败:', error_7);
5567            return [2, {
5568              totalItems: 0,
5569              expiredItems: 0
5570            }];
5571          case 5:
5572            return [2];
5573        }
5574      });
5575    });
5576  };
5577  return DexieCache;
5578}();
5579var dexieCache = new DexieCache();
5580/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (dexieCache);
5581
5582/***/ }),
5583
5584/***/ 37183:
5585/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5586
5587"use strict";
5588/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5589/* harmony export */   A: () => (/* binding */ Button)
5590/* harmony export */ });
5591/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53373);
5592/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
5593/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
5594/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
5595/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60133);
5596/* harmony import */ var _components_Menu_hooks_useIsVip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(95092);
5597var __assign = undefined && undefined.__assign || function () {
5598  __assign = Object.assign || function (t) {
5599    for (var s, i = 1, n = arguments.length; i < n; i++) {
5600      s = arguments[i];
5601      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
5602    }
5603    return t;
5604  };
5605  return __assign.apply(this, arguments);
5606};
5607var __rest = undefined && undefined.__rest || function (s, e) {
5608  var t = {};
5609  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
5610  if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
5611    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
5612  }
5613  return t;
5614};
5615
5616
5617
5618
5619function Button(props) {
5620  var _a;
5621  var _b = props.type,
5622    type = _b === void 0 ? 'primary' : _b,
5623    _c = props.size,
5624    size = _c === void 0 ? 'middle' : _c,
5625    full = props.full,
5626    title = props.title,
5627    className = props.className,
5628    disabled = props.disabled,
5629    children = props.children,
5630    _onClick = props.onClick,
5631    showVip = props.showVip,
5632    resetProps = __rest(props, ["type", "size", "full", "title", "className", "disabled", "children", "onClick", "showVip"]);
5633  var isVip = (0,_components_Menu_hooks_useIsVip__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)();
5634  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement("div", __assign({}, resetProps, {
5635    onClick: function onClick(e) {
5636      if (disabled) return;
5637      _onClick === null || _onClick === void 0 ? void 0 : _onClick(e);
5638    },
5639    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)
5640  }), title, children);
5641}
5642
5643/***/ }),
5644
5645/***/ 37597:
5646/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5647
5648"use strict";
5649/* harmony export */ __webpack_require__.d(__webpack_exports__, {
5650/* harmony export */   Ay: () => (__WEBPACK_DEFAULT_EXPORT__),
5651/* harmony export */   Z8: () => (/* binding */ PLATFORMAll),
5652/* harmony export */   i9: () => (/* binding */ PLATFORM)
5653/* harmony export */ });
5654/* unused harmony export PLATFORMLIST */
5655/* harmony import */ var _common_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4703);
5656/* harmony import */ var _common_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(81002);
5657/* harmony import */ var _common_login_info_controller__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12097);
5658var __assign = undefined && undefined.__assign || function () {
5659  __assign = Object.assign || function (t) {
5660    for (var s, i = 1, n = arguments.length; i < n; i++) {
5661      s = arguments[i];
5662      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
5663    }
5664    return t;
5665  };
5666  return __assign.apply(this, arguments);
5667};
5668
5669
5670
5671var PlatformShow = function () {
5672  function PlatformShow() {
5673    this.platformShowKey = 'platformShow';
5674    this.platformShowList = [];
5675    var userId = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.info('userId');
5676    if (userId) {
5677      this.platformShowKey = "platformShow_".concat(userId);
5678    }
5679    if (_common_index__WEBPACK_IMPORTED_MODULE_1__/* .isBrowser */ .Bd) {
5680      this.get();
5681    }
5682  }
5683  PlatformShow.prototype.get = function () {
5684    var _a;
5685    this.platformShowList = (_a = _common_store__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get(this.platformShowKey, {
5686      parse: true
5687    })) === null || 
5687_a === void 0 ? void 0 : _a.value;
5688    return _common_store__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get(this.platformShowKey, {
5689      parse: true
5690    });
5691  };
5692  PlatformShow.prototype.del = function () {
5693    _common_store__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.del(this.platformShowKey);
5694  };
5695  PlatformShow.prototype.save = function (data) {
5696    var allKeys = Object.keys(localStorage);
5697    allKeys.forEach(function (key) {
5698      if (key.startsWith('platformShow_')) {
5699        localStorage.removeItem(key);
5700      }
5701    });
5702    _common_store__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.set(this.platformShowKey, {
5703      value: data,
5704      expire: new Date().getTime() + 1000 * 60 * 10
5705    });
5706  };
5707  return PlatformShow;
5708}();
5709var showPlatformName = function showPlatformName(platformName) {
5710  if (platformName === void 0) {
5711    platformName = '';
5712  }
5713  var platformNameLowerCase = platformName.toLocaleLowerCase();
5714  var platformEnum = {
5715    tiktok_us: 'TikTok Shop US (Local)',
5716    tiktok_us_cross: 'TikTok Shop US (Cross Border)',
5717    tiktok: 'TikTok Shop (Non-US)',
5718    ebay: 'eBay',
5719    wix: 'Wix',
5720    etsy: 'Etsy',
5721    shoplazza: 'Shoplazza',
5722    shopify: 'Shopify',
5723    woocommerce: 'Woocommerce',
5724    shipstation: 'Shipstation',
5725    amazon: 'Amazon',
5726    lazada: 'Lazada',
5727    shopee: 'Shopee',
5728    squarespace: 'Squarespace',
5729    orangeconnex: 'OrangeConnex',
5730    magento: 'Magento',
5731    bigcommerce: 'Bigcommerce',
5732    prestashop: 'Prestashop',
5733    nuvemshop: 'Nuvemshop',
5734    allvalue: 'AllValue',
5735    aliexpress: 'AliExpress',
5736    api: 'API',
5737    mercado: 'Mercado',
5738    temu: 'Temu Semi-Managed',
5739    temu_us_local: 'Temu Local',
5740    mabang: 'MabangERP',
5741    others: 'Others',
5742    miaoshou: 'MiaoshouERP',
5743    temu_certified_overseas: 'Temu Cooperative Warehouse',
5744    shein: 'Shein Semi-Managed',
5745    wed2c: 'WED2C',
5746    chatgpt: 'ChatGPT',
5747    codex: 'CodeX',
5748    Claude: 'Claude'
5749  };
5750  return platformEnum[platformNameLowerCase] || platformName;
5751};
5752PlatformShow.prototype.showPlatformName = showPlatformName;
5753/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PlatformShow);
5754var PLATFORM = {
5755  shopify: {
5756    key: 'shopify',
5757    name: 'Shopify',
5758    imageName: 'shopify',
5759    iconclass: 'shopify',
5760    appName: showPlatformName('shopify'),
5761    code: 'mycj_auth_shopify',
5762    route: '/my.html#/authorize/Shopify'
5763  },
5764  temu: {
5765    key: 'temu',
5766    name: 'Temu',
5767    imageName: 'temu',
5768    iconclass: 'temu',
5769    appName: showPlatformName('temu'),
5770    code: 'mycj_auth_temu',
5771    route: '/mine/authorize/authorizeList/Temu'
5772  },
5773  temu_us_local: {
5774    key: 'temu_us_local',
5775    name: 'Temu_US_Local',
5776    imageName: 'temu_us_local',
5777    iconclass: 'temu_us_local',
5778    appName: showPlatformName('temu_us_local'),
5779    code: 'mycj_auth_temu',
5780    route: '/mine/authorize/authorizeList/Temu_US_Local'
5781  },
5782  temu_certified_overseas: {
5783    key: 'temu_certified_overseas',
5784    name: 'Temu_certified_overseas',
5785    imageName: 'temu_certified_overseas',
5786    iconclass: 'temu_certified_overseas',
5787    appName: showPlatformName('temu_certified_overseas'),
5788    code: 'mycj_auth_temu',
5789    route: '/mine/authorize/authorizeList/Temu_Certified_Overseas'
5790  },
5791  shein: {
5792    key: 'shein',
5793    name: 'Shein',
5794    imageName: 'shein',
5795    iconclass: 'shein',
5796    appName: showPlatformName('shein'),
5797    code: 'mycj_auth_temu',
5798    route: '/mine/authorize/authorizeList/Shein'
5799  },
5800  tiktok_us: {
5801    key: 'tiktok_us',
5802    name: 'TikTok_US',
5803    imageName: 'tiktok_us',
5804    iconclass: 'tiktok_us',
5805    appName: showPlatformName('tiktok_us'),
5806    code: 'mycj_auth_tiktok_us',
5807    route: '/mine/authorize/authorizeList/TikTok_US'
5808  },
5809  tiktok_us_cross: {
5810    key: 'tiktok_us_cross',
5811    name: 'TikTok_US_Cross',
5812    imageName: 'tiktok_us_cross',
5813    iconclass: 'tiktok_us_cross',
5814    appName: showPlatformName('tiktok_us_cross'),
5815    code: 'mycj_auth_tiktok_us_cross',
5816    route: '/mine/authorize/authorizeList/TikTok_US_Cross'
5817  },
5818  tiktok: {
5819    key: 'tiktok',
5820    name: 'TikTok',
5821    imageName: 'tiktok',
5822    iconclass: 'tiktok',
5823    appName: showPlatformName('tiktok'),
5824    code: 'mycj_auth_tiktok',
5825    route: '/my.html#/authorize/TikTok'
5826  },
5827  woocommerce: {
5828    key: 'woocommerce',
5829    name: 'Woocommerce',
5830    imageName: 'woocommerce',
5831    iconclass: 'wix1',
5832    appName: showPlatformName('woocommerce'),
5833    code: 'mycj_auth_woocommerce',
5834    route: '/my.html#/authorize/Woocommerce'
5835  },
5836  mercado: {
5837    key: 'mercado',
5838    name: 'Mercado',
5839    imageName: 'mercado',
5840    iconclass: 'mercado',
5841    appName: showPlatformName('mercado'),
5842    code: 'mycj_auth_mercado',
5843    route: '/mine/authorize/authorizeList/Mercado'
5844  },
5845  shoplazza: {
5846    key: 'shoplazza',
5847    name: 'ShopLazza',
5848    imageName: 'shoplazza',
5849    iconclass: 'shoplazza',
5850    appName: showPlatformName('shoplazza'),
5851    code: 'mycj_auth_shoplazza',
5852    route: '/my.html#/authorize/Shoplazza'
5853  },
5854  ebay: {
5855    key: 'ebay',
5856    name: 'eBay',
5857    imageName: 'ebay',
5858    iconclass: 'eBay',
5859    appName: showPlatformName('ebay'),
5860    code: 'mycj_auth_ebay',
5861    route: '/my.html#/authorize/Ebay'
5862  },
5863  aliexpress: {
5864    key: 'aliexpress',
5865    name: 'AliExpress',
5866    imageName: 'aliexpress',
5867    iconclass: 'aliexpress',
5868    appName: showPlatformName('aliexpress'),
5869    code: 'mycj_auth_aliExpress',
5870    route: '/my.html#/authorize/AliExpress'
5871  },
5872  lazada: {
5873    key: 'lazada',
5874    name: 'Lazada',
5875    imageName: 'lazada',
5876    iconclass: 'lazada',
5877    appName: showPlatformName('lazada'),
5878    code: 'mycj_auth_lazada',
5879    route: '/my.html#/authorize/Lazada'
5880  },
5881  shopee: {
5882    key: 'shopee',
5883    name: 'Shopee',
5884    imageName: 'shopee',
5885    iconclass: 'shopee',
5886    appName: showPlatformName('shopee'),
5887    code: 'mycj_auth_shopee',
5888    route: '/my.html#/authorize/Shopee'
5889  },
5890  nuvemshop: {
5891    key: 'nuvemshop',
5892    name: 'Nuvemshop',
5893    imageName: 'nuvemshop',
5894    iconclass: 'nuvemshop',
5895    appName: showPlatformName('nuvemshop'),
5896    code: 'mycj_auth_nuvemshop',
5897    route: '/my.html#/authorize/Nuvemshop'
5898  },
5899  etsy: {
5900    key: 'etsy',
5901    name: 'Etsy',
5902    imageName: 'etsy',
5903    iconclass: 'etsy',
5904    appName: showPlatformName('etsy'),
5905    code: 'mycj_auth_etsy',
5906    route: '/mine/authorize/authorizeList/Etsy'
5907  },
5908  allvalue: {
5909    key: 'allvalue',
5910    name: 'AllValue',
5911    imageName: 'allvalue',
5912    iconclass: 'allvalue',
5913    appName: showPlatformName('allvalue'),
5914    code: 'mycj_auth_allvalue',
5915    route: '/my.html#/authorize/AllValue'
5916  },
5917  wed2c: {
5918    key: 'wed2c',
5919    name: 'WED2C',
5920    imageName: 'wed2c',
5921    iconclass: 'wed2c',
5922    appName: showPlatformName('wed2c'),
5923    code: 'mycj_auth_wed2c',
5924    route: '/mine/wed2cAuth'
5925  },
5926  api: {
5927    key: 'api',
5928    name: 'API',
5929    imageName: 'api',
5930    iconclass: 'API',
5931    appName: showPlatformName('api'),
5932    code: 'mycj_auth_api',
5933    route: '/my.html#/authorize/APIStores'
5934  },
5935  wix: {
5936    key: 'wix',
5937    name: 'Wix',
5938    imageName: 'wix',
5939    iconclass: 'wix',
5940    appName: showPlatformName('wix'),
5941    code: 'mycj_auth_wix',
5942    route: '/my.html#/authorize/Wix'
5943  },
5944  squarespace: {
5945    key: 'squarespace',
5946    name: 'Squarespace',
5947    imageName: 'squarespace',
5948    iconclass: 'squarespace',
5949    appName: showPlatformName('squarespace'),
5950    code: 'mycj_auth_squarespace',
5951    route: '/my.html#/authorize/Squarespace'
5952  },
5953  magento: {
5954    key: 'magento',
5955    name: 'Magento',
5956    imageName: 'magento',
5957    iconclass: 'magento',
5958    appName: showPlatformName('magento'),
5959    code: 'mycj_auth_magento',
5960    route: '/my.html#/authorize/Magento'
5961  },
5962  bigcommerce: {
5963    key: 'bigcommerce',
5964    name: 'BigCommerce',
5965    imageName: 'bigcommerce',
5966    iconclass: 'bigcommerce',
5967    appName: showPlatformName('bigcommerce'),
5968    code: 'mycj_auth_bigcommerce',
5969    route: '/my.html#/authorize/Bigcommerce'
5970  },
5971  prestashop: {
5972    key: 'prestashop',
5973    name: 'PrestaShop',
5974    imageName: 'prestashop',
5975    iconclass: 'prestashop',
5976    appName: showPlatformName('prestashop'),
5977    code: 'mycj_auth_prestashop',
5978    route: '/my.html#/authorize/Prestashop'
5979  },
5980  shipstation: {
5981    key: 'shipstation',
5982    name: 'ShipStation',
5983    imageName: 'shipstation',
5984    iconclass: 'shipstation',
5985    appName: showPlatformName('shipstation'),
5986    code: 'mycj_auth_shipstation',
5987    route: '/my.html#/authorize/Shipstation'
5988  },
5989  orangeconnex: {
5990    key: 'orangeconnex',
5991    name: 'OrangeConnex',
5992    imageName: 'orangeconnex',
5993    iconclass: 'orangeconnex',
5994    appName: showPlatformName('orangeconnex'),
5995    code: 'mycj_auth_orangeconnex',
5996    route: '/my.html#/authorize/OrangeConnex'
5997  },
5998  mabang: {
5999    key: 'mabang',
6000    name: 'Mabang',
6001    imageName: 'mabang',
6002    iconclass: 'mabang',
6003    appName: showPlatformName('mabang'),
6004    code: 'mycj_auth_mabang',
6005    route: '/mine/authorize/authorizeList/Mabang'
6006  },
6007  miaoshou: {
6008    key: 'miaoshou',
6009    name: 'Miaoshou',
6010    imageName: 'miaoshou',
6011    iconclass: 'miaoshou',
6012    appName: showPlatformName('miaoshou'),
6013    code: 'mycj_auth_miaoshou',
6014    route: '/mine/authorize/authorizeList/Miaoshou'
6015  },
6016  chatgpt: {
6017    key: 'chatgpt',
6018    name: 'ChatGPT',
6019    imageName: 'chatgpt',
6020    iconclass: 'chatgpt',
6021    appName: showPlatformName('chatgpt'),
6022    code: 'ChatGPT',
6023    route: '/ai/chatgpt'
6024  },
6025  codex: {
6026    key: 'codex',
6027    name: 'CodeX',
6028    imageName: 'codex',
6029    iconclass: 'codex',
6030    appName: showPlatformName('codex'),
6031    code: 'CodeX',
6032    route: '/ai/codex'
6033  },
6034  claude: {
6035    key: 'claude',
6036    name: 'Claude',
6037    imageName: 'claude',
6038    iconclass: 'claude',
6039    appName: showPlatformName('claude'),
6040    code: 'Claude',
6041    route: '/ai/claude'
6042  }
6043};
6044var PLATFORMAll = __assign(__assign({}, PLATFORM), {
6045  others: {
6046    key: 'others',
6047    name: 'Others',
6048    imageName: 'others',
6049    iconclass: 'others',
6050    appName: showPlatformName('others'),
6051    code: 'mycj_auth_others',
6052    route: '/mine/authorize/authorizeList/Others'
6053  }
6054});
6055var PLATFORMLIST = Object.values(PLATFORM);
6056
6057/***/ }),
6058
6059/***/ 38818:
6060/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6061
6062"use strict";
6063/* unused harmony export genCSSMotionList */
6064/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89575);
6065/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39850);
6066/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69740);
6067/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(55152);
6068/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(30414);
6069/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2474);
6070/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(29296);
6071/* harmony import */ var _babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(90857);
6072/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(24586);
6073/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(15442);
6074/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_9__);
6075/* harmony import */ var _CSSMotion__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(89614);
6076/* harmony import */ var _util_diff__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(40657);
6077/* harmony import */ var _util_motion__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(73688);
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087var _excluded = ["component", "children", "onVisibleChanged", "onAllRemoved"],
6088  _excluded2 = ["status"];
6089/* eslint react/prop-types: 0 */
6090
6091
6092
6093
6094var MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearPrepare', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];
6095/**
6096 * Generate a CSSMotionList component with config
6097 * @param transitionSupport No need since CSSMotionList no longer depends on transition support
6098 * @param CSSMotion CSSMotion component
6099 */
6100function genCSSMotionList(transitionSupport) {
6101  var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _CSSMotion__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A;
6102  var CSSMotionList = /*#__PURE__*/function (_React$Component) {
6103    (0,_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A)(CSSMotionList, _React$Component);
6104    var _super = (0,_babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)(CSSMotionList);
6105    function CSSMotionList() {
6106      var _this;
6107      (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)(this, CSSMotionList);
6108      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
6109        args[_key] = arguments[_key];
6110      }
6111      _this = _super.call.apply(_super, [this].concat(args));
6112      (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", {
6113        keyEntities: []
6114      });
6115      // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info.
6116      (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) {
6117        _this.setState(function (prevState) {
6118          var nextKeyEntities = prevState.keyEntities.map(function (entity) {
6119            if (entity.key !== removeKey) return entity;
6120            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), {}, {
6121              status: _util_diff__WEBPACK_IMPORTED_MODULE_11__/* .STATUS_REMOVED */ .e8
6122            });
6123          });
6124          return {
6125            keyEntities: nextKeyEntities
6126          };
6127        }, function () {
6128          var keyEntities = _this.state.keyEntities;
6129          var restKeysCount = keyEntities.filter(function (_ref) {
6130            var status = _ref.status;
6131            return status !== _util_diff__WEBPACK_IMPORTED_MODULE_11__/* .STATUS_REMOVED */ .e8;
6132          }).length;
6133          if (restKeysCount === 0 && _this.props.onAllRemoved) {
6134            _this.props.onAllRemoved();
6135          }
6136        });
6137      });
6138      return _this;
6139    }
6140    (0,_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)(CSSMotionList, [{
6141      key: "render",
6142      value: function render() {
6143        var _this2 = this;
6144        var keyEntities = this.state.keyEntities;
6145        var _this$props = this.props,
6146          component = _this$props.component,
6147          children = _this$props.children,
6148          _onVisibleChanged = _this$props.onVisibleChanged,
6149          onAllRemoved = _this$props.onAllRemoved,
6150          restProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_this$props, _excluded);
6151        var Component = component || react__WEBPACK_IMPORTED_MODULE_9__.Fragment;
6152        var motionProps = {};
6153        MOTION_PROP_NAMES.forEach(function (prop) {
6154          motionProps[prop] = restProps[prop];
6155          delete restProps[prop];
6156        });
6157        delete restProps.keys;
6158        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__.createElement(Component, restProps, keyEntities.map(function (_ref2, index) {
6159          var status = _ref2.status,
6160            eventProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_ref2, _excluded2);
6161          var visible = status === _util_diff__WEBPACK_IMPORTED_MODULE_11__/* .STATUS_ADD */ .bK || status === _util_diff__WEBPACK_IMPORTED_MODULE_11__/* .STATUS_KEEP */ .xI;
6162          return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_9__.createElement(CSSMotion, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, motionProps, {
6163            key: eventProps.key,
6164            visible: visible,
6165            eventProps: eventProps,
6166            onVisibleChanged: function onVisibleChanged(changedVisible) {
6167              _onVisibleChanged === null || _onVisibleChanged === void 0 || _onVisibleChanged(changedVisible, {
6168                key: eventProps.key
6169              });
6170              if (!changedVisible) {
6171                _this2.removeKey(eventProps.key);
6172              }
6173            }
6174          }), function (props, ref) {
6175            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), {}, {
6176              index: index
6177            }), ref);
6178          });
6179        }));
6180      }
6181    }], [{
6182      key: "getDerivedStateFromProps",
6183      value: function getDerivedStateFromProps(_ref3, _ref4) {
6184        var keys = _ref3.keys;
6185        var keyEntities = _ref4.keyEntities;
6186        var parsedKeyObjects = (0,_util_diff__WEBPACK_IMPORTED_MODULE_11__/* .parseKeys */ .Ss)(keys);
6187        var mixedKeyEntities = (0,_util_diff__WEBPACK_IMPORTED_MODULE_11__/* .diffKeys */ .y$)(keyEntities, parsedKeyObjects);
6188        return {
6189          keyEntities: mixedKeyEntities.filter(function (entity) {
6190            var prevEntity = keyEntities.find(function (_ref5) {
6191              var key = _ref5.key;
6192              return entity.key === key;
6193            });
6194
6195            // Remove if already mark as removed
6196            if (prevEntity && prevEntity.status === _util_diff__WEBPACK_IMPORTED_MODULE_11__/* .STATUS_REMOVED */ .e8 && entity.status === _util_diff__WEBPACK_IMPORTED_MODULE_11__/* .STATUS_REMOVE */ .au) {
6197              return false;
6198            }
6199            return true;
6200          })
6201        };
6202      }
6203    }]);
6204    return CSSMotionList;
6205  }(react__WEBPACK_IMPORTED_MODULE_9__.Component);
6206  (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(CSSMotionList, "defaultProps", {
6207    component: 'div'
6208  });
6209  return CSSMotionList;
6210}
6211/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = (genCSSMotionList(_util_motion__WEBPACK_IMPORTED_MODULE_12__/* .supportTransition */ .J1));
6212
6213/***/ }),
6214
6215/***/ 38903:
6216/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6217
6218"use strict";
6219/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6220/* harmony export */   e: () => (/* binding */ CJHEADER_VARIABLE_NAME)
6221/* harmony export */ });
6222/* harmony import */ var _common_get_initial_handler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20194);
6223/* harmony import */ var _get_top_nav_props__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72777);
6224/* harmony import */ var _services__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(62934);
6225var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
6226  function adopt(value) {
6227    return value instanceof P ? value : new P(function (resolve) {
6228      resolve(value);
6229    });
6230  }
6231  return new (P || (P = Promise))(function (resolve, reject) {
6232    function fulfilled(value) {
vendor: 2,805 bytes, lines 6233-6346
6233      try {
6234        step(generator.next(value));
6235      } catch (e) {
6236        reject(e);
6237      }
6238    }
6239    function rejected(value) {
6240      try {
6241        step(generator["throw"](value));
6242      } catch (e) {
6243        reject(e);
6244      }
6245    }
6246    function step(result) {
6247      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
6248    }
6249    step((generator = generator.apply(thisArg, _arguments || [])).next());
6250  });
6251};
6252var __generator = undefined && undefined.__generator || function (thisArg, body) {
6253  var _ = {
6254      label: 0,
6255      sent: function sent() {
6256        if (t[0] & 1) throw t[1];
6257        return t[1];
6258      },
6259      trys: [],
6260      ops: []
6261    },
6262    f,
6263    y,
6264    t,
6265    g;
6266  return g = {
6267    next: verb(0),
6268    "throw": verb(1),
6269    "return": verb(2)
6270  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
6271    return this;
6272  }), g;
6273  function verb(n) {
6274    return function (v) {
6275      return step([n, v]);
6276    };
6277  }
6278  function step(op) {
6279    if (f) throw new TypeError("Generator is already executing.");
6280    while (g && (g = 0, op[0] && (_ = 0)), _) try {
6281      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;
6282      if (y = 0, t) op = [op[0] & 2, t.value];
6283      switch (op[0]) {
6284        case 0:
6285        case 1:
6286          t = op;
6287          break;
6288        case 4:
6289          _.label++;
6290          return {
6291            value: op[1],
6292            done: false
6293          };
6294        case 5:
6295          _.label++;
6296          y = op[1];
6297          op = [0];
6298          continue;
6299        case 7:
6300          op = _.ops.pop();
6301          _.trys.pop();
6302          continue;
6303        default:
6304          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
6305            _ = 0;
6306            continue;
6307          }
6308          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
6309            _.label = op[1];
6310            break;
6311          }
6312          if (op[0] === 6 && _.label < t[1]) {
6313            _.label = t[1];
6314            t = op;
6315            break;
6316          }
6317          if (t && _.label < t[2]) {
6318            _.label = t[2];
6319            _.ops.push(op);
6320            break;
6321          }
6322          if (t[2]) _.ops.pop();
6323          _.trys.pop();
6324          continue;
6325      }
6326      op = body.call(thisArg, _);
6327    } catch (e) {
6328      op = [6, e];
6329      y = 0;
6330    } finally {
6331      f = t = 0;
6332    }
6333    if (op[0] & 5) throw op[1];
6334    return {
6335      value: op[0] ? op[1] : void 0,
6336      done: true
6337    };
6338  }
6339};
6340
6341
6342
6343var CJHEADER_VARIABLE_NAME = 'cjHeaderProps';
6344/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = (function (CjHeader) {
6345  CjHeader.getInitialProps = function (_a) {
6346    var ctx = _a.ctx,
6347      getDomainByUrl = _a.getDomainByUrl,
6348      _b = _a.platform,
6349      platform = _b === void 0 ? 'cj' : _b,
6350      _c = _a.autoMode,
6351      autoMode = _c === void 0 ? false : _c,
6352      _d = _a.maxWidth,
6353      maxWidth = _d === void 0 ? '100%' : _d,
6354      _e = _a.supplierInfo,
6355      supplierInfo = _e === void 0 ? {} : _e;
6356    return __awaiter(void 0, void 0, void 0, function () {
6357      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;
6358      var _h;
6359      return __generator(this, function (_j) {
6360        switch (_j.label) {
6361          case 0:
6362            _f = getInitialHandler({
6363              ctx: ctx,
6364              getDomainByUrl: getDomainByUrl,
6365              platform: platform
6366            }), 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;
6367            return [4, Promise.all([getWarehouses({
6368              ctx: ctx,
6369              $axios: $axios,
6370              lng: lng
6371            }), getCategories({
6372              ctx: ctx,
6373              $axios: $axios
6374            }), getQueryParams({
6375              ctx: ctx
6376            }), getShowAuthorPlatform({
6377              ctx: ctx,
6378              $axios: $axios,
6379              token: loginInfo.token
6380            })])];
6381          case 1:
6382            _g = _j.sent(), warehouses = _g[0], categories = _g[1], querySearch = _g[2], showPlatformData = _g[3];
6383            topNavProps = {
6384              warehouses: siteCheck.isShow('header-warehouses') ? warehouses : []
6385            };
6386            searchNavProps = {
6387              categories: categories
6388            };
6389            showPlatformObject = showPlatformData === null || showPlatformData === void 0 ? void 0 : showPlatformData.showAuthorizeObject;
6390            platformKeys = showPlatformData === null || showPlatformData === void 0 ? void 0 : showPlatformData.platformKeys;
6391            siteCheckInstance = (_h = siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.get) === null || _h === void 0 ? void 0 : _h.call(siteCheck);
6392            ssr = !!ctx;
6393            _props = {
6394              otherCookies: otherCookies,
6395              querySearch: querySearch,
6396              loginInfo: loginInfo,
6397              topNavProps: topNavProps,
6398              searchNavProps: searchNavProps,
6399              cjDomain: cjDomain,
6400              host: host,
6401              path: path,
6402              i18n: i18n,
6403              showPlatformObject: showPlatformObject,
6404              platformKeys: platformKeys,
6405              platform: platform,
6406              siteCheck: siteCheckInstance,
6407              ssr: ssr,
6408              autoMode: autoMode,
6409              maxWidth: maxWidth,
6410              supplierInfo: supplierInfo,
6411              _MatchReqHost: _MatchReqHost,
6412              isM: isM
6413            };
6414            return [2, _props];
6415        }
6416      });
6417    });
6418  };
6419  CjHeader.variableName = CJHEADER_VARIABLE_NAME;
6420});
6421
6422/***/ }),
6423
6424/***/ 39348:
6425/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6426
6427"use strict";
6428/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6429/* harmony export */   A: () => (/* binding */ useSafeState)
6430/* harmony export */ });
6431/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79082);
6432/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
6433/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
6434
6435
6436/**
6437 * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.
6438 * We do not make this auto is to avoid real memory leak.
6439 * Developer should confirm it's safe to ignore themselves.
6440 */
6441function useSafeState(defaultValue) {
6442  var destroyRef = react__WEBPACK_IMPORTED_MODULE_1__.useRef(false);
6443  var _React$useState = react__WEBPACK_IMPORTED_MODULE_1__.useState(defaultValue),
6444    _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(_React$useState, 2),
6445    value = _React$useState2[0],
6446    setValue = _React$useState2[1];
6447  react__WEBPACK_IMPORTED_MODULE_1__.useEffect(function () {
6448    destroyRef.current = false;
6449    return function () {
6450      destroyRef.current = true;
6451    };
6452  }, []);
6453  function safeSetState(updater, ignoreDestroy) {
6454    if (ignoreDestroy && destroyRef.current) {
6455      return;
6456    }
6457    setValue(updater);
6458  }
6459  return [value, safeSetState];
6460}
6461
6462/***/ }),
6463
6464/***/ 39850:
6465/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
6466
6467"use strict";
6468/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6469/* harmony export */   A: () => (/* binding */ _objectWithoutProperties)
6470/* harmony export */ });
6471/* harmony import */ var _objectWithoutPropertiesLoose_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17502);
6472
6473function _objectWithoutProperties(e, t) {
6474  if (null == e) return {};
6475  var o,
6476    r,
6477    i = (0,_objectWithoutPropertiesLoose_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(e, t);
6478  if (Object.getOwnPropertySymbols) {
6479    var n = Object.getOwnPropertySymbols(e);
6480    for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
6481  }
6482  return i;
6483}
6484
6485
6486/***/ }),
6487
6488/***/ 40484:
6489/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6490
6491"use strict";
6492/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6493/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
6494/* harmony export */ });
6495/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55152);
6496/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30414);
6497/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29296);
6498/* harmony import */ var _babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(90857);
6499/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15442);
6500/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
6501
6502
6503
6504
6505
6506var DomWrapper = /*#__PURE__*/function (_React$Component) {
6507  (0,_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(DomWrapper, _React$Component);
6508  var _super = (0,_babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)(DomWrapper);
6509  function DomWrapper() {
6510    (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(this, DomWrapper);
6511    return _super.apply(this, arguments);
6512  }
6513  (0,_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(DomWrapper, [{
6514    key: "render",
6515    value: function render() {
6516      return this.props.children;
6517    }
6518  }]);
6519  return DomWrapper;
6520}(react__WEBPACK_IMPORTED_MODULE_4__.Component);
6521/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DomWrapper);
6522
6523/***/ }),
6524
6525/***/ 40657:
6526/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6527
6528"use strict";
6529/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6530/* harmony export */   Ss: () => (/* binding */ parseKeys),
6531/* harmony export */   au: () => (/* binding */ STATUS_REMOVE),
6532/* harmony export */   bK: () => (/* binding */ STATUS_ADD),
6533/* harmony export */   e8: () => (/* binding */ STATUS_REMOVED),
6534/* harmony export */   xI: () => (/* binding */ STATUS_KEEP),
6535/* harmony export */   y$: () => (/* binding */ diffKeys)
6536/* harmony export */ });
6537/* unused harmony export wrapKeyToObject */
6538/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69740);
6539/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17545);
6540
6541
6542var STATUS_ADD = 'add';
6543var STATUS_KEEP = 'keep';
6544var STATUS_REMOVE = 'remove';
6545var STATUS_REMOVED = 'removed';
6546function wrapKeyToObject(key) {
6547  var keyObj;
6548  if (key && (0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(key) === 'object' && 'key' in key) {
6549    keyObj = key;
6550  } else {
6551    keyObj = {
6552      key: key
6553    };
6554  }
6555  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), {}, {
6556    key: String(keyObj.key)
6557  });
6558}
6559function parseKeys() {
6560  var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
6561  return keys.map(wrapKeyToObject);
6562}
6563function diffKeys() {
6564  var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
6565  var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
6566  var list = [];
6567  var currentIndex = 0;
6568  var currentLen = currentKeys.length;
6569  var prevKeyObjects = parseKeys(prevKeys);
6570  var currentKeyObjects = parseKeys(currentKeys);
6571
6572  // Check prev keys to insert or keep
6573  prevKeyObjects.forEach(function (keyObj) {
6574    var hit = false;
6575    for (var i = currentIndex; i < currentLen; i += 1) {
6576      var currentKeyObj = currentKeyObjects[i];
6577      if (currentKeyObj.key === keyObj.key) {
6578        // New added keys should add before current key
6579        if (currentIndex < i) {
6580          list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {
6581            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), {}, {
6582              status: STATUS_ADD
6583            });
6584          }));
6585          currentIndex = i;
6586        }
6587        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), {}, {
6588          status: STATUS_KEEP
6589        }));
6590        currentIndex += 1;
6591        hit = true;
6592        break;
6593      }
6594    }
6595
6596    // If not hit, it means key is removed
6597    if (!hit) {
6598      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), {}, {
6599        status: STATUS_REMOVE
6600      }));
6601    }
6602  });
6603
6604  // Add rest to the list
6605  if (currentIndex < currentLen) {
6606    list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {
6607      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), {}, {
6608        status: STATUS_ADD
6609      });
6610    }));
6611  }
6612
6613  /**
6614   * Merge same key when it remove and add again:
6615   *    [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]
6616   */
6617  var keys = {};
6618  list.forEach(function (_ref) {
6619    var key = _ref.key;
6620    keys[key] = (keys[key] || 0) + 1;
6621  });
6622  var duplicatedKeys = Object.keys(keys).filter(function (key) {
6623    return keys[key] > 1;
6624  });
6625  duplicatedKeys.forEach(function (matchKey) {
6626    // Remove `STATUS_REMOVE` node.
6627    list = list.filter(function (_ref2) {
6628      var key = _ref2.key,
6629        status = _ref2.status;
6630      return key !== matchKey || status !== STATUS_REMOVE;
6631    });
6632
6633    // Update `STATUS_ADD` to `STATUS_KEEP`
6634    list.forEach(function (node) {
6635      if (node.key === matchKey) {
6636        // eslint-disable-next-line no-param-reassign
6637        node.status = STATUS_KEEP;
6638      }
6639    });
6640  });
6641  return list;
6642}
6643
6644/***/ }),
6645
6646/***/ 41580:
6647/***/ ((module) => {
6648
6649/**
6650 * Checks if `value` is the
6651 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
6652 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
6653 *
6654 * @static
6655 * @memberOf _
6656 * @since 0.1.0
6657 * @category Lang
6658 * @param {*} value The value to check.
6659 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
6660 * @example
6661 *
6662 * _.isObject({});
6663 * // => true
6664 *
6665 * _.isObject([1, 2, 3]);
6666 * // => true
6667 *
6668 * _.isObject(_.noop);
6669 * // => true
6670 *
6671 * _.isObject(null);
6672 * // => false
6673 */
6674function isObject(value) {
6675  var type = typeof value;
6676  return value != null && (type == 'object' || type == 'function');
6677}
6678
6679module.exports = isObject;
6680
6681
6682/***/ }),
6683
6684/***/ 41747:
6685/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6686
6687"use strict";
6688/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6689/* harmony export */   A: () => (/* binding */ toArray)
6690/* harmony export */ });
6691/* harmony import */ var _React_isFragment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20785);
6692/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
6693/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
6694
6695
6696function toArray(children) {
6697  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6698  var ret = [];
6699  react__WEBPACK_IMPORTED_MODULE_1___default().Children.forEach(children, function (child) {
6700    if ((child === undefined || child === null) && !option.keepEmpty) {
6701      return;
6702    }
6703    if (Array.isArray(child)) {
6704      ret = ret.concat(toArray(child));
6705    } else if ((0,_React_isFragment__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(child) && child.props) {
6706      ret = ret.concat(toArray(child.props.children, option));
6707    } else {
6708      ret.push(child);
6709    }
6710  });
6711  return ret;
6712}
6713
6714/***/ }),
6715
6716/***/ 42963:
6717/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6718
6719"use strict";
6720/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6721/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
6722/* harmony export */ });
6723/* harmony import */ var _Portal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70297);
6724
6725
6726
6727/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_Portal__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A);
6728
6729/***/ }),
6730
6731/***/ 44148:
6732/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6733
6734"use strict";
6735/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6736/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__),
6737/* harmony export */   v: () => (/* binding */ useGlobalProps)
6738/* harmony export */ });
6739/* harmony import */ var _components_CjHeader_const_show_authorize_list__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(84266);
6740/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(81002);
6741/* harmony import */ var _common_cj_href__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(84963);
6742/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15442);
6743/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
6744/* harmony import */ var _get_top_nav_props__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(72777);
6745/* harmony import */ var _common_check_site_show__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(27880);
6746/* harmony import */ var _common_login_info_controller__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12097);
6747/* harmony import */ var _get_intial_props__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(38903);
6748var __assign = undefined && undefined.__assign || function () {
6749  __assign = Object.assign || function (t) {
6750    for (var s, i = 1, n = arguments.length; i < n; i++) {
6751      s = arguments[i];
6752      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
6753    }
6754    return t;
6755  };
6756  return __assign.apply(this, arguments);
6757};
6758var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
6759  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
6760    if (ar || !(i in from)) {
6761      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6762      ar[i] = from[i];
6763    }
6764  }
6765  return to.concat(ar || Array.prototype.slice.call(from));
6766};
6767
6768
6769
6770
6771
6772
6773
6774
6775var PropsContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_3__.createContext)({});
6776function isObjectNull(obj) {
6777  return obj === null || obj === undefined || Object.keys(obj).length === 0;
6778}
6779var useGlobalProps = function useGlobalProps() {
6780  var _a;
6781  var value = (0,react__WEBPACK_IMPORTED_MODULE_3__.useContext)(PropsContext);
6782  if (_common__WEBPACK_IMPORTED_MODULE_1__/* .isBrowser */ .Bd) {
6783    var showPlatformObject = value.showPlatformObject || {};
6784    var platformKeys = value.platformKeys || [];
6785    if (isObjectNull(value.otherCookies)) {
6786      value['otherCookies'] = (0,_get_top_nav_props__WEBPACK_IMPORTED_MODULE_4__/* .getOtherCookies */ .cc)({
6787        ctx: undefined
6788      });
6789    }
6790    if (isObjectNull(value.querySearch)) {
6791      value['querySearch'] = (0,_common__WEBPACK_IMPORTED_MODULE_1__/* .getQueryVariable */ .JE)();
6792    }
6793    if (isObjectNull(value.loginInfo)) {
6794      value['loginInfo'] = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A.info();
6795    }
6796    value['host'] = location.host;
6797    value['pathname'] = value['path'] = location.pathname;
6798    value['cjDomain'] = value.platform === 'cj' ? '/' : (0,_common_cj_href__WEBPACK_IMPORTED_MODULE_2__/* .cjHref */ .F)('/', value.host);
6799    value['i18n'] = window.i18next;
6800    value['showPlatformObject'] = __assign(__assign({}, _components_CjHeader_const_show_authorize_list__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A), showPlatformObject);
6801    value['platformKeys'] = __spreadArray([], platformKeys, true);
6802    if (isObjectNull(value.siteCheck)) {
6803      var siteCheck = new _common_check_site_show__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A({
6804        getDomainByUrl: value.getDomainByUrl
6805      });
6806      value['siteCheck'] = window['siteCheck'] = siteCheck.get();
6807    }
6808    value['ssr'] = !!window[_get_intial_props__WEBPACK_IMPORTED_MODULE_7__/* .CJHEADER_VARIABLE_NAME */ .e];
6809    value['_MatchReqHost'] = window['_matchedRoute'];
6810    if (((_a = window['_matchedRoute']) === null || _a === void 0 ? void 0 : _a.indexOf('paymentAgency')) > -1 && value.platform === 'cj') {
6811      value['cjDomain'] = (0,_common_cj_href__WEBPACK_IMPORTED_MODULE_2__/* .cjHref */ .F)('/');
6812    }
6813    if (value.isM === undefined) {
6814      value['isM'] = (0,_common__WEBPACK_IMPORTED_MODULE_1__/* .isMobile */ .Fr)();
6815    }
6816  }
6817  return value;
6818};
6819/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PropsContext);
6820
6821/***/ }),
6822
6823/***/ 44190:
6824/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6825
6826"use strict";
6827/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6828/* harmony export */   $v: () => (/* binding */ createChatInternalReceptionJson),
6829/* harmony export */   Ay: () => (__WEBPACK_DEFAULT_EXPORT__),
6830/* harmony export */   P6: () => (/* binding */ createAiChatEntry),
6831/* harmony export */   Q_: () => (/* binding */ createPlatform),
6832/* harmony export */   R6: () => (/* binding */ createChatEntry),
6833/* harmony export */   vY: () => (/* binding */ createConfigResource)
6834/* harmony export */ });
6835/* unused harmony exports createFlag, createWarehouseJson, createCountryJson, countryInfo */
6836var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
6837  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
6838    if (ar || !(i in from)) {
6839      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6840      ar[i] = from[i];
6841    }
6842  }
6843  return to.concat(ar || Array.prototype.slice.call(from));
6844};
6845var OssController = function () {
6846  function OssController() {}
6847  Object.defineProperty(OssController.prototype, "host", {
6848    get: function get() {
6849      var _a;
6850      if (typeof window !== 'undefined' && window.OSS_HOST && window.OSS_HOST !== '__OSSHOST__') {
6851        return window.OSS_HOST;
6852      }
6853      if (typeof process !== 'undefined' && ((_a = process === null || process === void 0 ? void 0 : process.env) === null || _a === void 0 ? void 0 : _a.OSSHOST)) {
6854        return process.env.OSSHOST;
6855      }
6856      return "https://sv-resource.oss-accelerate.aliyuncs.com";
6857    },
6858    enumerable: false,
6859    configurable: true
6860  });
6861  OssController.prototype.join = function () {
6862    var paths = [];
6863    for (var _i = 0; _i < arguments.length; _i++) {
6864      paths[_i] = arguments[_i];
6865    }
6866    if (!paths.every(function (path) {
6867      return typeof path === 'string';
6868    })) {
6869      throw new TypeError('All arguments to join must be of type string');
6870    }
6871    var _paths = paths.map(function (path) {
6872      return path.replace(/^\/+|\/+$/g, '');
6873    });
6874    var _host = this.host;
6875    if (_host.endsWith('/')) {
6876      _host = _host.slice(0, -1);
6877    }
6878    return __spreadArray([_host], _paths, true).join('/');
6879  };
6880  return OssController;
6881}();
6882/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (new OssController());
6883var createPlatform = function createPlatform(name) {
6884  return "resources/platform/".concat(name, ".png");
6885};
6886var createFlag = function createFlag(name) {
6887  return "resources/flag/".concat(name, ".png");
6888};
6889var createConfigResource = function createConfigResource(name, code) {
6890  return "config-resource/".concat(name, "/").concat(code);
6891};
6892var createWarehouseJson = function createWarehouseJson() {
6893  return "backend/WareHouse.json";
6894};
6895var createCountryJson = function createCountryJson() {
6896  return "backend/Country.json";
6897};
6898var createChatEntry = function createChatEntry() {
6899  return "chat/javascripts/cj-chat.js";
6900};
6901var createAiChatEntry = function createAiChatEntry() {
6902  return "chat/javascripts/ai-cj-chat.js";
6903};
6904var countryInfo = function countryInfo() {
6905  return "backend/countryInfo.json";
6906};
6907var createChatInternalReceptionJson = function createChatInternalReceptionJson() {
6908  return 'backend/ChatInternalReceptionUser.json';
6909};
6910
6911/***/ }),
6912
6913/***/ 45163:
6914/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6915
6916"use strict";
6917/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6918/* harmony export */   V: () => (/* binding */ sixCountryLanguage)
6919/* harmony export */ });
6920/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = (function (i18next, siteCheck) {
6921  var defaultLng = siteCheck.data('default-lng') || 'en';
6922  return [{
6923    opt: "".concat(defaultLng, "|en"),
6924    name: i18next.t('language-english'),
6925    nameEn: 'English',
6926    flag: siteCheck.data('en-language-flag') || 'US'
6927  }, {
6928    opt: "".concat(defaultLng, "|af"),
6929    name: i18next.t('language-afrikaans'),
6930    nameEn: 'Afrikaans',
6931    flag: 'ZA'
6932  }, {
6933    opt: "".concat(defaultLng, "|sq"),
6934    name: i18next.t('language-albanian'),
6935    nameEn: 'Albanian',
6936    flag: 'AL'
6937  }, {
6938    opt: "".concat(defaultLng, "|ar"),
6939    name: i18next.t('language-arabic'),
6940    nameEn: 'Arabic',
6941    flag: 'SA'
6942  }, {
6943    opt: "".concat(defaultLng, "|am"),
6944    name: i18next.t('language-amharic'),
6945    nameEn: 'Amharic',
6946    flag: 'ET'
6947  }, {
6948    opt: "".concat(defaultLng, "|hy"),
6949    name: i18next.t('language-armenian'),
6950    nameEn: 'Armenian',
6951    flag: 'AM'
6952  }, {
6953    opt: "".concat(defaultLng, "|az"),
6954    name: i18next.t('language-azerbaijani'),
6955    nameEn: 'Azerbaijani',
6956    flag: 'AZ'
6957  }, {
6958    opt: "".concat(defaultLng, "|be"),
6959    name: i18next.t('language-belarusian'),
6960    nameEn: 'Belarusian',
6961    flag: 'BY'
6962  }, {
6963    opt: "".concat(defaultLng, "|bg"),
6964    name: i18next.t('language-bulgarian'),
6965    nameEn: 'Bulgarian',
6966    flag: 'BG'
6967  }, {
6968    opt: "".concat(defaultLng, "|zh-CN"),
6969    name: i18next.t('language-chinese-simplified'),
6970    nameEn: 'Chinese (Simplified)',
6971    flag: 'CN'
6972  }, {
6973    opt: "".concat(defaultLng, "|zh-TW"),
6974    name: i18next.t('language-chinese-traditional'),
6975    nameEn: 'Chinese (Traditional)',
6976    flag: 'CN'
6977  }, {
6978    opt: "".concat(defaultLng, "|hr"),
6979    name: i18next.t('language-croatian'),
6980    nameEn: 'Croatian',
6981    flag: 'HR'
6982  }, {
6983    opt: "".concat(defaultLng, "|cs"),
6984    name: i18next.t('language-czech'),
6985    nameEn: 'Czech',
6986    flag: 'CZ'
6987  }, {
6988    opt: "".concat(defaultLng, "|da"),
6989    name: i18next.t('language-danish'),
6990    nameEn: 'Danish',
6991    flag: 'DK'
6992  }, {
6993    opt: "".concat(defaultLng, "|nl"),
6994    name: i18next.t('language-dutch'),
6995    nameEn: 'Dutch',
6996    flag: 'NL'
6997  }, {
6998    opt: "".concat(defaultLng, "|et"),
6999    name: i18next.t('language-estonian'),
7000    nameEn: 'Estonian',
7001    flag: 'EE'
7002  }, {
7003    opt: "".concat(defaultLng, "|tl"),
7004    name: i18next.t('language-filipino'),
7005    nameEn: 'Filipino',
7006    flag: 'PH'
7007  }, {
7008    opt: "".concat(defaultLng, "|fi"),
7009    name: i18next.t('language-finnish'),
7010    nameEn: 'Finnish',
7011    flag: 'FI'
7012  }, {
7013    opt: "".concat(defaultLng, "|fr"),
7014    name: i18next.t('language-french'),
7015    nameEn: 'French',
7016    flag: 'FR'
7017  }, {
7018    opt: "".concat(defaultLng, "|ka"),
7019    name: i18next.t('language-georgian'),
7020    nameEn: 'Georgian',
7021    flag: 'GE'
7022  }, {
7023    opt: "".concat(defaultLng, "|de"),
7024    name: i18next.t('language-german'),
7025    nameEn: 'German',
7026    flag: 'DE'
7027  }, {
7028    opt: "".concat(defaultLng, "|el"),
7029    name: i18next.t('language-greek'),
7030    nameEn: 'Greek',
7031    flag: 'GR'
7032  }, {
7033    opt: "".concat(defaultLng, "|hi"),
7034    name: i18next.t('language-hindi'),
7035    nameEn: 'Hindi',
7036    flag: 'HT'
7037  }, {
7038    opt: "".concat(defaultLng, "|hu"),
7039    name: i18next.t('language-hungarian'),
7040    nameEn: 'Hungarian',
7041    flag: 'HU'
7042  }, {
7043    opt: "".concat(defaultLng, "|is"),
7044    name: i18next.t('language-icelandic'),
7045    nameEn: 'Icelandic',
7046    flag: 'IS'
7047  }, {
7048    opt: "".concat(defaultLng, "|id"),
7049    name: i18next.t('language-indonesian'),
7050    nameEn: 'Indonesian',
7051    flag: 'ID'
7052  }, {
7053    opt: "".concat(defaultLng, "|ga"),
7054    name: i18next.t('language-irish'),
7055    nameEn: 'Irish',
7056    flag: 'IE'
7057  }, {
7058    opt: "".concat(defaultLng, "|it"),
7059    name: i18next.t('language-italian'),
7060    nameEn: 'Italian',
7061    flag: 'IT'
7062  }, {
7063    opt: "".concat(defaultLng, "|ja"),
7064    name: i18next.t('language-japanese'),
7065    nameEn: 'Japanese',
7066    flag: 'JP'
7067  }, {
7068    opt: "".concat(defaultLng, "|ko"),
7069    name: i18next.t('language-korean'),
7070    nameEn: 'Korean',
7071    flag: 'KR'
7072  }, {
7073    opt: "".concat(defaultLng, "|kk"),
7074    name: i18next.t('language-kazakh', 'Kazakh'),
7075    nameEn: 'Kazakh',
7076    flag: 'KZ'
7077  }, {
7078    opt: "".concat(defaultLng, "|ky"),
7079    name: i18next.t('language-kirghiz-kyrgyz', 'Kirghiz, Kyrgyz'),
7080    nameEn: 'Kirghiz, Kyrgyz',
7081    flag: 'KG'
7082  }, {
7083    opt: "".concat(defaultLng, "|lv"),
7084    name: i18next.t('language-latvian'),
7085    nameEn: 'Latvian',
7086    flag: 'LV'
7087  }, {
7088    opt: "".concat(defaultLng, "|lt"),
7089    name: i18next.t('language-lithuanian'),
7090    nameEn: 'Lithuanian',
7091    flag: 'LT'
7092  }, {
7093    opt: "".concat(defaultLng, "|mk"),
7094    name: i18next.t('language-macedonian'),
7095    nameEn: 'Macedonian',
7096    flag: 'MK'
7097  }, {
7098    opt: "".concat(defaultLng, "|ms"),
7099    name: i18next.t('language-malay'),
7100    nameEn: 'Malay',
7101    flag: 'MY'
7102  }, {
7103    opt: "".concat(defaultLng, "|mt"),
7104    name: i18next.t('language-maltese'),
7105    nameEn: 'Maltese',
7106    flag: 'MT'
7107  }, {
7108    opt: "".concat(defaultLng, "|no"),
7109    name: i18next.t('language-norwegian'),
7110    nameEn: 'Norwegian',
7111    flag: 'NO'
7112  }, {
7113    opt: "".concat(defaultLng, "|pl"),
7114    name: i18next.t('language-polish'),
7115    nameEn: 'Polish',
7116    flag: 'PL'
7117  }, {
7118    opt: "".concat(defaultLng, "|pt"),
7119    name: i18next.t('language-portuguese'),
7120    nameEn: 'Portuguese',
7121    flag: 'PT'
7122  }, {
7123    opt: "".concat(defaultLng, "|ro"),
7124    name: i18next.t('language-romanian'),
7125    nameEn: 'Romanian',
7126    flag: 'RO'
7127  }, {
7128    opt: "".concat(defaultLng, "|ru"),
7129    name: i18next.t('language-russian'),
7130    nameEn: 'Russian',
7131    flag: 'RU'
7132  }, {
7133    opt: "".concat(defaultLng, "|sr"),
7134    name: i18next.t('language-serbian'),
7135    nameEn: 'Serbian',
7136    flag: 'RS'
7137  }, {
7138    opt: "".concat(defaultLng, "|sk"),
7139    name: i18next.t('language-slovak'),
7140    nameEn: 'Slovak',
7141    flag: 'SK'
7142  }, {
7143    opt: "".concat(defaultLng, "|sl"),
7144    name: i18next.t('language-slovenian'),
7145    nameEn: 'Slovenian',
7146    flag: 'SI'
7147  }, {
7148    opt: "".concat(defaultLng, "|es"),
7149    name: i18next.t('language-spanish'),
7150    nameEn: 'Spanish',
7151    flag: 'ES'
7152  }, {
7153    opt: "".concat(defaultLng, "|sw"),
7154    name: i18next.t('language-swahili'),
7155    nameEn: 'Swahili',
7156    flag: 'SJ'
7157  }, {
7158    opt: "".concat(defaultLng, "|sv"),
7159    name: i18next.t('language-swedish'),
7160    nameEn: 'Swedish',
7161    flag: 'SE'
7162  }, {
7163    opt: "".concat(defaultLng, "|th"),
7164    name: i18next.t('language-thai'),
7165    nameEn: 'Thai',
7166    flag: 'TH'
7167  }, {
7168    opt: "".concat(defaultLng, "|tr"),
7169    name: i18next.t('language-turkish'),
7170    nameEn: 'Turkish',
7171    flag: 'TR'
7172  }, {
7173    opt: "".concat(defaultLng, "|tg"),
7174    name: i18next.t('language-tajik', 'Tajik'),
7175    nameEn: 'Tajik',
7176    flag: 'TJ'
7177  }, {
7178    opt: "".concat(defaultLng, "|tk"),
7179    name: i18next.t('language-turkmen', 'Turkmen'),
7180    nameEn: 'Turkmen',
7181    flag: 'TM'
7182  }, {
7183    opt: "".concat(defaultLng, "|uk"),
7184    name: i18next.t('language-ukrainian'),
7185    nameEn: 'Ukrainian',
7186    flag: 'UA'
7187  }, {
7188    opt: "".concat(defaultLng, "|ur"),
7189    name: i18next.t('language-urdu'),
7190    nameEn: 'Urdu',
7191    flag: 'PK'
7192  }, {
7193    opt: "".concat(defaultLng, "|uz"),
7194    name: i18next.t('language-uzbek', 'Uzbek'),
7195    nameEn: 'Uzbek',
7196    flag: 'UZ'
7197  }, {
7198    opt: "".concat(defaultLng, "|vi"),
7199    name: i18next.t('language-vietnamese'),
7200    nameEn: 'Vietnamese',
7201    flag: 'VN'
7202  }, {
7203    opt: "".concat(defaultLng, "|cy"),
7204    name: i18next.t('language-welsh'),
7205    nameEn: 'Welsh',
7206    flag: 'WELSH'
7207  }, {
7208    opt: "".concat(defaultLng, "|yi"),
7209    name: i18next.t('language-yiddish'),
7210    nameEn: 'Yiddish',
7211    flag: 'YIDDISH'
7212  }, {
7213    opt: "".concat(defaultLng, "|iw"),
7214    name: i18next.t('language-hebrew'),
7215    nameEn: 'Hebrew',
7216    flag: 'YIDDISH'
7217  }, {
7218    opt: "".concat(defaultLng, "|ps"),
7219    name: i18next.t('language-pashto'),
7220    nameEn: 'Pashto',
7221    flag: 'AF'
7222  }, {
7223    opt: "".concat(defaultLng, "|fa-AF"),
7224    name: i18next.t('language-dari'),
7225    nameEn: 'Dari',
7226    flag: 'AF'
7227  }];
7228});
7229var sixCountryLanguage = ['zh', 'en', 'de', 'fr', 'id', 'th', 'pt'];
7230
7231/***/ }),
7232
7233/***/ 45480:
7234/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7235
7236"use strict";
7237/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7238/* harmony export */   Hs: () => (/* binding */ STEP_ACTIVATED),
7239/* harmony export */   LV: () => (/* binding */ STEP_PREPARED),
7240/* harmony export */   Mv: () => (/* binding */ STEP_START),
7241/* harmony export */   SF: () => (/* binding */ STATUS_NONE),
7242/* harmony export */   Tv: () => (/* binding */ STATUS_APPEAR),
7243/* harmony export */   Wd: () => (/* binding */ STATUS_ENTER),
7244/* harmony export */   cE: () => (/* binding */ STEP_NONE),
7245/* harmony export */   dp: () => (/* binding */ STATUS_LEAVE),
7246/* harmony export */   m7: () => (/* binding */ STEP_ACTIVE),
7247/* harmony export */   px: () => (/* binding */ STEP_PREPARE)
7248/* harmony export */ });
7249var STATUS_NONE = 'none';
7250var STATUS_APPEAR = 'appear';
7251var STATUS_ENTER = 'enter';
7252var STATUS_LEAVE = 'leave';
7253var STEP_NONE = 'none';
7254var STEP_PREPARE = 'prepare';
7255var STEP_START = 'start';
7256var STEP_ACTIVE = 'active';
7257var STEP_ACTIVATED = 'end';
7258/**
7259 * Used for disabled motion case.
7260 * Prepare stage will still work but start & active will be skipped.
7261 */
7262var STEP_PREPARED = 'prepared';
7263
7264/***/ }),
7265
7266/***/ 46538:
7267/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7268
7269"use strict";
7270/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7271/* harmony export */   D: () => (/* binding */ placements)
7272/* harmony export */ });
7273var autoAdjustOverflowTopBottom = {
7274  shiftX: 64,
7275  adjustY: 1
7276};
7277var autoAdjustOverflowLeftRight = {
7278  adjustX: 1,
7279  shiftY: true
7280};
7281var targetOffset = [0, 0];
7282var placements = {
7283  left: {
7284    points: ['cr', 'cl'],
7285    overflow: autoAdjustOverflowLeftRight,
7286    offset: [-4, 0],
7287    targetOffset: targetOffset
7288  },
7289  right: {
7290    points: ['cl', 'cr'],
7291    overflow: autoAdjustOverflowLeftRight,
7292    offset: [4, 0],
7293    targetOffset: targetOffset
7294  },
7295  top: {
7296    points: ['bc', 'tc'],
7297    overflow: autoAdjustOverflowTopBottom,
7298    offset: [0, -4],
7299    targetOffset: targetOffset
7300  },
7301  bottom: {
7302    points: ['tc', 'bc'],
7303    overflow: autoAdjustOverflowTopBottom,
7304    offset: [0, 4],
7305    targetOffset: targetOffset
7306  },
7307  topLeft: {
7308    points: ['bl', 'tl'],
7309    overflow: autoAdjustOverflowTopBottom,
7310    offset: [0, -4],
7311    targetOffset: targetOffset
7312  },
7313  leftTop: {
7314    points: ['tr', 'tl'],
7315    overflow: autoAdjustOverflowLeftRight,
7316    offset: [-4, 0],
7317    targetOffset: targetOffset
7318  },
7319  topRight: {
7320    points: ['br', 'tr'],
7321    overflow: autoAdjustOverflowTopBottom,
7322    offset: [0, -4],
7323    targetOffset: targetOffset
7324  },
7325  rightTop: {
7326    points: ['tl', 'tr'],
7327    overflow: autoAdjustOverflowLeftRight,
7328    offset: [4, 0],
7329    targetOffset: targetOffset
7330  },
7331  bottomRight: {
7332    points: ['tr', 'br'],
7333    overflow: autoAdjustOverflowTopBottom,
7334    offset: [0, 4],
7335    targetOffset: targetOffset
7336  },
7337  rightBottom: {
7338    points: ['bl', 'br'],
7339    overflow: autoAdjustOverflowLeftRight,
7340    offset: [4, 0],
7341    targetOffset: targetOffset
7342  },
7343  bottomLeft: {
7344    points: ['tl', 'bl'],
7345    overflow: autoAdjustOverflowTopBottom,
7346    offset: [0, 4],
7347    targetOffset: targetOffset
7348  },
7349  leftBottom: {
7350    points: ['br', 'bl'],
7351    overflow: autoAdjustOverflowLeftRight,
7352    offset: [-4, 0],
7353    targetOffset: targetOffset
7354  }
7355};
7356/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ((/* unused pure expression or super */ null && (placements)));
7357
7358/***/ }),
7359
7360/***/ 46783:
7361/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7362
7363"use strict";
7364/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7365/* harmony export */   A: () => (/* binding */ useWinClick)
7366/* harmony export */ });
7367/* harmony import */ var rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49116);
7368/* harmony import */ var rc_util_es_warning__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84445);
7369/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15442);
7370/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
7371/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(61225);
7372
7373
7374
7375
7376function useWinClick(open, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen) {
7377  var openRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(open);
7378  openRef.current = open;
7379  var popupPointerDownRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(false);
7380
7381  // Click to hide is special action since click popup element should not hide
7382  react__WEBPACK_IMPORTED_MODULE_2__.useEffect(function () {
7383    if (clickToHide && popupEle && (!mask || maskClosable)) {
7384      var onPointerDown = function onPointerDown() {
7385        popupPointerDownRef.current = false;
7386      };
7387      var onTriggerClose = function onTriggerClose(e) {
7388        var _e$composedPath;
7389        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) {
7390          triggerOpen(false);
7391        }
7392      };
7393      var win = (0,_util__WEBPACK_IMPORTED_MODULE_3__/* .getWin */ .D)(popupEle);
7394      win.addEventListener('pointerdown', onPointerDown, true);
7395      win.addEventListener('mousedown', onTriggerClose, true);
7396      win.addEventListener('contextmenu', onTriggerClose, true);
7397
7398      // shadow root
7399      var targetShadowRoot = (0,rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_0__/* .getShadowRoot */ .j)(targetEle);
7400      if (targetShadowRoot) {
7401        targetShadowRoot.addEventListener('mousedown', onTriggerClose, true);
7402        targetShadowRoot.addEventListener('contextmenu', onTriggerClose, true);
7403      }
7404
7405      // Warning if target and popup not in same root
7406      if (false) // removed by dead control flow
7407{ var popupRoot, targetRoot, _targetEle$getRootNod, _popupEle$getRootNode; }
7408      return function () {
7409        win.removeEventListener('pointerdown', onPointerDown, true);
7410        win.removeEventListener('mousedown', onTriggerClose, true);
7411        win.removeEventListener('contextmenu', onTriggerClose, true);
7412        if (targetShadowRoot) {
7413          targetShadowRoot.removeEventListener('mousedown', onTriggerClose, true);
7414          targetShadowRoot.removeEventListener('contextmenu', onTriggerClose, true);
7415        }
7416      };
7417    }
7418  }, [clickToHide, targetEle, popupEle, mask, maskClosable]);
7419  function onPopupPointerDown() {
7420    popupPointerDownRef.current = true;
7421  }
7422  return onPopupPointerDown;
7423}
7424
7425/***/ }),
7426
7427/***/ 47169:
7428/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7429
7430"use strict";
7431/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7432/* harmony export */   A: () => (/* binding */ canUseDom)
7433/* harmony export */ });
7434function canUseDom() {
7435  return !!(typeof window !== 'undefined' && window.document && window.document.createElement);
7436}
7437
7438/***/ }),
7439
7440/***/ 47280:
7441/***/ ((module) => {
7442
7443// ignore eslint
7444/* eslint-disable */
7445
7446// 使用oss的通用域名,主要是为了防止打包过程中直接打进去的资源地址不直接显示和cj相关
7447module.exports = {
7448    test: 'https://test-cj-frontend.oss-cn-hangzhou.aliyuncs.com',
7449    "production-cn": 'https://cj-front-end.oss-cn-hangzhou.aliyuncs.com',
7450    production: 'https://sv-resource.oss-accelerate.aliyuncs.com'
7451}
7452
7453/***/ }),
7454
7455/***/ 47689:
7456/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7457
7458"use strict";
7459/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7460/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
7461/* harmony export */ });
7462/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69740);
7463/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17545);
7464/* harmony import */ var rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(28299);
7465/* harmony import */ var rc_util_es_ref__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(19284);
7466/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15442);
7467/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
7468/* harmony import */ var _Collection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23660);
7469/* harmony import */ var _utils_observerUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(22616);
7470/* harmony import */ var _DomWrapper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(51778);
7471
7472
7473
7474
7475
7476
7477
7478
7479function SingleObserver(props, ref) {
7480  var children = props.children,
7481    disabled = props.disabled;
7482  var elementRef = react__WEBPACK_IMPORTED_MODULE_4__.useRef(null);
7483  var wrapperRef = react__WEBPACK_IMPORTED_MODULE_4__.useRef(null);
7484  var onCollectionResize = react__WEBPACK_IMPORTED_MODULE_4__.useContext(_Collection__WEBPACK_IMPORTED_MODULE_5__/* .CollectionContext */ .C);
7485
7486  // =========================== Children ===========================
7487  var isRenderProps = typeof children === 'function';
7488  var mergedChildren = isRenderProps ? children(elementRef) : children;
7489
7490  // ============================= Size =============================
7491  var sizeRef = react__WEBPACK_IMPORTED_MODULE_4__.useRef({
7492    width: -1,
7493    height: -1,
7494    offsetWidth: -1,
7495    offsetHeight: -1
7496  });
7497
7498  // ============================= Ref ==============================
7499  var canRef = !isRenderProps && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.isValidElement(mergedChildren) && (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_3__/* .supportRef */ .f3)(mergedChildren);
7500  var originRef = canRef ? (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_3__/* .getNodeRef */ .A9)(mergedChildren) : null;
7501  var mergedRef = (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_3__/* .useComposeRef */ .xK)(originRef, elementRef);
7502  var getDom = function getDom() {
7503    var _elementRef$current;
7504    return (0,rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay)(elementRef.current) || (
7505    // Support `nativeElement` format
7506    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);
7507  };
7508  react__WEBPACK_IMPORTED_MODULE_4__.useImperativeHandle(ref, function () {
7509    return getDom();
7510  });
7511
7512  // =========================== Observe ============================
7513  var propsRef = react__WEBPACK_IMPORTED_MODULE_4__.useRef(props);
7514  propsRef.current = props;
7515
7516  // Handler
7517  var onInternalResize = react__WEBPACK_IMPORTED_MODULE_4__.useCallback(function (target) {
7518    var _propsRef$current = propsRef.current,
7519      onResize = _propsRef$current.onResize,
7520      data = _propsRef$current.data;
7521    var _target$getBoundingCl = target.getBoundingClientRect(),
7522      width = _target$getBoundingCl.width,
7523      height = _target$getBoundingCl.height;
7524    var offsetWidth = target.offsetWidth,
7525      offsetHeight = target.offsetHeight;
7526
7527    /**
7528     * Resize observer trigger when content size changed.
7529     * In most case we just care about element size,
7530     * let's use `boundary` instead of `contentRect` here to avoid shaking.
7531     */
7532    var fixedWidth = Math.floor(width);
7533    var fixedHeight = Math.floor(height);
7534    if (sizeRef.current.width !== fixedWidth || sizeRef.current.height !== fixedHeight || sizeRef.current.offsetWidth !== offsetWidth || sizeRef.current.offsetHeight !== offsetHeight) {
7535      var size = {
7536        width: fixedWidth,
7537        height: fixedHeight,
7538        offsetWidth: offsetWidth,
7539        offsetHeight: offsetHeight
7540      };
7541      sizeRef.current = size;
7542
7543      // IE is strange, right?
7544      var mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;
7545      var mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;
7546      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), {}, {
7547        offsetWidth: mergedOffsetWidth,
7548        offsetHeight: mergedOffsetHeight
7549      });
7550
7551      // Let collection know what happened
7552      onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(sizeInfo, target, data);
7553      if (onResize) {
7554        // defer the callback but not defer to next frame
7555        Promise.resolve().then(function () {
7556          onResize(sizeInfo, target);
7557        });
7558      }
7559    }
7560  }, []);
7561
7562  // Dynamic observe
7563  react__WEBPACK_IMPORTED_MODULE_4__.useEffect(function () {
7564    var currentElement = getDom();
7565    if (currentElement && !disabled) {
7566      (0,_utils_observerUtil__WEBPACK_IMPORTED_MODULE_6__/* .observe */ .lB)(currentElement, onInternalResize);
7567    }
7568    return function () {
7569      return (0,_utils_observerUtil__WEBPACK_IMPORTED_MODULE_6__/* .unobserve */ .OV)(currentElement, onInternalResize);
7570    };
7571  }, [elementRef.current, disabled]);
7572
7573  // ============================ Render ============================
7574  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.createElement(_DomWrapper__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A, {
7575    ref: wrapperRef
7576  }, canRef ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.cloneElement(mergedChildren, {
7577    ref: mergedRef
7578  }) : mergedChildren);
7579}
7580var RefSingleObserver = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_4__.forwardRef(SingleObserver);
7581if (false) // removed by dead control flow
7582{}
7583/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RefSingleObserver);
7584
7585/***/ }),
7586
7587/***/ 48043:
7588/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7589
7590"use strict";
7591/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7592/* harmony export */   A: () => (/* binding */ useAction)
7593/* harmony export */ });
7594/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15442);
7595/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
7596
7597function toArray(val) {
7598  return val ? Array.isArray(val) ? val : [val] : [];
7599}
7600function useAction(mobile, action, showAction, hideAction) {
7601  return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(function () {
7602    var mergedShowAction = toArray(showAction !== null && showAction !== void 0 ? showAction : action);
7603    var mergedHideAction = toArray(hideAction !== null && hideAction !== void 0 ? hideAction : action);
7604    var showActionSet = new Set(mergedShowAction);
7605    var hideActionSet = new Set(mergedHideAction);
7606    if (mobile) {
7607      if (showActionSet.has('hover')) {
7608        showActionSet.delete('hover');
7609        showActionSet.add('click');
7610      }
7611      if (hideActionSet.has('hover')) {
7612        hideActionSet.delete('hover');
7613        hideActionSet.add('click');
7614      }
7615    }
7616    return [showActionSet, hideActionSet];
7617  }, [mobile, action, showAction, hideAction]);
7618}
7619
7620/***/ }),
7621
7622/***/ 49105:
7623/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
7624
7625"use strict";
7626/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7627/* harmony export */   A: () => (/* binding */ _isNativeReflectConstruct)
7628/* harmony export */ });
7629function _isNativeReflectConstruct() {
7630  try {
7631    var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
7632  } catch (t) {}
7633  return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {
7634    return !!t;
7635  })();
7636}
7637
7638
7639/***/ }),
7640
7641/***/ 49116:
7642/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7643
7644"use strict";
7645/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7646/* harmony export */   j: () => (/* binding */ getShadowRoot)
7647/* harmony export */ });
7648/* unused harmony export inShadow */
7649function getRoot(ele) {
7650  var _ele$getRootNode;
7651  return ele === null || ele === void 0 || (_ele$getRootNode = ele.getRootNode) === null || _ele$getRootNode === void 0 ? void 0 : _ele$getRootNode.call(ele);
7652}
7653
7654/**
7655 * Check if is in shadowRoot
7656 */
7657function inShadow(ele) {
7658  return getRoot(ele) instanceof ShadowRoot;
7659}
7660
7661/**
7662 * Return shadowRoot if possible
7663 */
7664function getShadowRoot(ele) {
7665  return inShadow(ele) ? getRoot(ele) : null;
7666}
7667
7668/***/ }),
7669
7670/***/ 50137:
7671/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7672
7673"use strict";
7674/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7675/* harmony export */   A: () => (/* binding */ usePlatformHref)
7676/* harmony export */ });
7677/* harmony import */ var _common_cj_href__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(84963);
7678/* harmony import */ var _components_CjHeader_hooks_use_parent_platform__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6925);
7679
7680
7681function usePlatformHref() {
7682  var isCj = (0,_components_CjHeader_hooks_use_parent_platform__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)().isCj;
7683  return function (href) {
7684    if (href.indexOf('javascript') > -1) return href;
7685    return isCj ? href : (0,_common_cj_href__WEBPACK_IMPORTED_MODULE_0__/* .cjHref */ .F)(href);
7686  };
7687}
7688
7689/***/ }),
7690
7691/***/ 50184:
7692/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7693
7694"use strict";
7695/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7696/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
7697/* harmony export */ });
7698/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15442);
7699/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
7700
7701var OrderContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createContext(null);
7702/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OrderContext);
7703
7704/***/ }),
7705
7706/***/ 50937:
7707/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7708
7709"use strict";
7710/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7711/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__),
7712/* harmony export */   q: () => (/* binding */ toast_success)
7713/* harmony export */ });
7714var toast = function toast(msg, time) {
7715  if (time === void 0) {
7716    time = 3000;
7717  }
7718  if (typeof layer !== 'undefined') {
7719    layer.msg(msg, {
7720      time: time
7721    });
7722  } else if (typeof window.antd_message !== 'undefined') {
7723    window.antd_message.info(msg, time / 1000);
7724  }
7725};
7726var toast_success = function toast_success(msg, time) {
7727  if (time === void 0) {
7728    time = 3000;
7729  }
7730  if (typeof layer !== 'undefined') {
7731    layer.msg(msg, {
7732      time: time
7733    });
7734  } else if (typeof window.antd_message !== 'undefined') {
7735    window.antd_message.success(msg, time / 1000);
7736  }
7737};
7738/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (toast);
7739
7740/***/ }),
7741
7742/***/ 51187:
7743/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
7744
7745var baseGetTag = __webpack_require__(87379),
7746    isObjectLike = __webpack_require__(80547);
7747
7748/** `Object#toString` result references. */
7749var symbolTag = '[object Symbol]';
7750
7751/**
7752 * Checks if `value` is classified as a `Symbol` primitive or object.
7753 *
7754 * @static
7755 * @memberOf _
7756 * @since 4.0.0
7757 * @category Lang
7758 * @param {*} value The value to check.
7759 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
7760 * @example
7761 *
7762 * _.isSymbol(Symbol.iterator);
7763 * // => true
7764 *
7765 * _.isSymbol('abc');
7766 * // => false
7767 */
7768function isSymbol(value) {
7769  return typeof value == 'symbol' ||
7770    (isObjectLike(value) && baseGetTag(value) == symbolTag);
7771}
7772
7773module.exports = isSymbol;
7774
7775
7776/***/ }),
7777
7778/***/ 51778:
7779/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7780
7781"use strict";
7782/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7783/* harmony export */   A: () => (/* binding */ DomWrapper)
7784/* harmony export */ });
7785/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55152);
7786/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30414);
7787/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29296);
7788/* harmony import */ var _babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(90857);
7789/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15442);
7790/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
7791
7792
7793
7794
7795
7796/**
7797 * Fallback to findDOMNode if origin ref do not provide any dom element
7798 */
7799var DomWrapper = /*#__PURE__*/function (_React$Component) {
7800  (0,_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(DomWrapper, _React$Component);
7801  var _super = (0,_babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)(DomWrapper);
7802  function DomWrapper() {
7803    (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(this, DomWrapper);
7804    return _super.apply(this, arguments);
7805  }
7806  (0,_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(DomWrapper, [{
7807    key: "render",
7808    value: function render() {
7809      return this.props.children;
7810    }
7811  }]);
7812  return DomWrapper;
7813}(react__WEBPACK_IMPORTED_MODULE_4__.Component);
7814
7815
7816/***/ }),
7817
7818/***/ 52743:
7819/***/ ((module) => {
7820
7821"use strict";
7822
7823
7824var isMergeableObject = function isMergeableObject(value) {
7825	return isNonNullObject(value)
7826		&& !isSpecial(value)
7827};
7828
7829function isNonNullObject(value) {
7830	return !!value && typeof value === 'object'
7831}
7832
7833function isSpecial(value) {
7834	var stringValue = Object.prototype.toString.call(value);
7835
7836	return stringValue === '[object RegExp]'
7837		|| stringValue === '[object Date]'
7838		|| isReactElement(value)
7839}
7840
7841// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25
7842var canUseSymbol = typeof Symbol === 'function' && Symbol.for;
7843var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;
7844
7845function isReactElement(value) {
7846	return value.$$typeof === REACT_ELEMENT_TYPE
7847}
7848
7849function emptyTarget(val) {
7850	return Array.isArray(val) ? [] : {}
7851}
7852
7853function cloneUnlessOtherwiseSpecified(value, options) {
7854	return (options.clone !== false && options.isMergeableObject(value))
7855		? deepmerge(emptyTarget(value), value, options)
7856		: value
7857}
7858
7859function defaultArrayMerge(target, source, options) {
7860	return target.concat(source).map(function(element) {
7861		return cloneUnlessOtherwiseSpecified(element, options)
7862	})
7863}
7864
7865function getMergeFunction(key, options) {
7866	if (!options.customMerge) {
7867		return deepmerge
7868	}
7869	var customMerge = options.customMerge(key);
7870	return typeof customMerge === 'function' ? customMerge : deepmerge
7871}
7872
7873function getEnumerableOwnPropertySymbols(target) {
7874	return Object.getOwnPropertySymbols
7875		? Object.getOwnPropertySymbols(target).filter(function(symbol) {
7876			return Object.propertyIsEnumerable.call(target, symbol)
7877		})
7878		: []
7879}
7880
7881function getKeys(target) {
7882	return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))
7883}
7884
7885function propertyIsOnObject(object, property) {
7886	try {
7887		return property in object
7888	} catch(_) {
7889		return false
7890	}
7891}
7892
7893// Protects from prototype poisoning and unexpected merging up the prototype chain.
7894function propertyIsUnsafe(target, key) {
7895	return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,
7896		&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,
7897			&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.
7898}
7899
7900function mergeObject(target, source, options) {
7901	var destination = {};
7902	if (options.isMergeableObject(target)) {
7903		getKeys(target).forEach(function(key) {
7904			destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);
7905		});
7906	}
7907	getKeys(source).forEach(function(key) {
7908		if (propertyIsUnsafe(target, key)) {
7909			return
7910		}
7911
7912		if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {
7913			destination[key] = getMergeFunction(key, options)(target[key], source[key], options);
7914		} else {
7915			destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);
7916		}
7917	});
7918	return destination
7919}
7920
7921function deepmerge(target, source, options) {
7922	options = options || {};
7923	options.arrayMerge = options.arrayMerge || defaultArrayMerge;
7924	options.isMergeableObject = options.isMergeableObject || isMergeableObject;
7925	// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()
7926	// implementations can use it. The caller may not replace it.
7927	options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;
7928
7929	var sourceIsArray = Array.isArray(source);
7930	var targetIsArray = Array.isArray(target);
7931	var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;
7932
7933	if (!sourceAndTargetTypesMatch) {
7934		return cloneUnlessOtherwiseSpecified(source, options)
7935	} else if (sourceIsArray) {
7936		return options.arrayMerge(target, source, options)
7937	} else {
7938		return mergeObject(target, source, options)
7939	}
7940}
7941
7942deepmerge.all = function deepmergeAll(array, options) {
7943	if (!Array.isArray(array)) {
7944		throw new Error('first argument should be an array')
7945	}
7946
7947	return array.reduce(function(prev, next) {
7948		return deepmerge(prev, next, options)
7949	}, {})
7950};
7951
7952var deepmerge_1 = deepmerge;
7953
7954module.exports = deepmerge_1;
7955
7956
7957/***/ }),
7958
7959/***/ 53373:
7960/***/ ((module, exports) => {
7961
7962var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
7963	Copyright (c) 2018 Jed Watson.
7964	Licensed under the MIT License (MIT), see
7965	http://jedwatson.github.io/classnames
7966*/
7967/* global define */
7968
7969(function () {
7970	'use strict';
7971
7972	var hasOwn = {}.hasOwnProperty;
7973
7974	function classNames () {
7975		var classes = '';
7976
7977		for (var i = 0; i < arguments.length; i++) {
7978			var arg = arguments[i];
7979			if (arg) {
7980				classes = appendClass(classes, parseValue(arg));
7981			}
7982		}
7983
7984		return classes;
7985	}
7986
7987	function parseValue (arg) {
7988		if (typeof arg === 'string' || typeof arg === 'number') {
7989			return arg;
7990		}
7991
7992		if (typeof arg !== 'object') {
7993			return '';
7994		}
7995
7996		if (Array.isArray(arg)) {
7997			return classNames.apply(null, arg);
7998		}
7999
8000		if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
8001			return arg.toString();
8002		}
8003
8004		var classes = '';
8005
8006		for (var key in arg) {
8007			if (hasOwn.call(arg, key) && arg[key]) {
8008				classes = appendClass(classes, key);
8009			}
8010		}
8011
8012		return classes;
8013	}
8014
8015	function appendClass (value, newClass) {
8016		if (!newClass) {
8017			return value;
8018		}
8019	
8020		if (value) {
8021			return value + ' ' + newClass;
8022		}
8023	
8024		return value + newClass;
8025	}
8026
8027	if ( true && module.exports) {
8028		classNames.default = classNames;
8029		module.exports = classNames;
8030	} else if (true) {
8031		// register as 'classnames', consistent with npm package name
8032		!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
8033			return classNames;
8034		}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
8035		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
8036	} else // removed by dead control flow
8037{}
8038}());
8039
8040
8041/***/ }),
8042
8043/***/ 53790:
8044/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
8045
8046"use strict";
8047
8048
8049if (true) {
8050  module.exports = __webpack_require__(24898);
8051} else // removed by dead control flow
8052{}
8053
8054
8055/***/ }),
8056
8057/***/ 53795:
8058/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8059
8060"use strict";
8061/* unused harmony exports default, merge */
8062
8063
8064
8065
8066
8067function internalSet(entity, paths, value, removeIfUndefined) {
8068  if (!paths.length) {
8069    return value;
8070  }
8071  var _paths = _toArray(paths),
8072    path = _paths[0],
8073    restPath = _paths.slice(1);
8074  var clone;
8075  if (!entity && typeof path === 'number') {
8076    clone = [];
8077  } else if (Array.isArray(entity)) {
8078    clone = _toConsumableArray(entity);
8079  } else {
8080    clone = _objectSpread({}, entity);
8081  }
8082
8083  // Delete prop if `removeIfUndefined` and value is undefined
8084  if (removeIfUndefined && value === undefined && restPath.length === 1) {
8085    delete clone[path][restPath[0]];
8086  } else {
8087    clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);
8088  }
8089  return clone;
8090}
8091function set(entity, paths, value) {
8092  var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
8093  // Do nothing if `removeIfUndefined` and parent object not exist
8094  if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {
8095    return entity;
8096  }
8097  return internalSet(entity, paths, value, removeIfUndefined);
8098}
8099function isObject(obj) {
8100  return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;
8101}
8102function createEmpty(source) {
8103  return Array.isArray(source) ? [] : {};
8104}
8105var keys = typeof Reflect === 'undefined' ? Object.keys : Reflect.ownKeys;
8106
8107/**
8108 * Merge objects which will create
8109 */
8110function merge() {
8111  for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {
8112    sources[_key] = arguments[_key];
8113  }
8114  var clone = createEmpty(sources[0]);
8115  sources.forEach(function (src) {
8116    function internalMerge(path, parentLoopSet) {
8117      var loopSet = new Set(parentLoopSet);
8118      var value = get(src, path);
8119      var isArr = Array.isArray(value);
8120      if (isArr || isObject(value)) {
8121        // Only add not loop obj
8122        if (!loopSet.has(value)) {
8123          loopSet.add(value);
8124          var originValue = get(clone, path);
8125          if (isArr) {
8126            // Array will always be override
8127            clone = set(clone, path, []);
8128          } else if (!originValue || _typeof(originValue) !== 'object') {
8129            // Init container if not exist
8130            clone = set(clone, path, createEmpty(value));
8131          }
8132          keys(value).forEach(function (key) {
8133            internalMerge([].concat(_toConsumableArray(path), [key]), loopSet);
8134          });
8135        }
8136      } else {
8137        clone = set(clone, path, value);
8138      }
8139    }
8140    internalMerge([]);
8141  });
8142  return clone;
8143}
8144
8145/***/ }),
8146
8147/***/ 53905:
8148/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8149
8150"use strict";
8151/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8152/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
8153/* harmony export */ });
8154/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(81002);
8155/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
8156/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
8157/* harmony import */ var _common_login_info_controller__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12097);
8158
8159
8160
8161/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function (loginInfo, loginCallback) {
8162  if (loginInfo === void 0) {
8163    loginInfo = {};
8164  }
8165  if (loginCallback === void 0) {
8166    loginCallback = function loginCallback() {};
8167  }
8168  var token = loginInfo.token;
8169  var _a = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(!!token),
8170    isLogin = _a[0],
8171    setIsLogin = _a[1];
8172  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
8173    var token = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.info('token');
8174    if (!token) {
8175      setIsLogin(false);
8176      (0,_common__WEBPACK_IMPORTED_MODULE_0__/* .removeLogin */ ._$)();
8177      return;
8178    }
8179    setIsLogin(true);
8180    loginCallback === null || loginCallback === void 0 ? void 0 : loginCallback({});
8181  }, []);
8182  return {
8183    isLogin: isLogin,
8184    loginInfo: loginInfo
8185  };
8186});
8187
8188/***/ }),
8189
8190/***/ 55152:
8191/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
8192
8193"use strict";
8194/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8195/* harmony export */   A: () => (/* binding */ _classCallCheck)
8196/* harmony export */ });
8197function _classCallCheck(a, n) {
8198  if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
8199}
8200
8201
8202/***/ }),
8203
8204/***/ 56003:
8205/***/ ((module) => {
8206
8207"use strict";
8208module.exports = __WEBPACK_EXTERNAL_MODULE__56003__;
8209
8210/***/ }),
8211
8212/***/ 58965:
8213/***/ (() => {
8214
8215"use strict";
8216// extracted by mini-css-extract-plugin
8217/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ({});
8218
8219/***/ }),
8220
8221/***/ 59788:
8222/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8223
8224"use strict";
8225/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8226/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
8227/* harmony export */ });
8228/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89575);
8229/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(69740);
8230/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(79082);
8231/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(53373);
8232/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__);
8233/* harmony import */ var rc_motion__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3251);
8234/* harmony import */ var rc_resize_observer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(77326);
8235/* harmony import */ var rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(84238);
8236/* harmony import */ var rc_util_es_ref__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(19284);
8237/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(15442);
8238/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_8__);
8239/* harmony import */ var _Arrow__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(23581);
8240/* harmony import */ var _Mask__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(27982);
8241/* harmony import */ var _PopupContent__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(80745);
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254var Popup = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.forwardRef(function (props, ref) {
8255  var popup = props.popup,
8256    className = props.className,
8257    prefixCls = props.prefixCls,
8258    style = props.style,
8259    target = props.target,
8260    _onVisibleChanged = props.onVisibleChanged,
8261    open = props.open,
8262    keepDom = props.keepDom,
8263    fresh = props.fresh,
8264    onClick = props.onClick,
8265    mask = props.mask,
8266    arrow = props.arrow,
8267    arrowPos = props.arrowPos,
8268    align = props.align,
8269    motion = props.motion,
8270    maskMotion = props.maskMotion,
8271    forceRender = props.forceRender,
8272    getPopupContainer = props.getPopupContainer,
8273    autoDestroy = props.autoDestroy,
8274    Portal = props.portal,
8275    zIndex = props.zIndex,
8276    onMouseEnter = props.onMouseEnter,
8277    onMouseLeave = props.onMouseLeave,
8278    onPointerEnter = props.onPointerEnter,
8279    onPointerDownCapture = props.onPointerDownCapture,
8280    ready = props.ready,
8281    offsetX = props.offsetX,
8282    offsetY = props.offsetY,
8283    offsetR = props.offsetR,
8284    offsetB = props.offsetB,
8285    onAlign = props.onAlign,
8286    onPrepare = props.onPrepare,
8287    stretch = props.stretch,
8288    targetWidth = props.targetWidth,
8289    targetHeight = props.targetHeight;
8290  var childNode = typeof popup === 'function' ? popup() : popup;
8291
8292  // We can not remove holder only when motion finished.
8293  var isNodeVisible = open || keepDom;
8294
8295  // ======================= Container ========================
8296  var getPopupContainerNeedParams = (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer.length) > 0;
8297  var _React$useState = react__WEBPACK_IMPORTED_MODULE_8__.useState(!getPopupContainer || !getPopupContainerNeedParams),
8298    _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(_React$useState, 2),
8299    show = _React$useState2[0],
8300    setShow = _React$useState2[1];
8301
8302  // Delay to show since `getPopupContainer` need target element
8303  (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A)(function () {
8304    if (!show && getPopupContainerNeedParams && target) {
8305      setShow(true);
8306    }
8307  }, [show, getPopupContainerNeedParams, target]);
8308
8309  // ========================= Render =========================
8310  if (!show) {
8311    return null;
8312  }
8313
8314  // >>>>> Offset
8315  var AUTO = 'auto';
8316  var offsetStyle = {
8317    left: '-1000vw',
8318    top: '-1000vh',
8319    right: AUTO,
8320    bottom: AUTO
8321  };
8322
8323  // Set align style
8324  if (ready || !open) {
8325    var _experimental;
8326    var points = align.points;
8327    var dynamicInset = align.dynamicInset || ((_experimental = align._experimental) === null || _experimental === void 0 ? void 0 : _experimental.dynamicInset);
8328    var alignRight = dynamicInset && points[0][1] === 'r';
8329    var alignBottom = dynamicInset && points[0][0] === 'b';
8330    if (alignRight) {
8331      offsetStyle.right = offsetR;
8332      offsetStyle.left = AUTO;
8333    } else {
8334      offsetStyle.left = offsetX;
8335      offsetStyle.right = AUTO;
8336    }
8337    if (alignBottom) {
8338      offsetStyle.bottom = offsetB;
8339      offsetStyle.top = AUTO;
8340    } else {
8341      offsetStyle.top = offsetY;
8342      offsetStyle.bottom = AUTO;
8343    }
8344  }
8345
8346  // >>>>> Misc
8347  var miscStyle = {};
8348  if (stretch) {
8349    if (stretch.includes('height') && targetHeight) {
8350      miscStyle.height = targetHeight;
8351    } else if (stretch.includes('minHeight') && targetHeight) {
8352      miscStyle.minHeight = targetHeight;
8353    }
8354    if (stretch.includes('width') && targetWidth) {
8355      miscStyle.width = targetWidth;
8356    } else if (stretch.includes('minWidth') && targetWidth) {
8357      miscStyle.minWidth = targetWidth;
8358    }
8359  }
8360  if (!open) {
8361    miscStyle.pointerEvents = 'none';
8362  }
8363  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(Portal, {
8364    open: forceRender || isNodeVisible,
8365    getContainer: getPopupContainer && function () {
8366      return getPopupContainer(target);
8367    },
8368    autoDestroy: autoDestroy
8369  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(_Mask__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A, {
8370    prefixCls: prefixCls,
8371    open: open,
8372    zIndex: zIndex,
8373    mask: mask,
8374    motion: maskMotion
8375  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(rc_resize_observer__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A, {
8376    onResize: onAlign,
8377    disabled: !open
8378  }, function (resizeObserverRef) {
8379    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)({
8380      motionAppear: true,
8381      motionEnter: true,
8382      motionLeave: true,
8383      removeOnLeave: false,
8384      forceRender: forceRender,
8385      leavedClassName: "".concat(prefixCls, "-hidden")
8386    }, motion, {
8387      onAppearPrepare: onPrepare,
8388      onEnterPrepare: onPrepare,
8389      visible: open,
8390      onVisibleChanged: function onVisibleChanged(nextVisible) {
8391        var _motion$onVisibleChan;
8392        motion === null || motion === void 0 || (_motion$onVisibleChan = motion.onVisibleChanged) === null || _motion$onVisibleChan === void 0 || _motion$onVisibleChan.call(motion, nextVisible);
8393        _onVisibleChanged(nextVisible);
8394      }
8395    }), function (_ref, motionRef) {
8396      var motionClassName = _ref.className,
8397        motionStyle = _ref.style;
8398      var cls = classnames__WEBPACK_IMPORTED_MODULE_3___default()(prefixCls, motionClassName, className);
8399      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement("div", {
8400        ref: (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_7__/* .composeRef */ .K4)(resizeObserverRef, ref, motionRef),
8401        className: cls,
8402        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)({
8403          '--arrow-x': "".concat(arrowPos.x || 0, "px"),
8404          '--arrow-y': "".concat(arrowPos.y || 0, "px")
8405        }, offsetStyle), miscStyle), motionStyle), {}, {
8406          boxSizing: 'border-box',
8407          zIndex: zIndex
8408        }, style),
8409        onMouseEnter: onMouseEnter,
8410        onMouseLeave: onMouseLeave,
8411        onPointerEnter: onPointerEnter,
8412        onClick: onClick,
8413        onPointerDownCapture: onPointerDownCapture
8414      }, arrow && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(_Arrow__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A, {
8415        prefixCls: prefixCls,
8416        arrow: arrow,
8417        arrowPos: arrowPos,
8418        align: align
8419      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_8__.createElement(_PopupContent__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .A, {
8420        cache: !open && !fresh
8421      }, childNode));
8422    });
8423  }));
8424});
8425if (false) // removed by dead control flow
8426{}
8427/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Popup);
8428
8429/***/ }),
8430
8431/***/ 59912:
8432/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8433
8434"use strict";
8435/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8436/* harmony export */   A: () => (/* binding */ Tooltip)
8437/* harmony export */ });
8438/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15442);
8439/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
8440/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56003);
8441/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);
8442/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22128);
8443/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(53373);
8444/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__);
8445/* harmony import */ var _components_CjHeader_const_languages__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(45163);
8446/* harmony import */ var _components_CjHeader_contexts_PropsContext__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(44148);
8447/* harmony import */ var _RcToolTip__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(14919);
8448/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(81002);
8449var __assign = undefined && undefined.__assign || function () {
8450  __assign = Object.assign || function (t) {
8451    for (var s, i = 1, n = arguments.length; i < n; i++) {
8452      s = arguments[i];
8453      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
8454    }
8455    return t;
8456  };
8457  return __assign.apply(this, arguments);
8458};
8459var __rest = undefined && undefined.__rest || function (s, e) {
8460  var t = {};
8461  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
8462  if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8463    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
8464  }
8465  return t;
8466};
8467
8468
8469
8470
8471
8472
8473
8474
8475function Tooltip(props) {
8476  var _a = props.useRc,
8477    useRc = _a === void 0 ? false : _a,
8478    _b = props.rcProps,
8479    rcProps = _b === void 0 ? {} : _b,
8480    _c = props.content,
8481    content = _c === void 0 ? '' : _c,
8482    children = props.children,
8483    _d = props.placement,
8484    placement = _d === void 0 ? 'top' : _d,
8485    _e = props.white,
8486    white = _e === void 0 ? false : _e,
8487    _f = props.className,
8488    className = _f === void 0 ? '' : _f,
8489    bodyStyle = props.bodyStyle,
8490    immediateHide = props.immediateHide,
8491    noImmediateShow = props.noImmediateShow,
8492    _g = props.noImmediateShowDelay,
8493    noImmediateShowDelay = _g === void 0 ? 1000 : _g,
8494    _h = props.autoTranslate,
8495    autoTranslate = _h === void 0 ? true : _h,
8496    autoShow = props.autoShow,
8497    _j = props.autoShowDelay,
8498    autoShowDelay = _j === void 0 ? 1000 : _j,
8499    _k = props.hideArrow,
8500    hideArrow = _k === void 0 ? false : _k,
8501    _l = props.zIndex,
8502    zIndex = _l === void 0 ? 99999 : _l,
8503    resetProps = __rest(props, ["useRc", "rcProps", "content", "children", "placement", "white", "className", "bodyStyle", "immediateHide", "noImmediateShow", "noImmediateShowDelay", "autoTranslate", "autoShow", "autoShowDelay", "hideArrow", "zIndex"]);
8504  var lng = (0,_components_CjHeader_contexts_PropsContext__WEBPACK_IMPORTED_MODULE_5__/* .useGlobalProps */ .v)().otherCookies.lng;
8505  var notranslate = autoTranslate ? false : _components_CjHeader_const_languages__WEBPACK_IMPORTED_MODULE_4__/* .sixCountryLanguage */ .V.includes(lng);
8506  var cloneRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
8507  var ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
8508  var timerRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
8509  var timerEnterRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
8510  var Tip = function Tip(_a) {
8511    var _b, _c;
8512    var _d = _a.arrowStyle,
8513      arrowStyle = _d === void 0 ? {}
8513 : _d,
8514      style = _a.style;
8515    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
8516      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)),
8517      style: __assign(__assign({}, style), {
8518        zIndex: zIndex
8519      })
8520    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
8521      className: _index_less__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.box
8522    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
8523      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)),
8524      style: arrowStyle
8525    }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
8526      className: _index_less__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A.content
8527    }, content)));
8528  };
8529  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
8530    return function () {
8531      ref.current && ref.current.remove();
8532    };
8533  }, []);
8534  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
8535    if (autoShow) {
8536      setTimeout(function () {
8537        if ((0,_common__WEBPACK_IMPORTED_MODULE_7__/* .isMobileFun */ .kJ)()) {
8538          return;
8539        }
8540        handleOnMouseEnter(cloneRef.current);
8541        setTimeout(function () {
8542          handleOnLeave(ref.current);
8543        }, autoShowDelay);
8544      }, 1000);
8545    }
8546  }, []);
8547  var clearTimerVariable = function clearTimerVariable() {
8548    timerRef.current && clearTimeout(timerRef.current);
8549  };
8550  var handleOnLeave = function handleOnLeave(dom) {
8551    function removeDom() {
8552      dom && dom.remove();
8553      ref.current = null;
8554    }
8555    clearTimerVariable();
8556    if (immediateHide) return removeDom();
8557    timerRef.current = setTimeout(function () {
8558      removeDom();
8559    }, 50);
8560  };
8561  var handleOnMouseEnter = function handleOnMouseEnter(target) {
8562    clearTimerVariable();
8563    if (ref.current) return;
8564    var _a = target.getBoundingClientRect(),
8565      top = _a.top,
8566      width = _a.width,
8567      left = _a.left,
8568      height = _a.height;
8569    var windowWidth = window.innerWidth;
8570    var arrowWidth = 10;
8571    var style = {};
8572    var arrowStyle = {};
8573    switch (placement) {
8574      case 'leftTop':
8575        style = {
8576          left: left,
8577          top: top - 10,
8578          transform: 'translateY(-100%)'
8579        };
8580        arrowStyle = {
8581          bottom: -5,
8582          left: width / 2 - arrowWidth / 2
8583        };
8584        break;
8585      case 'rightTop':
8586        style = {
8587          right: windowWidth - (left + width),
8588          top: top - 10,
8589          transform: 'translateY(-100%)'
8590        };
8591        arrowStyle = {
8592          bottom: -5,
8593          right: width / 2 - arrowWidth / 2
8594        };
8595        break;
8596      case 'right':
8597        style = {
8598          left: left + width + arrowWidth,
8599          top: top - height / 2 + 6
8600        };
8601        arrowStyle = {
8602          bottom: height / 2,
8603          left: -arrowWidth
8604        };
8605        break;
8606      case 'top':
8607        style = {
8608          left: left + width / 2,
8609          top: top - 10,
8610          transform: 'translate(-50%, -100%)'
8611        };
8612        arrowStyle = {
8613          bottom: -5,
8614          left: "calc(50% - ".concat(arrowWidth / 2, "px)")
8615        };
8616        break;
8617      case 'bottom':
8618        style = {
8619          left: left + width / 2,
8620          top: top + height + 10,
8621          transform: 'translateX(-50%)'
8622        };
8623        arrowStyle = {
8624          top: -5,
8625          left: "calc(50% - ".concat(arrowWidth / 2, "px)"),
8626          transform: 'rotate(180deg)'
8627        };
8628        break;
8629      case 'bottomRight':
8630        style = {
8631          right: windowWidth - (left + width),
8632          top: top + height + 10
8633        };
8634        arrowStyle = {
8635          top: -5,
8636          right: width / 2 - arrowWidth / 2,
8637          transform: 'rotate(180deg)'
8638        };
8639        break;
8640      case 'bottomLeft':
8641        style = {
8642          left: left,
8643          top: top + height + 10
8644        };
8645        arrowStyle = {
8646          top: -5,
8647          left: width / 2 - arrowWidth / 2,
8648          transform: 'rotate(180deg)'
8649        };
8650        break;
8651      case 'leftBottom':
8652        style = {
8653          left: left,
8654          top: top + height + 10
8655        };
8656        arrowStyle = {
8657          top: -5,
8658          left: arrowWidth + 5,
8659          transform: 'rotate(180deg)'
8660        };
8661        break;
8662      default:
8663    }
8664    var CloneTip = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Tip, {
8665      style: __assign(__assign({}, style), bodyStyle),
8666      arrowStyle: arrowStyle
8667    }), {});
8668    var div = document.createElement('div');
8669    div.addEventListener('mouseenter', function (e) {
8670      clearTimerVariable();
8671    });
8672    div.addEventListener('mouseleave', function () {
8673      handleOnLeave(ref.current);
8674    });
8675    function show() {
8676      document.body.append(div);
8677      ref.current = div;
8678      (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);
8679    }
8680    if (noImmediateShow) {
8681      timerEnterRef && clearTimeout(timerEnterRef.current);
8682      timerEnterRef.current = setTimeout(function () {
8683        show();
8684      }, noImmediateShowDelay);
8685      return;
8686    }
8687    show();
8688  };
8689  if (!content) return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(children, {
8690    ref: cloneRef
8691  });
8692  if (useRc) {
8693    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_RcToolTip__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A, __assign({
8694      theme: "black",
8695      placement: placement,
8696      overlay: function overlay() {
8697        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, content);
8698      },
8699      getTooltipContainer: function getTooltipContainer(triggerNode) {
8700        if (triggerNode.parentElement) return triggerNode.parentElement;
8701        return document.body;
8702      }
8703    }
8703, rcProps), typeof children === 'string' ? (/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, children)) : children);
8704  }
8705  return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(typeof children === 'string' ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null, children) : children, {
8706    ref: cloneRef,
8707    onMouseEnter: function onMouseEnter(e) {
8708      handleOnMouseEnter(e.currentTarget);
8709    },
8710    onMouseLeave: function onMouseLeave() {
8711      if (noImmediateShow) {
8712        timerEnterRef && clearTimeout(timerEnterRef.current);
8713      }
8714      handleOnLeave(ref.current);
8715    }
8716  });
8717}
8718
8719/***/ }),
8720
8721/***/ 60133:
8722/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8723
8724"use strict";
8725/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8726/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
8727/* harmony export */ });
8728// extracted by mini-css-extract-plugin
8729/* 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"});
8730
8731/***/ }),
8732
8733/***/ 60488:
8734/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8735
8736"use strict";
8737/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8738/* harmony export */   A: () => (/* binding */ useIsZS)
8739/* harmony export */ });
8740function useIsZS(server_siteCheck) {
8741  var _a, _b, _c;
8742  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;
8743  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;
8744}
8745
8746/***/ }),
8747
8748/***/ 61225:
8749/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8750
8751"use strict";
8752/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8753/* harmony export */   D: () => (/* binding */ getWin),
8754/* harmony export */   H1: () => (/* binding */ getAlignPopupClassName),
8755/* harmony export */   Iq: () => (/* binding */ getVisibleArea),
8756/* harmony export */   TK: () => (/* binding */ collectScroller),
8757/* harmony export */   Vu: () => (/* binding */ getMotion),
8758/* harmony export */   ac: () => (/* binding */ toNum)
8759/* harmony export */ });
8760/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69740);
8761
8762function isPointsEq() {
8763  var a1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
8764  var a2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
8765  var isAlignPoint = arguments.length > 2 ? arguments[2] : undefined;
8766  if (isAlignPoint) {
8767    return a1[0] === a2[0];
8768  }
8769  return a1[0] === a2[0] && a1[1] === a2[1];
8770}
8771function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {
8772  var points = align.points;
8773  var placements = Object.keys(builtinPlacements);
8774  for (var i = 0; i < placements.length; i += 1) {
8775    var _builtinPlacements$pl;
8776    var placement = placements[i];
8777    if (isPointsEq((_builtinPlacements$pl = builtinPlacements[placement]) === null || _builtinPlacements$pl === void 0 ? void 0 : _builtinPlacements$pl.points, points, isAlignPoint)) {
8778      return "".concat(prefixCls, "-placement-").concat(placement);
8779    }
8780  }
8781  return '';
8782}
8783
8784/** @deprecated We should not use this if we can refactor all deps */
8785function getMotion(prefixCls, motion, animation, transitionName) {
8786  if (motion) {
8787    return motion;
8788  }
8789  if (animation) {
8790    return {
8791      motionName: "".concat(prefixCls, "-").concat(animation)
8792    };
8793  }
8794  if (transitionName) {
8795    return {
8796      motionName: transitionName
8797    };
8798  }
8799  return null;
8800}
8801function getWin(ele) {
8802  return ele.ownerDocument.defaultView;
8803}
8804
8805/**
8806 * Get all the scrollable parent elements of the element
8807 * @param ele       The element to be detected
8808 * @param areaOnly  Only return the parent which will cut visible area
8809 */
8810function collectScroller(ele) {
8811  var scrollerList = [];
8812  var current = ele === null || ele === void 0 ? void 0 : ele.parentElement;
8813  var scrollStyle = ['hidden', 'scroll', 'clip', 'auto'];
8814  while (current) {
8815    var _getWin$getComputedSt = getWin(current).getComputedStyle(current),
8816      overflowX = _getWin$getComputedSt.overflowX,
8817      overflowY = _getWin$getComputedSt.overflowY,
8818      overflow = _getWin$getComputedSt.overflow;
8819    if ([overflowX, overflowY, overflow].some(function (o) {
8820      return scrollStyle.includes(o);
8821    })) {
8822      scrollerList.push(current);
8823    }
8824    current = current.parentElement;
8825  }
8826  return scrollerList;
8827}
8828function toNum(num) {
8829  var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
8830  return Number.isNaN(num) ? defaultValue : num;
8831}
8832function getPxValue(val) {
8833  return toNum(parseFloat(val), 0);
8834}
8835/**
8836 *
8837 *
8838 *  **************************************
8839 *  *              Border                *
8840 *  *     **************************     *
8841 *  *     *                  *     *     *
8842 *  *  B  *                  *  S  *  B  *
8843 *  *  o  *                  *  c  *  o  *
8844 *  *  r  *      Content     *  r  *  r  *
8845 *  *  d  *                  *  o  *  d  *
8846 *  *  e  *                  *  l  *  e  *
8847 *  *  r  ********************  l  *  r  *
8848 *  *     *        Scroll          *     *
8849 *  *     **************************     *
8850 *  *              Border                *
8851 *  **************************************
8852 *
8853 */
8854/**
8855 * Get visible area of element
8856 */
8857function getVisibleArea(initArea, scrollerList) {
8858  var visibleArea = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, initArea);
8859  (scrollerList || []).forEach(function (ele) {
8860    if (ele instanceof HTMLBodyElement || ele instanceof HTMLHtmlElement) {
8861      return;
8862    }
8863
8864    // Skip if static position which will not affect visible area
8865    var _getWin$getComputedSt2 = getWin(ele).getComputedStyle(ele),
8866      overflow = _getWin$getComputedSt2.overflow,
8867      overflowClipMargin = _getWin$getComputedSt2.overflowClipMargin,
8868      borderTopWidth = _getWin$getComputedSt2.borderTopWidth,
8869      borderBottomWidth = _getWin$getComputedSt2.borderBottomWidth,
8870      borderLeftWidth = _getWin$getComputedSt2.borderLeftWidth,
8871      borderRightWidth = _getWin$getComputedSt2.borderRightWidth;
8872    var eleRect = ele.getBoundingClientRect();
8873    var eleOutHeight = ele.offsetHeight,
8874      eleInnerHeight = ele.clientHeight,
8875      eleOutWidth = ele.offsetWidth,
8876      eleInnerWidth = ele.clientWidth;
8877    var borderTopNum = getPxValue(borderTopWidth);
8878    var borderBottomNum = getPxValue(borderBottomWidth);
8879    var borderLeftNum = getPxValue(borderLeftWidth);
8880    var borderRightNum = getPxValue(borderRightWidth);
8881    var scaleX = toNum(Math.round(eleRect.width / eleOutWidth * 1000) / 1000);
8882    var scaleY = toNum(Math.round(eleRect.height / eleOutHeight * 1000) / 1000);
8883
8884    // Original visible area
8885    var eleScrollWidth = (eleOutWidth - eleInnerWidth - borderLeftNum - borderRightNum) * scaleX;
8886    var eleScrollHeight = (eleOutHeight - eleInnerHeight - borderTopNum - borderBottomNum) * scaleY;
8887
8888    // Cut border size
8889    var scaledBorderTopWidth = borderTopNum * scaleY;
8890    var scaledBorderBottomWidth = borderBottomNum * scaleY;
8891    var scaledBorderLeftWidth = borderLeftNum * scaleX;
8892    var scaledBorderRightWidth = borderRightNum * scaleX;
8893
8894    // Clip margin
8895    var clipMarginWidth = 0;
8896    var clipMarginHeight = 0;
8897    if (overflow === 'clip') {
8898      var clipNum = getPxValue(overflowClipMargin);
8899      clipMarginWidth = clipNum * scaleX;
8900      clipMarginHeight = clipNum * scaleY;
8901    }
8902
8903    // Region
8904    var eleLeft = eleRect.x + scaledBorderLeftWidth - clipMarginWidth;
8905    var eleTop = eleRect.y + scaledBorderTopWidth - clipMarginHeight;
8906    var eleRight = eleLeft + eleRect.width + 2 * clipMarginWidth - scaledBorderLeftWidth - scaledBorderRightWidth - eleScrollWidth;
8907    var eleBottom = eleTop + eleRect.height + 2 * clipMarginHeight - scaledBorderTopWidth - scaledBorderBottomWidth - eleScrollHeight;
8908    visibleArea.left = Math.max(visibleArea.left, eleLeft);
8909    visibleArea.top = Math.max(visibleArea.top, eleTop);
8910    visibleArea.right = Math.min(visibleArea.right, eleRight);
8911    visibleArea.bottom = Math.min(visibleArea.bottom, eleBottom);
8912  });
8913  return visibleArea;
8914}
8915
8916/***/ }),
8917
8918/***/ 62194:
8919/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8920
8921"use strict";
8922/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8923/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
8924/* harmony export */ });
8925/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
8926  "/mine/invoiceNew/providerInvoice": {
8927    "module": {
8928      "show-side-menu": false
8929    }
8930  },
8931  "/customPackaging": {
8932    "module": {
8933      "show-side-menu": false
8934    }
8935  },
8936  "/mine/logisticForMyProducts": {
8937    "module": {
8938      "show-side-menu": false
8939    }
8940  },
8941  "/mine/podInfoTemp": {
8942    "module": {
8943      "show-side-menu": false,
8944      "chat-body": false
8945    }
8946  },
8947  "/factories": {
8948    "module": {
8949      "header-search-camera": false
8950    }
8951  },
8952  "/mine/purchase/purchaseList": {
8953    "module": {
8954      "th-incomplete-product": false,
8955      "th-search-form": false,
8956      "th-show-pay-logistic": false,
8957      "th-self-pick-code": false
8958    }
8959  },
8960  "/mine/invoiceNew/walletInvoice": {
8961    "module": {
8962      "show-side-menu": false
8963    }
8964  },
8965  "/home": {
8966    "banner-width": "600",
8967    "module": {
8968      "global-selected-products": false
8969    },
8970    "banner-height": "413"
8971  },
8972  "/mine/invoiceNew/providerWalletInvoice": {
8973    "module": {
8974      "show-side-menu": false
8975    }
8976  },
8977  "/bulkPurchase": {
8978    "module": {
8979      "show-side-menu": false
8980    }
8981  },
8982  "/top-selling": {
8983    "module": {
8984      "show-side-menu": false
8985    }
8986  },
8987  "/mine/aiAssistant": {
8988    "module": {
8989      "product-card-listnum": false,
8990      "ai-assistant": false,
8991      "chat-body": false
8992    }
8993  },
8994  "/mabang": {
8995    "module": {
8996      "show-side-menu": false
8997    }
8998  },
8999  "/loancredit": {
9000    "module": {
9001      "footer-link": false
9002    }
9003  },
9004  "/partnership/Strat%C3%A9gieEscape": {
9005    "module": {
9006      "chat-body": false
9007    }
9008  },
9009  "/mine/invoiceNew/orderInvoice": {
9010    "module": {
9011      "show-side-menu": false
9012    }
9013  },
9014  "/mine/calculation": {
9015    "module": {
9016      "chat-body": false
9017    }
9018  },
9019  "common": {
9020    "can-subscribe-nums": ["CJ10001", "CJ429035", "CJ393749", "CJ4413202", "CJ4853327", "CJ4222547", "CJ709889"],
9021    "warehouse-operation-video-users": ["CJ10001", "CJ4445350", "CJ4468131", "CJ4461784", "CJ4031737", "CJ2520452", "CJ2591528", "CJ2607137", "CJ1845582"],
9022    "list-allow-add-local-nums": ["CJ4599325", "CJ4832006", "CJ4825286", "CJ591747", "CJ2538590", "CJ4815083"],
9023    "login-data": "zJRR4N29LfElWFRWD2JVBg==",
9024    "intelligence-menu-threshold": 1,
9025    "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"],
9026    "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"],
9027    "share-image": "https://frontend.cjdropshipping.com/config-resource/cj/share1200x900.jpg",
9028    "allowed-api-user-ids": ["CJ4468131", "CJ620569", "CJ10001", "CJ429035", "CJ4224762", "CJ1452721", "CJ4985938", "CJ158602", "CJ56440", "CJ5551755"],
9029    "full-name": "CJdropshipping",
9030    "platform": 2,
9031    "source-spu-user-list": "CJ1167982,CJ2522152,CJ227789",
9032    "has-german-permission-user": "CJ10001,CJ2286027,CJ1452721",
9033    "ai-chat-hash-threshold": 100,
9034    "gbp-users": ["CJ2467479", "CJ10001"],
9035    "shopify-delivery-profiles-user-ids": ["CJ1452721"],
9036    "top-notice-list": [{
9037      "link": "https://cjec.cjdropshipping.com/belgrade-2026/",
9038      "key": "common-costs-us-tips",
9039      "isShow": true
9040    }, {
9041      "link": "https://cjec.cjdropshipping.com/belgrade-2026/",
9042      "key": "common-header-notice",
9043      "isShow": false
9044    }],
9045    "host": "cjdropshipping.com",
9046    "logo": "https://frontend.cjdropshipping.com/config-resource/cj/new_logo.svg",
9047    "logo-white": "https://frontend.cjdropshipping.com/config-resource/cj/new_logo_white.svg",
9048    "remove-photo-request-users": ["CJ10001", "CJ4222547", "CJ5241151", "CJ5029117", "CJ4856590"],
9049    "ecomvault-nums": ["CJ591747", "CJ10001", "CJ1452721"],
9050    "login-debugger": "1",
9051    "company-name": "Yiwu Cujia Trade Co., Ltd.",
9052    "address": "F2.BUILDING 8,NO.89,SIYUAN ROAD ,YIDONG INDUSTRIAL ZONE,NIANSANLISTREET,YIWU.ZHEJIANG",
9053    "m-host": "https://m.cjdropshipping.com",
9054    "inventory-planner-menu-user": ["CJ4224762", "CJ429035", "CJ10001", "CJ2115343", "CJ4047783", "CJ2962894"],
9055    "warehouse-operation-only-picture-users": ["CJ4869824", "CJ4468131", "CJ4461784"],
9056    "favicon": "https://frontend.cjdropshipping.com/config-resource/cj/favicon.ico",
9057    "logo-height": "40",
9058    "ai-chat-users": ["CJ4215280", "CJ4215333", "CJ5067909", "CJ4569773", "CJ10001", "CJ4208389", "CJ5332187", "CJ955168"],
9059    "module": {
9060      "cj-authorie-login": false,
9061      "old-user-update-notice": false,
9062      "mycj-header-chinese-new-year-notice": false,
9063      "no-quickly-login": false,
9064      "everyone-show-photo-request": false,
9065      "use-old-chat": false
9066    },
9067    "loading": "loading.json",
9068    "logistics-number-jump-origin-url-users": ["CJ227789", "CJ2520452", "CJ4031737", "CJ4461784", "CJ4468131", "CJ4621927", "CJ2268247", "CJ2520452"],
9069    "footer-host": "CJdropshipping.com",
9070    "third-login": {
9071      "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",
9072      "facebook": "2678412275531221",
9073      "google": "708607489636-7ihggmvci7r9b6npeo3j9v4mnb2g23fp.apps.googleusercontent.com"
9074    },
9075    "support-multiple-warehouses-user-ids": ["CJ4546034", "CJ2284102", "CJ4597771", "CJ4714917"],
9076    "chat-domain": "https://chat.cjdropshipping.com",
9077    "footer-copyright": "浙ICP备2020040134号-1",
9078    "site": "CJ",
9079    "academy-home": "https://cjacademy.cjdropshipping.com/",
9080    "my-quotation-users": ["CJ2268247", "CJ227789", "CJ2520452", "CJ4031737", "CJ4461784", "CJ4468131", "CJ4621927", "CJ2520452", "CJ2520452", "CJ4461784", "CJ4031737", "CJ4869824", "CJ4621927", "CJ4067173", "CJ4855400", "CJ4879281"],
9081    "logo-width": "200",
9082    "name": "CJ",
9083    "track-on-cjpacket": "Track on CJPacket",
9084    "intelligence-menu-user": ["CJ4215280", "CJ4215333", "CJ4569773", "CJ5332187", "CJ10001", "CJ4411686", "CJ4950757", "CJ5212190", "CJ4215333", "CJ4215333", "CJ4569773", "CJ5332187", "CJ5172899"],
9085    "qksource-domain": "https://qksource.com"
9086  },
9087  "/contactus": {
9088    "module": {
9089      "contactus-visitus": false,
9090      "contactus-comoney": false
9091    },
9092    "company-info": ""
9093  },
9094  "/medium-production-services": {
9095    "module": {
9096      "show-side-menu": false
9097    }
9098  },
9099  "/mine/customization": {
9100    "module": {
9101      "odm-guide": false
9102    },
9103    "odm-guide-users": ["CJ4215280", "CJ10001", "CJ1452721", "CJ5147146"]
9104  },
9105  "/mine/payment": {
9106    "module": {
9107      "use-new-card-pay": false
9108    }
9109  },
9110  "/mine/pod3detail": {
9111    "module": {
9112      "show-side-menu": false,
9113      "chat-body": false
9114    }
9115  },
9116  "/aboutus": {
9117    "company-name": "",
9118    "module": {
9119      "aboutus-more": false,
9120      "aboutus-story": false,
9121      "aboutus-email": false
9122    },
9123    "company-info": "",
9124    "aboutus-email": "[email protected]"
9125  }
9126});
9127
9128/***/ }),
9129
9130/***/ 62742:
9131/***/ ((module) => {
9132
9133"use strict";
9134module.exports = __WEBPACK_EXTERNAL_MODULE__62742__;
9135
9136/***/ }),
9137
9138/***/ 62934:
9139/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9140
9141"use strict";
9142/* harmony export */ __webpack_require__.d(__webpack_exports__, {
9143/* harmony export */   Jv: () => (/* binding */ getAppStoreList),
9144/* harmony export */   vG: () => (/* binding */ getAuthorizeShowList)
9145/* harmony export */ });
9146/* unused harmony exports getTransWarehouse, getWarehouseTranslate2Session, getWarehouseList, getCountryData, getThCountryData, getQueueCount, addStatisFun, getCategories, getShippingCartNum, getSearchKeys, debounceGetSearchKeys, getRate, getLogisticsEnquiryWeight */
9147/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(81002);
9148/* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3478);
9149/* harmony import */ var _common_platform_show__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(37597);
9150/* harmony import */ var _common_oss_controller__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(44190);
9151/* harmony import */ var _common_add_store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21421);
9152var __assign = undefined && undefined.__assign || function () {
9153  __assign = Object.assign || function (t) {
9154    for (var s, i = 1, n = arguments.length; i < n; i++) {
9155      s = arguments[i];
9156      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
9157    }
9158    return t;
9159  };
9160  return __assign.apply(this, arguments);
9161};
9162var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
9163  function adopt(value) {
9164    return value instanceof P ? value : new P(function (resolve) {
9165      resolve(value);
9166    });
9167  }
9168  return new (P || (P = Promise))(function (resolve, reject) {
9169    function fulfilled(value) {
9170      try {
9171        step(generator.next(value));
9172      } catch (e) {
9173        reject(e);
9174      }
9175    }
9176    function rejected(value) {
9177      try {
9178        step(generator["throw"](value));
9179      } catch (e) {
9180        reject(e);
9181      }
9182    }
9183    function step(result) {
9184      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
9185    }
9186    step((generator = generator.apply(thisArg, _arguments || [])).next());
9187  });
9188};
9189var __generator = undefined && undefined.__generator || function (thisArg, body) {
9190  var _ = {
9191      label: 0,
9192      sent: function sent() {
9193        if (t[0] & 1) throw t[1];
9194        return t[1];
9195      },
9196      trys: [],
9197      ops: []
9198    },
9199    f,
9200    y,
9201    t,
9202    g;
9203  return g = {
9204    next: verb(0),
9205    "throw": verb(1),
9206    "return": verb(2)
9207  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
9208    return this;
9209  }), g;
9210  function verb(n) {
9211    return function (v) {
9212      return step([n, v]);
9213    };
9214  }
9215  function step(op) {
9216    if (f) throw new TypeError("Generator is already executing.");
9217    while (g && (g = 0, op[0] && (_ = 0)), _) try {
9218      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;
9219      if (y = 0, t) op = [op[0] & 2, t.value];
9220      switch (op[0]) {
9221        case 0:
9222        case 1:
9223          t = op;
9224          break;
9225        case 4:
9226          _.label++;
9227          return {
9228            value: op[1],
9229            done: false
9230          };
9231        case 5:
9232          _.label++;
9233          y = op[1];
9234          op = [0];
9235          continue;
9236        case 7:
9237          op = _.ops.pop();
9238          _.trys.pop();
9239          continue;
9240        default:
9241          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
9242            _ = 0;
9243            continue;
9244          }
9245          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
9246            _.label = op[1];
9247            break;
9248          }
9249          if (op[0] === 6 && _.label < t[1]) {
9250            _.label = t[1];
9251            t = op;
9252            break;
9253          }
9254          if (t && _.label < t[2]) {
9255            _.label = t[2];
9256            _.ops.push(op);
9257            break;
9258          }
9259          if (t[2]) _.ops.pop();
9260          _.trys.pop();
9261          continue;
9262      }
9263      op = body.call(thisArg, _);
9264    } catch (e) {
9265      op = [6, e];
9266      y = 0;
9267    } finally {
9268      f = t = 0;
9269    }
9270    if (op[0] & 5) throw op[1];
9271    return {
9272      value: op[0] ? op[1] : void 0,
9273      done: true
9274    };
9275  }
9276};
9277
9278
9279
9280
9281
9282var getTransWarehouse = function getTransWarehouse($axios, lng) {
9283  return __awaiter(void 0, void 0, void 0, function () {
9284    var warehouses, result;
9285    var _a;
9286    return __generator(this, function (_b) {
9287      switch (_b.label) {
9288        case 0:
9289          if (isBrowser) {
9290            warehouses = sessionStorage.getItem("warehouse_lng_".concat(lng));
9291            if (warehouses) {
9292              return [2, [null, {
9293                result: JSON.parse(warehouses)
9294              }]];
9295            }
9296          }
9297          return [4, $axios({
9298            method: 'post',
9299            url: 'product-api/dbWorldInfo/getWareHouseWorldsByLanguage',
9300            headers: {
9301              language: lng
9302            },
9303            data: {}
9304          })];
9305        case 1:
9306          result = _b.sent();
9307          if (isBrowser && ((_a = result[1]) === null || _a === void 0 ? void 0 : _a.result)) {
9308            sessionStorage.setItem("warehouse_lng_".concat(lng), JSON.stringify(result[1].data));
9309          }
9310          return [2, result];
9311      }
9312    });
9313  });
9314};
9315var getWarehouseTranslate2Session = function getWarehouseTranslate2Session($axios) {
9316  return __awaiter(void 0, void 0, void 0, function () {
9317    var languages, _loop_1, i;
9318    return __generator(this, function (_a) {
9319      languages = ['zh', 'en', 'de', 'fr', 'id', 'th'];
9320      _loop_1 = function _loop_1(i) {
9321        var lng = languages[i];
9322        getTransWarehouse($axios, lng).then(function (_a) {
9323          var err = _a[0],
9324            res = _a[1];
9325          if (!err) {
9326            if (!isBrowser) {
9327              var result = (res || {}).result || [];
9328              sessionStorage.setItem("warehouse_lng_".concat(lng), JSON.stringify(result));
9329            }
9330          }
9331        });
9332      };
9333      for (i = 0; i < languages.length; i++) {
9334        _loop_1(i);
9335      }
9336      return [2];
9337    });
9338  });
9339};
9340var getWarehouseList = function getWarehouseList(_a) {
9341  var ctx = _a.ctx,
9342    $axios = _a.$axios,
9343    lng = _a.lng;
9344  return __awaiter(void 0, void 0, void 0, function () {
9345    function addOtherData(list, ctx) {
9346      if (list === void 0) {
9347        list = [];
9348      }
9349      var arr = [];
9350      list.forEach(function (item) {
9351        var _a, _b;
9352        var env = "production" || 0;
9353        var url;
9354        if (env === 'test') {
9355          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");
9356        } else {
9357          url = "https://".concat((_b = item === null || item === void 0 ? void 0 : item.countryCode) === null || _b === void 0 ? void 0 : _b.toLowerCase(), ".cjdropshipping.com");
9358        }
9359        arr.push({
9360          name: item[lng] || item['en'],
9361          href: url,
9362          image: ossController.join(createFlag(item.countryCode)),
9363          areaId: item === null || item === void 0 ? void 0 : item.areaId,
9364          areaEn: item['en'],
9365          countryCode: item === null || item === void 0 ? void 0 : item.countryCode,
9366          disabled: item.disabled
9367        });
9368      });
9369      return arr;
9370    }
9371    var _b, err, data, _data;
9372    var _c, _d;
9373    return __generator(this, function (_e) {
9374      switch (_e.label) {
9375        case 0:
9376          if ((_c = ctx === null || ctx === void 0 ? void 0 : ctx.commonTopSSRProps) === null || _c === void 0 ? void 0 : _c.warehouseList) {
9377            return [2, [null, (_d = ctx === null || ctx === void 0 ? void 0 : ctx.commonTopSSRProps) === null || _d === void 0 ? void 0 : _d.warehouseList]];
9378          }
9379          return [4, $axios({
9380            method: 'get',
9381            url: ossController.join(createWarehouseJson())
9382          })];
9383        case 1:
9384          _b = _e.sent(), err = _b[0], data = _b[1];
9385          _data = data;
9386          return [2, err ? [err] : [null, addOtherData(_data, ctx)]];
9387      }
9388    });
9389  });
9390};
9391var getCountryData = function getCountryData($axios) {
9392  return __awaiter(void 0, void 0, void 0, function () {
9393    var _a, res;
9394    return __generator(this, function (_b) {
9395      switch (_b.label) {
9396        case 0:
9397          return [4, $axios({
9398            method: 'get',
9399            url: ossController.join(countryInfo())
9400          })];
9401        case 1:
9402          _a = _b.sent(), res = _a[1];
9403          if (!res) return [2, []];
9404          res.symbol = res.symbol.sort(function (a, b) {
9405            return a.currency.charCodeAt(0) - b.currency.charCodeAt(0);
9406          });
9407          return [2, res !== null && res !== void 0 ? res : {}];
9408      }
9409    });
9410  });
9411};
9412var getThCountryData = function getThCountryData($axios, code) {
9413  if (code === void 0) {
9414    code = 'th';
9415  }
9416  return __awaiter(void 0, void 0, void 0, function () {
9417    var _a, res;
9418    return __generator(this, function (_b) {
9419      switch (_b.label) {
9420        case 0:
9421          return [4, $axios({
9422            method: 'get',
9423            url: ossController.join(createConfigResource(code, 'countryinfo.json'))
9424          })];
9425        case 1:
9426          _a = _b.sent(), res = _a[1];
9427          res.countryList = res.countryList.sort(function (a, b) {
9428            return a.NAME_EN.charCodeAt(0) - b.NAME_EN.charCodeAt(0);
9429          });
9430          return [2, res !== null && res !== void 0 ? res : {}];
9431      }
9432    });
9433  });
9434};
9435var getQueueCount = function getQueueCount($axios, params) {
9436  if (params === void 0) {
9437    params = {};
9438  }
9439  return __awaiter(void 0, void 0, void 0, function () {
9440    var _params, _a, err, res, _b, e, d;
9441    return __generator(this, function (_c) {
9442      switch (_c.label) {
9443        case 0:
9444          _params = __assign({
9445            pageNum: 1,
9446            pageSize: 1000,
9447            shopId: '',
9448            inputStr: '',
9449            status: '0'
9450          }, params);
9451          return [4, $axios({
9452            method: 'post',
9453            url: 'cj-platform-web/product/listedProduct/queryListProductCount',
9454            data: _params
9455          })];
9456        case 1:
9457          _a = _c.sent(), err = _a[0], res = _a[1];
9458          if (err) return [2, 0];
9459          _b = statusCode200(res), e = _b[0], d = _b[1];
9460          if (e) return [2, 0];
9461          return [2, d.totle];
9462      }
9463    });
9464  });
9465};
9466var addStatisFun = function addStatisFun($axios, type) {
9467  return __awaiter(void 0, void 0, void 0, function () {
9468    var _params;
9469    return __generator(this, function (_a) {
9470      switch (_a.label) {
9471        case 0:
9472          _params = {
9473            entryPage: type
9474          };
9475          return [4, $axios({
9476            method: 'post',
9477            url: 'pojo/home/addStatisByType',
9478            data: _params
9479          })];
9480        case 1:
9481          _a.sent();
9482          return [2];
9483      }
9484    });
9485  });
9486};
9487var getCategories = function getCategories(_a) {
9488  var ctx = _a.ctx,
9489    $axios = _a.$axios;
9490  return __awaiter(void 0, void 0, void 0, function () {
9491    function renameCategoriesFields(catearr) {
9492      function func(arr) {
9493        if (!arr || arr.length <= 0 || !(arr instanceof Array)) return [];
9494        return arr.map(function (_) {
9495          var id = _.dspId,
9496            nameEn = _.nameEn,
9497            nameVal = _.nameVal,
9498            _a = _.nextLevel,
9499            children = _a === void 0 ? [] : _a;
9500          var item = {
9501            id: id,
9502            nameEn: nameEn,
9503            nameVal: nameVal,
9504            children: children
9505          };
9506          if (children && children.length > 0) {
9507            return __assign(__assign({}, item), {
9508              children: func(children)
9509            });
9510          }
9511          return __assign(__assign({}, item), {
9512            children: []
9513          });
9514        }).filter(function (_) {
9515          return _.nameVal;
9516        });
9517      }
9518      return func(catearr).filter(function (_) {
9519        return _.children.length > 0;
9520      });
9521    }
9522    var _b, err, res, _c, e, d, da;
9523    var _d, _e;
9524    return __generator(this, function (_f) {
9525      switch (_f.label) {
9526        case 0:
9527          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];
9528          return [4, $axios({
9529            method: 'post',
9530            url: 'product-api/baseCategory/getCategoryTree',
9531            headers: {
9532              language: Cookies.get('lng') || 'en'
9533            }
9534          })];
9535        case 1:
9536          _b = _f.sent(), err = _b[0], res = _b[1];
9537          if (err || !res) return [2, []];
9538          _c = statusCode200(res), e = _c[0], d = _c[1];
9539          if (e) return [2, []];
9540          da = renameCategoriesFields(d);
9541          return [2, da];
9542      }
9543    });
9544  });
9545};
9546var getShippingCartNum = function getShippingCartNum($axios) {
9547  return __awaiter(void 0, void 0, void 0, function () {
9548    var _a, err, res, _b, e, d;
9549    return __generator(this, function (_c) {
9550      switch (_c.label) {
9551        case 0:
9552          return [4, $axios({
9553            method: 'post',
9554            url: 'cjorder-web/directOrder/getCartProductCount',
9555            data: {}
9556          })];
9557        case 1:
9558          _a = _c.sent(), err = _a[0], res = _a[1];
9559          if (err) return [2, 0];
9560          _b = statusCode200(res), e = _b[0], d = _b[1];
9561          if (e) return [2, 0];
9562          return [2, d.cartProductCount];
9563      }
9564    });
9565  });
9566};
9567var getAuthorizeShowList = function getAuthorizeShowList($axios) {
9568  return __awaiter(void 0, void 0, void 0, function () {
9569    var requestPlatformShow, PlatformShowStatus, userPlatformShow, checkPlatformExpire, platformShowStatus, result, _a;
9570    return __generator(this, function (_b) {
9571      switch (_b.label) {
9572        case 0:
9573          requestPlatformShow = function requestPlatformShow() {
9574            return __awaiter(void 0, void 0, void 0, function () {
9575              var _a, err, res, _b, e, d;
9576              return __generator(this, function (_c) {
9577                switch (_c.label) {
9578                  case 0:
9579                    return [4, $axios({
9580                      method: 'post',
9581                      url: 'cj-platform-web/shop/queryPlatformAuthor',
9582                      data: {
9583                        deviceType: 'PC'
9584                      }
9585                    })];
9586                  case 1:
9587                    _a = _c.sent(), err = _a[0], res = _a[1];
9588                    if (err) return [2, []];
9589                    _b = (0,_common__WEBPACK_IMPORTED_MODULE_0__/* .statusCode200 */ .GA)(res), e = _b[0], d = _b[1];
9590                    if (e) return [2, []];
9591                    return [2, d];
9592                }
9593              });
9594            });
9595          };
9596          if (!!_common__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) return [3, 2];
9597          return [4, requestPlatformShow()];
9598        case 1:
9599          return [2, _b.sent()];
9600        case 2:
9601          (function (PlatformShowStatus) {
9602            PlatformShowStatus[PlatformShowStatus["Expire"] = -1] = "Expire";
9603            PlatformShowStatus[PlatformShowStatus["None"] = 0] = "None";
9604            PlatformShowStatus[PlatformShowStatus["Valid"] = 1] = "Valid";
9605          })(PlatformShowStatus || (PlatformShowStatus = {}));
9606          userPlatformShow = new _common_platform_show__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay();
9607          checkPlatformExpire = function checkPlatformExpire() {
9608            var platformShow = userPlatformShow.get();
9609            if (platformShow) {
9610              var nowDate = new Date().getTime();
9611              if (nowDate > platformShow.expire) {
9612                userPlatformShow.del();
9613                return PlatformShowStatus.Expire;
9614              }
9615              return PlatformShowStatus.Valid;
9616            }
9617            return PlatformShowStatus.None;
9618          };
9619          platformShowStatus = checkPlatformExpire();
9620          result = [];
9621          _a = platformShowStatus;
9622          switch (_a) {
9623            case PlatformShowStatus.Valid:
9624              return [3, 3];
9625          }
9626          return [3, 4];
9627        case 3:
9628          result = userPlatformShow.get().value;
9629          return [3, 6];
9630        case 4:
9631          return [4, requestPlatformShow()];
9632        case 5:
9633          result = _b.sent();
9634          userPlatformShow.save(result);
9635          return [3, 6];
9636        case 6:
9637          return [2, result];
9638      }
9639    });
9640  });
9641};
9642var getSearchKeys = function getSearchKeys($axios, params, callback) {
9643  $axios({
9644    method: 'get',
9645    url: 'elastic-api/product/v1/searchSuggester',
9646    params: __assign({}, params)
9647  }).then(function (_a) {
9648    var err = _a[0],
9649      res = _a[1];
9650    if (err) return callback === null || callback === void 0 ? void 0 : callback([]);
9651    var _b = (0,_common__WEBPACK_IMPORTED_MODULE_0__/* .statusCode200 */ .GA)(res),
9652      e = _b[0],
9653      d = _b[1];
9654    if (e) return callback === null || callback === void 0 ? void 0 : callback([]);
9655    return callback === null || callback === void 0 ? void 0 : callback((d === null || d === void 0 ? void 0 : d.suggesterList) || []);
9656  });
9657};
9658var debounceGetSearchKeys = (0,_common__WEBPACK_IMPORTED_MODULE_0__/* .debounce */ .sg)(getSearchKeys, 1000);
9659var getRate = function getRate($axios, currencyCode) {
9660  return __awaiter(void 0, void 0, void 0, function () {
9661    var _params, _a, err, res, _b, e, d;
9662    return __generator(this, function (_c) {
9663      switch (_c.label) {
9664        case 0:
9665          if (!currencyCode) return [2, false];
9666          _params = {
9667            toCurrency: currencyCode
9668          };
9669          return [4, $axios({
9670            method: 'post',
9671            url: 'payment-center-web/paySupport/usdRateExchange',
9672            data: _params
9673          })];
9674        case 1:
9675          _a = _c.sent(), err = _a[0], res = _a[1];
9676          if (err) return [2, 0];
9677          _b = statusCode200(res), e = _b[0], d = _b[1];
9678          if (e) return [2, 0];
9679          return [2, d];
9680      }
9681    });
9682  });
9683};
9684var getLogisticsEnquiryWeight = function getLogisticsEnquiryWeight($axios) {
9685  return __awaiter(void 0, void 0, void 0, function () {
9686    var _a, err, res, _b, e, d;
9687    return __generator(this, function (_c) {
9688      switch (_c.label) {
9689        case 0:
9690          return [4, $axios({
9691            method: 'get',
9692            url: 'cjorder-web/directOrder/getWholesaleOrderLogisticsEnquiryWeight'
9693          })];
9694        case 1:
9695          _a = _c.sent(), err = _a[0], res = _a[1];
9696          if (err) return [2, 0];
9697          _b = statusCode200(res), e = _b[0], d = _b[1];
9698          if (e) return [2, 0];
9699          return [2, d];
9700      }
9701    });
9702  });
9703};
9704var getAppStoreList = function getAppStoreList($axios) {
9705  return __awaiter(void 0, void 0, void 0, function () {
9706    var requestAppStoreList, AppStoreStatus, userAddStore, checkPlatformExpire, platformShowStatus, result, _a, newResult;
9707    var _b;
9708    return __generator(this, function (_c) {
9709      switch (_c.label) {
9710        case 0:
9711          requestAppStoreList = function requestAppStoreList() {
9712            return __awaiter(void 0, void 0, void 0, function () {
9713              var _a, err, res, _b, e, d;
9714              return __generator(this, function (_c) {
9715                switch (_c.label) {
9716                  case 0:
9717                    return [4, $axios({
9718                      method: 'post',
9719                      url: 'userCenterForeignWeb/userApp/list',
9720                      data: {
9721                        deviceType: 'PC',
9722                        affiliateId: js_cookie__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A.get('invite-token')
9723                      }
9724                    })];
9725                  case 1:
9726                    _a = _c.sent(), err = _a[0], res = _a[1];
9727                    if (err) return [2, []];
9728                    _b = (0,_common__WEBPACK_IMPORTED_MODULE_0__/* .statusCode200 */ .GA)(res), e = _b[0], d = _b[1];
9729                    if (e) return [2, []];
9730                    return [2, d];
9731                }
9732              });
9733            });
9734          };
9735          if (!!_common__WEBPACK_IMPORTED_MODULE_0__/* .isBrowser */ .Bd) return [3, 2];
9736          return [4, requestAppStoreList()];
9737        case 1:
9738          return [2, _c.sent()];
9739        case 2:
9740          (function (AppStoreStatus) {
9741            AppStoreStatus[AppStoreStatus["Expire"] = -1] = "Expire";
9742            AppStoreStatus[AppStoreStatus["None"] = 0] = "None";
9743            AppStoreStatus[AppStoreStatus["Valid"] = 1] = "Valid";
9744          })(AppStoreStatus || (AppStoreStatus = {}));
9745          userAddStore = new _common_add_store__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A();
9746          checkPlatformExpire = function checkPlatformExpire() {
9747            var addStoreList = userAddStore.get();
9748            if (addStoreList) {
9749              var nowDate = new Date().getTime();
9750              if (nowDate > addStoreList.expire) {
9751                userAddStore.del();
9752                return AppStoreStatus.Expire;
9753              }
9754              return AppStoreStatus.Valid;
9755            }
9756            return AppStoreStatus.None;
9757          };
9758          platformShowStatus = checkPlatformExpire();
9759          result = [];
9760          _a = platformShowStatus;
9761          switch (_a) {
9762            case AppStoreStatus.Valid:
9763              return [3, 3];
9764          }
9765          return [3, 4];
9766        case 3:
9767          result = (_b = userAddStore.get().value) === null || _b === void 0 ? void 0 : _b.platforms;
9768          return [3, 6];
9769        case 4:
9770          return [4, requestAppStoreList()];
9771        case 5:
9772          newResult = _c.sent();
9773          result = (newResult === null || newResult === void 0 ? void 0 : newResult.platforms) || [];
9774          userAddStore.save(newResult);
9775          return [3, 6];
9776        case 6:
9777          return [2, result];
9778      }
9779    });
9780  });
9781};
9782
9783/***/ }),
9784
9785/***/ 62945:
9786/***/ ((module) => {
9787
9788/** Used to match a single whitespace character. */
9789var reWhitespace = /\s/;
9790
9791/**
9792 * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace
9793 * character of `string`.
9794 *
9795 * @private
9796 * @param {string} string The string to inspect.
9797 * @returns {number} Returns the index of the last non-whitespace character.
9798 */
9799function trimmedEndIndex(string) {
9800  var index = string.length;
9801
9802  while (index-- && reWhitespace.test(string.charAt(index))) {}
9803  return index;
9804}
9805
9806module.exports = trimmedEndIndex;
9807
9808
9809/***/ }),
9810
9811/***/ 63301:
9812/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9813
9814"use strict";
9815/* harmony export */ __webpack_require__.d(__webpack_exports__, {
9816/* harmony export */   A: () => (/* binding */ useIsVP)
9817/* harmony export */ });
9818function useIsVP(server_siteCheck) {
9819  var _a, _b;
9820  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;
9821  return ((_b = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _b === void 0 ? void 0 : _b.isShow('global-vp')) === false;
9822}
9823
9824/***/ }),
9825
9826/***/ 64948:
9827/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9828
9829"use strict";
9830/* unused harmony export default */
9831/* harmony import */ var _useEvent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9449);
9832/* harmony import */ var _useLayoutEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(84238);
9833/* harmony import */ var _useState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(39348);
9834
9835
9836
9837
9838/** We only think `undefined` is empty */
9839function hasValue(value) {
9840  return value !== undefined;
9841}
9842
9843/**
9844 * Similar to `useState` but will use props value if provided.
9845 * Note that internal use rc-util `useState` hook.
9846 */
9847function useMergedState(defaultStateValue, option) {
9848  var _ref = option || {},
9849    defaultValue = _ref.defaultValue,
9850    value = _ref.value,
9851    onChange = _ref.onChange,
9852    postState = _ref.postState;
9853
9854  // ======================= Init =======================
9855  var _useState = useState(function () {
9856      if (hasValue(value)) {
9857        return value;
9858      } else if (hasValue(defaultValue)) {
9859        return typeof defaultValue === 'function' ? defaultValue() : defaultValue;
9860      } else {
9861        return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;
9862      }
9863    }),
9864    _useState2 = _slicedToArray(_useState, 2),
9865    innerValue = _useState2[0],
9866    setInnerValue = _useState2[1];
9867  var mergedValue = value !== undefined ? value : innerValue;
9868  var postMergedValue = postState ? postState(mergedValue) : mergedValue;
9869
9870  // ====================== Change ======================
9871  var onChangeFn = useEvent(onChange);
9872  var _useState3 = useState([mergedValue]),
9873    _useState4 = _slicedToArray(_useState3, 2),
9874    prevValue = _useState4[0],
9875    setPrevValue = _useState4[1];
9876  useLayoutUpdateEffect(function () {
9877    var prev = prevValue[0];
9878    if (innerValue !== prev) {
9879      onChangeFn(innerValue, prev);
9880    }
9881  }, [prevValue]);
9882
9883  // Sync value back to `undefined` when it from control to un-control
9884  useLayoutUpdateEffect(function () {
9885    if (!hasValue(value)) {
9886      setInnerValue(value);
9887    }
9888  }, [value]);
9889
9890  // ====================== Update ======================
9891  var triggerChange = useEvent(function (updater, ignoreDestroy) {
9892    setInnerValue(updater, ignoreDestroy);
9893    setPrevValue([mergedValue], ignoreDestroy);
9894  });
9895  return [postMergedValue, triggerChange];
9896}
9897
9898/***/ }),
9899
9900/***/ 65555:
9901/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9902
9903"use strict";
9904/* harmony export */ __webpack_require__.d(__webpack_exports__, {
9905/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
9906/* harmony export */ });
9907// extracted by mini-css-extract-plugin
9908/* 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 9908-10144
9908noAvatar":"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"});
9909
9910/***/ }),
9911
9912/***/ 65650:
9913/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
9914
9915var root = __webpack_require__(78942);
9916
9917/** Built-in value references. */
9918var Symbol = root.Symbol;
9919
9920module.exports = Symbol;
9921
9922
9923/***/ }),
9924
9925/***/ 65856:
9926/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9927
9928"use strict";
9929/* harmony export */ __webpack_require__.d(__webpack_exports__, {
9930/* harmony export */   BD: () => (/* binding */ updateCSS),
9931/* harmony export */   m6: () => (/* binding */ removeCSS)
9932/* harmony export */ });
9933/* unused harmony exports injectCSS, clearContainerCache */
9934/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69740);
9935/* harmony import */ var _canUseDom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(47169);
9936/* harmony import */ var _contains__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(80129);
9937
9938
9939
9940var APPEND_ORDER = 'data-rc-order';
9941var APPEND_PRIORITY = 'data-rc-priority';
9942var MARK_KEY = "rc-util-key";
9943var containerCache = new Map();
9944function getMark() {
9945  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
9946    mark = _ref.mark;
9947  if (mark) {
9948    return mark.startsWith('data-') ? mark : "data-".concat(mark);
9949  }
9950  return MARK_KEY;
9951}
9952function getContainer(option) {
9953  if (option.attachTo) {
9954    return option.attachTo;
9955  }
9956  var head = document.querySelector('head');
9957  return head || document.body;
9958}
9959function getOrder(prepend) {
9960  if (prepend === 'queue') {
9961    return 'prependQueue';
9962  }
9963  return prepend ? 'prepend' : 'append';
9964}
9965
9966/**
9967 * Find style which inject by rc-util
9968 */
9969function findStyles(container) {
9970  return Array.from((containerCache.get(container) || container).children).filter(function (node) {
9971    return node.tagName === 'STYLE';
9972  });
9973}
9974function injectCSS(css) {
9975  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
9976  if (!(0,_canUseDom__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)()) {
9977    return null;
9978  }
9979  var csp = option.csp,
9980    prepend = option.prepend,
9981    _option$priority = option.priority,
9982    priority = _option$priority === void 0 ? 0 : _option$priority;
9983  var mergedOrder = getOrder(prepend);
9984  var isPrependQueue = mergedOrder === 'prependQueue';
9985  var styleNode = document.createElement('style');
9986  styleNode.setAttribute(APPEND_ORDER, mergedOrder);
9987  if (isPrependQueue && priority) {
9988    styleNode.setAttribute(APPEND_PRIORITY, "".concat(priority));
9989  }
9990  if (csp !== null && csp !== void 0 && csp.nonce) {
9991    styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;
9992  }
9993  styleNode.innerHTML = css;
9994  var container = getContainer(option);
9995  var firstChild = container.firstChild;
9996  if (prepend) {
9997    // If is queue `prepend`, it will prepend first style and then append rest style
9998    if (isPrependQueue) {
9999      var existStyle = (option.styles || findStyles(container)).filter(function (node) {
10000        // Ignore style which not injected by rc-util with prepend
10001        if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {
10002          return false;
10003        }
10004
10005        // Ignore style which priority less then new style
10006        var nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);
10007        return priority >= nodePriority;
10008      });
10009      if (existStyle.length) {
10010        container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);
10011        return styleNode;
10012      }
10013    }
10014
10015    // Use `insertBefore` as `prepend`
10016    container.insertBefore(styleNode, firstChild);
10017  } else {
10018    container.appendChild(styleNode);
10019  }
10020  return styleNode;
10021}
10022function findExistNode(key) {
10023  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
10024  var container = getContainer(option);
10025  return (option.styles || findStyles(container)).find(function (node) {
10026    return node.getAttribute(getMark(option)) === key;
10027  });
10028}
10029function removeCSS(key) {
10030  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
10031  var existNode = findExistNode(key, option);
10032  if (existNode) {
10033    var container = getContainer(option);
10034    container.removeChild(existNode);
10035  }
10036}
10037
10038/**
10039 * qiankun will inject `appendChild` to insert into other
10040 */
10041function syncRealContainer(container, option) {
10042  var cachedRealContainer = containerCache.get(container);
10043
10044  // Find real container when not cached or cached container removed
10045  if (!cachedRealContainer || !(0,_contains__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(document, cachedRealContainer)) {
10046    var placeholderStyle = injectCSS('', option);
10047    var parentNode = placeholderStyle.parentNode;
10048    containerCache.set(container, parentNode);
10049    container.removeChild(placeholderStyle);
10050  }
10051}
10052
10053/**
10054 * manually clear container cache to avoid global cache in unit testes
10055 */
10056function clearContainerCache() {
10057  containerCache.clear();
10058}
10059function updateCSS(css, key) {
10060  var originOption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
10061  var container = getContainer(originOption);
10062  var styles = findStyles(container);
10063  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), {}, {
10064    styles: styles
10065  });
10066
10067  // Sync real parent
10068  syncRealContainer(container, option);
10069  var existNode = findExistNode(key, option);
10070  if (existNode) {
10071    var _option$csp, _option$csp2;
10072    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)) {
10073      var _option$csp3;
10074      existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;
10075    }
10076    if (existNode.innerHTML !== css) {
10077      existNode.innerHTML = css;
10078    }
10079    return existNode;
10080  }
10081  var newNode = injectCSS(css, option);
10082  newNode.setAttribute(getMark(option), key);
10083  return newNode;
10084}
10085
10086/***/ }),
10087
10088/***/ 66318:
10089/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10090
10091"use strict";
10092/* harmony export */ __webpack_require__.d(__webpack_exports__, {
10093/* harmony export */   A: () => (/* binding */ useWatch)
10094/* harmony export */ });
10095/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75153);
10096/* harmony import */ var rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84238);
10097/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(61225);
10098
10099
10100
10101function useWatch(open, target, popup, onAlign, onScroll) {
10102  (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(function () {
10103    if (open && target && popup) {
10104      var targetElement = target;
10105      var popupElement = popup;
10106      var targetScrollList = (0,_util__WEBPACK_IMPORTED_MODULE_2__/* .collectScroller */ .TK)(targetElement);
10107      var popupScrollList = (0,_util__WEBPACK_IMPORTED_MODULE_2__/* .collectScroller */ .TK)(popupElement);
10108      var win = (0,_util__WEBPACK_IMPORTED_MODULE_2__/* .getWin */ .D)(popupElement);
10109      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)));
10110      function notifyScroll() {
10111        onAlign();
10112        onScroll();
10113      }
10114      mergedList.forEach(function (scroller) {
10115        scroller.addEventListener('scroll', notifyScroll, {
10116          passive: true
10117        });
10118      });
10119      win.addEventListener('resize', notifyScroll, {
10120        passive: true
10121      });
10122
10123      // First time always do align
10124      onAlign();
10125      return function () {
10126        mergedList.forEach(function (scroller) {
10127          scroller.removeEventListener('scroll', notifyScroll);
10128          win.removeEventListener('resize', notifyScroll);
10129        });
10130      };
10131    }
10132  }, [open, target, popup]);
10133}
10134
10135/***/ }),
10136
10137/***/ 67399:
10138/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
10139
10140"use strict";
10141/* harmony export */ __webpack_require__.d(__webpack_exports__, {
10142/* harmony export */   Ay: () => (/* binding */ na)
10143/* harmony export */ });
10144/* unused harmony exports errorCodes, get, isValid, parse */
vendor: 188,960 bytes, lines 10145-20145
10145function U(e) {
10146  return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
10147}
10148var C, F;
10149function $() {
10150  if (F) return C;
10151  F = 1;
10152  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 = {
10153    overflow: "Overflow: input needs wider integers to process",
10154    "not-basic": "Illegal input >= 0x80 (not a basic code point)",
10155    "invalid-input": "Invalid input"
10156  }, _ = s - c, h = Math.floor, I = String.fromCharCode;
10157  function v(a) {
10158    throw new RangeError(P[a]);
10159  }
10160  function V(a, i) {
10161    const m = [];
10162    let n = a.length;
10163    for (; n--; )
10164      m[n] = i(a[n]);
10165    return m;
10166  }
10167  function L(a, i) {
10168    const m = a.split("@");
10169    let n = "";
10170    m.length > 1 && (n = m[0] + "@", a = m[1]), a = a.replace(R, ".");
10171    const r = a.split("."), p = V(r, i).join(".");
10172    return n + p;
10173  }
10174  function S(a) {
10175    const i = [];
10176    let m = 0;
10177    const n = a.length;
10178    for (; m < n; ) {
10179      const r = a.charCodeAt(m++);
10180      if (r >= 55296 && r <= 56319 && m < n) {
10181        const p = a.charCodeAt(m++);
10182        (p & 64512) == 56320 ? i.push(((r & 1023) << 10) + (p & 1023) + 65536) : (i.push(r), m--);
10183      } else
10184        i.push(r);
10185    }
10186    return i;
10187  }
10188  const G = (a) => String.fromCodePoint(...a), W = function(a) {
10189    return a >= 48 && a < 58 ? 26 + (a - 48) : a >= 65 && a < 91 ? a - 65 : a >= 97 && a < 123 ? a - 97 : s;
10190  }, D = function(a, i) {
10191    return a + 22 + 75 * (a < 26) - ((i != 0) << 5);
10192  }, T = function(a, i, m) {
10193    let n = 0;
10194    for (a = m ? h(a / d) : a >> 1, a += h(a / i); a > _ * o >> 1; n += s)
10195      a = h(a / _);
10196    return h(n + (_ + 1) * a / (a + t));
10197  }, E = function(a) {
10198    const i = [], m = a.length;
10199    let n = 0, r = y, p = z, j = a.lastIndexOf(g);
10200    j < 0 && (j = 0);
10201    for (let u = 0; u < j; ++u)
10202      a.charCodeAt(u) >= 128 && v("not-basic"), i.push(a.charCodeAt(u));
10203    for (let u = j > 0 ? j + 1 : 0; u < m; ) {
10204      const k = n;
10205      for (let l = 1, b = s; ; b += s) {
10206        u >= m && v("invalid-input");
10207        const w = W(a.charCodeAt(u++));
10208        w >= s && v("invalid-input"), w > h((e - n) / l) && v("overflow"), n += w * l;
10209        const x = b <= p ? c : b >= p + o ? o : b - p;
10210        if (w < x)
10211          break;
10212        const q = s - x;
10213        l > h(e / q) && v("overflow"), l *= q;
10214      }
10215      const f = i.length + 1;
10216      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);
10217    }
10218    return String.fromCodePoint(...i);
10219  }, B = function(a) {
10220    const i = [];
10221    a = S(a);
10222    const m = a.length;
10223    let n = y, r = 0, p = z;
10224    for (const k of a)
10225      k < 128 && i.push(I(k));
10226    const j = i.length;
10227    let u = j;
10228    for (j && i.push(g); u < m; ) {
10229      let k = e;
10230      for (const l of a)
10231        l >= n && l < k && (k = l);
10232      const f = u + 1;
10233      k - n > h((e - r) / f) && v("overflow"), r += (k - n) * f, n = k;
10234      for (const l of a)
10235        if (l < n && ++r > e && v("overflow"), l === n) {
10236          let b = r;
10237          for (let w = s; ; w += s) {
10238            const x = w <= p ? c : w >= p + o ? o : w - p;
10239            if (b < x)
10240              break;
10241            const q = b - x, M = s - x;
10242            i.push(
10243              I(D(x + q % M, 0))
10244            ), b = h(q / M);
10245          }
10246          i.push(I(D(b, 0))), p = T(r, f, u === j), r = 0, ++u;
10247        }
10248      ++r, ++n;
10249    }
10250    return i.join("");
10251  };
10252  return C = {
10253    /**
10254     * A string representing the current Punycode.js version number.
10255     * @memberOf punycode
10256     * @type String
10257     */
10258    version: "2.3.1",
10259    /**
10260     * An object of methods to convert from JavaScript's internal character
10261     * representation (UCS-2) to Unicode code points, and back.
10262     * @see <https://mathiasbynens.be/notes/javascript-encoding>
10263     * @memberOf punycode
10264     * @type Object
10265     */
10266    ucs2: {
10267      decode: S,
10268      encode: G
10269    },
10270    decode: E,
10271    encode: B,
10272    toASCII: function(a) {
10273      return L(a, function(i) {
10274        return N.test(i) ? "xn--" + B(i) : i;
10275      });
10276    },
10277    toUnicode: function(a) {
10278      return L(a, function(i) {
10279        return H.test(i) ? E(i.slice(4).toLowerCase()) : i;
10280      });
10281    }
10282  }, C;
10283}
10284var J = $();
10285const A = /* @__PURE__ */ U(J), K = [
10286  "ac",
10287  "com.ac",
10288  "edu.ac",
10289  "gov.ac",
10290  "mil.ac",
10291  "net.ac",
10292  "org.ac",
10293  "ad",
10294  "ae",
10295  "ac.ae",
10296  "co.ae",
10297  "gov.ae",
10298  "mil.ae",
10299  "net.ae",
10300  "org.ae",
10301  "sch.ae",
10302  "aero",
10303  "airline.aero",
10304  "airport.aero",
10305  "accident-investigation.aero",
10306  "accident-prevention.aero",
10307  "aerobatic.aero",
10308  "aeroclub.aero",
10309  "aerodrome.aero",
10310  "agents.aero",
10311  "air-surveillance.aero",
10312  "air-traffic-control.aero",
10313  "aircraft.aero",
10314  "airtraffic.aero",
10315  "ambulance.aero",
10316  "association.aero",
10317  "author.aero",
10318  "ballooning.aero",
10319  "broker.aero",
10320  "caa.aero",
10321  "cargo.aero",
10322  "catering.aero",
10323  "certification.aero",
10324  "championship.aero",
10325  "charter.aero",
10326  "civilaviation.aero",
10327  "club.aero",
10328  "conference.aero",
10329  "consultant.aero",
10330  "consulting.aero",
10331  "control.aero",
10332  "council.aero",
10333  "crew.aero",
10334  "design.aero",
10335  "dgca.aero",
10336  "educator.aero",
10337  "emergency.aero",
10338  "engine.aero",
10339  "engineer.aero",
10340  "entertainment.aero",
10341  "equipment.aero",
10342  "exchange.aero",
10343  "express.aero",
10344  "federation.aero",
10345  "flight.aero",
10346  "freight.aero",
10347  "fuel.aero",
10348  "gliding.aero",
10349  "government.aero",
10350  "groundhandling.aero",
10351  "group.aero",
10352  "hanggliding.aero",
10353  "homebuilt.aero",
10354  "insurance.aero",
10355  "journal.aero",
10356  "journalist.aero",
10357  "leasing.aero",
10358  "logistics.aero",
10359  "magazine.aero",
10360  "maintenance.aero",
10361  "marketplace.aero",
10362  "media.aero",
10363  "microlight.aero",
10364  "modelling.aero",
10365  "navigation.aero",
10366  "parachuting.aero",
10367  "paragliding.aero",
10368  "passenger-association.aero",
10369  "pilot.aero",
10370  "press.aero",
10371  "production.aero",
10372  "recreation.aero",
10373  "repbody.aero",
10374  "res.aero",
10375  "research.aero",
10376  "rotorcraft.aero",
10377  "safety.aero",
10378  "scientist.aero",
10379  "services.aero",
10380  "show.aero",
10381  "skydiving.aero",
10382  "software.aero",
10383  "student.aero",
10384  "taxi.aero",
10385  "trader.aero",
10386  "trading.aero",
10387  "trainer.aero",
10388  "union.aero",
10389  "workinggroup.aero",
10390  "works.aero",
10391  "af",
10392  "com.af",
10393  "edu.af",
10394  "gov.af",
10395  "net.af",
10396  "org.af",
10397  "ag",
10398  "co.ag",
10399  "com.ag",
10400  "net.ag",
10401  "nom.ag",
10402  "org.ag",
10403  "ai",
10404  "com.ai",
10405  "net.ai",
10406  "off.ai",
10407  "org.ai",
10408  "al",
10409  "com.al",
10410  "edu.al",
10411  "gov.al",
10412  "mil.al",
10413  "net.al",
10414  "org.al",
10415  "am",
10416  "co.am",
10417  "com.am",
10418  "commune.am",
10419  "net.am",
10420  "org.am",
10421  "ao",
10422  "co.ao",
10423  "ed.ao",
10424  "edu.ao",
10425  "gov.ao",
10426  "gv.ao",
10427  "it.ao",
10428  "og.ao",
10429  "org.ao",
10430  "pb.ao",
10431  "aq",
10432  "ar",
10433  "bet.ar",
10434  "com.ar",
10435  "coop.ar",
10436  "edu.ar",
10437  "gob.ar",
10438  "gov.ar",
10439  "int.ar",
10440  "mil.ar",
10441  "musica.ar",
10442  "mutual.ar",
10443  "net.ar",
10444  "org.ar",
10445  "senasa.ar",
10446  "tur.ar",
10447  "arpa",
10448  "e164.arpa",
10449  "home.arpa",
10450  "in-addr.arpa",
10451  "ip6.arpa",
10452  "iris.arpa",
10453  "uri.arpa",
10454  "urn.arpa",
10455  "as",
10456  "gov.as",
10457  "asia",
10458  "at",
10459  "ac.at",
10460  "sth.ac.at",
10461  "co.at",
10462  "gv.at",
10463  "or.at",
10464  "au",
10465  "asn.au",
10466  "com.au",
10467  "edu.au",
10468  "gov.au",
10469  "id.au",
10470  "net.au",
10471  "org.au",
10472  "conf.au",
10473  "oz.au",
10474  "act.au",
10475  "nsw.au",
10476  "nt.au",
10477  "qld.au",
10478  "sa.au",
10479  "tas.au",
10480  "vic.au",
10481  "wa.au",
10482  "act.edu.au",
10483  "catholic.edu.au",
10484  "nsw.edu.au",
10485  "nt.edu.au",
10486  "qld.edu.au",
10487  "sa.edu.au",
10488  "tas.edu.au",
10489  "vic.edu.au",
10490  "wa.edu.au",
10491  "qld.gov.au",
10492  "sa.gov.au",
10493  "tas.gov.au",
10494  "vic.gov.au",
10495  "wa.gov.au",
10496  "schools.nsw.edu.au",
10497  "aw",
10498  "com.aw",
10499  "ax",
10500  "az",
10501  "biz.az",
10502  "com.az",
10503  "edu.az",
10504  "gov.az",
10505  "info.az",
10506  "int.az",
10507  "mil.az",
10508  "name.az",
10509  "net.az",
10510  "org.az",
10511  "pp.az",
10512  "pro.az",
10513  "ba",
10514  "com.ba",
10515  "edu.ba",
10516  "gov.ba",
10517  "mil.ba",
10518  "net.ba",
10519  "org.ba",
10520  "bb",
10521  "biz.bb",
10522  "co.bb",
10523  "com.bb",
10524  "edu.bb",
10525  "gov.bb",
10526  "info.bb",
10527  "net.bb",
10528  "org.bb",
10529  "store.bb",
10530  "tv.bb",
10531  "*.bd",
10532  "be",
10533  "ac.be",
10534  "bf",
10535  "gov.bf",
10536  "bg",
10537  "0.bg",
10538  "1.bg",
10539  "2.bg",
10540  "3.bg",
10541  "4.bg",
10542  "5.bg",
10543  "6.bg",
10544  "7.bg",
10545  "8.bg",
10546  "9.bg",
10547  "a.bg",
10548  "b.bg",
10549  "c.bg",
10550  "d.bg",
10551  "e.bg",
10552  "f.bg",
10553  "g.bg",
10554  "h.bg",
10555  "i.bg",
10556  "j.bg",
10557  "k.bg",
10558  "l.bg",
10559  "m.bg",
10560  "n.bg",
10561  "o.bg",
10562  "p.bg",
10563  "q.bg",
10564  "r.bg",
10565  "s.bg",
10566  "t.bg",
10567  "u.bg",
10568  "v.bg",
10569  "w.bg",
10570  "x.bg",
10571  "y.bg",
10572  "z.bg",
10573  "bh",
10574  "com.bh",
10575  "edu.bh",
10576  "gov.bh",
10577  "net.bh",
10578  "org.bh",
10579  "bi",
10580  "co.bi",
10581  "com.bi",
10582  "edu.bi",
10583  "or.bi",
10584  "org.bi",
10585  "biz",
10586  "bj",
10587  "africa.bj",
10588  "agro.bj",
10589  "architectes.bj",
10590  "assur.bj",
10591  "avocats.bj",
10592  "co.bj",
10593  "com.bj",
10594  "eco.bj",
10595  "econo.bj",
10596  "edu.bj",
10597  "info.bj",
10598  "loisirs.bj",
10599  "money.bj",
10600  "net.bj",
10601  "org.bj",
10602  "ote.bj",
10603  "restaurant.bj",
10604  "resto.bj",
10605  "tourism.bj",
10606  "univ.bj",
10607  "bm",
10608  "com.bm",
10609  "edu.bm",
10610  "gov.bm",
10611  "net.bm",
10612  "org.bm",
10613  "bn",
10614  "com.bn",
10615  "edu.bn",
10616  "gov.bn",
10617  "net.bn",
10618  "org.bn",
10619  "bo",
10620  "com.bo",
10621  "edu.bo",
10622  "gob.bo",
10623  "int.bo",
10624  "mil.bo",
10625  "net.bo",
10626  "org.bo",
10627  "tv.bo",
10628  "web.bo",
10629  "academia.bo",
10630  "agro.bo",
10631  "arte.bo",
10632  "blog.bo",
10633  "bolivia.bo",
10634  "ciencia.bo",
10635  "cooperativa.bo",
10636  "democracia.bo",
10637  "deporte.bo",
10638  "ecologia.bo",
10639  "economia.bo",
10640  "empresa.bo",
10641  "indigena.bo",
10642  "industria.bo",
10643  "info.bo",
10644  "medicina.bo",
10645  "movimiento.bo",
10646  "musica.bo",
10647  "natural.bo",
10648  "nombre.bo",
10649  "noticias.bo",
10650  "patria.bo",
10651  "plurinacional.bo",
10652  "politica.bo",
10653  "profesional.bo",
10654  "pueblo.bo",
10655  "revista.bo",
10656  "salud.bo",
10657  "tecnologia.bo",
10658  "tksat.bo",
10659  "transporte.bo",
10660  "wiki.bo",
10661  "br",
10662  "9guacu.br",
10663  "abc.br",
10664  "adm.br",
10665  "adv.br",
10666  "agr.br",
10667  "aju.br",
10668  "am.br",
10669  "anani.br",
10670  "aparecida.br",
10671  "app.br",
10672  "arq.br",
10673  "art.br",
10674  "ato.br",
10675  "b.br",
10676  "barueri.br",
10677  "belem.br",
10678  "bet.br",
10679  "bhz.br",
10680  "bib.br",
10681  "bio.br",
10682  "blog.br",
10683  "bmd.br",
10684  "boavista.br",
10685  "bsb.br",
10686  "campinagrande.br",
10687  "campinas.br",
10688  "caxias.br",
10689  "cim.br",
10690  "cng.br",
10691  "cnt.br",
10692  "com.br",
10693  "contagem.br",
10694  "coop.br",
10695  "coz.br",
10696  "cri.br",
10697  "cuiaba.br",
10698  "curitiba.br",
10699  "def.br",
10700  "des.br",
10701  "det.br",
10702  "dev.br",
10703  "ecn.br",
10704  "eco.br",
10705  "edu.br",
10706  "emp.br",
10707  "enf.br",
10708  "eng.br",
10709  "esp.br",
10710  "etc.br",
10711  "eti.br",
10712  "far.br",
10713  "feira.br",
10714  "flog.br",
10715  "floripa.br",
10716  "fm.br",
10717  "fnd.br",
10718  "fortal.br",
10719  "fot.br",
10720  "foz.br",
10721  "fst.br",
10722  "g12.br",
10723  "geo.br",
10724  "ggf.br",
10725  "goiania.br",
10726  "gov.br",
10727  "ac.gov.br",
10728  "al.gov.br",
10729  "am.gov.br",
10730  "ap.gov.br",
10731  "ba.gov.br",
10732  "ce.gov.br",
10733  "df.gov.br",
10734  "es.gov.br",
10735  "go.gov.br",
10736  "ma.gov.br",
10737  "mg.gov.br",
10738  "ms.gov.br",
10739  "mt.gov.br",
10740  "pa.gov.br",
10741  "pb.gov.br",
10742  "pe.gov.br",
10743  "pi.gov.br",
10744  "pr.gov.br",
10745  "rj.gov.br",
10746  "rn.gov.br",
10747  "ro.gov.br",
10748  "rr.gov.br",
10749  "rs.gov.br",
10750  "sc.gov.br",
10751  "se.gov.br",
10752  "sp.gov.br",
10753  "to.gov.br",
10754  "gru.br",
10755  "imb.br",
10756  "ind.br",
10757  "inf.br",
10758  "jab.br",
10759  "jampa.br",
10760  "jdf.br",
10761  "joinville.br",
10762  "jor.br",
10763  "jus.br",
10764  "leg.br",
10765  "leilao.br",
10766  "lel.br",
10767  "log.br",
10768  "londrina.br",
10769  "macapa.br",
10770  "maceio.br",
10771  "manaus.br",
10772  "maringa.br",
10773  "mat.br",
10774  "med.br",
10775  "mil.br",
10776  "morena.br",
10777  "mp.br",
10778  "mus.br",
10779  "natal.br",
10780  "net.br",
10781  "niteroi.br",
10782  "*.nom.br",
10783  "not.br",
10784  "ntr.br",
10785  "odo.br",
10786  "ong.br",
10787  "org.br",
10788  "osasco.br",
10789  "palmas.br",
10790  "poa.br",
10791  "ppg.br",
10792  "pro.br",
10793  "psc.br",
10794  "psi.br",
10795  "pvh.br",
10796  "qsl.br",
10797  "radio.br",
10798  "rec.br",
10799  "recife.br",
10800  "rep.br",
10801  "ribeirao.br",
10802  "rio.br",
10803  "riobranco.br",
10804  "riopreto.br",
10805  "salvador.br",
10806  "sampa.br",
10807  "santamaria.br",
10808  "santoandre.br",
10809  "saobernardo.br",
10810  "saogonca.br",
10811  "seg.br",
10812  "sjc.br",
10813  "slg.br",
10814  "slz.br",
10815  "sorocaba.br",
10816  "srv.br",
10817  "taxi.br",
10818  "tc.br",
10819  "tec.br",
10820  "teo.br",
10821  "the.br",
10822  "tmp.br",
10823  "trd.br",
10824  "tur.br",
10825  "tv.br",
10826  "udi.br",
10827  "vet.br",
10828  "vix.br",
10829  "vlog.br",
10830  "wiki.br",
10831  "zlg.br",
10832  "bs",
10833  "com.bs",
10834  "edu.bs",
10835  "gov.bs",
10836  "net.bs",
10837  "org.bs",
10838  "bt",
10839  "com.bt",
10840  "edu.bt",
10841  "gov.bt",
10842  "net.bt",
10843  "org.bt",
10844  "bv",
10845  "bw",
10846  "co.bw",
10847  "org.bw",
10848  "by",
10849  "gov.by",
10850  "mil.by",
10851  "com.by",
10852  "of.by",
10853  "bz",
10854  "co.bz",
10855  "com.bz",
10856  "edu.bz",
10857  "gov.bz",
10858  "net.bz",
10859  "org.bz",
10860  "ca",
10861  "ab.ca",
10862  "bc.ca",
10863  "mb.ca",
10864  "nb.ca",
10865  "nf.ca",
10866  "nl.ca",
10867  "ns.ca",
10868  "nt.ca",
10869  "nu.ca",
10870  "on.ca",
10871  "pe.ca",
10872  "qc.ca",
10873  "sk.ca",
10874  "yk.ca",
10875  "gc.ca",
10876  "cat",
10877  "cc",
10878  "cd",
10879  "gov.cd",
10880  "cf",
10881  "cg",
10882  "ch",
10883  "ci",
10884  "ac.ci",
10885  "aéroport.ci",
10886  "asso.ci",
10887  "co.ci",
10888  "com.ci",
10889  "ed.ci",
10890  "edu.ci",
10891  "go.ci",
10892  "gouv.ci",
10893  "int.ci",
10894  "net.ci",
10895  "or.ci",
10896  "org.ci",
10897  "*.ck",
10898  "!www.ck",
10899  "cl",
10900  "co.cl",
10901  "gob.cl",
10902  "gov.cl",
10903  "mil.cl",
10904  "cm",
10905  "co.cm",
10906  "com.cm",
10907  "gov.cm",
10908  "net.cm",
10909  "cn",
10910  "ac.cn",
10911  "com.cn",
10912  "edu.cn",
10913  "gov.cn",
10914  "mil.cn",
10915  "net.cn",
10916  "org.cn",
10917  "公司.cn",
10918  "網絡.cn",
10919  "网络.cn",
10920  "ah.cn",
10921  "bj.cn",
10922  "cq.cn",
10923  "fj.cn",
10924  "gd.cn",
10925  "gs.cn",
10926  "gx.cn",
10927  "gz.cn",
10928  "ha.cn",
10929  "hb.cn",
10930  "he.cn",
10931  "hi.cn",
10932  "hk.cn",
10933  "hl.cn",
10934  "hn.cn",
10935  "jl.cn",
10936  "js.cn",
10937  "jx.cn",
10938  "ln.cn",
10939  "mo.cn",
10940  "nm.cn",
10941  "nx.cn",
10942  "qh.cn",
10943  "sc.cn",
10944  "sd.cn",
10945  "sh.cn",
10946  "sn.cn",
10947  "sx.cn",
10948  "tj.cn",
10949  "tw.cn",
10950  "xj.cn",
10951  "xz.cn",
10952  "yn.cn",
10953  "zj.cn",
10954  "co",
10955  "com.co",
10956  "edu.co",
10957  "gov.co",
10958  "mil.co",
10959  "net.co",
10960  "nom.co",
10961  "org.co",
10962  "com",
10963  "coop",
10964  "cr",
10965  "ac.cr",
10966  "co.cr",
10967  "ed.cr",
10968  "fi.cr",
10969  "go.cr",
10970  "or.cr",
10971  "sa.cr",
10972  "cu",
10973  "com.cu",
10974  "edu.cu",
10975  "gob.cu",
10976  "inf.cu",
10977  "nat.cu",
10978  "net.cu",
10979  "org.cu",
10980  "cv",
10981  "com.cv",
10982  "edu.cv",
10983  "id.cv",
10984  "int.cv",
10985  "net.cv",
10986  "nome.cv",
10987  "org.cv",
10988  "publ.cv",
10989  "cw",
10990  "com.cw",
10991  "edu.cw",
10992  "net.cw",
10993  "org.cw",
10994  "cx",
10995  "gov.cx",
10996  "cy",
10997  "ac.cy",
10998  "biz.cy",
10999  "com.cy",
11000  "ekloges.cy",
11001  "gov.cy",
11002  "ltd.cy",
11003  "mil.cy",
11004  "net.cy",
11005  "org.cy",
11006  "press.cy",
11007  "pro.cy",
11008  "tm.cy",
11009  "cz",
11010  "de",
11011  "dj",
11012  "dk",
11013  "dm",
11014  "co.dm",
11015  "com.dm",
11016  "edu.dm",
11017  "gov.dm",
11018  "net.dm",
11019  "org.dm",
11020  "do",
11021  "art.do",
11022  "com.do",
11023  "edu.do",
11024  "gob.do",
11025  "gov.do",
11026  "mil.do",
11027  "net.do",
11028  "org.do",
11029  "sld.do",
11030  "web.do",
11031  "dz",
11032  "art.dz",
11033  "asso.dz",
11034  "com.dz",
11035  "edu.dz",
11036  "gov.dz",
11037  "net.dz",
11038  "org.dz",
11039  "pol.dz",
11040  "soc.dz",
11041  "tm.dz",
11042  "ec",
11043  "com.ec",
11044  "edu.ec",
11045  "fin.ec",
11046  "gob.ec",
11047  "gov.ec",
11048  "info.ec",
11049  "k12.ec",
11050  "med.ec",
11051  "mil.ec",
11052  "net.ec",
11053  "org.ec",
11054  "pro.ec",
11055  "edu",
11056  "ee",
11057  "aip.ee",
11058  "com.ee",
11059  "edu.ee",
11060  "fie.ee",
11061  "gov.ee",
11062  "lib.ee",
11063  "med.ee",
11064  "org.ee",
11065  "pri.ee",
11066  "riik.ee",
11067  "eg",
11068  "ac.eg",
11069  "com.eg",
11070  "edu.eg",
11071  "eun.eg",
11072  "gov.eg",
11073  "info.eg",
11074  "me.eg",
11075  "mil.eg",
11076  "name.eg",
11077  "net.eg",
11078  "org.eg",
11079  "sci.eg",
11080  "sport.eg",
11081  "tv.eg",
11082  "*.er",
11083  "es",
11084  "com.es",
11085  "edu.es",
11086  "gob.es",
11087  "nom.es",
11088  "org.es",
11089  "et",
11090  "biz.et",
11091  "com.et",
11092  "edu.et",
11093  "gov.et",
11094  "info.et",
11095  "name.et",
11096  "net.et",
11097  "org.et",
11098  "eu",
11099  "fi",
11100  "aland.fi",
11101  "fj",
11102  "ac.fj",
11103  "biz.fj",
11104  "com.fj",
11105  "gov.fj",
11106  "info.fj",
11107  "mil.fj",
11108  "name.fj",
11109  "net.fj",
11110  "org.fj",
11111  "pro.fj",
11112  "*.fk",
11113  "fm",
11114  "com.fm",
11115  "edu.fm",
11116  "net.fm",
11117  "org.fm",
11118  "fo",
11119  "fr",
11120  "asso.fr",
11121  "com.fr",
11122  "gouv.fr",
11123  "nom.fr",
11124  "prd.fr",
11125  "tm.fr",
11126  "avoues.fr",
11127  "cci.fr",
11128  "greta.fr",
11129  "huissier-justice.fr",
11130  "ga",
11131  "gb",
11132  "gd",
11133  "edu.gd",
11134  "gov.gd",
11135  "ge",
11136  "com.ge",
11137  "edu.ge",
11138  "gov.ge",
11139  "net.ge",
11140  "org.ge",
11141  "pvt.ge",
11142  "school.ge",
11143  "gf",
11144  "gg",
11145  "co.gg",
11146  "net.gg",
11147  "org.gg",
11148  "gh",
11149  "com.gh",
11150  "edu.gh",
11151  "gov.gh",
11152  "mil.gh",
11153  "org.gh",
11154  "gi",
11155  "com.gi",
11156  "edu.gi",
11157  "gov.gi",
11158  "ltd.gi",
11159  "mod.gi",
11160  "org.gi",
11161  "gl",
11162  "co.gl",
11163  "com.gl",
11164  "edu.gl",
11165  "net.gl",
11166  "org.gl",
11167  "gm",
11168  "gn",
11169  "ac.gn",
11170  "com.gn",
11171  "edu.gn",
11172  "gov.gn",
11173  "net.gn",
11174  "org.gn",
11175  "gov",
11176  "gp",
11177  "asso.gp",
11178  "com.gp",
11179  "edu.gp",
11180  "mobi.gp",
11181  "net.gp",
11182  "org.gp",
11183  "gq",
11184  "gr",
11185  "com.gr",
11186  "edu.gr",
11187  "gov.gr",
11188  "net.gr",
11189  "org.gr",
11190  "gs",
11191  "gt",
11192  "com.gt",
11193  "edu.gt",
11194  "gob.gt",
11195  "ind.gt",
11196  "mil.gt",
11197  "net.gt",
11198  "org.gt",
11199  "gu",
11200  "com.gu",
11201  "edu.gu",
11202  "gov.gu",
11203  "guam.gu",
11204  "info.gu",
11205  "net.gu",
11206  "org.gu",
11207  "web.gu",
11208  "gw",
11209  "gy",
11210  "co.gy",
11211  "com.gy",
11212  "edu.gy",
11213  "gov.gy",
11214  "net.gy",
11215  "org.gy",
11216  "hk",
11217  "com.hk",
11218  "edu.hk",
11219  "gov.hk",
11220  "idv.hk",
11221  "net.hk",
11222  "org.hk",
11223  "个人.hk",
11224  "個人.hk",
11225  "公司.hk",
11226  "政府.hk",
11227  "敎育.hk",
11228  "教育.hk",
11229  "箇人.hk",
11230  "組織.hk",
11231  "組织.hk",
11232  "網絡.hk",
11233  "網络.hk",
11234  "组織.hk",
11235  "组织.hk",
11236  "网絡.hk",
11237  "网络.hk",
11238  "hm",
11239  "hn",
11240  "com.hn",
11241  "edu.hn",
11242  "gob.hn",
11243  "mil.hn",
11244  "net.hn",
11245  "org.hn",
11246  "hr",
11247  "com.hr",
11248  "from.hr",
11249  "iz.hr",
11250  "name.hr",
11251  "ht",
11252  "adult.ht",
11253  "art.ht",
11254  "asso.ht",
11255  "com.ht",
11256  "coop.ht",
11257  "edu.ht",
11258  "firm.ht",
11259  "gouv.ht",
11260  "info.ht",
11261  "med.ht",
11262  "net.ht",
11263  "org.ht",
11264  "perso.ht",
11265  "pol.ht",
11266  "pro.ht",
11267  "rel.ht",
11268  "shop.ht",
11269  "hu",
11270  "2000.hu",
11271  "agrar.hu",
11272  "bolt.hu",
11273  "casino.hu",
11274  "city.hu",
11275  "co.hu",
11276  "erotica.hu",
11277  "erotika.hu",
11278  "film.hu",
11279  "forum.hu",
11280  "games.hu",
11281  "hotel.hu",
11282  "info.hu",
11283  "ingatlan.hu",
11284  "jogasz.hu",
11285  "konyvelo.hu",
11286  "lakas.hu",
11287  "media.hu",
11288  "news.hu",
11289  "org.hu",
11290  "priv.hu",
11291  "reklam.hu",
11292  "sex.hu",
11293  "shop.hu",
11294  "sport.hu",
11295  "suli.hu",
11296  "szex.hu",
11297  "tm.hu",
11298  "tozsde.hu",
11299  "utazas.hu",
11300  "video.hu",
11301  "id",
11302  "ac.id",
11303  "biz.id",
11304  "co.id",
11305  "desa.id",
11306  "go.id",
11307  "mil.id",
11308  "my.id",
11309  "net.id",
11310  "or.id",
11311  "ponpes.id",
11312  "sch.id",
11313  "web.id",
11314  "ie",
11315  "gov.ie",
11316  "il",
11317  "ac.il",
11318  "co.il",
11319  "gov.il",
11320  "idf.il",
11321  "k12.il",
11322  "muni.il",
11323  "net.il",
11324  "org.il",
11325  "ישראל",
11326  "אקדמיה.ישראל",
11327  "ישוב.ישראל",
11328  "צהל.ישראל",
11329  "ממשל.ישראל",
11330  "im",
11331  "ac.im",
11332  "co.im",
11333  "ltd.co.im",
11334  "plc.co.im",
11335  "com.im",
11336  "net.im",
11337  "org.im",
11338  "tt.im",
11339  "tv.im",
11340  "in",
11341  "5g.in",
11342  "6g.in",
11343  "ac.in",
11344  "ai.in",
11345  "am.in",
11346  "bihar.in",
11347  "biz.in",
11348  "business.in",
11349  "ca.in",
11350  "cn.in",
11351  "co.in",
11352  "com.in",
11353  "coop.in",
11354  "cs.in",
11355  "delhi.in",
11356  "dr.in",
11357  "edu.in",
11358  "er.in",
11359  "firm.in",
11360  "gen.in",
11361  "gov.in",
11362  "gujarat.in",
11363  "ind.in",
11364  "info.in",
11365  "int.in",
11366  "internet.in",
11367  "io.in",
11368  "me.in",
11369  "mil.in",
11370  "net.in",
11371  "nic.in",
11372  "org.in",
11373  "pg.in",
11374  "post.in",
11375  "pro.in",
11376  "res.in",
11377  "travel.in",
11378  "tv.in",
11379  "uk.in",
11380  "up.in",
11381  "us.in",
11382  "info",
11383  "int",
11384  "eu.int",
11385  "io",
11386  "co.io",
11387  "com.io",
11388  "edu.io",
11389  "gov.io",
11390  "mil.io",
11391  "net.io",
11392  "nom.io",
11393  "org.io",
11394  "iq",
11395  "com.iq",
11396  "edu.iq",
11397  "gov.iq",
11398  "mil.iq",
11399  "net.iq",
11400  "org.iq",
11401  "ir",
11402  "ac.ir",
11403  "co.ir",
11404  "gov.ir",
11405  "id.ir",
11406  "net.ir",
11407  "org.ir",
11408  "sch.ir",
11409  "ایران.ir",
11410  "ايران.ir",
11411  "is",
11412  "it",
11413  "edu.it",
11414  "gov.it",
11415  "abr.it",
11416  "abruzzo.it",
11417  "aosta-valley.it",
11418  "aostavalley.it",
11419  "bas.it",
11420  "basilicata.it",
11421  "cal.it",
11422  "calabria.it",
11423  "cam.it",
11424  "campania.it",
11425  "emilia-romagna.it",
11426  "emiliaromagna.it",
11427  "emr.it",
11428  "friuli-v-giulia.it",
11429  "friuli-ve-giulia.it",
11430  "friuli-vegiulia.it",
11431  "friuli-venezia-giulia.it",
11432  "friuli-veneziagiulia.it",
11433  "friuli-vgiulia.it",
11434  "friuliv-giulia.it",
11435  "friulive-giulia.it",
11436  "friulivegiulia.it",
11437  "friulivenezia-giulia.it",
11438  "friuliveneziagiulia.it",
11439  "friulivgiulia.it",
11440  "fvg.it",
11441  "laz.it",
11442  "lazio.it",
11443  "lig.it",
11444  "liguria.it",
11445  "lom.it",
11446  "lombardia.it",
11447  "lombardy.it",
11448  "lucania.it",
11449  "mar.it",
11450  "marche.it",
11451  "mol.it",
11452  "molise.it",
11453  "piedmont.it",
11454  "piemonte.it",
11455  "pmn.it",
11456  "pug.it",
11457  "puglia.it",
11458  "sar.it",
11459  "sardegna.it",
11460  "sardinia.it",
11461  "sic.it",
11462  "sicilia.it",
11463  "sicily.it",
11464  "taa.it",
11465  "tos.it",
11466  "toscana.it",
11467  "trentin-sud-tirol.it",
11468  "trentin-süd-tirol.it",
11469  "trentin-sudtirol.it",
11470  "trentin-südtirol.it",
11471  "trentin-sued-tirol.it",
11472  "trentin-suedtirol.it",
11473  "trentino.it",
11474  "trentino-a-adige.it",
11475  "trentino-aadige.it",
11476  "trentino-alto-adige.it",
11477  "trentino-altoadige.it",
11478  "trentino-s-tirol.it",
11479  "trentino-stirol.it",
11480  "trentino-sud-tirol.it",
11481  "trentino-süd-tirol.it",
11482  "trentino-sudtirol.it",
11483  "trentino-südtirol.it",
11484  "trentino-sued-tirol.it",
11485  "trentino-suedtirol.it",
11486  "trentinoa-adige.it",
11487  "trentinoaadige.it",
11488  "trentinoalto-adige.it",
11489  "trentinoaltoadige.it",
11490  "trentinos-tirol.it",
11491  "trentinostirol.it",
11492  "trentinosud-tirol.it",
11493  "trentinosüd-tirol.it",
11494  "trentinosudtirol.it",
11495  "trentinosüdtirol.it",
11496  "trentinosued-tirol.it",
11497  "trentinosuedtirol.it",
11498  "trentinsud-tirol.it",
11499  "trentinsüd-tirol.it",
11500  "trentinsudtirol.it",
11501  "trentinsüdtirol.it",
11502  "trentinsued-tirol.it",
11503  "trentinsuedtirol.it",
11504  "tuscany.it",
11505  "umb.it",
11506  "umbria.it",
11507  "val-d-aosta.it",
11508  "val-daosta.it",
11509  "vald-aosta.it",
11510  "valdaosta.it",
11511  "valle-aosta.it",
11512  "valle-d-aosta.it",
11513  "valle-daosta.it",
11514  "valleaosta.it",
11515  "valled-aosta.it",
11516  "valledaosta.it",
11517  "vallee-aoste.it",
11518  "vallée-aoste.it",
11519  "vallee-d-aoste.it",
11520  "vallée-d-aoste.it",
11521  "valleeaoste.it",
11522  "valléeaoste.it",
11523  "valleedaoste.it",
11524  "valléedaoste.it",
11525  "vao.it",
11526  "vda.it",
11527  "ven.it",
11528  "veneto.it",
11529  "ag.it",
11530  "agrigento.it",
11531  "al.it",
11532  "alessandria.it",
11533  "alto-adige.it",
11534  "altoadige.it",
11535  "an.it",
11536  "ancona.it",
11537  "andria-barletta-trani.it",
11538  "andria-trani-barletta.it",
11539  "andriabarlettatrani.it",
11540  "andriatranibarletta.it",
11541  "ao.it",
11542  "aosta.it",
11543  "aoste.it",
11544  "ap.it",
11545  "aq.it",
11546  "aquila.it",
11547  "ar.it",
11548  "arezzo.it",
11549  "ascoli-piceno.it",
11550  "ascolipiceno.it",
11551  "asti.it",
11552  "at.it",
11553  "av.it",
11554  "avellino.it",
11555  "ba.it",
11556  "balsan.it",
11557  "balsan-sudtirol.it",
11558  "balsan-südtirol.it",
11559  "balsan-suedtirol.it",
11560  "bari.it",
11561  "barletta-trani-andria.it",
11562  "barlettatraniandria.it",
11563  "belluno.it",
11564  "benevento.it",
11565  "bergamo.it",
11566  "bg.it",
11567  "bi.it",
11568  "biella.it",
11569  "bl.it",
11570  "bn.it",
11571  "bo.it",
11572  "bologna.it",
11573  "bolzano.it",
11574  "bolzano-altoadige.it",
11575  "bozen.it",
11576  "bozen-sudtirol.it",
11577  "bozen-südtirol.it",
11578  "bozen-suedtirol.it",
11579  "br.it",
11580  "brescia.it",
11581  "brindisi.it",
11582  "bs.it",
11583  "bt.it",
11584  "bulsan.it",
11585  "bulsan-sudtirol.it",
11586  "bulsan-südtirol.it",
11587  "bulsan-suedtirol.it",
11588  "bz.it",
11589  "ca.it",
11590  "cagliari.it",
11591  "caltanissetta.it",
11592  "campidano-medio.it",
11593  "campidanomedio.it",
11594  "campobasso.it",
11595  "carbonia-iglesias.it",
11596  "carboniaiglesias.it",
11597  "carrara-massa.it",
11598  "carraramassa.it",
11599  "caserta.it",
11600  "catania.it",
11601  "catanzaro.it",
11602  "cb.it",
11603  "ce.it",
11604  "cesena-forli.it",
11605  "cesena-forlì.it",
11606  "cesenaforli.it",
11607  "cesenaforlì.it",
11608  "ch.it",
11609  "chieti.it",
11610  "ci.it",
11611  "cl.it",
11612  "cn.it",
11613  "co.it",
11614  "como.it",
11615  "cosenza.it",
11616  "cr.it",
11617  "cremona.it",
11618  "crotone.it",
11619  "cs.it",
11620  "ct.it",
11621  "cuneo.it",
11622  "cz.it",
11623  "dell-ogliastra.it",
11624  "dellogliastra.it",
11625  "en.it",
11626  "enna.it",
11627  "fc.it",
11628  "fe.it",
11629  "fermo.it",
11630  "ferrara.it",
11631  "fg.it",
11632  "fi.it",
11633  "firenze.it",
11634  "florence.it",
11635  "fm.it",
11636  "foggia.it",
11637  "forli-cesena.it",
11638  "forlì-cesena.it",
11639  "forlicesena.it",
11640  "forlìcesena.it",
11641  "fr.it",
11642  "frosinone.it",
11643  "ge.it",
11644  "genoa.it",
11645  "genova.it",
11646  "go.it",
11647  "gorizia.it",
11648  "gr.it",
11649  "grosseto.it",
11650  "iglesias-carbonia.it",
11651  "iglesiascarbonia.it",
11652  "im.it",
11653  "imperia.it",
11654  "is.it",
11655  "isernia.it",
11656  "kr.it",
11657  "la-spezia.it",
11658  "laquila.it",
11659  "laspezia.it",
11660  "latina.it",
11661  "lc.it",
11662  "le.it",
11663  "lecce.it",
11664  "lecco.it",
11665  "li.it",
11666  "livorno.it",
11667  "lo.it",
11668  "lodi.it",
11669  "lt.it",
11670  "lu.it",
11671  "lucca.it",
11672  "macerata.it",
11673  "mantova.it",
11674  "massa-carrara.it",
11675  "massacarrara.it",
11676  "matera.it",
11677  "mb.it",
11678  "mc.it",
11679  "me.it",
11680  "medio-campidano.it",
11681  "mediocampidano.it",
11682  "messina.it",
11683  "mi.it",
11684  "milan.it",
11685  "milano.it",
11686  "mn.it",
11687  "mo.it",
11688  "modena.it",
11689  "monza.it",
11690  "monza-brianza.it",
11691  "monza-e-della-brianza.it",
11692  "monzabrianza.it",
11693  "monzaebrianza.it",
11694  "monzaedellabrianza.it",
11695  "ms.it",
11696  "mt.it",
11697  "na.it",
11698  "naples.it",
11699  "napoli.it",
11700  "no.it",
11701  "novara.it",
11702  "nu.it",
11703  "nuoro.it",
11704  "og.it",
11705  "ogliastra.it",
11706  "olbia-tempio.it",
11707  "olbiatempio.it",
11708  "or.it",
11709  "oristano.it",
11710  "ot.it",
11711  "pa.it",
11712  "padova.it",
11713  "padua.it",
11714  "palermo.it",
11715  "parma.it",
11716  "pavia.it",
11717  "pc.it",
11718  "pd.it",
11719  "pe.it",
11720  "perugia.it",
11721  "pesaro-urbino.it",
11722  "pesarourbino.it",
11723  "pescara.it",
11724  "pg.it",
11725  "pi.it",
11726  "piacenza.it",
11727  "pisa.it",
11728  "pistoia.it",
11729  "pn.it",
11730  "po.it",
11731  "pordenone.it",
11732  "potenza.it",
11733  "pr.it",
11734  "prato.it",
11735  "pt.it",
11736  "pu.it",
11737  "pv.it",
11738  "pz.it",
11739  "ra.it",
11740  "ragusa.it",
11741  "ravenna.it",
11742  "rc.it",
11743  "re.it",
11744  "reggio-calabria.it",
11745  "reggio-emilia.it",
11746  "reggiocalabria.it",
11747  "reggioemilia.it",
11748  "rg.it",
11749  "ri.it",
11750  "rieti.it",
11751  "rimini.it",
11752  "rm.it",
11753  "rn.it",
11754  "ro.it",
11755  "roma.it",
11756  "rome.it",
11757  "rovigo.it",
11758  "sa.it",
11759  "salerno.it",
11760  "sassari.it",
11761  "savona.it",
11762  "si.it",
11763  "siena.it",
11764  "siracusa.it",
11765  "so.it",
11766  "sondrio.it",
11767  "sp.it",
11768  "sr.it",
11769  "ss.it",
11770  "südtirol.it",
11771  "suedtirol.it",
11772  "sv.it",
11773  "ta.it",
11774  "taranto.it",
11775  "te.it",
11776  "tempio-olbia.it",
11777  "tempioolbia.it",
11778  "teramo.it",
11779  "terni.it",
11780  "tn.it",
11781  "to.it",
11782  "torino.it",
11783  "tp.it",
11784  "tr.it",
11785  "trani-andria-barletta.it",
11786  "trani-barletta-andria.it",
11787  "traniandriabarletta.it",
11788  "tranibarlettaandria.it",
11789  "trapani.it",
11790  "trento.it",
11791  "treviso.it",
11792  "trieste.it",
11793  "ts.it",
11794  "turin.it",
11795  "tv.it",
11796  "ud.it",
11797  "udine.it",
11798  "urbino-pesaro.it",
11799  "urbinopesaro.it",
11800  "va.it",
11801  "varese.it",
11802  "vb.it",
11803  "vc.it",
11804  "ve.it",
11805  "venezia.it",
11806  "venice.it",
11807  "verbania.it",
11808  "vercelli.it",
11809  "verona.it",
11810  "vi.it",
11811  "vibo-valentia.it",
11812  "vibovalentia.it",
11813  "vicenza.it",
11814  "viterbo.it",
11815  "vr.it",
11816  "vs.it",
11817  "vt.it",
11818  "vv.it",
11819  "je",
11820  "co.je",
11821  "net.je",
11822  "org.je",
11823  "*.jm",
11824  "jo",
11825  "agri.jo",
11826  "ai.jo",
11827  "com.jo",
11828  "edu.jo",
11829  "eng.jo",
11830  "fm.jo",
11831  "gov.jo",
11832  "mil.jo",
11833  "net.jo",
11834  "org.jo",
11835  "per.jo",
11836  "phd.jo",
11837  "sch.jo",
11838  "tv.jo",
11839  "jobs",
11840  "jp",
11841  "ac.jp",
11842  "ad.jp",
11843  "co.jp",
11844  "ed.jp",
11845  "go.jp",
11846  "gr.jp",
11847  "lg.jp",
11848  "ne.jp",
11849  "or.jp",
11850  "aichi.jp",
11851  "akita.jp",
11852  "aomori.jp",
11853  "chiba.jp",
11854  "ehime.jp",
11855  "fukui.jp",
11856  "fukuoka.jp",
11857  "fukushima.jp",
11858  "gifu.jp",
11859  "gunma.jp",
11860  "hiroshima.jp",
11861  "hokkaido.jp",
11862  "hyogo.jp",
11863  "ibaraki.jp",
11864  "ishikawa.jp",
11865  "iwate.jp",
11866  "kagawa.jp",
11867  "kagoshima.jp",
11868  "kanagawa.jp",
11869  "kochi.jp",
11870  "kumamoto.jp",
11871  "kyoto.jp",
11872  "mie.jp",
11873  "miyagi.jp",
11874  "miyazaki.jp",
11875  "nagano.jp",
11876  "nagasaki.jp",
11877  "nara.jp",
11878  "niigata.jp",
11879  "oita.jp",
11880  "okayama.jp",
11881  "okinawa.jp",
11882  "osaka.jp",
11883  "saga.jp",
11884  "saitama.jp",
11885  "shiga.jp",
11886  "shimane.jp",
11887  "shizuoka.jp",
11888  "tochigi.jp",
11889  "tokushima.jp",
11890  "tokyo.jp",
11891  "tottori.jp",
11892  "toyama.jp",
11893  "wakayama.jp",
11894  "yamagata.jp",
11895  "yamaguchi.jp",
11896  "yamanashi.jp",
11897  "三重.jp",
11898  "京都.jp",
11899  "佐賀.jp",
11900  "兵庫.jp",
11901  "北海道.jp",
11902  "千葉.jp",
11903  "和歌山.jp",
11904  "埼玉.jp",
11905  "大分.jp",
11906  "大阪.jp",
11907  "奈良.jp",
11908  "宮城.jp",
11909  "宮崎.jp",
11910  "富山.jp",
11911  "山口.jp",
11912  "山形.jp",
11913  "山梨.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  "*.kawasaki.jp",
11945  "!city.kawasaki.jp",
11946  "*.kitakyushu.jp",
11947  "!city.kitakyushu.jp",
11948  "*.kobe.jp",
11949  "!city.kobe.jp",
11950  "*.nagoya.jp",
11951  "!city.nagoya.jp",
11952  "*.sapporo.jp",
11953  "!city.sapporo.jp",
11954  "*.sendai.jp",
11955  "!city.sendai.jp",
11956  "*.yokohama.jp",
11957  "!city.yokohama.jp",
11958  "aisai.aichi.jp",
11959  "ama.aichi.jp",
11960  "anjo.aichi.jp",
11961  "asuke.aichi.jp",
11962  "chiryu.aichi.jp",
11963  "chita.aichi.jp",
11964  "fuso.aichi.jp",
11965  "gamagori.aichi.jp",
11966  "handa.aichi.jp",
11967  "hazu.aichi.jp",
11968  "hekinan.aichi.jp",
11969  "higashiura.aichi.jp",
11970  "ichinomiya.aichi.jp",
11971  "inazawa.aichi.jp",
11972  "inuyama.aichi.jp",
11973  "isshiki.aichi.jp",
11974  "iwakura.aichi.jp",
11975  "kanie.aichi.jp",
11976  "kariya.aichi.jp",
11977  "kasugai.aichi.jp",
11978  "kira.aichi.jp",
11979  "kiyosu.aichi.jp",
11980  "komaki.aichi.jp",
11981  "konan.aichi.jp",
11982  "kota.aichi.jp",
11983  "mihama.aichi.jp",
11984  "miyoshi.aichi.jp",
11985  "nishio.aichi.jp",
11986  "nisshin.aichi.jp",
11987  "obu.aichi.jp",
11988  "oguchi.aichi.jp",
11989  "oharu.aichi.jp",
11990  "okazaki.aichi.jp",
11991  "owariasahi.aichi.jp",
11992  "seto.aichi.jp",
11993  "shikatsu.aichi.jp",
11994  "shinshiro.aichi.jp",
11995  "shitara.aichi.jp",
11996  "tahara.aichi.jp",
11997  "takahama.aichi.jp",
11998  "tobishima.aichi.jp",
11999  "toei.aichi.jp",
12000  "togo.aichi.jp",
12001  "tokai.aichi.jp",
12002  "tokoname.aichi.jp",
12003  "toyoake.aichi.jp",
12004  "toyohashi.aichi.jp",
12005  "toyokawa.aichi.jp",
12006  "toyone.aichi.jp",
12007  "toyota.aichi.jp",
12008  "tsushima.aichi.jp",
12009  "yatomi.aichi.jp",
12010  "akita.akita.jp",
12011  "daisen.akita.jp",
12012  "fujisato.akita.jp",
12013  "gojome.akita.jp",
12014  "hachirogata.akita.jp",
12015  "happou.akita.jp",
12016  "higashinaruse.akita.jp",
12017  "honjo.akita.jp",
12018  "honjyo.akita.jp",
12019  "ikawa.akita.jp",
12020  "kamikoani.akita.jp",
12021  "kamioka.akita.jp",
12022  "katagami.akita.jp",
12023  "kazuno.akita.jp",
12024  "kitaakita.akita.jp",
12025  "kosaka.akita.jp",
12026  "kyowa.akita.jp",
12027  "misato.akita.jp",
12028  "mitane.akita.jp",
12029  "moriyoshi.akita.jp",
12030  "nikaho.akita.jp",
12031  "noshiro.akita.jp",
12032  "odate.akita.jp",
12033  "oga.akita.jp",
12034  "ogata.akita.jp",
12035  "semboku.akita.jp",
12036  "yokote.akita.jp",
12037  "yurihonjo.akita.jp",
12038  "aomori.aomori.jp",
12039  "gonohe.aomori.jp",
12040  "hachinohe.aomori.jp",
12041  "hashikami.aomori.jp",
12042  "hiranai.aomori.jp",
12043  "hirosaki.aomori.jp",
12044  "itayanagi.aomori.jp",
12045  "kuroishi.aomori.jp",
12046  "misawa.aomori.jp",
12047  "mutsu.aomori.jp",
12048  "nakadomari.aomori.jp",
12049  "noheji.aomori.jp",
12050  "oirase.aomori.jp",
12051  "owani.aomori.jp",
12052  "rokunohe.aomori.jp",
12053  "sannohe.aomori.jp",
12054  "shichinohe.aomori.jp",
12055  "shingo.aomori.jp",
12056  "takko.aomori.jp",
12057  "towada.aomori.jp",
12058  "tsugaru.aomori.jp",
12059  "tsuruta.aomori.jp",
12060  "abiko.chiba.jp",
12061  "asahi.chiba.jp",
12062  "chonan.chiba.jp",
12063  "chosei.chiba.jp",
12064  "choshi.chiba.jp",
12065  "chuo.chiba.jp",
12066  "funabashi.chiba.jp",
12067  "futtsu.chiba.jp",
12068  "hanamigawa.chiba.jp",
12069  "ichihara.chiba.jp",
12070  "ichikawa.chiba.jp",
12071  "ichinomiya.chiba.jp",
12072  "inzai.chiba.jp",
12073  "isumi.chiba.jp",
12074  "kamagaya.chiba.jp",
12075  "kamogawa.chiba.jp",
12076  "kashiwa.chiba.jp",
12077  "katori.chiba.jp",
12078  "katsuura.chiba.jp",
12079  "kimitsu.chiba.jp",
12080  "kisarazu.chiba.jp",
12081  "kozaki.chiba.jp",
12082  "kujukuri.chiba.jp",
12083  "kyonan.chiba.jp",
12084  "matsudo.chiba.jp",
12085  "midori.chiba.jp",
12086  "mihama.chiba.jp",
12087  "minamiboso.chiba.jp",
12088  "mobara.chiba.jp",
12089  "mutsuzawa.chiba.jp",
12090  "nagara.chiba.jp",
12091  "nagareyama.chiba.jp",
12092  "narashino.chiba.jp",
12093  "narita.chiba.jp",
12094  "noda.chiba.jp",
12095  "oamishirasato.chiba.jp",
12096  "omigawa.chiba.jp",
12097  "onjuku.chiba.jp",
12098  "otaki.chiba.jp",
12099  "sakae.chiba.jp",
12100  "sakura.chiba.jp",
12101  "shimofusa.chiba.jp",
12102  "shirako.chiba.jp",
12103  "shiroi.chiba.jp",
12104  "shisui.chiba.jp",
12105  "sodegaura.chiba.jp",
12106  "sosa.chiba.jp",
12107  "tako.chiba.jp",
12108  "tateyama.chiba.jp",
12109  "togane.chiba.jp",
12110  "tohnosho.chiba.jp",
12111  "tomisato.chiba.jp",
12112  "urayasu.chiba.jp",
12113  "yachimata.chiba.jp",
12114  "yachiyo.chiba.jp",
12115  "yokaichiba.chiba.jp",
12116  "yokoshibahikari.chiba.jp",
12117  "yotsukaido.chiba.jp",
12118  "ainan.ehime.jp",
12119  "honai.ehime.jp",
12120  "ikata.ehime.jp",
12121  "imabari.ehime.jp",
12122  "iyo.ehime.jp",
12123  "kamijima.ehime.jp",
12124  "kihoku.ehime.jp",
12125  "kumakogen.ehime.jp",
12126  "masaki.ehime.jp",
12127  "matsuno.ehime.jp",
12128  "matsuyama.ehime.jp",
12129  "namikata.ehime.jp",
12130  "niihama.ehime.jp",
12131  "ozu.ehime.jp",
12132  "saijo.ehime.jp",
12133  "seiyo.ehime.jp",
12134  "shikokuchuo.ehime.jp",
12135  "tobe.ehime.jp",
12136  "toon.ehime.jp",
12137  "uchiko.ehime.jp",
12138  "uwajima.ehime.jp",
12139  "yawatahama.ehime.jp",
12140  "echizen.fukui.jp",
12141  "eiheiji.fukui.jp",
12142  "fukui.fukui.jp",
12143  "ikeda.fukui.jp",
12144  "katsuyama.fukui.jp",
12145  "mihama.fukui.jp",
12146  "minamiechizen.fukui.jp",
12147  "obama.fukui.jp",
12148  "ohi.fukui.jp",
12149  "ono.fukui.jp",
12150  "sabae.fukui.jp",
12151  "sakai.fukui.jp",
12152  "takahama.fukui.jp",
12153  "tsuruga.fukui.jp",
12154  "wakasa.fukui.jp",
12155  "ashiya.fukuoka.jp",
12156  "buzen.fukuoka.jp",
12157  "chikugo.fukuoka.jp",
12158  "chikuho.fukuoka.jp",
12159  "chikujo.fukuoka.jp",
12160  "chikushino.fukuoka.jp",
12161  "chikuzen.fukuoka.jp",
12162  "chuo.fukuoka.jp",
12163  "dazaifu.fukuoka.jp",
12164  "fukuchi.fukuoka.jp",
12165  "hakata.fukuoka.jp",
12166  "higashi.fukuoka.jp",
12167  "hirokawa.fukuoka.jp",
12168  "hisayama.fukuoka.jp",
12169  "iizuka.fukuoka.jp",
12170  "inatsuki.fukuoka.jp",
12171  "kaho.fukuoka.jp",
12172  "kasuga.fukuoka.jp",
12173  "kasuya.fukuoka.jp",
12174  "kawara.fukuoka.jp",
12175  "keisen.fukuoka.jp",
12176  "koga.fukuoka.jp",
12177  "kurate.fukuoka.jp",
12178  "kurogi.fukuoka.jp",
12179  "kurume.fukuoka.jp",
12180  "minami.fukuoka.jp",
12181  "miyako.fukuoka.jp",
12182  "miyama.fukuoka.jp",
12183  "miyawaka.fukuoka.jp",
12184  "mizumaki.fukuoka.jp",
12185  "munakata.fukuoka.jp",
12186  "nakagawa.fukuoka.jp",
12187  "nakama.fukuoka.jp",
12188  "nishi.fukuoka.jp",
12189  "nogata.fukuoka.jp",
12190  "ogori.fukuoka.jp",
12191  "okagaki.fukuoka.jp",
12192  "okawa.fukuoka.jp",
12193  "oki.fukuoka.jp",
12194  "omuta.fukuoka.jp",
12195  "onga.fukuoka.jp",
12196  "onojo.fukuoka.jp",
12197  "oto.fukuoka.jp",
12198  "saigawa.fukuoka.jp",
12199  "sasaguri.fukuoka.jp",
12200  "shingu.fukuoka.jp",
12201  "shinyoshitomi.fukuoka.jp",
12202  "shonai.fukuoka.jp",
12203  "soeda.fukuoka.jp",
12204  "sue.fukuoka.jp",
12205  "tachiarai.fukuoka.jp",
12206  "tagawa.fukuoka.jp",
12207  "takata.fukuoka.jp",
12208  "toho.fukuoka.jp",
12209  "toyotsu.fukuoka.jp",
12210  "tsuiki.fukuoka.jp",
12211  "ukiha.fukuoka.jp",
12212  "umi.fukuoka.jp",
12213  "usui.fukuoka.jp",
12214  "yamada.fukuoka.jp",
12215  "yame.fukuoka.jp",
12216  "yanagawa.fukuoka.jp",
12217  "yukuhashi.fukuoka.jp",
12218  "aizubange.fukushima.jp",
12219  "aizumisato.fukushima.jp",
12220  "aizuwakamatsu.fukushima.jp",
12221  "asakawa.fukushima.jp",
12222  "bandai.fukushima.jp",
12223  "date.fukushima.jp",
12224  "fukushima.fukushima.jp",
12225  "furudono.fukushima.jp",
12226  "futaba.fukushima.jp",
12227  "hanawa.fukushima.jp",
12228  "higashi.fukushima.jp",
12229  "hirata.fukushima.jp",
12230  "hirono.fukushima.jp",
12231  "iitate.fukushima.jp",
12232  "inawashiro.fukushima.jp",
12233  "ishikawa.fukushima.jp",
12234  "iwaki.fukushima.jp",
12235  "izumizaki.fukushima.jp",
12236  "kagamiishi.fukushima.jp",
12237  "kaneyama.fukushima.jp",
12238  "kawamata.fukushima.jp",
12239  "kitakata.fukushima.jp",
12240  "kitashiobara.fukushima.jp",
12241  "koori.fukushima.jp",
12242  "koriyama.fukushima.jp",
12243  "kunimi.fukushima.jp",
12244  "miharu.fukushima.jp",
12245  "mishima.fukushima.jp",
12246  "namie.fukushima.jp",
12247  "nango.fukushima.jp",
12248  "nishiaizu.fukushima.jp",
12249  "nishigo.fukushima.jp",
12250  "okuma.fukushima.jp",
12251  "omotego.fukushima.jp",
12252  "ono.fukushima.jp",
12253  "otama.fukushima.jp",
12254  "samegawa.fukushima.jp",
12255  "shimogo.fukushima.jp",
12256  "shirakawa.fukushima.jp",
12257  "showa.fukushima.jp",
12258  "soma.fukushima.jp",
12259  "sukagawa.fukushima.jp",
12260  "taishin.fukushima.jp",
12261  "tamakawa.fukushima.jp",
12262  "tanagura.fukushima.jp",
12263  "tenei.fukushima.jp",
12264  "yabuki.fukushima.jp",
12265  "yamato.fukushima.jp",
12266  "yamatsuri.fukushima.jp",
12267  "yanaizu.fukushima.jp",
12268  "yugawa.fukushima.jp",
12269  "anpachi.gifu.jp",
12270  "ena.gifu.jp",
12271  "gifu.gifu.jp",
12272  "ginan.gifu.jp",
12273  "godo.gifu.jp",
12274  "gujo.gifu.jp",
12275  "hashima.gifu.jp",
12276  "hichiso.gifu.jp",
12277  "hida.gifu.jp",
12278  "higashishirakawa.gifu.jp",
12279  "ibigawa.gifu.jp",
12280  "ikeda.gifu.jp",
12281  "kakamigahara.gifu.jp",
12282  "kani.gifu.jp",
12283  "kasahara.gifu.jp",
12284  "kasamatsu.gifu.jp",
12285  "kawaue.gifu.jp",
12286  "kitagata.gifu.jp",
12287  "mino.gifu.jp",
12288  "minokamo.gifu.jp",
12289  "mitake.gifu.jp",
12290  "mizunami.gifu.jp",
12291  "motosu.gifu.jp",
12292  "nakatsugawa.gifu.jp",
12293  "ogaki.gifu.jp",
12294  "sakahogi.gifu.jp",
12295  "seki.gifu.jp",
12296  "sekigahara.gifu.jp",
12297  "shirakawa.gifu.jp",
12298  "tajimi.gifu.jp",
12299  "takayama.gifu.jp",
12300  "tarui.gifu.jp",
12301  "toki.gifu.jp",
12302  "tomika.gifu.jp",
12303  "wanouchi.gifu.jp",
12304  "yamagata.gifu.jp",
12305  "yaotsu.gifu.jp",
12306  "yoro.gifu.jp",
12307  "annaka.gunma.jp",
12308  "chiyoda.gunma.jp",
12309  "fujioka.gunma.jp",
12310  "higashiagatsuma.gunma.jp",
12311  "isesaki.gunma.jp",
12312  "itakura.gunma.jp",
12313  "kanna.gunma.jp",
12314  "kanra.gunma.jp",
12315  "katashina.gunma.jp",
12316  "kawaba.gunma.jp",
12317  "kiryu.gunma.jp",
12318  "kusatsu.gunma.jp",
12319  "maebashi.gunma.jp",
12320  "meiwa.gunma.jp",
12321  "midori.gunma.jp",
12322  "minakami.gunma.jp",
12323  "naganohara.gunma.jp",
12324  "nakanojo.gunma.jp",
12325  "nanmoku.gunma.jp",
12326  "numata.gunma.jp",
12327  "oizumi.gunma.jp",
12328  "ora.gunma.jp",
12329  "ota.gunma.jp",
12330  "shibukawa.gunma.jp",
12331  "shimonita.gunma.jp",
12332  "shinto.gunma.jp",
12333  "showa.gunma.jp",
12334  "takasaki.gunma.jp",
12335  "takayama.gunma.jp",
12336  "tamamura.gunma.jp",
12337  "tatebayashi.gunma.jp",
12338  "tomioka.gunma.jp",
12339  "tsukiyono.gunma.jp",
12340  "tsumagoi.gunma.jp",
12341  "ueno.gunma.jp",
12342  "yoshioka.gunma.jp",
12343  "asaminami.hiroshima.jp",
12344  "daiwa.hiroshima.jp",
12345  "etajima.hiroshima.jp",
12346  "fuchu.hiroshima.jp",
12347  "fukuyama.hiroshima.jp",
12348  "hatsukaichi.hiroshima.jp",
12349  "higashihiroshima.hiroshima.jp",
12350  "hongo.hiroshima.jp",
12351  "jinsekikogen.hiroshima.jp",
12352  "kaita.hiroshima.jp",
12353  "kui.hiroshima.jp",
12354  "kumano.hiroshima.jp",
12355  "kure.hiroshima.jp",
12356  "mihara.hiroshima.jp",
12357  "miyoshi.hiroshima.jp",
12358  "naka.hiroshima.jp",
12359  "onomichi.hiroshima.jp",
12360  "osakikamijima.hiroshima.jp",
12361  "otake.hiroshima.jp",
12362  "saka.hiroshima.jp",
12363  "sera.hiroshima.jp",
12364  "seranishi.hiroshima.jp",
12365  "shinichi.hiroshima.jp",
12366  "shobara.hiroshima.jp",
12367  "takehara.hiroshima.jp",
12368  "abashiri.hokkaido.jp",
12369  "abira.hokkaido.jp",
12370  "aibetsu.hokkaido.jp",
12371  "akabira.hokkaido.jp",
12372  "akkeshi.hokkaido.jp",
12373  "asahikawa.hokkaido.jp",
12374  "ashibetsu.hokkaido.jp",
12375  "ashoro.hokkaido.jp",
12376  "assabu.hokkaido.jp",
12377  "atsuma.hokkaido.jp",
12378  "bibai.hokkaido.jp",
12379  "biei.hokkaido.jp",
12380  "bifuka.hokkaido.jp",
12381  "bihoro.hokkaido.jp",
12382  "biratori.hokkaido.jp",
12383  "chippubetsu.hokkaido.jp",
12384  "chitose.hokkaido.jp",
12385  "date.hokkaido.jp",
12386  "ebetsu.hokkaido.jp",
12387  "embetsu.hokkaido.jp",
12388  "eniwa.hokkaido.jp",
12389  "erimo.hokkaido.jp",
12390  "esan.hokkaido.jp",
12391  "esashi.hokkaido.jp",
12392  "fukagawa.hokkaido.jp",
12393  "fukushima.hokkaido.jp",
12394  "furano.hokkaido.jp",
12395  "furubira.hokkaido.jp",
12396  "haboro.hokkaido.jp",
12397  "hakodate.hokkaido.jp",
12398  "hamatonbetsu.hokkaido.jp",
12399  "hidaka.hokkaido.jp",
12400  "higashikagura.hokkaido.jp",
12401  "higashikawa.hokkaido.jp",
12402  "hiroo.hokkaido.jp",
12403  "hokuryu.hokkaido.jp",
12404  "hokuto.hokkaido.jp",
12405  "honbetsu.hokkaido.jp",
12406  "horokanai.hokkaido.jp",
12407  "horonobe.hokkaido.jp",
12408  "ikeda.hokkaido.jp",
12409  "imakane.hokkaido.jp",
12410  "ishikari.hokkaido.jp",
12411  "iwamizawa.hokkaido.jp",
12412  "iwanai.hokkaido.jp",
12413  "kamifurano.hokkaido.jp",
12414  "kamikawa.hokkaido.jp",
12415  "kamishihoro.hokkaido.jp",
12416  "kamisunagawa.hokkaido.jp",
12417  "kamoenai.hokkaido.jp",
12418  "kayabe.hokkaido.jp",
12419  "kembuchi.hokkaido.jp",
12420  "kikonai.hokkaido.jp",
12421  "kimobetsu.hokkaido.jp",
12422  "kitahiroshima.hokkaido.jp",
12423  "kitami.hokkaido.jp",
12424  "kiyosato.hokkaido.jp",
12425  "koshimizu.hokkaido.jp",
12426  "kunneppu.hokkaido.jp",
12427  "kuriyama.hokkaido.jp",
12428  "kuromatsunai.hokkaido.jp",
12429  "kushiro.hokkaido.jp",
12430  "kutchan.hokkaido.jp",
12431  "kyowa.hokkaido.jp",
12432  "mashike.hokkaido.jp",
12433  "matsumae.hokkaido.jp",
12434  "mikasa.hokkaido.jp",
12435  "minamifurano.hokkaido.jp",
12436  "mombetsu.hokkaido.jp",
12437  "moseushi.hokkaido.jp",
12438  "mukawa.hokkaido.jp",
12439  "muroran.hokkaido.jp",
12440  "naie.hokkaido.jp",
12441  "nakagawa.hokkaido.jp",
12442  "nakasatsunai.hokkaido.jp",
12443  "nakatombetsu.hokkaido.jp",
12444  "nanae.hokkaido.jp",
12445  "nanporo.hokkaido.jp",
12446  "nayoro.hokkaido.jp",
12447  "nemuro.hokkaido.jp",
12448  "niikappu.hokkaido.jp",
12449  "niki.hokkaido.jp",
12450  "nishiokoppe.hokkaido.jp",
12451  "noboribetsu.hokkaido.jp",
12452  "numata.hokkaido.jp",
12453  "obihiro.hokkaido.jp",
12454  "obira.hokkaido.jp",
12455  "oketo.hokkaido.jp",
12456  "okoppe.hokkaido.jp",
12457  "otaru.hokkaido.jp",
12458  "otobe.hokkaido.jp",
12459  "otofuke.hokkaido.jp",
12460  "otoineppu.hokkaido.jp",
12461  "oumu.hokkaido.jp",
12462  "ozora.hokkaido.jp",
12463  "pippu.hokkaido.jp",
12464  "rankoshi.hokkaido.jp",
12465  "rebun.hokkaido.jp",
12466  "rikubetsu.hokkaido.jp",
12467  "rishiri.hokkaido.jp",
12468  "rishirifuji.hokkaido.jp",
12469  "saroma.hokkaido.jp",
12470  "sarufutsu.hokkaido.jp",
12471  "shakotan.hokkaido.jp",
12472  "shari.hokkaido.jp",
12473  "shibecha.hokkaido.jp",
12474  "shibetsu.hokkaido.jp",
12475  "shikabe.hokkaido.jp",
12476  "shikaoi.hokkaido.jp",
12477  "shimamaki.hokkaido.jp",
12478  "shimizu.hokkaido.jp",
12479  "shimokawa.hokkaido.jp",
12480  "shinshinotsu.hokkaido.jp",
12481  "shintoku.hokkaido.jp",
12482  "shiranuka.hokkaido.jp",
12483  "shiraoi.hokkaido.jp",
12484  "shiriuchi.hokkaido.jp",
12485  "sobetsu.hokkaido.jp",
12486  "sunagawa.hokkaido.jp",
12487  "taiki.hokkaido.jp",
12488  "takasu.hokkaido.jp",
12489  "takikawa.hokkaido.jp",
12490  "takinoue.hokkaido.jp",
12491  "teshikaga.hokkaido.jp",
12492  "tobetsu.hokkaido.jp",
12493  "tohma.hokkaido.jp",
12494  "tomakomai.hokkaido.jp",
12495  "tomari.hokkaido.jp",
12496  "toya.hokkaido.jp",
12497  "toyako.hokkaido.jp",
12498  "toyotomi.hokkaido.jp",
12499  "toyoura.hokkaido.jp",
12500  "tsubetsu.hokkaido.jp",
12501  "tsukigata.hokkaido.jp",
12502  "urakawa.hokkaido.jp",
12503  "urausu.hokkaido.jp",
12504  "uryu.hokkaido.jp",
12505  "utashinai.hokkaido.jp",
12506  "wakkanai.hokkaido.jp",
12507  "wassamu.hokkaido.jp",
12508  "yakumo.hokkaido.jp",
12509  "yoichi.hokkaido.jp",
12510  "aioi.hyogo.jp",
12511  "akashi.hyogo.jp",
12512  "ako.hyogo.jp",
12513  "amagasaki.hyogo.jp",
12514  "aogaki.hyogo.jp",
12515  "asago.hyogo.jp",
12516  "ashiya.hyogo.jp",
12517  "awaji.hyogo.jp",
12518  "fukusaki.hyogo.jp",
12519  "goshiki.hyogo.jp",
12520  "harima.hyogo.jp",
12521  "himeji.hyogo.jp",
12522  "ichikawa.hyogo.jp",
12523  "inagawa.hyogo.jp",
12524  "itami.hyogo.jp",
12525  "kakogawa.hyogo.jp",
12526  "kamigori.hyogo.jp",
12527  "kamikawa.hyogo.jp",
12528  "kasai.hyogo.jp",
12529  "kasuga.hyogo.jp",
12530  "kawanishi.hyogo.jp",
12531  "miki.hyogo.jp",
12532  "minamiawaji.hyogo.jp",
12533  "nishinomiya.hyogo.jp",
12534  "nishiwaki.hyogo.jp",
12535  "ono.hyogo.jp",
12536  "sanda.hyogo.jp",
12537  "sannan.hyogo.jp",
12538  "sasayama.hyogo.jp",
12539  "sayo.hyogo.jp",
12540  "shingu.hyogo.jp",
12541  "shinonsen.hyogo.jp",
12542  "shiso.hyogo.jp",
12543  "sumoto.hyogo.jp",
12544  "taishi.hyogo.jp",
12545  "taka.hyogo.jp",
12546  "takarazuka.hyogo.jp",
12547  "takasago.hyogo.jp",
12548  "takino.hyogo.jp",
12549  "tamba.hyogo.jp",
12550  "tatsuno.hyogo.jp",
12551  "toyooka.hyogo.jp",
12552  "yabu.hyogo.jp",
12553  "yashiro.hyogo.jp",
12554  "yoka.hyogo.jp",
12555  "yokawa.hyogo.jp",
12556  "ami.ibaraki.jp",
12557  "asahi.ibaraki.jp",
12558  "bando.ibaraki.jp",
12559  "chikusei.ibaraki.jp",
12560  "daigo.ibaraki.jp",
12561  "fujishiro.ibaraki.jp",
12562  "hitachi.ibaraki.jp",
12563  "hitachinaka.ibaraki.jp",
12564  "hitachiomiya.ibaraki.jp",
12565  "hitachiota.ibaraki.jp",
12566  "ibaraki.ibaraki.jp",
12567  "ina.ibaraki.jp",
12568  "inashiki.ibaraki.jp",
12569  "itako.ibaraki.jp",
12570  "iwama.ibaraki.jp",
12571  "joso.ibaraki.jp",
12572  "kamisu.ibaraki.jp",
12573  "kasama.ibaraki.jp",
12574  "kashima.ibaraki.jp",
12575  "kasumigaura.ibaraki.jp",
12576  "koga.ibaraki.jp",
12577  "miho.ibaraki.jp",
12578  "mito.ibaraki.jp",
12579  "moriya.ibaraki.jp",
12580  "naka.ibaraki.jp",
12581  "namegata.ibaraki.jp",
12582  "oarai.ibaraki.jp",
12583  "ogawa.ibaraki.jp",
12584  "omitama.ibaraki.jp",
12585  "ryugasaki.ibaraki.jp",
12586  "sakai.ibaraki.jp",
12587  "sakuragawa.ibaraki.jp",
12588  "shimodate.ibaraki.jp",
12589  "shimotsuma.ibaraki.jp",
12590  "shirosato.ibaraki.jp",
12591  "sowa.ibaraki.jp",
12592  "suifu.ibaraki.jp",
12593  "takahagi.ibaraki.jp",
12594  "tamatsukuri.ibaraki.jp",
12595  "tokai.ibaraki.jp",
12596  "tomobe.ibaraki.jp",
12597  "tone.ibaraki.jp",
12598  "toride.ibaraki.jp",
12599  "tsuchiura.ibaraki.jp",
12600  "tsukuba.ibaraki.jp",
12601  "uchihara.ibaraki.jp",
12602  "ushiku.ibaraki.jp",
12603  "yachiyo.ibaraki.jp",
12604  "yamagata.ibaraki.jp",
12605  "yawara.ibaraki.jp",
12606  "yuki.ibaraki.jp",
12607  "anamizu.ishikawa.jp",
12608  "hakui.ishikawa.jp",
12609  "hakusan.ishikawa.jp",
12610  "kaga.ishikawa.jp",
12611  "kahoku.ishikawa.jp",
12612  "kanazawa.ishikawa.jp",
12613  "kawakita.ishikawa.jp",
12614  "komatsu.ishikawa.jp",
12615  "nakanoto.ishikawa.jp",
12616  "nanao.ishikawa.jp",
12617  "nomi.ishikawa.jp",
12618  "nonoichi.ishikawa.jp",
12619  "noto.ishikawa.jp",
12620  "shika.ishikawa.jp",
12621  "suzu.ishikawa.jp",
12622  "tsubata.ishikawa.jp",
12623  "tsurugi.ishikawa.jp",
12624  "uchinada.ishikawa.jp",
12625  "wajima.ishikawa.jp",
12626  "fudai.iwate.jp",
12627  "fujisawa.iwate.jp",
12628  "hanamaki.iwate.jp",
12629  "hiraizumi.iwate.jp",
12630  "hirono.iwate.jp",
12631  "ichinohe.iwate.jp",
12632  "ichinoseki.iwate.jp",
12633  "iwaizumi.iwate.jp",
12634  "iwate.iwate.jp",
12635  "joboji.iwate.jp",
12636  "kamaishi.iwate.jp",
12637  "kanegasaki.iwate.jp",
12638  "karumai.iwate.jp",
12639  "kawai.iwate.jp",
12640  "kitakami.iwate.jp",
12641  "kuji.iwate.jp",
12642  "kunohe.iwate.jp",
12643  "kuzumaki.iwate.jp",
12644  "miyako.iwate.jp",
12645  "mizusawa.iwate.jp",
12646  "morioka.iwate.jp",
12647  "ninohe.iwate.jp",
12648  "noda.iwate.jp",
12649  "ofunato.iwate.jp",
12650  "oshu.iwate.jp",
12651  "otsuchi.iwate.jp",
12652  "rikuzentakata.iwate.jp",
12653  "shiwa.iwate.jp",
12654  "shizukuishi.iwate.jp",
12655  "sumita.iwate.jp",
12656  "tanohata.iwate.jp",
12657  "tono.iwate.jp",
12658  "yahaba.iwate.jp",
12659  "yamada.iwate.jp",
12660  "ayagawa.kagawa.jp",
12661  "higashikagawa.kagawa.jp",
12662  "kanonji.kagawa.jp",
12663  "kotohira.kagawa.jp",
12664  "manno.kagawa.jp",
12665  "marugame.kagawa.jp",
12666  "mitoyo.kagawa.jp",
12667  "naoshima.kagawa.jp",
12668  "sanuki.kagawa.jp",
12669  "tadotsu.kagawa.jp",
12670  "takamatsu.kagawa.jp",
12671  "tonosho.kagawa.jp",
12672  "uchinomi.kagawa.jp",
12673  "utazu.kagawa.jp",
12674  "zentsuji.kagawa.jp",
12675  "akune.kagoshima.jp",
12676  "amami.kagoshima.jp",
12677  "hioki.kagoshima.jp",
12678  "isa.kagoshima.jp",
12679  "isen.kagoshima.jp",
12680  "izumi.kagoshima.jp",
12681  "kagoshima.kagoshima.jp",
12682  "kanoya.kagoshima.jp",
12683  "kawanabe.kagoshima.jp",
12684  "kinko.kagoshima.jp",
12685  "kouyama.kagoshima.jp",
12686  "makurazaki.kagoshima.jp",
12687  "matsumoto.kagoshima.jp",
12688  "minamitane.kagoshima.jp",
12689  "nakatane.kagoshima.jp",
12690  "nishinoomote.kagoshima.jp",
12691  "satsumasendai.kagoshima.jp",
12692  "soo.kagoshima.jp",
12693  "tarumizu.kagoshima.jp",
12694  "yusui.kagoshima.jp",
12695  "aikawa.kanagawa.jp",
12696  "atsugi.kanagawa.jp",
12697  "ayase.kanagawa.jp",
12698  "chigasaki.kanagawa.jp",
12699  "ebina.kanagawa.jp",
12700  "fujisawa.kanagawa.jp",
12701  "hadano.kanagawa.jp",
12702  "hakone.kanagawa.jp",
12703  "hiratsuka.kanagawa.jp",
12704  "isehara.kanagawa.jp",
12705  "kaisei.kanagawa.jp",
12706  "kamakura.kanagawa.jp",
12707  "kiyokawa.kanagawa.jp",
12708  "matsuda.kanagawa.jp",
12709  "minamiashigara.kanagawa.jp",
12710  "miura.kanagawa.jp",
12711  "nakai.kanagawa.jp",
12712  "ninomiya.kanagawa.jp",
12713  "odawara.kanagawa.jp",
12714  "oi.kanagawa.jp",
12715  "oiso.kanagawa.jp",
12716  "sagamihara.kanagawa.jp",
12717  "samukawa.kanagawa.jp",
12718  "tsukui.kanagawa.jp",
12719  "yamakita.kanagawa.jp",
12720  "yamato.kanagawa.jp",
12721  "yokosuka.kanagawa.jp",
12722  "yugawara.kanagawa.jp",
12723  "zama.kanagawa.jp",
12724  "zushi.kanagawa.jp",
12725  "aki.kochi.jp",
12726  "geisei.kochi.jp",
12727  "hidaka.kochi.jp",
12728  "higashitsuno.kochi.jp",
12729  "ino.kochi.jp",
12730  "kagami.kochi.jp",
12731  "kami.kochi.jp",
12732  "kitagawa.kochi.jp",
12733  "kochi.kochi.jp",
12734  "mihara.kochi.jp",
12735  "motoyama.kochi.jp",
12736  "muroto.kochi.jp",
12737  "nahari.kochi.jp",
12738  "nakamura.kochi.jp",
12739  "nankoku.kochi.jp",
12740  "nishitosa.kochi.jp",
12741  "niyodogawa.kochi.jp",
12742  "ochi.kochi.jp",
12743  "okawa.kochi.jp",
12744  "otoyo.kochi.jp",
12745  "otsuki.kochi.jp",
12746  "sakawa.kochi.jp",
12747  "sukumo.kochi.jp",
12748  "susaki.kochi.jp",
12749  "tosa.kochi.jp",
12750  "tosashimizu.kochi.jp",
12751  "toyo.kochi.jp",
12752  "tsuno.kochi.jp",
12753  "umaji.kochi.jp",
12754  "yasuda.kochi.jp",
12755  "yusuhara.kochi.jp",
12756  "amakusa.kumamoto.jp",
12757  "arao.kumamoto.jp",
12758  "aso.kumamoto.jp",
12759  "choyo.kumamoto.jp",
12760  "gyokuto.kumamoto.jp",
12761  "kamiamakusa.kumamoto.jp",
12762  "kikuchi.kumamoto.jp",
12763  "kumamoto.kumamoto.jp",
12764  "mashiki.kumamoto.jp",
12765  "mifune.kumamoto.jp",
12766  "minamata.kumamoto.jp",
12767  "minamioguni.kumamoto.jp",
12768  "nagasu.kumamoto.jp",
12769  "nishihara.kumamoto.jp",
12770  "oguni.kumamoto.jp",
12771  "ozu.kumamoto.jp",
12772  "sumoto.kumamoto.jp",
12773  "takamori.kumamoto.jp",
12774  "uki.kumamoto.jp",
12775  "uto.kumamoto.jp",
12776  "yamaga.kumamoto.jp",
12777  "yamato.kumamoto.jp",
12778  "yatsushiro.kumamoto.jp",
12779  "ayabe.kyoto.jp",
12780  "fukuchiyama.kyoto.jp",
12781  "higashiyama.kyoto.jp",
12782  "ide.kyoto.jp",
12783  "ine.kyoto.jp",
12784  "joyo.kyoto.jp",
12785  "kameoka.kyoto.jp",
12786  "kamo.kyoto.jp",
12787  "kita.kyoto.jp",
12788  "kizu.kyoto.jp",
12789  "kumiyama.kyoto.jp",
12790  "kyotamba.kyoto.jp",
12791  "kyotanabe.kyoto.jp",
12792  "kyotango.kyoto.jp",
12793  "maizuru.kyoto.jp",
12794  "minami.kyoto.jp",
12795  "minamiyamashiro.kyoto.jp",
12796  "miyazu.kyoto.jp",
12797  "muko.kyoto.jp",
12798  "nagaokakyo.kyoto.jp",
12799  "nakagyo.kyoto.jp",
12800  "nantan.kyoto.jp",
12801  "oyamazaki.kyoto.jp",
12802  "sakyo.kyoto.jp",
12803  "seika.kyoto.jp",
12804  "tanabe.kyoto.jp",
12805  "uji.kyoto.jp",
12806  "ujitawara.kyoto.jp",
12807  "wazuka.kyoto.jp",
12808  "yamashina.kyoto.jp",
12809  "yawata.kyoto.jp",
12810  "asahi.mie.jp",
12811  "inabe.mie.jp",
12812  "ise.mie.jp",
12813  "kameyama.mie.jp",
12814  "kawagoe.mie.jp",
12815  "kiho.mie.jp",
12816  "kisosaki.mie.jp",
12817  "kiwa.mie.jp",
12818  "komono.mie.jp",
12819  "kumano.mie.jp",
12820  "kuwana.mie.jp",
12821  "matsusaka.mie.jp",
12822  "meiwa.mie.jp",
12823  "mihama.mie.jp",
12824  "minamiise.mie.jp",
12825  "misugi.mie.jp",
12826  "miyama.mie.jp",
12827  "nabari.mie.jp",
12828  "shima.mie.jp",
12829  "suzuka.mie.jp",
12830  "tado.mie.jp",
12831  "taiki.mie.jp",
12832  "taki.mie.jp",
12833  "tamaki.mie.jp",
12834  "toba.mie.jp",
12835  "tsu.mie.jp",
12836  "udono.mie.jp",
12837  "ureshino.mie.jp",
12838  "watarai.mie.jp",
12839  "yokkaichi.mie.jp",
12840  "furukawa.miyagi.jp",
12841  "higashimatsushima.miyagi.jp",
12842  "ishinomaki.miyagi.jp",
12843  "iwanuma.miyagi.jp",
12844  "kakuda.miyagi.jp",
12845  "kami.miyagi.jp",
12846  "kawasaki.miyagi.jp",
12847  "marumori.miyagi.jp",
12848  "matsushima.miyagi.jp",
12849  "minamisanriku.miyagi.jp",
12850  "misato.miyagi.jp",
12851  "murata.miyagi.jp",
12852  "natori.miyagi.jp",
12853  "ogawara.miyagi.jp",
12854  "ohira.miyagi.jp",
12855  "onagawa.miyagi.jp",
12856  "osaki.miyagi.jp",
12857  "rifu.miyagi.jp",
12858  "semine.miyagi.jp",
12859  "shibata.miyagi.jp",
12860  "shichikashuku.miyagi.jp",
12861  "shikama.miyagi.jp",
12862  "shiogama.miyagi.jp",
12863  "shiroishi.miyagi.jp",
12864  "tagajo.miyagi.jp",
12865  "taiwa.miyagi.jp",
12866  "tome.miyagi.jp",
12867  "tomiya.miyagi.jp",
12868  "wakuya.miyagi.jp",
12869  "watari.miyagi.jp",
12870  "yamamoto.miyagi.jp",
12871  "zao.miyagi.jp",
12872  "aya.miyazaki.jp",
12873  "ebino.miyazaki.jp",
12874  "gokase.miyazaki.jp",
12875  "hyuga.miyazaki.jp",
12876  "kadogawa.miyazaki.jp",
12877  "kawaminami.miyazaki.jp",
12878  "kijo.miyazaki.jp",
12879  "kitagawa.miyazaki.jp",
12880  "kitakata.miyazaki.jp",
12881  "kitaura.miyazaki.jp",
12882  "kobayashi.miyazaki.jp",
12883  "kunitomi.miyazaki.jp",
12884  "kushima.miyazaki.jp",
12885  "mimata.miyazaki.jp",
12886  "miyakonojo.miyazaki.jp",
12887  "miyazaki.miyazaki.jp",
12888  "morotsuka.miyazaki.jp",
12889  "nichinan.miyazaki.jp",
12890  "nishimera.miyazaki.jp",
12891  "nobeoka.miyazaki.jp",
12892  "saito.miyazaki.jp",
12893  "shiiba.miyazaki.jp",
12894  "shintomi.miyazaki.jp",
12895  "takaharu.miyazaki.jp",
12896  "takanabe.miyazaki.jp",
12897  "takazaki.miyazaki.jp",
12898  "tsuno.miyazaki.jp",
12899  "achi.nagano.jp",
12900  "agematsu.nagano.jp",
12901  "anan.nagano.jp",
12902  "aoki.nagano.jp",
12903  "asahi.nagano.jp",
12904  "azumino.nagano.jp",
12905  "chikuhoku.nagano.jp",
12906  "chikuma.nagano.jp",
12907  "chino.nagano.jp",
12908  "fujimi.nagano.jp",
12909  "hakuba.nagano.jp",
12910  "hara.nagano.jp",
12911  "hiraya.nagano.jp",
12912  "iida.nagano.jp",
12913  "iijima.nagano.jp",
12914  "iiyama.nagano.jp",
12915  "iizuna.nagano.jp",
12916  "ikeda.nagano.jp",
12917  "ikusaka.nagano.jp",
12918  "ina.nagano.jp",
12919  "karuizawa.nagano.jp",
12920  "kawakami.nagano.jp",
12921  "kiso.nagano.jp",
12922  "kisofukushima.nagano.jp",
12923  "kitaaiki.nagano.jp",
12924  "komagane.nagano.jp",
12925  "komoro.nagano.jp",
12926  "matsukawa.nagano.jp",
12927  "matsumoto.nagano.jp",
12928  "miasa.nagano.jp",
12929  "minamiaiki.nagano.jp",
12930  "minamimaki.nagano.jp",
12931  "minamiminowa.nagano.jp",
12932  "minowa.nagano.jp",
12933  "miyada.nagano.jp",
12934  "miyota.nagano.jp",
12935  "mochizuki.nagano.jp",
12936  "nagano.nagano.jp",
12937  "nagawa.nagano.jp",
12938  "nagiso.nagano.jp",
12939  "nakagawa.nagano.jp",
12940  "nakano.nagano.jp",
12941  "nozawaonsen.nagano.jp",
12942  "obuse.nagano.jp",
12943  "ogawa.nagano.jp",
12944  "okaya.nagano.jp",
12945  "omachi.nagano.jp",
12946  "omi.nagano.jp",
12947  "ookuwa.nagano.jp",
12948  "ooshika.nagano.jp",
12949  "otaki.nagano.jp",
12950  "otari.nagano.jp",
12951  "sakae.nagano.jp",
12952  "sakaki.nagano.jp",
12953  "saku.nagano.jp",
12954  "sakuho.nagano.jp",
12955  "shimosuwa.nagano.jp",
12956  "shinanomachi.nagano.jp",
12957  "shiojiri.nagano.jp",
12958  "suwa.nagano.jp",
12959  "suzaka.nagano.jp",
12960  "takagi.nagano.jp",
12961  "takamori.nagano.jp",
12962  "takayama.nagano.jp",
12963  "tateshina.nagano.jp",
12964  "tatsuno.nagano.jp",
12965  "togakushi.nagano.jp",
12966  "togura.nagano.jp",
12967  "tomi.nagano.jp",
12968  "ueda.nagano.jp",
12969  "wada.nagano.jp",
12970  "yamagata.nagano.jp",
12971  "yamanouchi.nagano.jp",
12972  "yasaka.nagano.jp",
12973  "yasuoka.nagano.jp",
12974  "chijiwa.nagasaki.jp",
12975  "futsu.nagasaki.jp",
12976  "goto.nagasaki.jp",
12977  "hasami.nagasaki.jp",
12978  "hirado.nagasaki.jp",
12979  "iki.nagasaki.jp",
12980  "isahaya.nagasaki.jp",
12981  "kawatana.nagasaki.jp",
12982  "kuchinotsu.nagasaki.jp",
12983  "matsuura.nagasaki.jp",
12984  "nagasaki.nagasaki.jp",
12985  "obama.nagasaki.jp",
12986  "omura.nagasaki.jp",
12987  "oseto.nagasaki.jp",
12988  "saikai.nagasaki.jp",
12989  "sasebo.nagasaki.jp",
12990  "seihi.nagasaki.jp",
12991  "shimabara.nagasaki.jp",
12992  "shinkamigoto.nagasaki.jp",
12993  "togitsu.nagasaki.jp",
12994  "tsushima.nagasaki.jp",
12995  "unzen.nagasaki.jp",
12996  "ando.nara.jp",
12997  "gose.nara.jp",
12998  "heguri.nara.jp",
12999  "higashiyoshino.nara.jp",
13000  "ikaruga.nara.jp",
13001  "ikoma.nara.jp",
13002  "kamikitayama.nara.jp",
13003  "kanmaki.nara.jp",
13004  "kashiba.nara.jp",
13005  "kashihara.nara.jp",
13006  "katsuragi.nara.jp",
13007  "kawai.nara.jp",
13008  "kawakami.nara.jp",
13009  "kawanishi.nara.jp",
13010  "koryo.nara.jp",
13011  "kurotaki.nara.jp",
13012  "mitsue.nara.jp",
13013  "miyake.nara.jp",
13014  "nara.nara.jp",
13015  "nosegawa.nara.jp",
13016  "oji.nara.jp",
13017  "ouda.nara.jp",
13018  "oyodo.nara.jp",
13019  "sakurai.nara.jp",
13020  "sango.nara.jp",
13021  "shimoichi.nara.jp",
13022  "shimokitayama.nara.jp",
13023  "shinjo.nara.jp",
13024  "soni.nara.jp",
13025  "takatori.nara.jp",
13026  "tawaramoto.nara.jp",
13027  "tenkawa.nara.jp",
13028  "tenri.nara.jp",
13029  "uda.nara.jp",
13030  "yamatokoriyama.nara.jp",
13031  "yamatotakada.nara.jp",
13032  "yamazoe.nara.jp",
13033  "yoshino.nara.jp",
13034  "aga.niigata.jp",
13035  "agano.niigata.jp",
13036  "gosen.niigata.jp",
13037  "itoigawa.niigata.jp",
13038  "izumozaki.niigata.jp",
13039  "joetsu.niigata.jp",
13040  "kamo.niigata.jp",
13041  "kariwa.niigata.jp",
13042  "kashiwazaki.niigata.jp",
13043  "minamiuonuma.niigata.jp",
13044  "mitsuke.niigata.jp",
13045  "muika.niigata.jp",
13046  "murakami.niigata.jp",
13047  "myoko.niigata.jp",
13048  "nagaoka.niigata.jp",
13049  "niigata.niigata.jp",
13050  "ojiya.niigata.jp",
13051  "omi.niigata.jp",
13052  "sado.niigata.jp",
13053  "sanjo.niigata.jp",
13054  "seiro.niigata.jp",
13055  "seirou.niigata.jp",
13056  "sekikawa.niigata.jp",
13057  "shibata.niigata.jp",
13058  "tagami.niigata.jp",
13059  "tainai.niigata.jp",
13060  "tochio.niigata.jp",
13061  "tokamachi.niigata.jp",
13062  "tsubame.niigata.jp",
13063  "tsunan.niigata.jp",
13064  "uonuma.niigata.jp",
13065  "yahiko.niigata.jp",
13066  "yoita.niigata.jp",
13067  "yuzawa.niigata.jp",
13068  "beppu.oita.jp",
13069  "bungoono.oita.jp",
13070  "bungotakada.oita.jp",
13071  "hasama.oita.jp",
13072  "hiji.oita.jp",
13073  "himeshima.oita.jp",
13074  "hita.oita.jp",
13075  "kamitsue.oita.jp",
13076  "kokonoe.oita.jp",
13077  "kuju.oita.jp",
13078  "kunisaki.oita.jp",
13079  "kusu.oita.jp",
13080  "oita.oita.jp",
13081  "saiki.oita.jp",
13082  "taketa.oita.jp",
13083  "tsukumi.oita.jp",
13084  "usa.oita.jp",
13085  "usuki.oita.jp",
13086  "yufu.oita.jp",
13087  "akaiwa.okayama.jp",
13088  "asakuchi.okayama.jp",
13089  "bizen.okayama.jp",
13090  "hayashima.okayama.jp",
13091  "ibara.okayama.jp",
13092  "kagamino.okayama.jp",
13093  "kasaoka.okayama.jp",
13094  "kibichuo.okayama.jp",
13095  "kumenan.okayama.jp",
13096  "kurashiki.okayama.jp",
13097  "maniwa.okayama.jp",
13098  "misaki.okayama.jp",
13099  "nagi.okayama.jp",
13100  "niimi.okayama.jp",
13101  "nishiawakura.okayama.jp",
13102  "okayama.okayama.jp",
13103  "satosho.okayama.jp",
13104  "setouchi.okayama.jp",
13105  "shinjo.okayama.jp",
13106  "shoo.okayama.jp",
13107  "soja.okayama.jp",
13108  "takahashi.okayama.jp",
13109  "tamano.okayama.jp",
13110  "tsuyama.okayama.jp",
13111  "wake.okayama.jp",
13112  "yakage.okayama.jp",
13113  "aguni.okinawa.jp",
13114  "ginowan.okinawa.jp",
13115  "ginoza.okinawa.jp",
13116  "gushikami.okinawa.jp",
13117  "haebaru.okinawa.jp",
13118  "higashi.okinawa.jp",
13119  "hirara.okinawa.jp",
13120  "iheya.okinawa.jp",
13121  "ishigaki.okinawa.jp",
13122  "ishikawa.okinawa.jp",
13123  "itoman.okinawa.jp",
13124  "izena.okinawa.jp",
13125  "kadena.okinawa.jp",
13126  "kin.okinawa.jp",
13127  "kitadaito.okinawa.jp",
13128  "kitanakagusuku.okinawa.jp",
13129  "kumejima.okinawa.jp",
13130  "kunigami.okinawa.jp",
13131  "minamidaito.okinawa.jp",
13132  "motobu.okinawa.jp",
13133  "nago.okinawa.jp",
13134  "naha.okinawa.jp",
13135  "nakagusuku.okinawa.jp",
13136  "nakijin.okinawa.jp",
13137  "nanjo.okinawa.jp",
13138  "nishihara.okinawa.jp",
13139  "ogimi.okinawa.jp",
13140  "okinawa.okinawa.jp",
13141  "onna.okinawa.jp",
13142  "shimoji.okinawa.jp",
13143  "taketomi.okinawa.jp",
13144  "tarama.okinawa.jp",
13145  "tokashiki.okinawa.jp",
13146  "tomigusuku.okinawa.jp",
13147  "tonaki.okinawa.jp",
13148  "urasoe.okinawa.jp",
13149  "uruma.okinawa.jp",
13150  "yaese.okinawa.jp",
13151  "yomitan.okinawa.jp",
13152  "yonabaru.okinawa.jp",
13153  "yonaguni.okinawa.jp",
13154  "zamami.okinawa.jp",
13155  "abeno.osaka.jp",
13156  "chihayaakasaka.osaka.jp",
13157  "chuo.osaka.jp",
13158  "daito.osaka.jp",
13159  "fujiidera.osaka.jp",
13160  "habikino.osaka.jp",
13161  "hannan.osaka.jp",
13162  "higashiosaka.osaka.jp",
13163  "higashisumiyoshi.osaka.jp",
13164  "higashiyodogawa.osaka.jp",
13165  "hirakata.osaka.jp",
13166  "ibaraki.osaka.jp",
13167  "ikeda.osaka.jp",
13168  "izumi.osaka.jp",
13169  "izumiotsu.osaka.jp",
13170  "izumisano.osaka.jp",
13171  "kadoma.osaka.jp",
13172  "kaizuka.osaka.jp",
13173  "kanan.osaka.jp",
13174  "kashiwara.osaka.jp",
13175  "katano.osaka.jp",
13176  "kawachinagano.osaka.jp",
13177  "kishiwada.osaka.jp",
13178  "kita.osaka.jp",
13179  "kumatori.osaka.jp",
13180  "matsubara.osaka.jp",
13181  "minato.osaka.jp",
13182  "minoh.osaka.jp",
13183  "misaki.osaka.jp",
13184  "moriguchi.osaka.jp",
13185  "neyagawa.osaka.jp",
13186  "nishi.osaka.jp",
13187  "nose.osaka.jp",
13188  "osakasayama.osaka.jp",
13189  "sakai.osaka.jp",
13190  "sayama.osaka.jp",
13191  "sennan.osaka.jp",
13192  "settsu.osaka.jp",
13193  "shijonawate.osaka.jp",
13194  "shimamoto.osaka.jp",
13195  "suita.osaka.jp",
13196  "tadaoka.osaka.jp",
13197  "taishi.osaka.jp",
13198  "tajiri.osaka.jp",
13199  "takaishi.osaka.jp",
13200  "takatsuki.osaka.jp",
13201  "tondabayashi.osaka.jp",
13202  "toyonaka.osaka.jp",
13203  "toyono.osaka.jp",
13204  "yao.osaka.jp",
13205  "ariake.saga.jp",
13206  "arita.saga.jp",
13207  "fukudomi.saga.jp",
13208  "genkai.saga.jp",
13209  "hamatama.saga.jp",
13210  "hizen.saga.jp",
13211  "imari.saga.jp",
13212  "kamimine.saga.jp",
13213  "kanzaki.saga.jp",
13214  "karatsu.saga.jp",
13215  "kashima.saga.jp",
13216  "kitagata.saga.jp",
13217  "kitahata.saga.jp",
13218  "kiyama.saga.jp",
13219  "kouhoku.saga.jp",
13220  "kyuragi.saga.jp",
13221  "nishiarita.saga.jp",
13222  "ogi.saga.jp",
13223  "omachi.saga.jp",
13224  "ouchi.saga.jp",
13225  "saga.saga.jp",
13226  "shiroishi.saga.jp",
13227  "taku.saga.jp",
13228  "tara.saga.jp",
13229  "tosu.saga.jp",
13230  "yoshinogari.saga.jp",
13231  "arakawa.saitama.jp",
13232  "asaka.saitama.jp",
13233  "chichibu.saitama.jp",
13234  "fujimi.saitama.jp",
13235  "fujimino.saitama.jp",
13236  "fukaya.saitama.jp",
13237  "hanno.saitama.jp",
13238  "hanyu.saitama.jp",
13239  "hasuda.saitama.jp",
13240  "hatogaya.saitama.jp",
13241  "hatoyama.saitama.jp",
13242  "hidaka.saitama.jp",
13243  "higashichichibu.saitama.jp",
13244  "higashimatsuyama.saitama.jp",
13245  "honjo.saitama.jp",
13246  "ina.saitama.jp",
13247  "iruma.saitama.jp",
13248  "iwatsuki.saitama.jp",
13249  "kamiizumi.saitama.jp",
13250  "kamikawa.saitama.jp",
13251  "kamisato.saitama.jp",
13252  "kasukabe.saitama.jp",
13253  "kawagoe.saitama.jp",
13254  "kawaguchi.saitama.jp",
13255  "kawajima.saitama.jp",
13256  "kazo.saitama.jp",
13257  "kitamoto.saitama.jp",
13258  "koshigaya.saitama.jp",
13259  "kounosu.saitama.jp",
13260  "kuki.saitama.jp",
13261  "kumagaya.saitama.jp",
13262  "matsubushi.saitama.jp",
13263  "minano.saitama.jp",
13264  "misato.saitama.jp",
13265  "miyashiro.saitama.jp",
13266  "miyoshi.saitama.jp",
13267  "moroyama.saitama.jp",
13268  "nagatoro.saitama.jp",
13269  "namegawa.saitama.jp",
13270  "niiza.saitama.jp",
13271  "ogano.saitama.jp",
13272  "ogawa.saitama.jp",
13273  "ogose.saitama.jp",
13274  "okegawa.saitama.jp",
13275  "omiya.saitama.jp",
13276  "otaki.saitama.jp",
13277  "ranzan.saitama.jp",
13278  "ryokami.saitama.jp",
13279  "saitama.saitama.jp",
13280  "sakado.saitama.jp",
13281  "satte.saitama.jp",
13282  "sayama.saitama.jp",
13283  "shiki.saitama.jp",
13284  "shiraoka.saitama.jp",
13285  "soka.saitama.jp",
13286  "sugito.saitama.jp",
13287  "toda.saitama.jp",
13288  "tokigawa.saitama.jp",
13289  "tokorozawa.saitama.jp",
13290  "tsurugashima.saitama.jp",
13291  "urawa.saitama.jp",
13292  "warabi.saitama.jp",
13293  "yashio.saitama.jp",
13294  "yokoze.saitama.jp",
13295  "yono.saitama.jp",
13296  "yorii.saitama.jp",
13297  "yoshida.saitama.jp",
13298  "yoshikawa.saitama.jp",
13299  "yoshimi.saitama.jp",
13300  "aisho.shiga.jp",
13301  "gamo.shiga.jp",
13302  "higashiomi.shiga.jp",
13303  "hikone.shiga.jp",
13304  "koka.shiga.jp",
13305  "konan.shiga.jp",
13306  "kosei.shiga.jp",
13307  "koto.shiga.jp",
13308  "kusatsu.shiga.jp",
13309  "maibara.shiga.jp",
13310  "moriyama.shiga.jp",
13311  "nagahama.shiga.jp",
13312  "nishiazai.shiga.jp",
13313  "notogawa.shiga.jp",
13314  "omihachiman.shiga.jp",
13315  "otsu.shiga.jp",
13316  "ritto.shiga.jp",
13317  "ryuoh.shiga.jp",
13318  "takashima.shiga.jp",
13319  "takatsuki.shiga.jp",
13320  "torahime.shiga.jp",
13321  "toyosato.shiga.jp",
13322  "yasu.shiga.jp",
13323  "akagi.shimane.jp",
13324  "ama.shimane.jp",
13325  "gotsu.shimane.jp",
13326  "hamada.shimane.jp",
13327  "higashiizumo.shimane.jp",
13328  "hikawa.shimane.jp",
13329  "hikimi.shimane.jp",
13330  "izumo.shimane.jp",
13331  "kakinoki.shimane.jp",
13332  "masuda.shimane.jp",
13333  "matsue.shimane.jp",
13334  "misato.shimane.jp",
13335  "nishinoshima.shimane.jp",
13336  "ohda.shimane.jp",
13337  "okinoshima.shimane.jp",
13338  "okuizumo.shimane.jp",
13339  "shimane.shimane.jp",
13340  "tamayu.shimane.jp",
13341  "tsuwano.shimane.jp",
13342  "unnan.shimane.jp",
13343  "yakumo.shimane.jp",
13344  "yasugi.shimane.jp",
13345  "yatsuka.shimane.jp",
13346  "arai.shizuoka.jp",
13347  "atami.shizuoka.jp",
13348  "fuji.shizuoka.jp",
13349  "fujieda.shizuoka.jp",
13350  "fujikawa.shizuoka.jp",
13351  "fujinomiya.shizuoka.jp",
13352  "fukuroi.shizuoka.jp",
13353  "gotemba.shizuoka.jp",
13354  "haibara.shizuoka.jp",
13355  "hamamatsu.shizuoka.jp",
13356  "higashiizu.shizuoka.jp",
13357  "ito.shizuoka.jp",
13358  "iwata.shizuoka.jp",
13359  "izu.shizuoka.jp",
13360  "izunokuni.shizuoka.jp",
13361  "kakegawa.shizuoka.jp",
13362  "kannami.shizuoka.jp",
13363  "kawanehon.shizuoka.jp",
13364  "kawazu.shizuoka.jp",
13365  "kikugawa.shizuoka.jp",
13366  "kosai.shizuoka.jp",
13367  "makinohara.shizuoka.jp",
13368  "matsuzaki.shizuoka.jp",
13369  "minamiizu.shizuoka.jp",
13370  "mishima.shizuoka.jp",
13371  "morimachi.shizuoka.jp",
13372  "nishiizu.shizuoka.jp",
13373  "numazu.shizuoka.jp",
13374  "omaezaki.shizuoka.jp",
13375  "shimada.shizuoka.jp",
13376  "shimizu.shizuoka.jp",
13377  "shimoda.shizuoka.jp",
13378  "shizuoka.shizuoka.jp",
13379  "susono.shizuoka.jp",
13380  "yaizu.shizuoka.jp",
13381  "yoshida.shizuoka.jp",
13382  "ashikaga.tochigi.jp",
13383  "bato.tochigi.jp",
13384  "haga.tochigi.jp",
13385  "ichikai.tochigi.jp",
13386  "iwafune.tochigi.jp",
13387  "kaminokawa.tochigi.jp",
13388  "kanuma.tochigi.jp",
13389  "karasuyama.tochigi.jp",
13390  "kuroiso.tochigi.jp",
13391  "mashiko.tochigi.jp",
13392  "mibu.tochigi.jp",
13393  "moka.tochigi.jp",
13394  "motegi.tochigi.jp",
13395  "nasu.tochigi.jp",
13396  "nasushiobara.tochigi.jp",
13397  "nikko.tochigi.jp",
13398  "nishikata.tochigi.jp",
13399  "nogi.tochigi.jp",
13400  "ohira.tochigi.jp",
13401  "ohtawara.tochigi.jp",
13402  "oyama.tochigi.jp",
13403  "sakura.tochigi.jp",
13404  "sano.tochigi.jp",
13405  "shimotsuke.tochigi.jp",
13406  "shioya.tochigi.jp",
13407  "takanezawa.tochigi.jp",
13408  "tochigi.tochigi.jp",
13409  "tsuga.tochigi.jp",
13410  "ujiie.tochigi.jp",
13411  "utsunomiya.tochigi.jp",
13412  "yaita.tochigi.jp",
13413  "aizumi.tokushima.jp",
13414  "anan.tokushima.jp",
13415  "ichiba.tokushima.jp",
13416  "itano.tokushima.jp",
13417  "kainan.tokushima.jp",
13418  "komatsushima.tokushima.jp",
13419  "matsushige.tokushima.jp",
13420  "mima.tokushima.jp",
13421  "minami.tokushima.jp",
13422  "miyoshi.tokushima.jp",
13423  "mugi.tokushima.jp",
13424  "nakagawa.tokushima.jp",
13425  "naruto.tokushima.jp",
13426  "sanagochi.tokushima.jp",
13427  "shishikui.tokushima.jp",
13428  "tokushima.tokushima.jp",
13429  "wajiki.tokushima.jp",
13430  "adachi.tokyo.jp",
13431  "akiruno.tokyo.jp",
13432  "akishima.tokyo.jp",
13433  "aogashima.tokyo.jp",
13434  "arakawa.tokyo.jp",
13435  "bunkyo.tokyo.jp",
13436  "chiyoda.tokyo.jp",
13437  "chofu.tokyo.jp",
13438  "chuo.tokyo.jp",
13439  "edogawa.tokyo.jp",
13440  "fuchu.tokyo.jp",
13441  "fussa.tokyo.jp",
13442  "hachijo.tokyo.jp",
13443  "hachioji.tokyo.jp",
13444  "hamura.tokyo.jp",
13445  "higashikurume.tokyo.jp",
13446  "higashimurayama.tokyo.jp",
13447  "higashiyamato.tokyo.jp",
13448  "hino.tokyo.jp",
13449  "hinode.tokyo.jp",
13450  "hinohara.tokyo.jp",
13451  "inagi.tokyo.jp",
13452  "itabashi.tokyo.jp",
13453  "katsushika.tokyo.jp",
13454  "kita.tokyo.jp",
13455  "kiyose.tokyo.jp",
13456  "kodaira.tokyo.jp",
13457  "koganei.tokyo.jp",
13458  "kokubunji.tokyo.jp",
13459  "komae.tokyo.jp",
13460  "koto.tokyo.jp",
13461  "kouzushima.tokyo.jp",
13462  "kunitachi.tokyo.jp",
13463  "machida.tokyo.jp",
13464  "meguro.tokyo.jp",
13465  "minato.tokyo.jp",
13466  "mitaka.tokyo.jp",
13467  "mizuho.tokyo.jp",
13468  "musashimurayama.tokyo.jp",
13469  "musashino.tokyo.jp",
13470  "nakano.tokyo.jp",
13471  "nerima.tokyo.jp",
13472  "ogasawara.tokyo.jp",
13473  "okutama.tokyo.jp",
13474  "ome.tokyo.jp",
13475  "oshima.tokyo.jp",
13476  "ota.tokyo.jp",
13477  "setagaya.tokyo.jp",
13478  "shibuya.tokyo.jp",
13479  "shinagawa.tokyo.jp",
13480  "shinjuku.tokyo.jp",
13481  "suginami.tokyo.jp",
13482  "sumida.tokyo.jp",
13483  "tachikawa.tokyo.jp",
13484  "taito.tokyo.jp",
13485  "tama.tokyo.jp",
13486  "toshima.tokyo.jp",
13487  "chizu.tottori.jp",
13488  "hino.tottori.jp",
13489  "kawahara.tottori.jp",
13490  "koge.tottori.jp",
13491  "kotoura.tottori.jp",
13492  "misasa.tottori.jp",
13493  "nanbu.tottori.jp",
13494  "nichinan.tottori.jp",
13495  "sakaiminato.tottori.jp",
13496  "tottori.tottori.jp",
13497  "wakasa.tottori.jp",
13498  "yazu.tottori.jp",
13499  "yonago.tottori.jp",
13500  "asahi.toyama.jp",
13501  "fuchu.toyama.jp",
13502  "fukumitsu.toyama.jp",
13503  "funahashi.toyama.jp",
13504  "himi.toyama.jp",
13505  "imizu.toyama.jp",
13506  "inami.toyama.jp",
13507  "johana.toyama.jp",
13508  "kamiichi.toyama.jp",
13509  "kurobe.toyama.jp",
13510  "nakaniikawa.toyama.jp",
13511  "namerikawa.toyama.jp",
13512  "nanto.toyama.jp",
13513  "nyuzen.toyama.jp",
13514  "oyabe.toyama.jp",
13515  "taira.toyama.jp",
13516  "takaoka.toyama.jp",
13517  "tateyama.toyama.jp",
13518  "toga.toyama.jp",
13519  "tonami.toyama.jp",
13520  "toyama.toyama.jp",
13521  "unazuki.toyama.jp",
13522  "uozu.toyama.jp",
13523  "yamada.toyama.jp",
13524  "arida.wakayama.jp",
13525  "aridagawa.wakayama.jp",
13526  "gobo.wakayama.jp",
13527  "hashimoto.wakayama.jp",
13528  "hidaka.wakayama.jp",
13529  "hirogawa.wakayama.jp",
13530  "inami.wakayama.jp",
13531  "iwade.wakayama.jp",
13532  "kainan.wakayama.jp",
13533  "kamitonda.wakayama.jp",
13534  "katsuragi.wakayama.jp",
13535  "kimino.wakayama.jp",
13536  "kinokawa.wakayama.jp",
13537  "kitayama.wakayama.jp",
13538  "koya.wakayama.jp",
13539  "koza.wakayama.jp",
13540  "kozagawa.wakayama.jp",
13541  "kudoyama.wakayama.jp",
13542  "kushimoto.wakayama.jp",
13543  "mihama.wakayama.jp",
13544  "misato.wakayama.jp",
13545  "nachikatsuura.wakayama.jp",
13546  "shingu.wakayama.jp",
13547  "shirahama.wakayama.jp",
13548  "taiji.wakayama.jp",
13549  "tanabe.wakayama.jp",
13550  "wakayama.wakayama.jp",
13551  "yuasa.wakayama.jp",
13552  "yura.wakayama.jp",
13553  "asahi.yamagata.jp",
13554  "funagata.yamagata.jp",
13555  "higashine.yamagata.jp",
13556  "iide.yamagata.jp",
13557  "kahoku.yamagata.jp",
13558  "kaminoyama.yamagata.jp",
13559  "kaneyama.yamagata.jp",
13560  "kawanishi.yamagata.jp",
13561  "mamurogawa.yamagata.jp",
13562  "mikawa.yamagata.jp",
13563  "murayama.yamagata.jp",
13564  "nagai.yamagata.jp",
13565  "nakayama.yamagata.jp",
13566  "nanyo.yamagata.jp",
13567  "nishikawa.yamagata.jp",
13568  "obanazawa.yamagata.jp",
13569  "oe.yamagata.jp",
13570  "oguni.yamagata.jp",
13571  "ohkura.yamagata.jp",
13572  "oishida.yamagata.jp",
13573  "sagae.yamagata.jp",
13574  "sakata.yamagata.jp",
13575  "sakegawa.yamagata.jp",
13576  "shinjo.yamagata.jp",
13577  "shirataka.yamagata.jp",
13578  "shonai.yamagata.jp",
13579  "takahata.yamagata.jp",
13580  "tendo.yamagata.jp",
13581  "tozawa.yamagata.jp",
13582  "tsuruoka.yamagata.jp",
13583  "yamagata.yamagata.jp",
13584  "yamanobe.yamagata.jp",
13585  "yonezawa.yamagata.jp",
13586  "yuza.yamagata.jp",
13587  "abu.yamaguchi.jp",
13588  "hagi.yamaguchi.jp",
13589  "hikari.yamaguchi.jp",
13590  "hofu.yamaguchi.jp",
13591  "iwakuni.yamaguchi.jp",
13592  "kudamatsu.yamaguchi.jp",
13593  "mitou.yamaguchi.jp",
13594  "nagato.yamaguchi.jp",
13595  "oshima.yamaguchi.jp",
13596  "shimonoseki.yamaguchi.jp",
13597  "shunan.yamaguchi.jp",
13598  "tabuse.yamaguchi.jp",
13599  "tokuyama.yamaguchi.jp",
13600  "toyota.yamaguchi.jp",
13601  "ube.yamaguchi.jp",
13602  "yuu.yamaguchi.jp",
13603  "chuo.yamanashi.jp",
13604  "doshi.yamanashi.jp",
13605  "fuefuki.yamanashi.jp",
13606  "fujikawa.yamanashi.jp",
13607  "fujikawaguchiko.yamanashi.jp",
13608  "fujiyoshida.yamanashi.jp",
13609  "hayakawa.yamanashi.jp",
13610  "hokuto.yamanashi.jp",
13611  "ichikawamisato.yamanashi.jp",
13612  "kai.yamanashi.jp",
13613  "kofu.yamanashi.jp",
13614  "koshu.yamanashi.jp",
13615  "kosuge.yamanashi.jp",
13616  "minami-alps.yamanashi.jp",
13617  "minobu.yamanashi.jp",
13618  "nakamichi.yamanashi.jp",
13619  "nanbu.yamanashi.jp",
13620  "narusawa.yamanashi.jp",
13621  "nirasaki.yamanashi.jp",
13622  "nishikatsura.yamanashi.jp",
13623  "oshino.yamanashi.jp",
13624  "otsuki.yamanashi.jp",
13625  "showa.yamanashi.jp",
13626  "tabayama.yamanashi.jp",
13627  "tsuru.yamanashi.jp",
13628  "uenohara.yamanashi.jp",
13629  "yamanakako.yamanashi.jp",
13630  "yamanashi.yamanashi.jp",
13631  "ke",
13632  "ac.ke",
13633  "co.ke",
13634  "go.ke",
13635  "info.ke",
13636  "me.ke",
13637  "mobi.ke",
13638  "ne.ke",
13639  "or.ke",
13640  "sc.ke",
13641  "kg",
13642  "com.kg",
13643  "edu.kg",
13644  "gov.kg",
13645  "mil.kg",
13646  "net.kg",
13647  "org.kg",
13648  "*.kh",
13649  "ki",
13650  "biz.ki",
13651  "com.ki",
13652  "edu.ki",
13653  "gov.ki",
13654  "info.ki",
13655  "net.ki",
13656  "org.ki",
13657  "km",
13658  "ass.km",
13659  "com.km",
13660  "edu.km",
13661  "gov.km",
13662  "mil.km",
13663  "nom.km",
13664  "org.km",
13665  "prd.km",
13666  "tm.km",
13667  "asso.km",
13668  "coop.km",
13669  "gouv.km",
13670  "medecin.km",
13671  "notaires.km",
13672  "pharmaciens.km",
13673  "presse.km",
13674  "veterinaire.km",
13675  "kn",
13676  "edu.kn",
13677  "gov.kn",
13678  "net.kn",
13679  "org.kn",
13680  "kp",
13681  "com.kp",
13682  "edu.kp",
13683  "gov.kp",
13684  "org.kp",
13685  "rep.kp",
13686  "tra.kp",
13687  "kr",
13688  "ac.kr",
13689  "co.kr",
13690  "es.kr",
13691  "go.kr",
13692  "hs.kr",
13693  "kg.kr",
13694  "mil.kr",
13695  "ms.kr",
13696  "ne.kr",
13697  "or.kr",
13698  "pe.kr",
13699  "re.kr",
13700  "sc.kr",
13701  "busan.kr",
13702  "chungbuk.kr",
13703  "chungnam.kr",
13704  "daegu.kr",
13705  "daejeon.kr",
13706  "gangwon.kr",
13707  "gwangju.kr",
13708  "gyeongbuk.kr",
13709  "gyeonggi.kr",
13710  "gyeongnam.kr",
13711  "incheon.kr",
13712  "jeju.kr",
13713  "jeonbuk.kr",
13714  "jeonnam.kr",
13715  "seoul.kr",
13716  "ulsan.kr",
13717  "kw",
13718  "com.kw",
13719  "edu.kw",
13720  "emb.kw",
13721  "gov.kw",
13722  "ind.kw",
13723  "net.kw",
13724  "org.kw",
13725  "ky",
13726  "com.ky",
13727  "edu.ky",
13728  "net.ky",
13729  "org.ky",
13730  "kz",
13731  "com.kz",
13732  "edu.kz",
13733  "gov.kz",
13734  "mil.kz",
13735  "net.kz",
13736  "org.kz",
13737  "la",
13738  "com.la",
13739  "edu.la",
13740  "gov.la",
13741  "info.la",
13742  "int.la",
13743  "net.la",
13744  "org.la",
13745  "per.la",
13746  "lb",
13747  "com.lb",
13748  "edu.lb",
13749  "gov.lb",
13750  "net.lb",
13751  "org.lb",
13752  "lc",
13753  "co.lc",
13754  "com.lc",
13755  "edu.lc",
13756  "gov.lc",
13757  "net.lc",
13758  "org.lc",
13759  "li",
13760  "lk",
13761  "ac.lk",
13762  "assn.lk",
13763  "com.lk",
13764  "edu.lk",
13765  "gov.lk",
13766  "grp.lk",
13767  "hotel.lk",
13768  "int.lk",
13769  "ltd.lk",
13770  "net.lk",
13771  "ngo.lk",
13772  "org.lk",
13773  "sch.lk",
13774  "soc.lk",
13775  "web.lk",
13776  "lr",
13777  "com.lr",
13778  "edu.lr",
13779  "gov.lr",
13780  "net.lr",
13781  "org.lr",
13782  "ls",
13783  "ac.ls",
13784  "biz.ls",
13785  "co.ls",
13786  "edu.ls",
13787  "gov.ls",
13788  "info.ls",
13789  "net.ls",
13790  "org.ls",
13791  "sc.ls",
13792  "lt",
13793  "gov.lt",
13794  "lu",
13795  "lv",
13796  "asn.lv",
13797  "com.lv",
13798  "conf.lv",
13799  "edu.lv",
13800  "gov.lv",
13801  "id.lv",
13802  "mil.lv",
13803  "net.lv",
13804  "org.lv",
13805  "ly",
13806  "com.ly",
13807  "edu.ly",
13808  "gov.ly",
13809  "id.ly",
13810  "med.ly",
13811  "net.ly",
13812  "org.ly",
13813  "plc.ly",
13814  "sch.ly",
13815  "ma",
13816  "ac.ma",
13817  "co.ma",
13818  "gov.ma",
13819  "net.ma",
13820  "org.ma",
13821  "press.ma",
13822  "mc",
13823  "asso.mc",
13824  "tm.mc",
13825  "md",
13826  "me",
13827  "ac.me",
13828  "co.me",
13829  "edu.me",
13830  "gov.me",
13831  "its.me",
13832  "net.me",
13833  "org.me",
13834  "priv.me",
13835  "mg",
13836  "co.mg",
13837  "com.mg",
13838  "edu.mg",
13839  "gov.mg",
13840  "mil.mg",
13841  "nom.mg",
13842  "org.mg",
13843  "prd.mg",
13844  "mh",
13845  "mil",
13846  "mk",
13847  "com.mk",
13848  "edu.mk",
13849  "gov.mk",
13850  "inf.mk",
13851  "name.mk",
13852  "net.mk",
13853  "org.mk",
13854  "ml",
13855  "com.ml",
13856  "edu.ml",
13857  "gouv.ml",
13858  "gov.ml",
13859  "net.ml",
13860  "org.ml",
13861  "presse.ml",
13862  "*.mm",
13863  "mn",
13864  "edu.mn",
13865  "gov.mn",
13866  "org.mn",
13867  "mo",
13868  "com.mo",
13869  "edu.mo",
13870  "gov.mo",
13871  "net.mo",
13872  "org.mo",
13873  "mobi",
13874  "mp",
13875  "mq",
13876  "mr",
13877  "gov.mr",
13878  "ms",
13879  "com.ms",
13880  "edu.ms",
13881  "gov.ms",
13882  "net.ms",
13883  "org.ms",
13884  "mt",
13885  "com.mt",
13886  "edu.mt",
13887  "net.mt",
13888  "org.mt",
13889  "mu",
13890  "ac.mu",
13891  "co.mu",
13892  "com.mu",
13893  "gov.mu",
13894  "net.mu",
13895  "or.mu",
13896  "org.mu",
13897  "museum",
13898  "mv",
13899  "aero.mv",
13900  "biz.mv",
13901  "com.mv",
13902  "coop.mv",
13903  "edu.mv",
13904  "gov.mv",
13905  "info.mv",
13906  "int.mv",
13907  "mil.mv",
13908  "museum.mv",
13909  "name.mv",
13910  "net.mv",
13911  "org.mv",
13912  "pro.mv",
13913  "mw",
13914  "ac.mw",
13915  "biz.mw",
13916  "co.mw",
13917  "com.mw",
13918  "coop.mw",
13919  "edu.mw",
13920  "gov.mw",
13921  "int.mw",
13922  "net.mw",
13923  "org.mw",
13924  "mx",
13925  "com.mx",
13926  "edu.mx",
13927  "gob.mx",
13928  "net.mx",
13929  "org.mx",
13930  "my",
13931  "biz.my",
13932  "com.my",
13933  "edu.my",
13934  "gov.my",
13935  "mil.my",
13936  "name.my",
13937  "net.my",
13938  "org.my",
13939  "mz",
13940  "ac.mz",
13941  "adv.mz",
13942  "co.mz",
13943  "edu.mz",
13944  "gov.mz",
13945  "mil.mz",
13946  "net.mz",
13947  "org.mz",
13948  "na",
13949  "alt.na",
13950  "co.na",
13951  "com.na",
13952  "gov.na",
13953  "net.na",
13954  "org.na",
13955  "name",
13956  "nc",
13957  "asso.nc",
13958  "nom.nc",
13959  "ne",
13960  "net",
13961  "nf",
13962  "arts.nf",
13963  "com.nf",
13964  "firm.nf",
13965  "info.nf",
13966  "net.nf",
13967  "other.nf",
13968  "per.nf",
13969  "rec.nf",
13970  "store.nf",
13971  "web.nf",
13972  "ng",
13973  "com.ng",
13974  "edu.ng",
13975  "gov.ng",
13976  "i.ng",
13977  "mil.ng",
13978  "mobi.ng",
13979  "name.ng",
13980  "net.ng",
13981  "org.ng",
13982  "sch.ng",
13983  "ni",
13984  "ac.ni",
13985  "biz.ni",
13986  "co.ni",
13987  "com.ni",
13988  "edu.ni",
13989  "gob.ni",
13990  "in.ni",
13991  "info.ni",
13992  "int.ni",
13993  "mil.ni",
13994  "net.ni",
13995  "nom.ni",
13996  "org.ni",
13997  "web.ni",
13998  "nl",
13999  "no",
14000  "fhs.no",
14001  "folkebibl.no",
14002  "fylkesbibl.no",
14003  "idrett.no",
14004  "museum.no",
14005  "priv.no",
14006  "vgs.no",
14007  "dep.no",
14008  "herad.no",
14009  "kommune.no",
14010  "mil.no",
14011  "stat.no",
14012  "aa.no",
14013  "ah.no",
14014  "bu.no",
14015  "fm.no",
14016  "hl.no",
14017  "hm.no",
14018  "jan-mayen.no",
14019  "mr.no",
14020  "nl.no",
14021  "nt.no",
14022  "of.no",
14023  "ol.no",
14024  "oslo.no",
14025  "rl.no",
14026  "sf.no",
14027  "st.no",
14028  "svalbard.no",
14029  "tm.no",
14030  "tr.no",
14031  "va.no",
14032  "vf.no",
14033  "gs.aa.no",
14034  "gs.ah.no",
14035  "gs.bu.no",
14036  "gs.fm.no",
14037  "gs.hl.no",
14038  "gs.hm.no",
14039  "gs.jan-mayen.no",
14040  "gs.mr.no",
14041  "gs.nl.no",
14042  "gs.nt.no",
14043  "gs.of.no",
14044  "gs.ol.no",
14045  "gs.oslo.no",
14046  "gs.rl.no",
14047  "gs.sf.no",
14048  "gs.st.no",
14049  "gs.svalbard.no",
14050  "gs.tm.no",
14051  "gs.tr.no",
14052  "gs.va.no",
14053  "gs.vf.no",
14054  "akrehamn.no",
14055  "Ã¥krehamn.no",
14056  "algard.no",
14057  "ålgård.no",
14058  "arna.no",
14059  "bronnoysund.no",
14060  "brønnøysund.no",
14061  "brumunddal.no",
14062  "bryne.no",
14063  "drobak.no",
14064  "drøbak.no",
14065  "egersund.no",
14066  "fetsund.no",
14067  "floro.no",
14068  "florø.no",
14069  "fredrikstad.no",
14070  "hokksund.no",
14071  "honefoss.no",
14072  "hønefoss.no",
14073  "jessheim.no",
14074  "jorpeland.no",
14075  "jørpeland.no",
14076  "kirkenes.no",
14077  "kopervik.no",
14078  "krokstadelva.no",
14079  "langevag.no",
14080  "langevåg.no",
14081  "leirvik.no",
14082  "mjondalen.no",
14083  "mjøndalen.no",
14084  "mo-i-rana.no",
14085  "mosjoen.no",
14086  "mosjøen.no",
14087  "nesoddtangen.no",
14088  "orkanger.no",
14089  "osoyro.no",
14090  "osøyro.no",
14091  "raholt.no",
14092  "råholt.no",
14093  "sandnessjoen.no",
14094  "sandnessjøen.no",
14095  "skedsmokorset.no",
14096  "slattum.no",
14097  "spjelkavik.no",
14098  "stathelle.no",
14099  "stavern.no",
14100  "stjordalshalsen.no",
14101  "stjørdalshalsen.no",
14102  "tananger.no",
14103  "tranby.no",
14104  "vossevangen.no",
14105  "aarborte.no",
14106  "aejrie.no",
14107  "afjord.no",
14108  "Ã¥fjord.no",
14109  "agdenes.no",
14110  "nes.akershus.no",
14111  "aknoluokta.no",
14112  "ákŋoluokta.no",
14113  "al.no",
14114  "Ã¥l.no",
14115  "alaheadju.no",
14116  "álaheadju.no",
14117  "alesund.no",
14118  "Ã¥lesund.no",
14119  "alstahaug.no",
14120  "alta.no",
14121  "áltá.no",
14122  "alvdal.no",
14123  "amli.no",
14124  "Ã¥mli.no",
14125  "amot.no",
14126  "Ã¥mot.no",
14127  "andasuolo.no",
14128  "andebu.no",
14129  "andoy.no",
14130  "andøy.no",
14131  "ardal.no",
14132  "Ã¥rdal.no",
14133  "aremark.no",
14134  "arendal.no",
14135  "Ã¥s.no",
14136  "aseral.no",
14137  "Ã¥seral.no",
14138  "asker.no",
14139  "askim.no",
14140  "askoy.no",
14141  "askøy.no",
14142  "askvoll.no",
14143  "asnes.no",
14144  "Ã¥snes.no",
14145  "audnedaln.no",
14146  "aukra.no",
14147  "aure.no",
14148  "aurland.no",
14149  "aurskog-holand.no",
14150  "aurskog-høland.no",
14151  "austevoll.no",
14152  "austrheim.no",
14153  "averoy.no",
14154  "averøy.no",
14155  "badaddja.no",
14156  "bådåddjå.no",
14157  "bærum.no",
14158  "bahcavuotna.no",
14159  "báhcavuotna.no",
14160  "bahccavuotna.no",
14161  "báhccavuotna.no",
14162  "baidar.no",
14163  "báidár.no",
14164  "bajddar.no",
14165  "bájddar.no",
14166  "balat.no",
14167  "bálát.no",
14168  "balestrand.no",
14169  "ballangen.no",
14170  "balsfjord.no",
14171  "bamble.no",
14172  "bardu.no",
14173  "barum.no",
14174  "batsfjord.no",
14175  "båtsfjord.no",
14176  "bearalvahki.no",
14177  "bearalváhki.no",
14178  "beardu.no",
14179  "beiarn.no",
14180  "berg.no",
14181  "bergen.no",
14182  "berlevag.no",
14183  "berlevåg.no",
14184  "bievat.no",
14185  "bievát.no",
14186  "bindal.no",
14187  "birkenes.no",
14188  "bjarkoy.no",
14189  "bjarkøy.no",
14190  "bjerkreim.no",
14191  "bjugn.no",
14192  "bodo.no",
14193  "bodø.no",
14194  "bokn.no",
14195  "bomlo.no",
14196  "bømlo.no",
14197  "bremanger.no",
14198  "bronnoy.no",
14199  "brønnøy.no",
14200  "budejju.no",
14201  "nes.buskerud.no",
14202  "bygland.no",
14203  "bykle.no",
14204  "cahcesuolo.no",
14205  "čáhcesuolo.no",
14206  "davvenjarga.no",
14207  "davvenjárga.no",
14208  "davvesiida.no",
14209  "deatnu.no",
14210  "dielddanuorri.no",
14211  "divtasvuodna.no",
14212  "divttasvuotna.no",
14213  "donna.no",
14214  "dønna.no",
14215  "dovre.no",
14216  "drammen.no",
14217  "drangedal.no",
14218  "dyroy.no",
14219  "dyrøy.no",
14220  "eid.no",
14221  "eidfjord.no",
14222  "eidsberg.no",
14223  "eidskog.no",
14224  "eidsvoll.no",
14225  "eigersund.no",
14226  "elverum.no",
14227  "enebakk.no",
14228  "engerdal.no",
14229  "etne.no",
14230  "etnedal.no",
14231  "evenassi.no",
14232  "evenášši.no",
14233  "evenes.no",
14234  "evje-og-hornnes.no",
14235  "farsund.no",
14236  "fauske.no",
14237  "fedje.no",
14238  "fet.no",
14239  "finnoy.no",
14240  "finnøy.no",
14241  "fitjar.no",
14242  "fjaler.no",
14243  "fjell.no",
14244  "fla.no",
14245  "flå.no",
14246  "flakstad.no",
14247  "flatanger.no",
14248  "flekkefjord.no",
14249  "flesberg.no",
14250  "flora.no",
14251  "folldal.no",
14252  "forde.no",
14253  "førde.no",
14254  "forsand.no",
14255  "fosnes.no",
14256  "fræna.no",
14257  "frana.no",
14258  "frei.no",
14259  "frogn.no",
14260  "froland.no",
14261  "frosta.no",
14262  "froya.no",
14263  "frøya.no",
14264  "fuoisku.no",
14265  "fuossko.no",
14266  "fusa.no",
14267  "fyresdal.no",
14268  "gaivuotna.no",
14269  "gáivuotna.no",
14270  "galsa.no",
14271  "gálsá.no",
14272  "gamvik.no",
14273  "gangaviika.no",
14274  "gáŋgaviika.no",
14275  "gaular.no",
14276  "gausdal.no",
14277  "giehtavuoatna.no",
14278  "gildeskal.no",
14279  "gildeskål.no",
14280  "giske.no",
14281  "gjemnes.no",
14282  "gjerdrum.no",
14283  "gjerstad.no",
14284  "gjesdal.no",
14285  "gjovik.no",
14286  "gjøvik.no",
14287  "gloppen.no",
14288  "gol.no",
14289  "gran.no",
14290  "grane.no",
14291  "granvin.no",
14292  "gratangen.no",
14293  "grimstad.no",
14294  "grong.no",
14295  "grue.no",
14296  "gulen.no",
14297  "guovdageaidnu.no",
14298  "ha.no",
14299  "hå.no",
14300  "habmer.no",
14301  "hábmer.no",
14302  "hadsel.no",
14303  "hægebostad.no",
14304  "hagebostad.no",
14305  "halden.no",
14306  "halsa.no",
14307  "hamar.no",
14308  "hamaroy.no",
14309  "hammarfeasta.no",
14310  "hámmárfeasta.no",
14311  "hammerfest.no",
14312  "hapmir.no",
14313  "hápmir.no",
14314  "haram.no",
14315  "hareid.no",
14316  "harstad.no",
14317  "hasvik.no",
14318  "hattfjelldal.no",
14319  "haugesund.no",
14320  "os.hedmark.no",
14321  "valer.hedmark.no",
14322  "våler.hedmark.no",
14323  "hemne.no",
14324  "hemnes.no",
14325  "hemsedal.no",
14326  "hitra.no",
14327  "hjartdal.no",
14328  "hjelmeland.no",
14329  "hobol.no",
14330  "hobøl.no",
14331  "hof.no",
14332  "hol.no",
14333  "hole.no",
14334  "holmestrand.no",
14335  "holtalen.no",
14336  "holtålen.no",
14337  "os.hordaland.no",
14338  "hornindal.no",
14339  "horten.no",
14340  "hoyanger.no",
14341  "høyanger.no",
14342  "hoylandet.no",
14343  "høylandet.no",
14344  "hurdal.no",
14345  "hurum.no",
14346  "hvaler.no",
14347  "hyllestad.no",
14348  "ibestad.no",
14349  "inderoy.no",
14350  "inderøy.no",
14351  "iveland.no",
14352  "ivgu.no",
14353  "jevnaker.no",
14354  "jolster.no",
14355  "jølster.no",
14356  "jondal.no",
14357  "kafjord.no",
14358  "kåfjord.no",
14359  "karasjohka.no",
14360  "kárášjohka.no",
14361  "karasjok.no",
14362  "karlsoy.no",
14363  "karmoy.no",
14364  "karmøy.no",
14365  "kautokeino.no",
14366  "klabu.no",
14367  "klæbu.no",
14368  "klepp.no",
14369  "kongsberg.no",
14370  "kongsvinger.no",
14371  "kraanghke.no",
14372  "kråanghke.no",
14373  "kragero.no",
14374  "kragerø.no",
14375  "kristiansand.no",
14376  "kristiansund.no",
14377  "krodsherad.no",
14378  "krødsherad.no",
14379  "kvæfjord.no",
14380  "kvænangen.no",
14381  "kvafjord.no",
14382  "kvalsund.no",
14383  "kvam.no",
14384  "kvanangen.no",
14385  "kvinesdal.no",
14386  "kvinnherad.no",
14387  "kviteseid.no",
14388  "kvitsoy.no",
14389  "kvitsøy.no",
14390  "laakesvuemie.no",
14391  "lærdal.no",
14392  "lahppi.no",
14393  "láhppi.no",
14394  "lardal.no",
14395  "larvik.no",
14396  "lavagis.no",
14397  "lavangen.no",
14398  "leangaviika.no",
14399  "leaŋgaviika.no",
14400  "lebesby.no",
14401  "leikanger.no",
14402  "leirfjord.no",
14403  "leka.no",
14404  "leksvik.no",
14405  "lenvik.no",
14406  "lerdal.no",
14407  "lesja.no",
14408  "levanger.no",
14409  "lier.no",
14410  "lierne.no",
14411  "lillehammer.no",
14412  "lillesand.no",
14413  "lindas.no",
14414  "lindås.no",
14415  "lindesnes.no",
14416  "loabat.no",
14417  "loabát.no",
14418  "lodingen.no",
14419  "lødingen.no",
14420  "lom.no",
14421  "loppa.no",
14422  "lorenskog.no",
14423  "lørenskog.no",
14424  "loten.no",
14425  "løten.no",
14426  "lund.no",
14427  "lunner.no",
14428  "luroy.no",
14429  "lurøy.no",
14430  "luster.no",
14431  "lyngdal.no",
14432  "lyngen.no",
14433  "malatvuopmi.no",
14434  "málatvuopmi.no",
14435  "malselv.no",
14436  "målselv.no",
14437  "malvik.no",
14438  "mandal.no",
14439  "marker.no",
14440  "marnardal.no",
14441  "masfjorden.no",
14442  "masoy.no",
14443  "måsøy.no",
14444  "matta-varjjat.no",
14445  "mátta-várjjat.no",
14446  "meland.no",
14447  "meldal.no",
14448  "melhus.no",
14449  "meloy.no",
14450  "meløy.no",
14451  "meraker.no",
14452  "meråker.no",
14453  "midsund.no",
14454  "midtre-gauldal.no",
14455  "moareke.no",
14456  "moåreke.no",
14457  "modalen.no",
14458  "modum.no",
14459  "molde.no",
14460  "heroy.more-og-romsdal.no",
14461  "sande.more-og-romsdal.no",
14462  "herøy.møre-og-romsdal.no",
14463  "sande.møre-og-romsdal.no",
14464  "moskenes.no",
14465  "moss.no",
14466  "mosvik.no",
14467  "muosat.no",
14468  "muosát.no",
14469  "naamesjevuemie.no",
14470  "nååmesjevuemie.no",
14471  "nærøy.no",
14472  "namdalseid.no",
14473  "namsos.no",
14474  "namsskogan.no",
14475  "nannestad.no",
14476  "naroy.no",
14477  "narviika.no",
14478  "narvik.no",
14479  "naustdal.no",
14480  "navuotna.no",
14481  "návuotna.no",
14482  "nedre-eiker.no",
14483  "nesna.no",
14484  "nesodden.no",
14485  "nesseby.no",
14486  "nesset.no",
14487  "nissedal.no",
14488  "nittedal.no",
14489  "nord-aurdal.no",
14490  "nord-fron.no",
14491  "nord-odal.no",
14492  "norddal.no",
14493  "nordkapp.no",
14494  "bo.nordland.no",
14495  "bø.nordland.no",
14496  "heroy.nordland.no",
14497  "herøy.nordland.no",
14498  "nordre-land.no",
14499  "nordreisa.no",
14500  "nore-og-uvdal.no",
14501  "notodden.no",
14502  "notteroy.no",
14503  "nøtterøy.no",
14504  "odda.no",
14505  "oksnes.no",
14506  "øksnes.no",
14507  "omasvuotna.no",
14508  "oppdal.no",
14509  "oppegard.no",
14510  "oppegård.no",
14511  "orkdal.no",
14512  "orland.no",
14513  "ørland.no",
14514  "orskog.no",
14515  "ørskog.no",
14516  "orsta.no",
14517  "ørsta.no",
14518  "osen.no",
14519  "osteroy.no",
14520  "osterøy.no",
14521  "valer.ostfold.no",
14522  "våler.østfold.no",
14523  "ostre-toten.no",
14524  "østre-toten.no",
14525  "overhalla.no",
14526  "ovre-eiker.no",
14527  "øvre-eiker.no",
14528  "oyer.no",
14529  "øyer.no",
14530  "oygarden.no",
14531  "øygarden.no",
14532  "oystre-slidre.no",
14533  "øystre-slidre.no",
14534  "porsanger.no",
14535  "porsangu.no",
14536  "porsáŋgu.no",
14537  "porsgrunn.no",
14538  "rade.no",
14539  "råde.no",
14540  "radoy.no",
14541  "radøy.no",
14542  "rælingen.no",
14543  "rahkkeravju.no",
14544  "ráhkkerávju.no",
14545  "raisa.no",
14546  "ráisa.no",
14547  "rakkestad.no",
14548  "ralingen.no",
14549  "rana.no",
14550  "randaberg.no",
14551  "rauma.no",
14552  "rendalen.no",
14553  "rennebu.no",
14554  "rennesoy.no",
14555  "rennesøy.no",
14556  "rindal.no",
14557  "ringebu.no",
14558  "ringerike.no",
14559  "ringsaker.no",
14560  "risor.no",
14561  "risør.no",
14562  "rissa.no",
14563  "roan.no",
14564  "rodoy.no",
14565  "rødøy.no",
14566  "rollag.no",
14567  "romsa.no",
14568  "romskog.no",
14569  "rømskog.no",
14570  "roros.no",
14571  "røros.no",
14572  "rost.no",
14573  "røst.no",
14574  "royken.no",
14575  "røyken.no",
14576  "royrvik.no",
14577  "røyrvik.no",
14578  "ruovat.no",
14579  "rygge.no",
14580  "salangen.no",
14581  "salat.no",
14582  "sálat.no",
14583  "sálát.no",
14584  "saltdal.no",
14585  "samnanger.no",
14586  "sandefjord.no",
14587  "sandnes.no",
14588  "sandoy.no",
14589  "sandøy.no",
14590  "sarpsborg.no",
14591  "sauda.no",
14592  "sauherad.no",
14593  "sel.no",
14594  "selbu.no",
14595  "selje.no",
14596  "seljord.no",
14597  "siellak.no",
14598  "sigdal.no",
14599  "siljan.no",
14600  "sirdal.no",
14601  "skanit.no",
14602  "skánit.no",
14603  "skanland.no",
14604  "skånland.no",
14605  "skaun.no",
14606  "skedsmo.no",
14607  "ski.no",
14608  "skien.no",
14609  "skierva.no",
14610  "skiervá.no",
14611  "skiptvet.no",
14612  "skjak.no",
14613  "skjåk.no",
14614  "skjervoy.no",
14615  "skjervøy.no",
14616  "skodje.no",
14617  "smola.no",
14618  "smøla.no",
14619  "snaase.no",
14620  "snåase.no",
14621  "snasa.no",
14622  "snåsa.no",
14623  "snillfjord.no",
14624  "snoasa.no",
14625  "sogndal.no",
14626  "sogne.no",
14627  "søgne.no",
14628  "sokndal.no",
14629  "sola.no",
14630  "solund.no",
14631  "somna.no",
14632  "sømna.no",
14633  "sondre-land.no",
14634  "søndre-land.no",
14635  "songdalen.no",
14636  "sor-aurdal.no",
14637  "sør-aurdal.no",
14638  "sor-fron.no",
14639  "sør-fron.no",
14640  "sor-odal.no",
14641  "sør-odal.no",
14642  "sor-varanger.no",
14643  "sør-varanger.no",
14644  "sorfold.no",
14645  "sørfold.no",
14646  "sorreisa.no",
14647  "sørreisa.no",
14648  "sortland.no",
14649  "sorum.no",
14650  "sørum.no",
14651  "spydeberg.no",
14652  "stange.no",
14653  "stavanger.no",
14654  "steigen.no",
14655  "steinkjer.no",
14656  "stjordal.no",
14657  "stjørdal.no",
14658  "stokke.no",
14659  "stor-elvdal.no",
14660  "stord.no",
14661  "stordal.no",
14662  "storfjord.no",
14663  "strand.no",
14664  "stranda.no",
14665  "stryn.no",
14666  "sula.no",
14667  "suldal.no",
14668  "sund.no",
14669  "sunndal.no",
14670  "surnadal.no",
14671  "sveio.no",
14672  "svelvik.no",
14673  "sykkylven.no",
14674  "tana.no",
14675  "bo.telemark.no",
14676  "bø.telemark.no",
14677  "time.no",
14678  "tingvoll.no",
14679  "tinn.no",
14680  "tjeldsund.no",
14681  "tjome.no",
14682  "tjøme.no",
14683  "tokke.no",
14684  "tolga.no",
14685  "tonsberg.no",
14686  "tønsberg.no",
14687  "torsken.no",
14688  "træna.no",
14689  "trana.no",
14690  "tranoy.no",
14691  "tranøy.no",
14692  "troandin.no",
14693  "trogstad.no",
14694  "trøgstad.no",
14695  "tromsa.no",
14696  "tromso.no",
14697  "tromsø.no",
14698  "trondheim.no",
14699  "trysil.no",
14700  "tvedestrand.no",
14701  "tydal.no",
14702  "tynset.no",
14703  "tysfjord.no",
14704  "tysnes.no",
14705  "tysvær.no",
14706  "tysvar.no",
14707  "ullensaker.no",
14708  "ullensvang.no",
14709  "ulvik.no",
14710  "unjarga.no",
14711  "unjárga.no",
14712  "utsira.no",
14713  "vaapste.no",
14714  "vadso.no",
14715  "vadsø.no",
14716  "værøy.no",
14717  "vaga.no",
14718  "vågå.no",
14719  "vagan.no",
14720  "vågan.no",
14721  "vagsoy.no",
14722  "vågsøy.no",
14723  "vaksdal.no",
14724  "valle.no",
14725  "vang.no",
14726  "vanylven.no",
14727  "vardo.no",
14728  "vardø.no",
14729  "varggat.no",
14730  "várggát.no",
14731  "varoy.no",
14732  "vefsn.no",
14733  "vega.no",
14734  "vegarshei.no",
14735  "vegårshei.no",
14736  "vennesla.no",
14737  "verdal.no",
14738  "verran.no",
14739  "vestby.no",
14740  "sande.vestfold.no",
14741  "vestnes.no",
14742  "vestre-slidre.no",
14743  "vestre-toten.no",
14744  "vestvagoy.no",
14745  "vestvågøy.no",
14746  "vevelstad.no",
14747  "vik.no",
14748  "vikna.no",
14749  "vindafjord.no",
14750  "voagat.no",
14751  "volda.no",
14752  "voss.no",
14753  "*.np",
14754  "nr",
14755  "biz.nr",
14756  "com.nr",
14757  "edu.nr",
14758  "gov.nr",
14759  "info.nr",
14760  "net.nr",
14761  "org.nr",
14762  "nu",
14763  "nz",
14764  "ac.nz",
14765  "co.nz",
14766  "cri.nz",
14767  "geek.nz",
14768  "gen.nz",
14769  "govt.nz",
14770  "health.nz",
14771  "iwi.nz",
14772  "kiwi.nz",
14773  "maori.nz",
14774  "māori.nz",
14775  "mil.nz",
14776  "net.nz",
14777  "org.nz",
14778  "parliament.nz",
14779  "school.nz",
14780  "om",
14781  "co.om",
14782  "com.om",
14783  "edu.om",
14784  "gov.om",
14785  "med.om",
14786  "museum.om",
14787  "net.om",
14788  "org.om",
14789  "pro.om",
14790  "onion",
14791  "org",
14792  "pa",
14793  "abo.pa",
14794  "ac.pa",
14795  "com.pa",
14796  "edu.pa",
14797  "gob.pa",
14798  "ing.pa",
14799  "med.pa",
14800  "net.pa",
14801  "nom.pa",
14802  "org.pa",
14803  "sld.pa",
14804  "pe",
14805  "com.pe",
14806  "edu.pe",
14807  "gob.pe",
14808  "mil.pe",
14809  "net.pe",
14810  "nom.pe",
14811  "org.pe",
14812  "pf",
14813  "com.pf",
14814  "edu.pf",
14815  "org.pf",
14816  "*.pg",
14817  "ph",
14818  "com.ph",
14819  "edu.ph",
14820  "gov.ph",
14821  "i.ph",
14822  "mil.ph",
14823  "net.ph",
14824  "ngo.ph",
14825  "org.ph",
14826  "pk",
14827  "ac.pk",
14828  "biz.pk",
14829  "com.pk",
14830  "edu.pk",
14831  "fam.pk",
14832  "gkp.pk",
14833  "gob.pk",
14834  "gog.pk",
14835  "gok.pk",
14836  "gon.pk",
14837  "gop.pk",
14838  "gos.pk",
14839  "gov.pk",
14840  "net.pk",
14841  "org.pk",
14842  "web.pk",
14843  "pl",
14844  "com.pl",
14845  "net.pl",
14846  "org.pl",
14847  "agro.pl",
14848  "aid.pl",
14849  "atm.pl",
14850  "auto.pl",
14851  "biz.pl",
14852  "edu.pl",
14853  "gmina.pl",
14854  "gsm.pl",
14855  "info.pl",
14856  "mail.pl",
14857  "media.pl",
14858  "miasta.pl",
14859  "mil.pl",
14860  "nieruchomosci.pl",
14861  "nom.pl",
14862  "pc.pl",
14863  "powiat.pl",
14864  "priv.pl",
14865  "realestate.pl",
14866  "rel.pl",
14867  "sex.pl",
14868  "shop.pl",
14869  "sklep.pl",
14870  "sos.pl",
14871  "szkola.pl",
14872  "targi.pl",
14873  "tm.pl",
14874  "tourism.pl",
14875  "travel.pl",
14876  "turystyka.pl",
14877  "gov.pl",
14878  "ap.gov.pl",
14879  "griw.gov.pl",
14880  "ic.gov.pl",
14881  "is.gov.pl",
14882  "kmpsp.gov.pl",
14883  "konsulat.gov.pl",
14884  "kppsp.gov.pl",
14885  "kwp.gov.pl",
14886  "kwpsp.gov.pl",
14887  "mup.gov.pl",
14888  "mw.gov.pl",
14889  "oia.gov.pl",
14890  "oirm.gov.pl",
14891  "oke.gov.pl",
14892  "oow.gov.pl",
14893  "oschr.gov.pl",
14894  "oum.gov.pl",
14895  "pa.gov.pl",
14896  "pinb.gov.pl",
14897  "piw.gov.pl",
14898  "po.gov.pl",
14899  "pr.gov.pl",
14900  "psp.gov.pl",
14901  "psse.gov.pl",
14902  "pup.gov.pl",
14903  "rzgw.gov.pl",
14904  "sa.gov.pl",
14905  "sdn.gov.pl",
14906  "sko.gov.pl",
14907  "so.gov.pl",
14908  "sr.gov.pl",
14909  "starostwo.gov.pl",
14910  "ug.gov.pl",
14911  "ugim.gov.pl",
14912  "um.gov.pl",
14913  "umig.gov.pl",
14914  "upow.gov.pl",
14915  "uppo.gov.pl",
14916  "us.gov.pl",
14917  "uw.gov.pl",
14918  "uzs.gov.pl",
14919  "wif.gov.pl",
14920  "wiih.gov.pl",
14921  "winb.gov.pl",
14922  "wios.gov.pl",
14923  "witd.gov.pl",
14924  "wiw.gov.pl",
14925  "wkz.gov.pl",
14926  "wsa.gov.pl",
14927  "wskr.gov.pl",
14928  "wsse.gov.pl",
14929  "wuoz.gov.pl",
14930  "wzmiuw.gov.pl",
14931  "zp.gov.pl",
14932  "zpisdn.gov.pl",
14933  "augustow.pl",
14934  "babia-gora.pl",
14935  "bedzin.pl",
14936  "beskidy.pl",
14937  "bialowieza.pl",
14938  "bialystok.pl",
14939  "bielawa.pl",
14940  "bieszczady.pl",
14941  "boleslawiec.pl",
14942  "bydgoszcz.pl",
14943  "bytom.pl",
14944  "cieszyn.pl",
14945  "czeladz.pl",
14946  "czest.pl",
14947  "dlugoleka.pl",
14948  "elblag.pl",
14949  "elk.pl",
14950  "glogow.pl",
14951  "gniezno.pl",
14952  "gorlice.pl",
14953  "grajewo.pl",
14954  "ilawa.pl",
14955  "jaworzno.pl",
14956  "jelenia-gora.pl",
14957  "jgora.pl",
14958  "kalisz.pl",
14959  "karpacz.pl",
14960  "kartuzy.pl",
14961  "kaszuby.pl",
14962  "katowice.pl",
14963  "kazimierz-dolny.pl",
14964  "kepno.pl",
14965  "ketrzyn.pl",
14966  "klodzko.pl",
14967  "kobierzyce.pl",
14968  "kolobrzeg.pl",
14969  "konin.pl",
14970  "konskowola.pl",
14971  "kutno.pl",
14972  "lapy.pl",
14973  "lebork.pl",
14974  "legnica.pl",
14975  "lezajsk.pl",
14976  "limanowa.pl",
14977  "lomza.pl",
14978  "lowicz.pl",
14979  "lubin.pl",
14980  "lukow.pl",
14981  "malbork.pl",
14982  "malopolska.pl",
14983  "mazowsze.pl",
14984  "mazury.pl",
14985  "mielec.pl",
14986  "mielno.pl",
14987  "mragowo.pl",
14988  "naklo.pl",
14989  "nowaruda.pl",
14990  "nysa.pl",
14991  "olawa.pl",
14992  "olecko.pl",
14993  "olkusz.pl",
14994  "olsztyn.pl",
14995  "opoczno.pl",
14996  "opole.pl",
14997  "ostroda.pl",
14998  "ostroleka.pl",
14999  "ostrowiec.pl",
15000  "ostrowwlkp.pl",
15001  "pila.pl",
15002  "pisz.pl",
15003  "podhale.pl",
15004  "podlasie.pl",
15005  "polkowice.pl",
15006  "pomorskie.pl",
15007  "pomorze.pl",
15008  "prochowice.pl",
15009  "pruszkow.pl",
15010  "przeworsk.pl",
15011  "pulawy.pl",
15012  "radom.pl",
15013  "rawa-maz.pl",
15014  "rybnik.pl",
15015  "rzeszow.pl",
15016  "sanok.pl",
15017  "sejny.pl",
15018  "skoczow.pl",
15019  "slask.pl",
15020  "slupsk.pl",
15021  "sosnowiec.pl",
15022  "stalowa-wola.pl",
15023  "starachowice.pl",
15024  "stargard.pl",
15025  "suwalki.pl",
15026  "swidnica.pl",
15027  "swiebodzin.pl",
15028  "swinoujscie.pl",
15029  "szczecin.pl",
15030  "szczytno.pl",
15031  "tarnobrzeg.pl",
15032  "tgory.pl",
15033  "turek.pl",
15034  "tychy.pl",
15035  "ustka.pl",
15036  "walbrzych.pl",
15037  "warmia.pl",
15038  "warszawa.pl",
15039  "waw.pl",
15040  "wegrow.pl",
15041  "wielun.pl",
15042  "wlocl.pl",
15043  "wloclawek.pl",
15044  "wodzislaw.pl",
15045  "wolomin.pl",
15046  "wroclaw.pl",
15047  "zachpomor.pl",
15048  "zagan.pl",
15049  "zarow.pl",
15050  "zgora.pl",
15051  "zgorzelec.pl",
15052  "pm",
15053  "pn",
15054  "co.pn",
15055  "edu.pn",
15056  "gov.pn",
15057  "net.pn",
15058  "org.pn",
15059  "post",
15060  "pr",
15061  "biz.pr",
15062  "com.pr",
15063  "edu.pr",
15064  "gov.pr",
15065  "info.pr",
15066  "isla.pr",
15067  "name.pr",
15068  "net.pr",
15069  "org.pr",
15070  "pro.pr",
15071  "ac.pr",
15072  "est.pr",
15073  "prof.pr",
15074  "pro",
15075  "aaa.pro",
15076  "aca.pro",
15077  "acct.pro",
15078  "avocat.pro",
15079  "bar.pro",
15080  "cpa.pro",
15081  "eng.pro",
15082  "jur.pro",
15083  "law.pro",
15084  "med.pro",
15085  "recht.pro",
15086  "ps",
15087  "com.ps",
15088  "edu.ps",
15089  "gov.ps",
15090  "net.ps",
15091  "org.ps",
15092  "plo.ps",
15093  "sec.ps",
15094  "pt",
15095  "com.pt",
15096  "edu.pt",
15097  "gov.pt",
15098  "int.pt",
15099  "net.pt",
15100  "nome.pt",
15101  "org.pt",
15102  "publ.pt",
15103  "pw",
15104  "belau.pw",
15105  "co.pw",
15106  "ed.pw",
15107  "go.pw",
15108  "or.pw",
15109  "py",
15110  "com.py",
15111  "coop.py",
15112  "edu.py",
15113  "gov.py",
15114  "mil.py",
15115  "net.py",
15116  "org.py",
15117  "qa",
15118  "com.qa",
15119  "edu.qa",
15120  "gov.qa",
15121  "mil.qa",
15122  "name.qa",
15123  "net.qa",
15124  "org.qa",
15125  "sch.qa",
15126  "re",
15127  "asso.re",
15128  "com.re",
15129  "ro",
15130  "arts.ro",
15131  "com.ro",
15132  "firm.ro",
15133  "info.ro",
15134  "nom.ro",
15135  "nt.ro",
15136  "org.ro",
15137  "rec.ro",
15138  "store.ro",
15139  "tm.ro",
15140  "www.ro",
15141  "rs",
15142  "ac.rs",
15143  "co.rs",
15144  "edu.rs",
15145  "gov.rs",
15146  "in.rs",
15147  "org.rs",
15148  "ru",
15149  "rw",
15150  "ac.rw",
15151  "co.rw",
15152  "coop.rw",
15153  "gov.rw",
15154  "mil.rw",
15155  "net.rw",
15156  "org.rw",
15157  "sa",
15158  "com.sa",
15159  "edu.sa",
15160  "gov.sa",
15161  "med.sa",
15162  "net.sa",
15163  "org.sa",
15164  "pub.sa",
15165  "sch.sa",
15166  "sb",
15167  "com.sb",
15168  "edu.sb",
15169  "gov.sb",
15170  "net.sb",
15171  "org.sb",
15172  "sc",
15173  "com.sc",
15174  "edu.sc",
15175  "gov.sc",
15176  "net.sc",
15177  "org.sc",
15178  "sd",
15179  "com.sd",
15180  "edu.sd",
15181  "gov.sd",
15182  "info.sd",
15183  "med.sd",
15184  "net.sd",
15185  "org.sd",
15186  "tv.sd",
15187  "se",
15188  "a.se",
15189  "ac.se",
15190  "b.se",
15191  "bd.se",
15192  "brand.se",
15193  "c.se",
15194  "d.se",
15195  "e.se",
15196  "f.se",
15197  "fh.se",
15198  "fhsk.se",
15199  "fhv.se",
15200  "g.se",
15201  "h.se",
15202  "i.se",
15203  "k.se",
15204  "komforb.se",
15205  "kommunalforbund.se",
15206  "komvux.se",
15207  "l.se",
15208  "lanbib.se",
15209  "m.se",
15210  "n.se",
15211  "naturbruksgymn.se",
15212  "o.se",
15213  "org.se",
15214  "p.se",
15215  "parti.se",
15216  "pp.se",
15217  "press.se",
15218  "r.se",
15219  "s.se",
15220  "t.se",
15221  "tm.se",
15222  "u.se",
15223  "w.se",
15224  "x.se",
15225  "y.se",
15226  "z.se",
15227  "sg",
15228  "com.sg",
15229  "edu.sg",
15230  "gov.sg",
15231  "net.sg",
15232  "org.sg",
15233  "sh",
15234  "com.sh",
15235  "gov.sh",
15236  "mil.sh",
15237  "net.sh",
15238  "org.sh",
15239  "si",
15240  "sj",
15241  "sk",
15242  "sl",
15243  "com.sl",
15244  "edu.sl",
15245  "gov.sl",
15246  "net.sl",
15247  "org.sl",
15248  "sm",
15249  "sn",
15250  "art.sn",
15251  "com.sn",
15252  "edu.sn",
15253  "gouv.sn",
15254  "org.sn",
15255  "perso.sn",
15256  "univ.sn",
15257  "so",
15258  "com.so",
15259  "edu.so",
15260  "gov.so",
15261  "me.so",
15262  "net.so",
15263  "org.so",
15264  "sr",
15265  "ss",
15266  "biz.ss",
15267  "co.ss",
15268  "com.ss",
15269  "edu.ss",
15270  "gov.ss",
15271  "me.ss",
15272  "net.ss",
15273  "org.ss",
15274  "sch.ss",
15275  "st",
15276  "co.st",
15277  "com.st",
15278  "consulado.st",
15279  "edu.st",
15280  "embaixada.st",
15281  "mil.st",
15282  "net.st",
15283  "org.st",
15284  "principe.st",
15285  "saotome.st",
15286  "store.st",
15287  "su",
15288  "sv",
15289  "com.sv",
15290  "edu.sv",
15291  "gob.sv",
15292  "org.sv",
15293  "red.sv",
15294  "sx",
15295  "gov.sx",
15296  "sy",
15297  "com.sy",
15298  "edu.sy",
15299  "gov.sy",
15300  "mil.sy",
15301  "net.sy",
15302  "org.sy",
15303  "sz",
15304  "ac.sz",
15305  "co.sz",
15306  "org.sz",
15307  "tc",
15308  "td",
15309  "tel",
15310  "tf",
15311  "tg",
15312  "th",
15313  "ac.th",
15314  "co.th",
15315  "go.th",
15316  "in.th",
15317  "mi.th",
15318  "net.th",
15319  "or.th",
15320  "tj",
15321  "ac.tj",
15322  "biz.tj",
15323  "co.tj",
15324  "com.tj",
15325  "edu.tj",
15326  "go.tj",
15327  "gov.tj",
15328  "int.tj",
15329  "mil.tj",
15330  "name.tj",
15331  "net.tj",
15332  "nic.tj",
15333  "org.tj",
15334  "test.tj",
15335  "web.tj",
15336  "tk",
15337  "tl",
15338  "gov.tl",
15339  "tm",
15340  "co.tm",
15341  "com.tm",
15342  "edu.tm",
15343  "gov.tm",
15344  "mil.tm",
15345  "net.tm",
15346  "nom.tm",
15347  "org.tm",
15348  "tn",
15349  "com.tn",
15350  "ens.tn",
15351  "fin.tn",
15352  "gov.tn",
15353  "ind.tn",
15354  "info.tn",
15355  "intl.tn",
15356  "mincom.tn",
15357  "nat.tn",
15358  "net.tn",
15359  "org.tn",
15360  "perso.tn",
15361  "tourism.tn",
15362  "to",
15363  "com.to",
15364  "edu.to",
15365  "gov.to",
15366  "mil.to",
15367  "net.to",
15368  "org.to",
15369  "tr",
15370  "av.tr",
15371  "bbs.tr",
15372  "bel.tr",
15373  "biz.tr",
15374  "com.tr",
15375  "dr.tr",
15376  "edu.tr",
15377  "gen.tr",
15378  "gov.tr",
15379  "info.tr",
15380  "k12.tr",
15381  "kep.tr",
15382  "mil.tr",
15383  "name.tr",
15384  "net.tr",
15385  "org.tr",
15386  "pol.tr",
15387  "tel.tr",
15388  "tsk.tr",
15389  "tv.tr",
15390  "web.tr",
15391  "nc.tr",
15392  "gov.nc.tr",
15393  "tt",
15394  "biz.tt",
15395  "co.tt",
15396  "com.tt",
15397  "edu.tt",
15398  "gov.tt",
15399  "info.tt",
15400  "mil.tt",
15401  "name.tt",
15402  "net.tt",
15403  "org.tt",
15404  "pro.tt",
15405  "tv",
15406  "tw",
15407  "club.tw",
15408  "com.tw",
15409  "ebiz.tw",
15410  "edu.tw",
15411  "game.tw",
15412  "gov.tw",
15413  "idv.tw",
15414  "mil.tw",
15415  "net.tw",
15416  "org.tw",
15417  "tz",
15418  "ac.tz",
15419  "co.tz",
15420  "go.tz",
15421  "hotel.tz",
15422  "info.tz",
15423  "me.tz",
15424  "mil.tz",
15425  "mobi.tz",
15426  "ne.tz",
15427  "or.tz",
15428  "sc.tz",
15429  "tv.tz",
15430  "ua",
15431  "com.ua",
15432  "edu.ua",
15433  "gov.ua",
15434  "in.ua",
15435  "net.ua",
15436  "org.ua",
15437  "cherkassy.ua",
15438  "cherkasy.ua",
15439  "chernigov.ua",
15440  "chernihiv.ua",
15441  "chernivtsi.ua",
15442  "chernovtsy.ua",
15443  "ck.ua",
15444  "cn.ua",
15445  "cr.ua",
15446  "crimea.ua",
15447  "cv.ua",
15448  "dn.ua",
15449  "dnepropetrovsk.ua",
15450  "dnipropetrovsk.ua",
15451  "donetsk.ua",
15452  "dp.ua",
15453  "if.ua",
15454  "ivano-frankivsk.ua",
15455  "kh.ua",
15456  "kharkiv.ua",
15457  "kharkov.ua",
15458  "kherson.ua",
15459  "khmelnitskiy.ua",
15460  "khmelnytskyi.ua",
15461  "kiev.ua",
15462  "kirovograd.ua",
15463  "km.ua",
15464  "kr.ua",
15465  "kropyvnytskyi.ua",
15466  "krym.ua",
15467  "ks.ua",
15468  "kv.ua",
15469  "kyiv.ua",
15470  "lg.ua",
15471  "lt.ua",
15472  "lugansk.ua",
15473  "luhansk.ua",
15474  "lutsk.ua",
15475  "lv.ua",
15476  "lviv.ua",
15477  "mk.ua",
15478  "mykolaiv.ua",
15479  "nikolaev.ua",
15480  "od.ua",
15481  "odesa.ua",
15482  "odessa.ua",
15483  "pl.ua",
15484  "poltava.ua",
15485  "rivne.ua",
15486  "rovno.ua",
15487  "rv.ua",
15488  "sb.ua",
15489  "sebastopol.ua",
15490  "sevastopol.ua",
15491  "sm.ua",
15492  "sumy.ua",
15493  "te.ua",
15494  "ternopil.ua",
15495  "uz.ua",
15496  "uzhgorod.ua",
15497  "uzhhorod.ua",
15498  "vinnica.ua",
15499  "vinnytsia.ua",
15500  "vn.ua",
15501  "volyn.ua",
15502  "yalta.ua",
15503  "zakarpattia.ua",
15504  "zaporizhzhe.ua",
15505  "zaporizhzhia.ua",
15506  "zhitomir.ua",
15507  "zhytomyr.ua",
15508  "zp.ua",
15509  "zt.ua",
15510  "ug",
15511  "ac.ug",
15512  "co.ug",
15513  "com.ug",
15514  "go.ug",
15515  "ne.ug",
15516  "or.ug",
15517  "org.ug",
15518  "sc.ug",
15519  "uk",
15520  "ac.uk",
15521  "co.uk",
15522  "gov.uk",
15523  "ltd.uk",
15524  "me.uk",
15525  "net.uk",
15526  "nhs.uk",
15527  "org.uk",
15528  "plc.uk",
15529  "police.uk",
15530  "*.sch.uk",
15531  "us",
15532  "dni.us",
15533  "fed.us",
15534  "isa.us",
15535  "kids.us",
15536  "nsn.us",
15537  "ak.us",
15538  "al.us",
15539  "ar.us",
15540  "as.us",
15541  "az.us",
15542  "ca.us",
15543  "co.us",
15544  "ct.us",
15545  "dc.us",
15546  "de.us",
15547  "fl.us",
15548  "ga.us",
15549  "gu.us",
15550  "hi.us",
15551  "ia.us",
15552  "id.us",
15553  "il.us",
15554  "in.us",
15555  "ks.us",
15556  "ky.us",
15557  "la.us",
15558  "ma.us",
15559  "md.us",
15560  "me.us",
15561  "mi.us",
15562  "mn.us",
15563  "mo.us",
15564  "ms.us",
15565  "mt.us",
15566  "nc.us",
15567  "nd.us",
15568  "ne.us",
15569  "nh.us",
15570  "nj.us",
15571  "nm.us",
15572  "nv.us",
15573  "ny.us",
15574  "oh.us",
15575  "ok.us",
15576  "or.us",
15577  "pa.us",
15578  "pr.us",
15579  "ri.us",
15580  "sc.us",
15581  "sd.us",
15582  "tn.us",
15583  "tx.us",
15584  "ut.us",
15585  "va.us",
15586  "vi.us",
15587  "vt.us",
15588  "wa.us",
15589  "wi.us",
15590  "wv.us",
15591  "wy.us",
15592  "k12.ak.us",
15593  "k12.al.us",
15594  "k12.ar.us",
15595  "k12.as.us",
15596  "k12.az.us",
15597  "k12.ca.us",
15598  "k12.co.us",
15599  "k12.ct.us",
15600  "k12.dc.us",
15601  "k12.fl.us",
15602  "k12.ga.us",
15603  "k12.gu.us",
15604  "k12.ia.us",
15605  "k12.id.us",
15606  "k12.il.us",
15607  "k12.in.us",
15608  "k12.ks.us",
15609  "k12.ky.us",
15610  "k12.la.us",
15611  "k12.ma.us",
15612  "k12.md.us",
15613  "k12.me.us",
15614  "k12.mi.us",
15615  "k12.mn.us",
15616  "k12.mo.us",
15617  "k12.ms.us",
15618  "k12.mt.us",
15619  "k12.nc.us",
15620  "k12.ne.us",
15621  "k12.nh.us",
15622  "k12.nj.us",
15623  "k12.nm.us",
15624  "k12.nv.us",
15625  "k12.ny.us",
15626  "k12.oh.us",
15627  "k12.ok.us",
15628  "k12.or.us",
15629  "k12.pa.us",
15630  "k12.pr.us",
15631  "k12.sc.us",
15632  "k12.tn.us",
15633  "k12.tx.us",
15634  "k12.ut.us",
15635  "k12.va.us",
15636  "k12.vi.us",
15637  "k12.vt.us",
15638  "k12.wa.us",
15639  "k12.wi.us",
15640  "cc.ak.us",
15641  "lib.ak.us",
15642  "cc.al.us",
15643  "lib.al.us",
15644  "cc.ar.us",
15645  "lib.ar.us",
15646  "cc.as.us",
15647  "lib.as.us",
15648  "cc.az.us",
15649  "lib.az.us",
15650  "cc.ca.us",
15651  "lib.ca.us",
15652  "cc.co.us",
15653  "lib.co.us",
15654  "cc.ct.us",
15655  "lib.ct.us",
15656  "cc.dc.us",
15657  "lib.dc.us",
15658  "cc.de.us",
15659  "cc.fl.us",
15660  "cc.ga.us",
15661  "cc.gu.us",
15662  "cc.hi.us",
15663  "cc.ia.us",
15664  "cc.id.us",
15665  "cc.il.us",
15666  "cc.in.us",
15667  "cc.ks.us",
15668  "cc.ky.us",
15669  "cc.la.us",
15670  "cc.ma.us",
15671  "cc.md.us",
15672  "cc.me.us",
15673  "cc.mi.us",
15674  "cc.mn.us",
15675  "cc.mo.us",
15676  "cc.ms.us",
15677  "cc.mt.us",
15678  "cc.nc.us",
15679  "cc.nd.us",
15680  "cc.ne.us",
15681  "cc.nh.us",
15682  "cc.nj.us",
15683  "cc.nm.us",
15684  "cc.nv.us",
15685  "cc.ny.us",
15686  "cc.oh.us",
15687  "cc.ok.us",
15688  "cc.or.us",
15689  "cc.pa.us",
15690  "cc.pr.us",
15691  "cc.ri.us",
15692  "cc.sc.us",
15693  "cc.sd.us",
15694  "cc.tn.us",
15695  "cc.tx.us",
15696  "cc.ut.us",
15697  "cc.va.us",
15698  "cc.vi.us",
15699  "cc.vt.us",
15700  "cc.wa.us",
15701  "cc.wi.us",
15702  "cc.wv.us",
15703  "cc.wy.us",
15704  "k12.wy.us",
15705  "lib.fl.us",
15706  "lib.ga.us",
15707  "lib.gu.us",
15708  "lib.hi.us",
15709  "lib.ia.us",
15710  "lib.id.us",
15711  "lib.il.us",
15712  "lib.in.us",
15713  "lib.ks.us",
15714  "lib.ky.us",
15715  "lib.la.us",
15716  "lib.ma.us",
15717  "lib.md.us",
15718  "lib.me.us",
15719  "lib.mi.us",
15720  "lib.mn.us",
15721  "lib.mo.us",
15722  "lib.ms.us",
15723  "lib.mt.us",
15724  "lib.nc.us",
15725  "lib.nd.us",
15726  "lib.ne.us",
15727  "lib.nh.us",
15728  "lib.nj.us",
15729  "lib.nm.us",
15730  "lib.nv.us",
15731  "lib.ny.us",
15732  "lib.oh.us",
15733  "lib.ok.us",
15734  "lib.or.us",
15735  "lib.pa.us",
15736  "lib.pr.us",
15737  "lib.ri.us",
15738  "lib.sc.us",
15739  "lib.sd.us",
15740  "lib.tn.us",
15741  "lib.tx.us",
15742  "lib.ut.us",
15743  "lib.va.us",
15744  "lib.vi.us",
15745  "lib.vt.us",
15746  "lib.wa.us",
15747  "lib.wi.us",
15748  "lib.wy.us",
15749  "chtr.k12.ma.us",
15750  "paroch.k12.ma.us",
15751  "pvt.k12.ma.us",
15752  "ann-arbor.mi.us",
15753  "cog.mi.us",
15754  "dst.mi.us",
15755  "eaton.mi.us",
15756  "gen.mi.us",
15757  "mus.mi.us",
15758  "tec.mi.us",
15759  "washtenaw.mi.us",
15760  "uy",
15761  "com.uy",
15762  "edu.uy",
15763  "gub.uy",
15764  "mil.uy",
15765  "net.uy",
15766  "org.uy",
15767  "uz",
15768  "co.uz",
15769  "com.uz",
15770  "net.uz",
15771  "org.uz",
15772  "va",
15773  "vc",
15774  "com.vc",
15775  "edu.vc",
15776  "gov.vc",
15777  "mil.vc",
15778  "net.vc",
15779  "org.vc",
15780  "ve",
15781  "arts.ve",
15782  "bib.ve",
15783  "co.ve",
15784  "com.ve",
15785  "e12.ve",
15786  "edu.ve",
15787  "firm.ve",
15788  "gob.ve",
15789  "gov.ve",
15790  "info.ve",
15791  "int.ve",
15792  "mil.ve",
15793  "net.ve",
15794  "nom.ve",
15795  "org.ve",
15796  "rar.ve",
15797  "rec.ve",
15798  "store.ve",
15799  "tec.ve",
15800  "web.ve",
15801  "vg",
15802  "vi",
15803  "co.vi",
15804  "com.vi",
15805  "k12.vi",
15806  "net.vi",
15807  "org.vi",
15808  "vn",
15809  "ac.vn",
15810  "ai.vn",
15811  "biz.vn",
15812  "com.vn",
15813  "edu.vn",
15814  "gov.vn",
15815  "health.vn",
15816  "id.vn",
15817  "info.vn",
15818  "int.vn",
15819  "io.vn",
15820  "name.vn",
15821  "net.vn",
15822  "org.vn",
15823  "pro.vn",
15824  "angiang.vn",
15825  "bacgiang.vn",
15826  "backan.vn",
15827  "baclieu.vn",
15828  "bacninh.vn",
15829  "baria-vungtau.vn",
15830  "bentre.vn",
15831  "binhdinh.vn",
15832  "binhduong.vn",
15833  "binhphuoc.vn",
15834  "binhthuan.vn",
15835  "camau.vn",
15836  "cantho.vn",
15837  "caobang.vn",
15838  "daklak.vn",
15839  "daknong.vn",
15840  "danang.vn",
15841  "dienbien.vn",
15842  "dongnai.vn",
15843  "dongthap.vn",
15844  "gialai.vn",
15845  "hagiang.vn",
15846  "haiduong.vn",
15847  "haiphong.vn",
15848  "hanam.vn",
15849  "hanoi.vn",
15850  "hatinh.vn",
15851  "haugiang.vn",
15852  "hoabinh.vn",
15853  "hungyen.vn",
15854  "khanhhoa.vn",
15855  "kiengiang.vn",
15856  "kontum.vn",
15857  "laichau.vn",
15858  "lamdong.vn",
15859  "langson.vn",
15860  "laocai.vn",
15861  "longan.vn",
15862  "namdinh.vn",
15863  "nghean.vn",
15864  "ninhbinh.vn",
15865  "ninhthuan.vn",
15866  "phutho.vn",
15867  "phuyen.vn",
15868  "quangbinh.vn",
15869  "quangnam.vn",
15870  "quangngai.vn",
15871  "quangninh.vn",
15872  "quangtri.vn",
15873  "soctrang.vn",
15874  "sonla.vn",
15875  "tayninh.vn",
15876  "thaibinh.vn",
15877  "thainguyen.vn",
15878  "thanhhoa.vn",
15879  "thanhphohochiminh.vn",
15880  "thuathienhue.vn",
15881  "tiengiang.vn",
15882  "travinh.vn",
15883  "tuyenquang.vn",
15884  "vinhlong.vn",
15885  "vinhphuc.vn",
15886  "yenbai.vn",
15887  "vu",
15888  "com.vu",
15889  "edu.vu",
15890  "net.vu",
15891  "org.vu",
15892  "wf",
15893  "ws",
15894  "com.ws",
15895  "edu.ws",
15896  "gov.ws",
15897  "net.ws",
15898  "org.ws",
15899  "yt",
15900  "امارات",
15901  "Õ°Õ¡Õµ",
15902  "বাংলা",
15903  "бг",
15904  "البحرين",
15905  "бел",
15906  "中国",
15907  "中國",
15908  "الجزائر",
15909  "مصر",
15910  "ею",
15911  "ευ",
15912  "موريتانيا",
15913  "გე",
15914  "ελ",
15915  "香港",
15916  "個人.香港",
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  "xxx",
15988  "ye",
15989  "com.ye",
15990  "edu.ye",
15991  "gov.ye",
15992  "mil.ye",
15993  "net.ye",
15994  "org.ye",
15995  "ac.za",
15996  "agric.za",
15997  "alt.za",
15998  "co.za",
15999  "edu.za",
16000  "gov.za",
16001  "grondar.za",
16002  "law.za",
16003  "mil.za",
16004  "net.za",
16005  "ngo.za",
16006  "nic.za",
16007  "nis.za",
16008  "nom.za",
16009  "org.za",
16010  "school.za",
16011  "tm.za",
16012  "web.za",
16013  "zm",
16014  "ac.zm",
16015  "biz.zm",
16016  "co.zm",
16017  "com.zm",
16018  "edu.zm",
16019  "gov.zm",
16020  "info.zm",
16021  "mil.zm",
16022  "net.zm",
16023  "org.zm",
16024  "sch.zm",
16025  "zw",
16026  "ac.zw",
16027  "co.zw",
16028  "gov.zw",
16029  "mil.zw",
16030  "org.zw",
16031  "aaa",
16032  "aarp",
16033  "abb",
16034  "abbott",
16035  "abbvie",
16036  "abc",
16037  "able",
16038  "abogado",
16039  "abudhabi",
16040  "academy",
16041  "accenture",
16042  "accountant",
16043  "accountants",
16044  "aco",
16045  "actor",
16046  "ads",
16047  "adult",
16048  "aeg",
16049  "aetna",
16050  "afl",
16051  "africa",
16052  "agakhan",
16053  "agency",
16054  "aig",
16055  "airbus",
16056  "airforce",
16057  "airtel",
16058  "akdn",
16059  "alibaba",
16060  "alipay",
16061  "allfinanz",
16062  "allstate",
16063  "ally",
16064  "alsace",
16065  "alstom",
16066  "amazon",
16067  "americanexpress",
16068  "americanfamily",
16069  "amex",
16070  "amfam",
16071  "amica",
16072  "amsterdam",
16073  "analytics",
16074  "android",
16075  "anquan",
16076  "anz",
16077  "aol",
16078  "apartments",
16079  "app",
16080  "apple",
16081  "aquarelle",
16082  "arab",
16083  "aramco",
16084  "archi",
16085  "army",
16086  "art",
16087  "arte",
16088  "asda",
16089  "associates",
16090  "athleta",
16091  "attorney",
16092  "auction",
16093  "audi",
16094  "audible",
16095  "audio",
16096  "auspost",
16097  "author",
16098  "auto",
16099  "autos",
16100  "aws",
16101  "axa",
16102  "azure",
16103  "baby",
16104  "baidu",
16105  "banamex",
16106  "band",
16107  "bank",
16108  "bar",
16109  "barcelona",
16110  "barclaycard",
16111  "barclays",
16112  "barefoot",
16113  "bargains",
16114  "baseball",
16115  "basketball",
16116  "bauhaus",
16117  "bayern",
16118  "bbc",
16119  "bbt",
16120  "bbva",
16121  "bcg",
16122  "bcn",
16123  "beats",
16124  "beauty",
16125  "beer",
16126  "bentley",
16127  "berlin",
16128  "best",
16129  "bestbuy",
16130  "bet",
16131  "bharti",
16132  "bible",
16133  "bid",
16134  "bike",
16135  "bing",
16136  "bingo",
16137  "bio",
16138  "black",
16139  "blackfriday",
16140  "blockbuster",
16141  "blog",
16142  "bloomberg",
16143  "blue",
16144  "bms",
16145  "bmw",
16146  "bnpparibas",
16147  "boats",
16148  "boehringer",
16149  "bofa",
16150  "bom",
16151  "bond",
16152  "boo",
16153  "book",
16154  "booking",
16155  "bosch",
16156  "bostik",
16157  "boston",
16158  "bot",
16159  "boutique",
16160  "box",
16161  "bradesco",
16162  "bridgestone",
16163  "broadway",
16164  "broker",
16165  "brother",
16166  "brussels",
16167  "build",
16168  "builders",
16169  "business",
16170  "buy",
16171  "buzz",
16172  "bzh",
16173  "cab",
16174  "cafe",
16175  "cal",
16176  "call",
16177  "calvinklein",
16178  "cam",
16179  "camera",
16180  "camp",
16181  "canon",
16182  "capetown",
16183  "capital",
16184  "capitalone",
16185  "car",
16186  "caravan",
16187  "cards",
16188  "care",
16189  "career",
16190  "careers",
16191  "cars",
16192  "casa",
16193  "case",
16194  "cash",
16195  "casino",
16196  "catering",
16197  "catholic",
16198  "cba",
16199  "cbn",
16200  "cbre",
16201  "center",
16202  "ceo",
16203  "cern",
16204  "cfa",
16205  "cfd",
16206  "chanel",
16207  "channel",
16208  "charity",
16209  "chase",
16210  "chat",
16211  "cheap",
16212  "chintai",
16213  "christmas",
16214  "chrome",
16215  "church",
16216  "cipriani",
16217  "circle",
16218  "cisco",
16219  "citadel",
16220  "citi",
16221  "citic",
16222  "city",
16223  "claims",
16224  "cleaning",
16225  "click",
16226  "clinic",
16227  "clinique",
16228  "clothing",
16229  "cloud",
16230  "club",
16231  "clubmed",
16232  "coach",
16233  "codes",
16234  "coffee",
16235  "college",
16236  "cologne",
16237  "commbank",
16238  "community",
16239  "company",
16240  "compare",
16241  "computer",
16242  "comsec",
16243  "condos",
16244  "construction",
16245  "consulting",
16246  "contact",
16247  "contractors",
16248  "cooking",
16249  "cool",
16250  "corsica",
16251  "country",
16252  "coupon",
16253  "coupons",
16254  "courses",
16255  "cpa",
16256  "credit",
16257  "creditcard",
16258  "creditunion",
16259  "cricket",
16260  "crown",
16261  "crs",
16262  "cruise",
16263  "cruises",
16264  "cuisinella",
16265  "cymru",
16266  "cyou",
16267  "dad",
16268  "dance",
16269  "data",
16270  "date",
16271  "dating",
16272  "datsun",
16273  "day",
16274  "dclk",
16275  "dds",
16276  "deal",
16277  "dealer",
16278  "deals",
16279  "degree",
16280  "delivery",
16281  "dell",
16282  "deloitte",
16283  "delta",
16284  "democrat",
16285  "dental",
16286  "dentist",
16287  "desi",
16288  "design",
16289  "dev",
16290  "dhl",
16291  "diamonds",
16292  "diet",
16293  "digital",
16294  "direct",
16295  "directory",
16296  "discount",
16297  "discover",
16298  "dish",
16299  "diy",
16300  "dnp",
16301  "docs",
16302  "doctor",
16303  "dog",
16304  "domains",
16305  "dot",
16306  "download",
16307  "drive",
16308  "dtv",
16309  "dubai",
16310  "dunlop",
16311  "dupont",
16312  "durban",
16313  "dvag",
16314  "dvr",
16315  "earth",
16316  "eat",
16317  "eco",
16318  "edeka",
16319  "education",
16320  "email",
16321  "emerck",
16322  "energy",
16323  "engineer",
16324  "engineering",
16325  "enterprises",
16326  "epson",
16327  "equipment",
16328  "ericsson",
16329  "erni",
16330  "esq",
16331  "estate",
16332  "eurovision",
16333  "eus",
16334  "events",
16335  "exchange",
16336  "expert",
16337  "exposed",
16338  "express",
16339  "extraspace",
16340  "fage",
16341  "fail",
16342  "fairwinds",
16343  "faith",
16344  "family",
16345  "fan",
16346  "fans",
16347  "farm",
16348  "farmers",
16349  "fashion",
16350  "fast",
16351  "fedex",
16352  "feedback",
16353  "ferrari",
16354  "ferrero",
16355  "fidelity",
16356  "fido",
16357  "film",
16358  "final",
16359  "finance",
16360  "financial",
16361  "fire",
16362  "firestone",
16363  "firmdale",
16364  "fish",
16365  "fishing",
16366  "fit",
16367  "fitness",
16368  "flickr",
16369  "flights",
16370  "flir",
16371  "florist",
16372  "flowers",
16373  "fly",
16374  "foo",
16375  "food",
16376  "football",
16377  "ford",
16378  "forex",
16379  "forsale",
16380  "forum",
16381  "foundation",
16382  "fox",
16383  "free",
16384  "fresenius",
16385  "frl",
16386  "frogans",
16387  "frontier",
16388  "ftr",
16389  "fujitsu",
16390  "fun",
16391  "fund",
16392  "furniture",
16393  "futbol",
16394  "fyi",
16395  "gal",
16396  "gallery",
16397  "gallo",
16398  "gallup",
16399  "game",
16400  "games",
16401  "gap",
16402  "garden",
16403  "gay",
16404  "gbiz",
16405  "gdn",
16406  "gea",
16407  "gent",
16408  "genting",
16409  "george",
16410  "ggee",
16411  "gift",
16412  "gifts",
16413  "gives",
16414  "giving",
16415  "glass",
16416  "gle",
16417  "global",
16418  "globo",
16419  "gmail",
16420  "gmbh",
16421  "gmo",
16422  "gmx",
16423  "godaddy",
16424  "gold",
16425  "goldpoint",
16426  "golf",
16427  "goo",
16428  "goodyear",
16429  "goog",
16430  "google",
16431  "gop",
16432  "got",
16433  "grainger",
16434  "graphics",
16435  "gratis",
16436  "green",
16437  "gripe",
16438  "grocery",
16439  "group",
16440  "gucci",
16441  "guge",
16442  "guide",
16443  "guitars",
16444  "guru",
16445  "hair",
16446  "hamburg",
16447  "hangout",
16448  "haus",
16449  "hbo",
16450  "hdfc",
16451  "hdfcbank",
16452  "health",
16453  "healthcare",
16454  "help",
16455  "helsinki",
16456  "here",
16457  "hermes",
16458  "hiphop",
16459  "hisamitsu",
16460  "hitachi",
16461  "hiv",
16462  "hkt",
16463  "hockey",
16464  "holdings",
16465  "holiday",
16466  "homedepot",
16467  "homegoods",
16468  "homes",
16469  "homesense",
16470  "honda",
16471  "horse",
16472  "hospital",
16473  "host",
16474  "hosting",
16475  "hot",
16476  "hotels",
16477  "hotmail",
16478  "house",
16479  "how",
16480  "hsbc",
16481  "hughes",
16482  "hyatt",
16483  "hyundai",
16484  "ibm",
16485  "icbc",
16486  "ice",
16487  "icu",
16488  "ieee",
16489  "ifm",
16490  "ikano",
16491  "imamat",
16492  "imdb",
16493  "immo",
16494  "immobilien",
16495  "inc",
16496  "industries",
16497  "infiniti",
16498  "ing",
16499  "ink",
16500  "institute",
16501  "insurance",
16502  "insure",
16503  "international",
16504  "intuit",
16505  "investments",
16506  "ipiranga",
16507  "irish",
16508  "ismaili",
16509  "ist",
16510  "istanbul",
16511  "itau",
16512  "itv",
16513  "jaguar",
16514  "java",
16515  "jcb",
16516  "jeep",
16517  "jetzt",
16518  "jewelry",
16519  "jio",
16520  "jll",
16521  "jmp",
16522  "jnj",
16523  "joburg",
16524  "jot",
16525  "joy",
16526  "jpmorgan",
16527  "jprs",
16528  "juegos",
16529  "juniper",
16530  "kaufen",
16531  "kddi",
16532  "kerryhotels",
16533  "kerrylogistics",
16534  "kerryproperties",
16535  "kfh",
16536  "kia",
16537  "kids",
16538  "kim",
16539  "kindle",
16540  "kitchen",
16541  "kiwi",
16542  "koeln",
16543  "komatsu",
16544  "kosher",
16545  "kpmg",
16546  "kpn",
16547  "krd",
16548  "kred",
16549  "kuokgroup",
16550  "kyoto",
16551  "lacaixa",
16552  "lamborghini",
16553  "lamer",
16554  "lancaster",
16555  "land",
16556  "landrover",
16557  "lanxess",
16558  "lasalle",
16559  "lat",
16560  "latino",
16561  "latrobe",
16562  "law",
16563  "lawyer",
16564  "lds",
16565  "lease",
16566  "leclerc",
16567  "lefrak",
16568  "legal",
16569  "lego",
16570  "lexus",
16571  "lgbt",
16572  "lidl",
16573  "life",
16574  "lifeinsurance",
16575  "lifestyle",
16576  "lighting",
16577  "like",
16578  "lilly",
16579  "limited",
16580  "limo",
16581  "lincoln",
16582  "link",
16583  "lipsy",
16584  "live",
16585  "living",
16586  "llc",
16587  "llp",
16588  "loan",
16589  "loans",
16590  "locker",
16591  "locus",
16592  "lol",
16593  "london",
16594  "lotte",
16595  "lotto",
16596  "love",
16597  "lpl",
16598  "lplfinancial",
16599  "ltd",
16600  "ltda",
16601  "lundbeck",
16602  "luxe",
16603  "luxury",
16604  "madrid",
16605  "maif",
16606  "maison",
16607  "makeup",
16608  "man",
16609  "management",
16610  "mango",
16611  "map",
16612  "market",
16613  "marketing",
16614  "markets",
16615  "marriott",
16616  "marshalls",
16617  "mattel",
16618  "mba",
16619  "mckinsey",
16620  "med",
16621  "media",
16622  "meet",
16623  "melbourne",
16624  "meme",
16625  "memorial",
16626  "men",
16627  "menu",
16628  "merck",
16629  "merckmsd",
16630  "miami",
16631  "microsoft",
16632  "mini",
16633  "mint",
16634  "mit",
16635  "mitsubishi",
16636  "mlb",
16637  "mls",
16638  "mma",
16639  "mobile",
16640  "moda",
16641  "moe",
16642  "moi",
16643  "mom",
16644  "monash",
16645  "money",
16646  "monster",
16647  "mormon",
16648  "mortgage",
16649  "moscow",
16650  "moto",
16651  "motorcycles",
16652  "mov",
16653  "movie",
16654  "msd",
16655  "mtn",
16656  "mtr",
16657  "music",
16658  "nab",
16659  "nagoya",
16660  "navy",
16661  "nba",
16662  "nec",
16663  "netbank",
16664  "netflix",
16665  "network",
16666  "neustar",
16667  "new",
16668  "news",
16669  "next",
16670  "nextdirect",
16671  "nexus",
16672  "nfl",
16673  "ngo",
16674  "nhk",
16675  "nico",
16676  "nike",
16677  "nikon",
16678  "ninja",
16679  "nissan",
16680  "nissay",
16681  "nokia",
16682  "norton",
16683  "now",
16684  "nowruz",
16685  "nowtv",
16686  "nra",
16687  "nrw",
16688  "ntt",
16689  "nyc",
16690  "obi",
16691  "observer",
16692  "office",
16693  "okinawa",
16694  "olayan",
16695  "olayangroup",
16696  "ollo",
16697  "omega",
16698  "one",
16699  "ong",
16700  "onl",
16701  "online",
16702  "ooo",
16703  "open",
16704  "oracle",
16705  "orange",
16706  "organic",
16707  "origins",
16708  "osaka",
16709  "otsuka",
16710  "ott",
16711  "ovh",
16712  "page",
16713  "panasonic",
16714  "paris",
16715  "pars",
16716  "partners",
16717  "parts",
16718  "party",
16719  "pay",
16720  "pccw",
16721  "pet",
16722  "pfizer",
16723  "pharmacy",
16724  "phd",
16725  "philips",
16726  "phone",
16727  "photo",
16728  "photography",
16729  "photos",
16730  "physio",
16731  "pics",
16732  "pictet",
16733  "pictures",
16734  "pid",
16735  "pin",
16736  "ping",
16737  "pink",
16738  "pioneer",
16739  "pizza",
16740  "place",
16741  "play",
16742  "playstation",
16743  "plumbing",
16744  "plus",
16745  "pnc",
16746  "pohl",
16747  "poker",
16748  "politie",
16749  "porn",
16750  "pramerica",
16751  "praxi",
16752  "press",
16753  "prime",
16754  "prod",
16755  "productions",
16756  "prof",
16757  "progressive",
16758  "promo",
16759  "properties",
16760  "property",
16761  "protection",
16762  "pru",
16763  "prudential",
16764  "pub",
16765  "pwc",
16766  "qpon",
16767  "quebec",
16768  "quest",
16769  "racing",
16770  "radio",
16771  "read",
16772  "realestate",
16773  "realtor",
16774  "realty",
16775  "recipes",
16776  "red",
16777  "redstone",
16778  "redumbrella",
16779  "rehab",
16780  "reise",
16781  "reisen",
16782  "reit",
16783  "reliance",
16784  "ren",
16785  "rent",
16786  "rentals",
16787  "repair",
16788  "report",
16789  "republican",
16790  "rest",
16791  "restaurant",
16792  "review",
16793  "reviews",
16794  "rexroth",
16795  "rich",
16796  "richardli",
16797  "ricoh",
16798  "ril",
16799  "rio",
16800  "rip",
16801  "rocks",
16802  "rodeo",
16803  "rogers",
16804  "room",
16805  "rsvp",
16806  "rugby",
16807  "ruhr",
16808  "run",
16809  "rwe",
16810  "ryukyu",
16811  "saarland",
16812  "safe",
16813  "safety",
16814  "sakura",
16815  "sale",
16816  "salon",
16817  "samsclub",
16818  "samsung",
16819  "sandvik",
16820  "sandvikcoromant",
16821  "sanofi",
16822  "sap",
16823  "sarl",
16824  "sas",
16825  "save",
16826  "saxo",
16827  "sbi",
16828  "sbs",
16829  "scb",
16830  "schaeffler",
16831  "schmidt",
16832  "scholarships",
16833  "school",
16834  "schule",
16835  "schwarz",
16836  "science",
16837  "scot",
16838  "search",
16839  "seat",
16840  "secure",
16841  "security",
16842  "seek",
16843  "select",
16844  "sener",
16845  "services",
16846  "seven",
16847  "sew",
16848  "sex",
16849  "sexy",
16850  "sfr",
16851  "shangrila",
16852  "sharp",
16853  "shell",
16854  "shia",
16855  "shiksha",
16856  "shoes",
16857  "shop",
16858  "shopping",
16859  "shouji",
16860  "show",
16861  "silk",
16862  "sina",
16863  "singles",
16864  "site",
16865  "ski",
16866  "skin",
16867  "sky",
16868  "skype",
16869  "sling",
16870  "smart",
16871  "smile",
16872  "sncf",
16873  "soccer",
16874  "social",
16875  "softbank",
16876  "software",
16877  "sohu",
16878  "solar",
16879  "solutions",
16880  "song",
16881  "sony",
16882  "soy",
16883  "spa",
16884  "space",
16885  "sport",
16886  "spot",
16887  "srl",
16888  "stada",
16889  "staples",
16890  "star",
16891  "statebank",
16892  "statefarm",
16893  "stc",
16894  "stcgroup",
16895  "stockholm",
16896  "storage",
16897  "store",
16898  "stream",
16899  "studio",
16900  "study",
16901  "style",
16902  "sucks",
16903  "supplies",
16904  "supply",
16905  "support",
16906  "surf",
16907  "surgery",
16908  "suzuki",
16909  "swatch",
16910  "swiss",
16911  "sydney",
16912  "systems",
16913  "tab",
16914  "taipei",
16915  "talk",
16916  "taobao",
16917  "target",
16918  "tatamotors",
16919  "tatar",
16920  "tattoo",
16921  "tax",
16922  "taxi",
16923  "tci",
16924  "tdk",
16925  "team",
16926  "tech",
16927  "technology",
16928  "temasek",
16929  "tennis",
16930  "teva",
16931  "thd",
16932  "theater",
16933  "theatre",
16934  "tiaa",
16935  "tickets",
16936  "tienda",
16937  "tips",
16938  "tires",
16939  "tirol",
16940  "tjmaxx",
16941  "tjx",
16942  "tkmaxx",
16943  "tmall",
16944  "today",
16945  "tokyo",
16946  "tools",
16947  "top",
16948  "toray",
16949  "toshiba",
16950  "total",
16951  "tours",
16952  "town",
16953  "toyota",
16954  "toys",
16955  "trade",
16956  "trading",
16957  "training",
16958  "travel",
16959  "travelers",
16960  "travelersinsurance",
16961  "trust",
16962  "trv",
16963  "tube",
16964  "tui",
16965  "tunes",
16966  "tushu",
16967  "tvs",
16968  "ubank",
16969  "ubs",
16970  "unicom",
16971  "university",
16972  "uno",
16973  "uol",
16974  "ups",
16975  "vacations",
16976  "vana",
16977  "vanguard",
16978  "vegas",
16979  "ventures",
16980  "verisign",
16981  "versicherung",
16982  "vet",
16983  "viajes",
16984  "video",
16985  "vig",
16986  "viking",
16987  "villas",
16988  "vin",
16989  "vip",
16990  "virgin",
16991  "visa",
16992  "vision",
16993  "viva",
16994  "vivo",
16995  "vlaanderen",
16996  "vodka",
16997  "volvo",
16998  "vote",
16999  "voting",
17000  "voto",
17001  "voyage",
17002  "wales",
17003  "walmart",
17004  "walter",
17005  "wang",
17006  "wanggou",
17007  "watch",
17008  "watches",
17009  "weather",
17010  "weatherchannel",
17011  "webcam",
17012  "weber",
17013  "website",
17014  "wed",
17015  "wedding",
17016  "weibo",
17017  "weir",
17018  "whoswho",
17019  "wien",
17020  "wiki",
17021  "williamhill",
17022  "win",
17023  "windows",
17024  "wine",
17025  "winners",
17026  "wme",
17027  "wolterskluwer",
17028  "woodside",
17029  "work",
17030  "works",
17031  "world",
17032  "wow",
17033  "wtc",
17034  "wtf",
17035  "xbox",
17036  "xerox",
17037  "xihuan",
17038  "xin",
17039  "कॉम",
17040  "セール",
17041  "佛山",
17042  "慈善",
17043  "集团",
17044  "在线",
17045  "点看",
17046  "คอม",
17047  "八卦",
17048  "موقع",
17049  "公益",
17050  "公司",
17051  "香格里拉",
17052  "网站",
17053  "移动",
17054  "我爱你",
17055  "москва",
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  "vermögensberater",
17122  "vermögensberatung",
17123  "企业",
17124  "信息",
17125  "嘉里大酒店",
17126  "嘉里",
17127  "广东",
17128  "政务",
17129  "xyz",
17130  "yachts",
17131  "yahoo",
17132  "yamaxun",
17133  "yandex",
17134  "yodobashi",
17135  "yoga",
17136  "yokohama",
17137  "you",
17138  "youtube",
17139  "yun",
17140  "zappos",
17141  "zara",
17142  "zero",
17143  "zip",
17144  "zone",
17145  "zuerich",
17146  "co.krd",
17147  "edu.krd",
17148  "art.pl",
17149  "gliwice.pl",
17150  "krakow.pl",
17151  "poznan.pl",
17152  "wroc.pl",
17153  "zakopane.pl",
17154  "lib.de.us",
17155  "12chars.dev",
17156  "12chars.it",
17157  "12chars.pro",
17158  "cc.ua",
17159  "inf.ua",
17160  "ltd.ua",
17161  "611.to",
17162  "a2hosted.com",
17163  "cpserver.com",
17164  "aaa.vodka",
17165  "*.on-acorn.io",
17166  "activetrail.biz",
17167  "adaptable.app",
17168  "adobeaemcloud.com",
17169  "*.dev.adobeaemcloud.com",
17170  "aem.live",
17171  "hlx.live",
17172  "adobeaemcloud.net",
17173  "aem.page",
17174  "hlx.page",
17175  "hlx3.page",
17176  "adobeio-static.net",
17177  "adobeioruntime.net",
17178  "africa.com",
17179  "beep.pl",
17180  "airkitapps.com",
17181  "airkitapps-au.com",
17182  "airkitapps.eu",
17183  "aivencloud.com",
17184  "akadns.net",
17185  "akamai.net",
17186  "akamai-staging.net",
17187  "akamaiedge.net",
17188  "akamaiedge-staging.net",
17189  "akamaihd.net",
17190  "akamaihd-staging.net",
17191  "akamaiorigin.net",
17192  "akamaiorigin-staging.net",
17193  "akamaized.net",
17194  "akamaized-staging.net",
17195  "edgekey.net",
17196  "edgekey-staging.net",
17197  "edgesuite.net",
17198  "edgesuite-staging.net",
17199  "barsy.ca",
17200  "*.compute.estate",
17201  "*.alces.network",
17202  "kasserver.com",
17203  "altervista.org",
17204  "alwaysdata.net",
17205  "myamaze.net",
17206  "execute-api.cn-north-1.amazonaws.com.cn",
17207  "execute-api.cn-northwest-1.amazonaws.com.cn",
17208  "execute-api.af-south-1.amazonaws.com",
17209  "execute-api.ap-east-1.amazonaws.com",
17210  "execute-api.ap-northeast-1.amazonaws.com",
17211  "execute-api.ap-northeast-2.amazonaws.com",
17212  "execute-api.ap-northeast-3.amazonaws.com",
17213  "execute-api.ap-south-1.amazonaws.com",
17214  "execute-api.ap-south-2.amazonaws.com",
17215  "execute-api.ap-southeast-1.amazonaws.com",
17216  "execute-api.ap-southeast-2.amazonaws.com",
17217  "execute-api.ap-southeast-3.amazonaws.com",
17218  "execute-api.ap-southeast-4.amazonaws.com",
17219  "execute-api.ap-southeast-5.amazonaws.com",
17220  "execute-api.ca-central-1.amazonaws.com",
17221  "execute-api.ca-west-1.amazonaws.com",
17222  "execute-api.eu-central-1.amazonaws.com",
17223  "execute-api.eu-central-2.amazonaws.com",
17224  "execute-api.eu-north-1.amazonaws.com",
17225  "execute-api.eu-south-1.amazonaws.com",
17226  "execute-api.eu-south-2.amazonaws.com",
17227  "execute-api.eu-west-1.amazonaws.com",
17228  "execute-api.eu-west-2.amazonaws.com",
17229  "execute-api.eu-west-3.amazonaws.com",
17230  "execute-api.il-central-1.amazonaws.com",
17231  "execute-api.me-central-1.amazonaws.com",
17232  "execute-api.me-south-1.amazonaws.com",
17233  "execute-api.sa-east-1.amazonaws.com",
17234  "execute-api.us-east-1.amazonaws.com",
17235  "execute-api.us-east-2.amazonaws.com",
17236  "execute-api.us-gov-east-1.amazonaws.com",
17237  "execute-api.us-gov-west-1.amazonaws.com",
17238  "execute-api.us-west-1.amazonaws.com",
17239  "execute-api.us-west-2.amazonaws.com",
17240  "cloudfront.net",
17241  "auth.af-south-1.amazoncognito.com",
17242  "auth.ap-east-1.amazoncognito.com",
17243  "auth.ap-northeast-1.amazoncognito.com",
17244  "auth.ap-northeast-2.amazoncognito.com",
17245  "auth.ap-northeast-3.amazoncognito.com",
17246  "auth.ap-south-1.amazoncognito.com",
17247  "auth.ap-south-2.amazoncognito.com",
17248  "auth.ap-southeast-1.amazoncognito.com",
17249  "auth.ap-southeast-2.amazoncognito.com",
17250  "auth.ap-southeast-3.amazoncognito.com",
17251  "auth.ap-southeast-4.amazoncognito.com",
17252  "auth.ca-central-1.amazoncognito.com",
17253  "auth.ca-west-1.amazoncognito.com",
17254  "auth.eu-central-1.amazoncognito.com",
17255  "auth.eu-central-2.amazoncognito.com",
17256  "auth.eu-north-1.amazoncognito.com",
17257  "auth.eu-south-1.amazoncognito.com",
17258  "auth.eu-south-2.amazoncognito.com",
17259  "auth.eu-west-1.amazoncognito.com",
17260  "auth.eu-west-2.amazoncognito.com",
17261  "auth.eu-west-3.amazoncognito.com",
17262  "auth.il-central-1.amazoncognito.com",
17263  "auth.me-central-1.amazoncognito.com",
17264  "auth.me-south-1.amazoncognito.com",
17265  "auth.sa-east-1.amazoncognito.com",
17266  "auth.us-east-1.amazoncognito.com",
17267  "auth-fips.us-east-1.amazoncognito.com",
17268  "auth.us-east-2.amazoncognito.com",
17269  "auth-fips.us-east-2.amazoncognito.com",
17270  "auth-fips.us-gov-west-1.amazoncognito.com",
17271  "auth.us-west-1.amazoncognito.com",
17272  "auth-fips.us-west-1.amazoncognito.com",
17273  "auth.us-west-2.amazoncognito.com",
17274  "auth-fips.us-west-2.amazoncognito.com",
17275  "*.compute.amazonaws.com.cn",
17276  "*.compute.amazonaws.com",
17277  "*.compute-1.amazonaws.com",
17278  "us-east-1.amazonaws.com",
17279  "emrappui-prod.cn-north-1.amazonaws.com.cn",
17280  "emrnotebooks-prod.cn-north-1.amazonaws.com.cn",
17281  "emrstudio-prod.cn-north-1.amazonaws.com.cn",
17282  "emrappui-prod.cn-northwest-1.amazonaws.com.cn",
17283  "emrnotebooks-prod.cn-northwest-1.amazonaws.com.cn",
17284  "emrstudio-prod.cn-northwest-1.amazonaws.com.cn",
17285  "emrappui-prod.af-south-1.amazonaws.com",
17286  "emrnotebooks-prod.af-south-1.amazonaws.com",
17287  "emrstudio-prod.af-south-1.amazonaws.com",
17288  "emrappui-prod.ap-east-1.amazonaws.com",
17289  "emrnotebooks-prod.ap-east-1.amazonaws.com",
17290  "emrstudio-prod.ap-east-1.amazonaws.com",
17291  "emrappui-prod.ap-northeast-1.amazonaws.com",
17292  "emrnotebooks-prod.ap-northeast-1.amazonaws.com",
17293  "emrstudio-prod.ap-northeast-1.amazonaws.com",
17294  "emrappui-prod.ap-northeast-2.amazonaws.com",
17295  "emrnotebooks-prod.ap-northeast-2.amazonaws.com",
17296  "emrstudio-prod.ap-northeast-2.amazonaws.com",
17297  "emrappui-prod.ap-northeast-3.amazonaws.com",
17298  "emrnotebooks-prod.ap-northeast-3.amazonaws.com",
17299  "emrstudio-prod.ap-northeast-3.amazonaws.com",
17300  "emrappui-prod.ap-south-1.amazonaws.com",
17301  "emrnotebooks-prod.ap-south-1.amazonaws.com",
17302  "emrstudio-prod.ap-south-1.amazonaws.com",
17303  "emrappui-prod.ap-south-2.amazonaws.com",
17304  "emrnotebooks-prod.ap-south-2.amazonaws.com",
17305  "emrstudio-prod.ap-south-2.amazonaws.com",
17306  "emrappui-prod.ap-southeast-1.amazonaws.com",
17307  "emrnotebooks-prod.ap-southeast-1.amazonaws.com",
17308  "emrstudio-prod.ap-southeast-1.amazonaws.com",
17309  "emrappui-prod.ap-southeast-2.amazonaws.com",
17310  "emrnotebooks-prod.ap-southeast-2.amazonaws.com",
17311  "emrstudio-prod.ap-southeast-2.amazonaws.com",
17312  "emrappui-prod.ap-southeast-3.amazonaws.com",
17313  "emrnotebooks-prod.ap-southeast-3.amazonaws.com",
17314  "emrstudio-prod.ap-southeast-3.amazonaws.com",
17315  "emrappui-prod.ap-southeast-4.amazonaws.com",
17316  "emrnotebooks-prod.ap-southeast-4.amazonaws.com",
17317  "emrstudio-prod.ap-southeast-4.amazonaws.com",
17318  "emrappui-prod.ca-central-1.amazonaws.com",
17319  "emrnotebooks-prod.ca-central-1.amazonaws.com",
17320  "emrstudio-prod.ca-central-1.amazonaws.com",
17321  "emrappui-prod.ca-west-1.amazonaws.com",
17322  "emrnotebooks-prod.ca-west-1.amazonaws.com",
17323  "emrstudio-prod.ca-west-1.amazonaws.com",
17324  "emrappui-prod.eu-central-1.amazonaws.com",
17325  "emrnotebooks-prod.eu-central-1.amazonaws.com",
17326  "emrstudio-prod.eu-central-1.amazonaws.com",
17327  "emrappui-prod.eu-central-2.amazonaws.com",
17328  "emrnotebooks-prod.eu-central-2.amazonaws.com",
17329  "emrstudio-prod.eu-central-2.amazonaws.com",
17330  "emrappui-prod.eu-north-1.amazonaws.com",
17331  "emrnotebooks-prod.eu-north-1.amazonaws.com",
17332  "emrstudio-prod.eu-north-1.amazonaws.com",
17333  "emrappui-prod.eu-south-1.amazonaws.com",
17334  "emrnotebooks-prod.eu-south-1.amazonaws.com",
17335  "emrstudio-prod.eu-south-1.amazonaws.com",
17336  "emrappui-prod.eu-south-2.amazonaws.com",
17337  "emrnotebooks-prod.eu-south-2.amazonaws.com",
17338  "emrstudio-prod.eu-south-2.amazonaws.com",
17339  "emrappui-prod.eu-west-1.amazonaws.com",
17340  "emrnotebooks-prod.eu-west-1.amazonaws.com",
17341  "emrstudio-prod.eu-west-1.amazonaws.com",
17342  "emrappui-prod.eu-west-2.amazonaws.com",
17343  "emrnotebooks-prod.eu-west-2.amazonaws.com",
17344  "emrstudio-prod.eu-west-2.amazonaws.com",
17345  "emrappui-prod.eu-west-3.amazonaws.com",
17346  "emrnotebooks-prod.eu-west-3.amazonaws.com",
17347  "emrstudio-prod.eu-west-3.amazonaws.com",
17348  "emrappui-prod.il-central-1.amazonaws.com",
17349  "emrnotebooks-prod.il-central-1.amazonaws.com",
17350  "emrstudio-prod.il-central-1.amazonaws.com",
17351  "emrappui-prod.me-central-1.amazonaws.com",
17352  "emrnotebooks-prod.me-central-1.amazonaws.com",
17353  "emrstudio-prod.me-central-1.amazonaws.com",
17354  "emrappui-prod.me-south-1.amazonaws.com",
17355  "emrnotebooks-prod.me-south-1.amazonaws.com",
17356  "emrstudio-prod.me-south-1.amazonaws.com",
17357  "emrappui-prod.sa-east-1.amazonaws.com",
17358  "emrnotebooks-prod.sa-east-1.amazonaws.com",
17359  "emrstudio-prod.sa-east-1.amazonaws.com",
17360  "emrappui-prod.us-east-1.amazonaws.com",
17361  "emrnotebooks-prod.us-east-1.amazonaws.com",
17362  "emrstudio-prod.us-east-1.amazonaws.com",
17363  "emrappui-prod.us-east-2.amazonaws.com",
17364  "emrnotebooks-prod.us-east-2.amazonaws.com",
17365  "emrstudio-prod.us-east-2.amazonaws.com",
17366  "emrappui-prod.us-gov-east-1.amazonaws.com",
17367  "emrnotebooks-prod.us-gov-east-1.amazonaws.com",
17368  "emrstudio-prod.us-gov-east-1.amazonaws.com",
17369  "emrappui-prod.us-gov-west-1.amazonaws.com",
17370  "emrnotebooks-prod.us-gov-west-1.amazonaws.com",
17371  "emrstudio-prod.us-gov-west-1.amazonaws.com",
17372  "emrappui-prod.us-west-1.amazonaws.com",
17373  "emrnotebooks-prod.us-west-1.amazonaws.com",
17374  "emrstudio-prod.us-west-1.amazonaws.com",
17375  "emrappui-prod.us-west-2.amazonaws.com",
17376  "emrnotebooks-prod.us-west-2.amazonaws.com",
17377  "emrstudio-prod.us-west-2.amazonaws.com",
17378  "*.cn-north-1.airflow.amazonaws.com.cn",
17379  "*.cn-northwest-1.airflow.amazonaws.com.cn",
17380  "*.af-south-1.airflow.amazonaws.com",
17381  "*.ap-east-1.airflow.amazonaws.com",
17382  "*.ap-northeast-1.airflow.amazonaws.com",
17383  "*.ap-northeast-2.airflow.amazonaws.com",
17384  "*.ap-northeast-3.airflow.amazonaws.com",
17385  "*.ap-south-1.airflow.amazonaws.com",
17386  "*.ap-south-2.airflow.amazonaws.com",
17387  "*.ap-southeast-1.airflow.amazonaws.com",
17388  "*.ap-southeast-2.airflow.amazonaws.com",
17389  "*.ap-southeast-3.airflow.amazonaws.com",
17390  "*.ap-southeast-4.airflow.amazonaws.com",
17391  "*.ca-central-1.airflow.amazonaws.com",
17392  "*.ca-west-1.airflow.amazonaws.com",
17393  "*.eu-central-1.airflow.amazonaws.com",
17394  "*.eu-central-2.airflow.amazonaws.com",
17395  "*.eu-north-1.airflow.amazonaws.com",
17396  "*.eu-south-1.airflow.amazonaws.com",
17397  "*.eu-south-2.airflow.amazonaws.com",
17398  "*.eu-west-1.airflow.amazonaws.com",
17399  "*.eu-west-2.airflow.amazonaws.com",
17400  "*.eu-west-3.airflow.amazonaws.com",
17401  "*.il-central-1.airflow.amazonaws.com",
17402  "*.me-central-1.airflow.amazonaws.com",
17403  "*.me-south-1.airflow.amazonaws.com",
17404  "*.sa-east-1.airflow.amazonaws.com",
17405  "*.us-east-1.airflow.amazonaws.com",
17406  "*.us-east-2.airflow.amazonaws.com",
17407  "*.us-west-1.airflow.amazonaws.com",
17408  "*.us-west-2.airflow.amazonaws.com",
17409  "s3.dualstack.cn-north-1.amazonaws.com.cn",
17410  "s3-accesspoint.dualstack.cn-north-1.amazonaws.com.cn",
17411  "s3-website.dualstack.cn-north-1.amazonaws.com.cn",
17412  "s3.cn-north-1.amazonaws.com.cn",
17413  "s3-accesspoint.cn-north-1.amazonaws.com.cn",
17414  "s3-deprecated.cn-north-1.amazonaws.com.cn",
17415  "s3-object-lambda.cn-north-1.amazonaws.com.cn",
17416  "s3-website.cn-north-1.amazonaws.com.cn",
17417  "s3.dualstack.cn-northwest-1.amazonaws.com.cn",
17418  "s3-accesspoint.dualstack.cn-northwest-1.amazonaws.com.cn",
17419  "s3.cn-northwest-1.amazonaws.com.cn",
17420  "s3-accesspoint.cn-northwest-1.amazonaws.com.cn",
17421  "s3-object-lambda.cn-northwest-1.amazonaws.com.cn",
17422  "s3-website.cn-northwest-1.amazonaws.com.cn",
17423  "s3.dualstack.af-south-1.amazonaws.com",
17424  "s3-accesspoint.dualstack.af-south-1.amazonaws.com",
17425  "s3-website.dualstack.af-south-1.amazonaws.com",
17426  "s3.af-south-1.amazonaws.com",
17427  "s3-accesspoint.af-south-1.amazonaws.com",
17428  "s3-object-lambda.af-south-1.amazonaws.com",
17429  "s3-website.af-south-1.amazonaws.com",
17430  "s3.dualstack.ap-east-1.amazonaws.com",
17431  "s3-accesspoint.dualstack.ap-east-1.amazonaws.com",
17432  "s3.ap-east-1.amazonaws.com",
17433  "s3-accesspoint.ap-east-1.amazonaws.com",
17434  "s3-object-lambda.ap-east-1.amazonaws.com",
17435  "s3-website.ap-east-1.amazonaws.com",
17436  "s3.dualstack.ap-northeast-1.amazonaws.com",
17437  "s3-accesspoint.dualstack.ap-northeast-1.amazonaws.com",
17438  "s3-website.dualstack.ap-northeast-1.amazonaws.com",
17439  "s3.ap-northeast-1.amazonaws.com",
17440  "s3-accesspoint.ap-northeast-1.amazonaws.com",
17441  "s3-object-lambda.ap-northeast-1.amazonaws.com",
17442  "s3-website.ap-northeast-1.amazonaws.com",
17443  "s3.dualstack.ap-northeast-2.amazonaws.com",
17444  "s3-accesspoint.dualstack.ap-northeast-2.amazonaws.com",
17445  "s3-website.dualstack.ap-northeast-2.amazonaws.com",
17446  "s3.ap-northeast-2.amazonaws.com",
17447  "s3-accesspoint.ap-northeast-2.amazonaws.com",
17448  "s3-object-lambda.ap-northeast-2.amazonaws.com",
17449  "s3-website.ap-northeast-2.amazonaws.com",
17450  "s3.dualstack.ap-northeast-3.amazonaws.com",
17451  "s3-accesspoint.dualstack.ap-northeast-3.amazonaws.com",
17452  "s3-website.dualstack.ap-northeast-3.amazonaws.com",
17453  "s3.ap-northeast-3.amazonaws.com",
17454  "s3-accesspoint.ap-northeast-3.amazonaws.com",
17455  "s3-object-lambda.ap-northeast-3.amazonaws.com",
17456  "s3-website.ap-northeast-3.amazonaws.com",
17457  "s3.dualstack.ap-south-1.amazonaws.com",
17458  "s3-accesspoint.dualstack.ap-south-1.amazonaws.com",
17459  "s3-website.dualstack.ap-south-1.amazonaws.com",
17460  "s3.ap-south-1.amazonaws.com",
17461  "s3-accesspoint.ap-south-1.amazonaws.com",
17462  "s3-object-lambda.ap-south-1.amazonaws.com",
17463  "s3-website.ap-south-1.amazonaws.com",
17464  "s3.dualstack.ap-south-2.amazonaws.com",
17465  "s3-accesspoint.dualstack.ap-south-2.amazonaws.com",
17466  "s3-website.dualstack.ap-south-2.amazonaws.com",
17467  "s3.ap-south-2.amazonaws.com",
17468  "s3-accesspoint.ap-south-2.amazonaws.com",
17469  "s3-object-lambda.ap-south-2.amazonaws.com",
17470  "s3-website.ap-south-2.amazonaws.com",
17471  "s3.dualstack.ap-southeast-1.amazonaws.com",
17472  "s3-accesspoint.dualstack.ap-southeast-1.amazonaws.com",
17473  "s3-website.dualstack.ap-southeast-1.amazonaws.com",
17474  "s3.ap-southeast-1.amazonaws.com",
17475  "s3-accesspoint.ap-southeast-1.amazonaws.com",
17476  "s3-object-lambda.ap-southeast-1.amazonaws.com",
17477  "s3-website.ap-southeast-1.amazonaws.com",
17478  "s3.dualstack.ap-southeast-2.amazonaws.com",
17479  "s3-accesspoint.dualstack.ap-southeast-2.amazonaws.com",
17480  "s3-website.dualstack.ap-southeast-2.amazonaws.com",
17481  "s3.ap-southeast-2.amazonaws.com",
17482  "s3-accesspoint.ap-southeast-2.amazonaws.com",
17483  "s3-object-lambda.ap-southeast-2.amazonaws.com",
17484  "s3-website.ap-southeast-2.amazonaws.com",
17485  "s3.dualstack.ap-southeast-3.amazonaws.com",
17486  "s3-accesspoint.dualstack.ap-southeast-3.amazonaws.com",
17487  "s3-website.dualstack.ap-southeast-3.amazonaws.com",
17488  "s3.ap-southeast-3.amazonaws.com",
17489  "s3-accesspoint.ap-southeast-3.amazonaws.com",
17490  "s3-object-lambda.ap-southeast-3.amazonaws.com",
17491  "s3-website.ap-southeast-3.amazonaws.com",
17492  "s3.dualstack.ap-southeast-4.amazonaws.com",
17493  "s3-accesspoint.dualstack.ap-southeast-4.amazonaws.com",
17494  "s3-website.dualstack.ap-southeast-4.amazonaws.com",
17495  "s3.ap-southeast-4.amazonaws.com",
17496  "s3-accesspoint.ap-southeast-4.amazonaws.com",
17497  "s3-object-lambda.ap-southeast-4.amazonaws.com",
17498  "s3-website.ap-southeast-4.amazonaws.com",
17499  "s3.dualstack.ap-southeast-5.amazonaws.com",
17500  "s3-accesspoint.dualstack.ap-southeast-5.amazonaws.com",
17501  "s3-website.dualstack.ap-southeast-5.amazonaws.com",
17502  "s3.ap-southeast-5.amazonaws.com",
17503  "s3-accesspoint.ap-southeast-5.amazonaws.com",
17504  "s3-deprecated.ap-southeast-5.amazonaws.com",
17505  "s3-object-lambda.ap-southeast-5.amazonaws.com",
17506  "s3-website.ap-southeast-5.amazonaws.com",
17507  "s3.dualstack.ca-central-1.amazonaws.com",
17508  "s3-accesspoint.dualstack.ca-central-1.amazonaws.com",
17509  "s3-accesspoint-fips.dualstack.ca-central-1.amazonaws.com",
17510  "s3-fips.dualstack.ca-central-1.amazonaws.com",
17511  "s3-website.dualstack.ca-central-1.amazonaws.com",
17512  "s3.ca-central-1.amazonaws.com",
17513  "s3-accesspoint.ca-central-1.amazonaws.com",
17514  "s3-accesspoint-fips.ca-central-1.amazonaws.com",
17515  "s3-fips.ca-central-1.amazonaws.com",
17516  "s3-object-lambda.ca-central-1.amazonaws.com",
17517  "s3-website.ca-central-1.amazonaws.com",
17518  "s3.dualstack.ca-west-1.amazonaws.com",
17519  "s3-accesspoint.dualstack.ca-west-1.amazonaws.com",
17520  "s3-accesspoint-fips.dualstack.ca-west-1.amazonaws.com",
17521  "s3-fips.dualstack.ca-west-1.amazonaws.com",
17522  "s3-website.dualstack.ca-west-1.amazonaws.com",
17523  "s3.ca-west-1.amazonaws.com",
17524  "s3-accesspoint.ca-west-1.amazonaws.com",
17525  "s3-accesspoint-fips.ca-west-1.amazonaws.com",
17526  "s3-fips.ca-west-1.amazonaws.com",
17527  "s3-object-lambda.ca-west-1.amazonaws.com",
17528  "s3-website.ca-west-1.amazonaws.com",
17529  "s3.dualstack.eu-central-1.amazonaws.com",
17530  "s3-accesspoint.dualstack.eu-central-1.amazonaws.com",
17531  "s3-website.dualstack.eu-central-1.amazonaws.com",
17532  "s3.eu-central-1.amazonaws.com",
17533  "s3-accesspoint.eu-central-1.amazonaws.com",
17534  "s3-object-lambda.eu-central-1.amazonaws.com",
17535  "s3-website.eu-central-1.amazonaws.com",
17536  "s3.dualstack.eu-central-2.amazonaws.com",
17537  "s3-accesspoint.dualstack.eu-central-2.amazonaws.com",
17538  "s3-website.dualstack.eu-central-2.amazonaws.com",
17539  "s3.eu-central-2.amazonaws.com",
17540  "s3-accesspoint.eu-central-2.amazonaws.com",
17541  "s3-object-lambda.eu-central-2.amazonaws.com",
17542  "s3-website.eu-central-2.amazonaws.com",
17543  "s3.dualstack.eu-north-1.amazonaws.com",
17544  "s3-accesspoint.dualstack.eu-north-1.amazonaws.com",
17545  "s3.eu-north-1.amazonaws.com",
17546  "s3-accesspoint.eu-north-1.amazonaws.com",
17547  "s3-object-lambda.eu-north-1.amazonaws.com",
17548  "s3-website.eu-north-1.amazonaws.com",
17549  "s3.dualstack.eu-south-1.amazonaws.com",
17550  "s3-accesspoint.dualstack.eu-south-1.amazonaws.com",
17551  "s3-website.dualstack.eu-south-1.amazonaws.com",
17552  "s3.eu-south-1.amazonaws.com",
17553  "s3-accesspoint.eu-south-1.amazonaws.com",
17554  "s3-object-lambda.eu-south-1.amazonaws.com",
17555  "s3-website.eu-south-1.amazonaws.com",
17556  "s3.dualstack.eu-south-2.amazonaws.com",
17557  "s3-accesspoint.dualstack.eu-south-2.amazonaws.com",
17558  "s3-website.dualstack.eu-south-2.amazonaws.com",
17559  "s3.eu-south-2.amazonaws.com",
17560  "s3-accesspoint.eu-south-2.amazonaws.com",
17561  "s3-object-lambda.eu-south-2.amazonaws.com",
17562  "s3-website.eu-south-2.amazonaws.com",
17563  "s3.dualstack.eu-west-1.amazonaws.com",
17564  "s3-accesspoint.dualstack.eu-west-1.amazonaws.com",
17565  "s3-website.dualstack.eu-west-1.amazonaws.com",
17566  "s3.eu-west-1.amazonaws.com",
17567  "s3-accesspoint.eu-west-1.amazonaws.com",
17568  "s3-deprecated.eu-west-1.amazonaws.com",
17569  "s3-object-lambda.eu-west-1.amazonaws.com",
17570  "s3-website.eu-west-1.amazonaws.com",
17571  "s3.dualstack.eu-west-2.amazonaws.com",
17572  "s3-accesspoint.dualstack.eu-west-2.amazonaws.com",
17573  "s3.eu-west-2.amazonaws.com",
17574  "s3-accesspoint.eu-west-2.amazonaws.com",
17575  "s3-object-lambda.eu-west-2.amazonaws.com",
17576  "s3-website.eu-west-2.amazonaws.com",
17577  "s3.dualstack.eu-west-3.amazonaws.com",
17578  "s3-accesspoint.dualstack.eu-west-3.amazonaws.com",
17579  "s3-website.dualstack.eu-west-3.amazonaws.com",
17580  "s3.eu-west-3.amazonaws.com",
17581  "s3-accesspoint.eu-west-3.amazonaws.com",
17582  "s3-object-lambda.eu-west-3.amazonaws.com",
17583  "s3-website.eu-west-3.amazonaws.com",
17584  "s3.dualstack.il-central-1.amazonaws.com",
17585  "s3-accesspoint.dualstack.il-central-1.amazonaws.com",
17586  "s3-website.dualstack.il-central-1.amazonaws.com",
17587  "s3.il-central-1.amazonaws.com",
17588  "s3-accesspoint.il-central-1.amazonaws.com",
17589  "s3-object-lambda.il-central-1.amazonaws.com",
17590  "s3-website.il-central-1.amazonaws.com",
17591  "s3.dualstack.me-central-1.amazonaws.com",
17592  "s3-accesspoint.dualstack.me-central-1.amazonaws.com",
17593  "s3-website.dualstack.me-central-1.amazonaws.com",
17594  "s3.me-central-1.amazonaws.com",
17595  "s3-accesspoint.me-central-1.amazonaws.com",
17596  "s3-object-lambda.me-central-1.amazonaws.com",
17597  "s3-website.me-central-1.amazonaws.com",
17598  "s3.dualstack.me-south-1.amazonaws.com",
17599  "s3-accesspoint.dualstack.me-south-1.amazonaws.com",
17600  "s3.me-south-1.amazonaws.com",
17601  "s3-accesspoint.me-south-1.amazonaws.com",
17602  "s3-object-lambda.me-south-1.amazonaws.com",
17603  "s3-website.me-south-1.amazonaws.com",
17604  "s3.amazonaws.com",
17605  "s3-1.amazonaws.com",
17606  "s3-ap-east-1.amazonaws.com",
17607  "s3-ap-northeast-1.amazonaws.com",
17608  "s3-ap-northeast-2.amazonaws.com",
17609  "s3-ap-northeast-3.amazonaws.com",
17610  "s3-ap-south-1.amazonaws.com",
17611  "s3-ap-southeast-1.amazonaws.com",
17612  "s3-ap-southeast-2.amazonaws.com",
17613  "s3-ca-central-1.amazonaws.com",
17614  "s3-eu-central-1.amazonaws.com",
17615  "s3-eu-north-1.amazonaws.com",
17616  "s3-eu-west-1.amazonaws.com",
17617  "s3-eu-west-2.amazonaws.com",
17618  "s3-eu-west-3.amazonaws.com",
17619  "s3-external-1.amazonaws.com",
17620  "s3-fips-us-gov-east-1.amazonaws.com",
17621  "s3-fips-us-gov-west-1.amazonaws.com",
17622  "mrap.accesspoint.s3-global.amazonaws.com",
17623  "s3-me-south-1.amazonaws.com",
17624  "s3-sa-east-1.amazonaws.com",
17625  "s3-us-east-2.amazonaws.com",
17626  "s3-us-gov-east-1.amazonaws.com",
17627  "s3-us-gov-west-1.amazonaws.com",
17628  "s3-us-west-1.amazonaws.com",
17629  "s3-us-west-2.amazonaws.com",
17630  "s3-website-ap-northeast-1.amazonaws.com",
17631  "s3-website-ap-southeast-1.amazonaws.com",
17632  "s3-website-ap-southeast-2.amazonaws.com",
17633  "s3-website-eu-west-1.amazonaws.com",
17634  "s3-website-sa-east-1.amazonaws.com",
17635  "s3-website-us-east-1.amazonaws.com",
17636  "s3-website-us-gov-west-1.amazonaws.com",
17637  "s3-website-us-west-1.amazonaws.com",
17638  "s3-website-us-west-2.amazonaws.com",
17639  "s3.dualstack.sa-east-1.amazonaws.com",
17640  "s3-accesspoint.dualstack.sa-east-1.amazonaws.com",
17641  "s3-website.dualstack.sa-east-1.amazonaws.com",
17642  "s3.sa-east-1.amazonaws.com",
17643  "s3-accesspoint.sa-east-1.amazonaws.com",
17644  "s3-object-lambda.sa-east-1.amazonaws.com",
17645  "s3-website.sa-east-1.amazonaws.com",
17646  "s3.dualstack.us-east-1.amazonaws.com",
17647  "s3-accesspoint.dualstack.us-east-1.amazonaws.com",
17648  "s3-accesspoint-fips.dualstack.us-east-1.amazonaws.com",
17649  "s3-fips.dualstack.us-east-1.amazonaws.com",
17650  "s3-website.dualstack.us-east-1.amazonaws.com",
17651  "s3.us-east-1.amazonaws.com",
17652  "s3-accesspoint.us-east-1.amazonaws.com",
17653  "s3-accesspoint-fips.us-east-1.amazonaws.com",
17654  "s3-deprecated.us-east-1.amazonaws.com",
17655  "s3-fips.us-east-1.amazonaws.com",
17656  "s3-object-lambda.us-east-1.amazonaws.com",
17657  "s3-website.us-east-1.amazonaws.com",
17658  "s3.dualstack.us-east-2.amazonaws.com",
17659  "s3-accesspoint.dualstack.us-east-2.amazonaws.com",
17660  "s3-accesspoint-fips.dualstack.us-east-2.amazonaws.com",
17661  "s3-fips.dualstack.us-east-2.amazonaws.com",
17662  "s3-website.dualstack.us-east-2.amazonaws.com",
17663  "s3.us-east-2.amazonaws.com",
17664  "s3-accesspoint.us-east-2.amazonaws.com",
17665  "s3-accesspoint-fips.us-east-2.amazonaws.com",
17666  "s3-deprecated.us-east-2.amazonaws.com",
17667  "s3-fips.us-east-2.amazonaws.com",
17668  "s3-object-lambda.us-east-2.amazonaws.com",
17669  "s3-website.us-east-2.amazonaws.com",
17670  "s3.dualstack.us-gov-east-1.amazonaws.com",
17671  "s3-accesspoint.dualstack.us-gov-east-1.amazonaws.com",
17672  "s3-accesspoint-fips.dualstack.us-gov-east-1.amazonaws.com",
17673  "s3-fips.dualstack.us-gov-east-1.amazonaws.com",
17674  "s3.us-gov-east-1.amazonaws.com",
17675  "s3-accesspoint.us-gov-east-1.amazonaws.com",
17676  "s3-accesspoint-fips.us-gov-east-1.amazonaws.com",
17677  "s3-fips.us-gov-east-1.amazonaws.com",
17678  "s3-object-lambda.us-gov-east-1.amazonaws.com",
17679  "s3-website.us-gov-east-1.amazonaws.com",
17680  "s3.dualstack.us-gov-west-1.amazonaws.com",
17681  "s3-accesspoint.dualstack.us-gov-west-1.amazonaws.com",
17682  "s3-accesspoint-fips.dualstack.us-gov-west-1.amazonaws.com",
17683  "s3-fips.dualstack.us-gov-west-1.amazonaws.com",
17684  "s3.us-gov-west-1.amazonaws.com",
17685  "s3-accesspoint.us-gov-west-1.amazonaws.com",
17686  "s3-accesspoint-fips.us-gov-west-1.amazonaws.com",
17687  "s3-fips.us-gov-west-1.amazonaws.com",
17688  "s3-object-lambda.us-gov-west-1.amazonaws.com",
17689  "s3-website.us-gov-west-1.amazonaws.com",
17690  "s3.dualstack.us-west-1.amazonaws.com",
17691  "s3-accesspoint.dualstack.us-west-1.amazonaws.com",
17692  "s3-accesspoint-fips.dualstack.us-west-1.amazonaws.com",
17693  "s3-fips.dualstack.us-west-1.amazonaws.com",
17694  "s3-website.dualstack.us-west-1.amazonaws.com",
17695  "s3.us-west-1.amazonaws.com",
17696  "s3-accesspoint.us-west-1.amazonaws.com",
17697  "s3-accesspoint-fips.us-west-1.amazonaws.com",
17698  "s3-fips.us-west-1.amazonaws.com",
17699  "s3-object-lambda.us-west-1.amazonaws.com",
17700  "s3-website.us-west-1.amazonaws.com",
17701  "s3.dualstack.us-west-2.amazonaws.com",
17702  "s3-accesspoint.dualstack.us-west-2.amazonaws.com",
17703  "s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com",
17704  "s3-fips.dualstack.us-west-2.amazonaws.com",
17705  "s3-website.dualstack.us-west-2.amazonaws.com",
17706  "s3.us-west-2.amazonaws.com",
17707  "s3-accesspoint.us-west-2.amazonaws.com",
17708  "s3-accesspoint-fips.us-west-2.amazonaws.com",
17709  "s3-deprecated.us-west-2.amazonaws.com",
17710  "s3-fips.us-west-2.amazonaws.com",
17711  "s3-object-lambda.us-west-2.amazonaws.com",
17712  "s3-website.us-west-2.amazonaws.com",
17713  "labeling.ap-northeast-1.sagemaker.aws",
17714  "labeling.ap-northeast-2.sagemaker.aws",
17715  "labeling.ap-south-1.sagemaker.aws",
17716  "labeling.ap-southeast-1.sagemaker.aws",
17717  "labeling.ap-southeast-2.sagemaker.aws",
17718  "labeling.ca-central-1.sagemaker.aws",
17719  "labeling.eu-central-1.sagemaker.aws",
17720  "labeling.eu-west-1.sagemaker.aws",
17721  "labeling.eu-west-2.sagemaker.aws",
17722  "labeling.us-east-1.sagemaker.aws",
17723  "labeling.us-east-2.sagemaker.aws",
17724  "labeling.us-west-2.sagemaker.aws",
17725  "notebook.af-south-1.sagemaker.aws",
17726  "notebook.ap-east-1.sagemaker.aws",
17727  "notebook.ap-northeast-1.sagemaker.aws",
17728  "notebook.ap-northeast-2.sagemaker.aws",
17729  "notebook.ap-northeast-3.sagemaker.aws",
17730  "notebook.ap-south-1.sagemaker.aws",
17731  "notebook.ap-south-2.sagemaker.aws",
17732  "notebook.ap-southeast-1.sagemaker.aws",
17733  "notebook.ap-southeast-2.sagemaker.aws",
17734  "notebook.ap-southeast-3.sagemaker.aws",
17735  "notebook.ap-southeast-4.sagemaker.aws",
17736  "notebook.ca-central-1.sagemaker.aws",
17737  "notebook-fips.ca-central-1.sagemaker.aws",
17738  "notebook.ca-west-1.sagemaker.aws",
17739  "notebook-fips.ca-west-1.sagemaker.aws",
17740  "notebook.eu-central-1.sagemaker.aws",
17741  "notebook.eu-central-2.sagemaker.aws",
17742  "notebook.eu-north-1.sagemaker.aws",
17743  "notebook.eu-south-1.sagemaker.aws",
17744  "notebook.eu-south-2.sagemaker.aws",
17745  "notebook.eu-west-1.sagemaker.aws",
17746  "notebook.eu-west-2.sagemaker.aws",
17747  "notebook.eu-west-3.sagemaker.aws",
17748  "notebook.il-central-1.sagemaker.aws",
17749  "notebook.me-central-1.sagemaker.aws",
17750  "notebook.me-south-1.sagemaker.aws",
17751  "notebook.sa-east-1.sagemaker.aws",
17752  "notebook.us-east-1.sagemaker.aws",
17753  "notebook-fips.us-east-1.sagemaker.aws",
17754  "notebook.us-east-2.sagemaker.aws",
17755  "notebook-fips.us-east-2.sagemaker.aws",
17756  "notebook.us-gov-east-1.sagemaker.aws",
17757  "notebook-fips.us-gov-east-1.sagemaker.aws",
17758  "notebook.us-gov-west-1.sagemaker.aws",
17759  "notebook-fips.us-gov-west-1.sagemaker.aws",
17760  "notebook.us-west-1.sagemaker.aws",
17761  "notebook-fips.us-west-1.sagemaker.aws",
17762  "notebook.us-west-2.sagemaker.aws",
17763  "notebook-fips.us-west-2.sagemaker.aws",
17764  "notebook.cn-north-1.sagemaker.com.cn",
17765  "notebook.cn-northwest-1.sagemaker.com.cn",
17766  "studio.af-south-1.sagemaker.aws",
17767  "studio.ap-east-1.sagemaker.aws",
17768  "studio.ap-northeast-1.sagemaker.aws",
17769  "studio.ap-northeast-2.sagemaker.aws",
17770  "studio.ap-northeast-3.sagemaker.aws",
17771  "studio.ap-south-1.sagemaker.aws",
17772  "studio.ap-southeast-1.sagemaker.aws",
17773  "studio.ap-southeast-2.sagemaker.aws",
17774  "studio.ap-southeast-3.sagemaker.aws",
17775  "studio.ca-central-1.sagemaker.aws",
17776  "studio.eu-central-1.sagemaker.aws",
17777  "studio.eu-north-1.sagemaker.aws",
17778  "studio.eu-south-1.sagemaker.aws",
17779  "studio.eu-south-2.sagemaker.aws",
17780  "studio.eu-west-1.sagemaker.aws",
17781  "studio.eu-west-2.sagemaker.aws",
17782  "studio.eu-west-3.sagemaker.aws",
17783  "studio.il-central-1.sagemaker.aws",
17784  "studio.me-central-1.sagemaker.aws",
17785  "studio.me-south-1.sagemaker.aws",
17786  "studio.sa-east-1.sagemaker.aws",
17787  "studio.us-east-1.sagemaker.aws",
17788  "studio.us-east-2.sagemaker.aws",
17789  "studio.us-gov-east-1.sagemaker.aws",
17790  "studio-fips.us-gov-east-1.sagemaker.aws",
17791  "studio.us-gov-west-1.sagemaker.aws",
17792  "studio-fips.us-gov-west-1.sagemaker.aws",
17793  "studio.us-west-1.sagemaker.aws",
17794  "studio.us-west-2.sagemaker.aws",
17795  "studio.cn-north-1.sagemaker.com.cn",
17796  "studio.cn-northwest-1.sagemaker.com.cn",
17797  "*.experiments.sagemaker.aws",
17798  "analytics-gateway.ap-northeast-1.amazonaws.com",
17799  "analytics-gateway.ap-northeast-2.amazonaws.com",
17800  "analytics-gateway.ap-south-1.amazonaws.com",
17801  "analytics-gateway.ap-southeast-1.amazonaws.com",
17802  "analytics-gateway.ap-southeast-2.amazonaws.com",
17803  "analytics-gateway.eu-central-1.amazonaws.com",
17804  "analytics-gateway.eu-west-1.amazonaws.com",
17805  "analytics-gateway.us-east-1.amazonaws.com",
17806  "analytics-gateway.us-east-2.amazonaws.com",
17807  "analytics-gateway.us-west-2.amazonaws.com",
17808  "amplifyapp.com",
17809  "*.awsapprunner.com",
17810  "webview-assets.aws-cloud9.af-south-1.amazonaws.com",
17811  "vfs.cloud9.af-south-1.amazonaws.com",
17812  "webview-assets.cloud9.af-south-1.amazonaws.com",
17813  "webview-assets.aws-cloud9.ap-east-1.amazonaws.com",
17814  "vfs.cloud9.ap-east-1.amazonaws.com",
17815  "webview-assets.cloud9.ap-east-1.amazonaws.com",
17816  "webview-assets.aws-cloud9.ap-northeast-1.amazonaws.com",
17817  "vfs.cloud9.ap-northeast-1.amazonaws.com",
17818  "webview-assets.cloud9.ap-northeast-1.amazonaws.com",
17819  "webview-assets.aws-cloud9.ap-northeast-2.amazonaws.com",
17820  "vfs.cloud9.ap-northeast-2.amazonaws.com",
17821  "webview-assets.cloud9.ap-northeast-2.amazonaws.com",
17822  "webview-assets.aws-cloud9.ap-northeast-3.amazonaws.com",
17823  "vfs.cloud9.ap-northeast-3.amazonaws.com",
17824  "webview-assets.cloud9.ap-northeast-3.amazonaws.com",
17825  "webview-assets.aws-cloud9.ap-south-1.amazonaws.com",
17826  "vfs.cloud9.ap-south-1.amazonaws.com",
17827  "webview-assets.cloud9.ap-south-1.amazonaws.com",
17828  "webview-assets.aws-cloud9.ap-southeast-1.amazonaws.com",
17829  "vfs.cloud9.ap-southeast-1.amazonaws.com",
17830  "webview-assets.cloud9.ap-southeast-1.amazonaws.com",
17831  "webview-assets.aws-cloud9.ap-southeast-2.amazonaws.com",
17832  "vfs.cloud9.ap-southeast-2.amazonaws.com",
17833  "webview-assets.cloud9.ap-southeast-2.amazonaws.com",
17834  "webview-assets.aws-cloud9.ca-central-1.amazonaws.com",
17835  "vfs.cloud9.ca-central-1.amazonaws.com",
17836  "webview-assets.cloud9.ca-central-1.amazonaws.com",
17837  "webview-assets.aws-cloud9.eu-central-1.amazonaws.com",
17838  "vfs.cloud9.eu-central-1.amazonaws.com",
17839  "webview-assets.cloud9.eu-central-1.amazonaws.com",
17840  "webview-assets.aws-cloud9.eu-north-1.amazonaws.com",
17841  "vfs.cloud9.eu-north-1.amazonaws.com",
17842  "webview-assets.cloud9.eu-north-1.amazonaws.com",
17843  "webview-assets.aws-cloud9.eu-south-1.amazonaws.com",
17844  "vfs.cloud9.eu-south-1.amazonaws.com",
17845  "webview-assets.cloud9.eu-south-1.amazonaws.com",
17846  "webview-assets.aws-cloud9.eu-west-1.amazonaws.com",
17847  "vfs.cloud9.eu-west-1.amazonaws.com",
17848  "webview-assets.cloud9.eu-west-1.amazonaws.com",
17849  "webview-assets.aws-cloud9.eu-west-2.amazonaws.com",
17850  "vfs.cloud9.eu-west-2.amazonaws.com",
17851  "webview-assets.cloud9.eu-west-2.amazonaws.com",
17852  "webview-assets.aws-cloud9.eu-west-3.amazonaws.com",
17853  "vfs.cloud9.eu-west-3.amazonaws.com",
17854  "webview-assets.cloud9.eu-west-3.amazonaws.com",
17855  "webview-assets.aws-cloud9.il-central-1.amazonaws.com",
17856  "vfs.cloud9.il-central-1.amazonaws.com",
17857  "webview-assets.aws-cloud9.me-south-1.amazonaws.com",
17858  "vfs.cloud9.me-south-1.amazonaws.com",
17859  "webview-assets.cloud9.me-south-1.amazonaws.com",
17860  "webview-assets.aws-cloud9.sa-east-1.amazonaws.com",
17861  "vfs.cloud9.sa-east-1.amazonaws.com",
17862  "webview-assets.cloud9.sa-east-1.amazonaws.com",
17863  "webview-assets.aws-cloud9.us-east-1.amazonaws.com",
17864  "vfs.cloud9.us-east-1.amazonaws.com",
17865  "webview-assets.cloud9.us-east-1.amazonaws.com",
17866  "webview-assets.aws-cloud9.us-east-2.amazonaws.com",
17867  "vfs.cloud9.us-east-2.amazonaws.com",
17868  "webview-assets.cloud9.us-east-2.amazonaws.com",
17869  "webview-assets.aws-cloud9.us-west-1.amazonaws.com",
17870  "vfs.cloud9.us-west-1.amazonaws.com",
17871  "webview-assets.cloud9.us-west-1.amazonaws.com",
17872  "webview-assets.aws-cloud9.us-west-2.amazonaws.com",
17873  "vfs.cloud9.us-west-2.amazonaws.com",
17874  "webview-assets.cloud9.us-west-2.amazonaws.com",
17875  "awsapps.com",
17876  "cn-north-1.eb.amazonaws.com.cn",
17877  "cn-northwest-1.eb.amazonaws.com.cn",
17878  "elasticbeanstalk.com",
17879  "af-south-1.elasticbeanstalk.com",
17880  "ap-east-1.elasticbeanstalk.com",
17881  "ap-northeast-1.elasticbeanstalk.com",
17882  "ap-northeast-2.elasticbeanstalk.com",
17883  "ap-northeast-3.elasticbeanstalk.com",
17884  "ap-south-1.elasticbeanstalk.com",
17885  "ap-southeast-1.elasticbeanstalk.com",
17886  "ap-southeast-2.elasticbeanstalk.com",
17887  "ap-southeast-3.elasticbeanstalk.com",
17888  "ca-central-1.elasticbeanstalk.com",
17889  "eu-central-1.elasticbeanstalk.com",
17890  "eu-north-1.elasticbeanstalk.com",
17891  "eu-south-1.elasticbeanstalk.com",
17892  "eu-west-1.elasticbeanstalk.com",
17893  "eu-west-2.elasticbeanstalk.com",
17894  "eu-west-3.elasticbeanstalk.com",
17895  "il-central-1.elasticbeanstalk.com",
17896  "me-south-1.elasticbeanstalk.com",
17897  "sa-east-1.elasticbeanstalk.com",
17898  "us-east-1.elasticbeanstalk.com",
17899  "us-east-2.elasticbeanstalk.com",
17900  "us-gov-east-1.elasticbeanstalk.com",
17901  "us-gov-west-1.elasticbeanstalk.com",
17902  "us-west-1.elasticbeanstalk.com",
17903  "us-west-2.elasticbeanstalk.com",
17904  "*.elb.amazonaws.com.cn",
17905  "*.elb.amazonaws.com",
17906  "awsglobalaccelerator.com",
17907  "*.private.repost.aws",
17908  "eero.online",
17909  "eero-stage.online",
17910  "apigee.io",
17911  "panel.dev",
17912  "siiites.com",
17913  "appspacehosted.com",
17914  "appspaceusercontent.com",
17915  "appudo.net",
17916  "on-aptible.com",
17917  "f5.si",
17918  "arvanedge.ir",
17919  "user.aseinet.ne.jp",
17920  "gv.vc",
17921  "d.gv.vc",
17922  "user.party.eus",
17923  "pimienta.org",
17924  "poivron.org",
17925  "potager.org",
17926  "sweetpepper.org",
17927  "myasustor.com",
17928  "cdn.prod.atlassian-dev.net",
17929  "translated.page",
17930  "myfritz.link",
17931  "myfritz.net",
17932  "onavstack.net",
17933  "*.awdev.ca",
17934  "*.advisor.ws",
17935  "ecommerce-shop.pl",
17936  "b-data.io",
17937  "balena-devices.com",
17938  "base.ec",
17939  "official.ec",
17940  "buyshop.jp",
17941  "fashionstore.jp",
17942  "handcrafted.jp",
17943  "kawaiishop.jp",
17944  "supersale.jp",
17945  "theshop.jp",
17946  "shopselect.net",
17947  "base.shop",
17948  "beagleboard.io",
17949  "*.beget.app",
17950  "pages.gay",
17951  "bnr.la",
17952  "bitbucket.io",
17953  "blackbaudcdn.net",
17954  "of.je",
17955  "bluebite.io",
17956  "boomla.net",
17957  "boutir.com",
17958  "boxfuse.io",
17959  "square7.ch",
17960  "bplaced.com",
17961  "bplaced.de",
17962  "square7.de",
17963  "bplaced.net",
17964  "square7.net",
17965  "*.s.brave.io",
17966  "shop.brendly.hr",
17967  "shop.brendly.rs",
17968  "browsersafetymark.io",
17969  "radio.am",
17970  "radio.fm",
17971  "uk0.bigv.io",
17972  "dh.bytemark.co.uk",
17973  "vm.bytemark.co.uk",
17974  "cafjs.com",
17975  "canva-apps.cn",
17976  "*.my.canvasite.cn",
17977  "canva-apps.com",
17978  "*.my.canva.site",
17979  "drr.ac",
17980  "uwu.ai",
17981  "carrd.co",
17982  "crd.co",
17983  "ju.mp",
17984  "api.gov.uk",
17985  "cdn77-storage.com",
17986  "rsc.contentproxy9.cz",
17987  "r.cdn77.net",
17988  "cdn77-ssl.net",
17989  "c.cdn77.org",
17990  "rsc.cdn77.org",
17991  "ssl.origin.cdn77-secure.org",
17992  "za.bz",
17993  "br.com",
17994  "cn.com",
17995  "de.com",
17996  "eu.com",
17997  "jpn.com",
17998  "mex.com",
17999  "ru.com",
18000  "sa.com",
18001  "uk.com",
18002  "us.com",
18003  "za.com",
18004  "com.de",
18005  "gb.net",
18006  "hu.net",
18007  "jp.net",
18008  "se.net",
18009  "uk.net",
18010  "ae.org",
18011  "com.se",
18012  "cx.ua",
18013  "discourse.group",
18014  "discourse.team",
18015  "clerk.app",
18016  "clerkstage.app",
18017  "*.lcl.dev",
18018  "*.lclstage.dev",
18019  "*.stg.dev",
18020  "*.stgstage.dev",
18021  "cleverapps.cc",
18022  "*.services.clever-cloud.com",
18023  "cleverapps.io",
18024  "cleverapps.tech",
18025  "clickrising.net",
18026  "cloudns.asia",
18027  "cloudns.be",
18028  "cloud-ip.biz",
18029  "cloudns.biz",
18030  "cloudns.cc",
18031  "cloudns.ch",
18032  "cloudns.cl",
18033  "cloudns.club",
18034  "dnsabr.com",
18035  "ip-ddns.com",
18036  "cloudns.cx",
18037  "cloudns.eu",
18038  "cloudns.in",
18039  "cloudns.info",
18040  "ddns-ip.net",
18041  "dns-cloud.net",
18042  "dns-dynamic.net",
18043  "cloudns.nz",
18044  "cloudns.org",
18045  "ip-dynamic.org",
18046  "cloudns.ph",
18047  "cloudns.pro",
18048  "cloudns.pw",
18049  "cloudns.us",
18050  "c66.me",
18051  "cloud66.ws",
18052  "cloud66.zone",
18053  "jdevcloud.com",
18054  "wpdevcloud.com",
18055  "cloudaccess.host",
18056  "freesite.host",
18057  "cloudaccess.net",
18058  "*.cloudera.site",
18059  "cf-ipfs.com",
18060  "cloudflare-ipfs.com",
18061  "trycloudflare.com",
18062  "pages.dev",
18063  "r2.dev",
18064  "workers.dev",
18065  "cloudflare.net",
18066  "cdn.cloudflare.net",
18067  "cdn.cloudflareanycast.net",
18068  "cdn.cloudflarecn.net",
18069  "cdn.cloudflareglobal.net",
18070  "cust.cloudscale.ch",
18071  "objects.lpg.cloudscale.ch",
18072  "objects.rma.cloudscale.ch",
18073  "wnext.app",
18074  "cnpy.gdn",
18075  "*.otap.co",
18076  "co.ca",
18077  "co.com",
18078  "codeberg.page",
18079  "csb.app",
18080  "preview.csb.app",
18081  "co.nl",
18082  "co.no",
18083  "webhosting.be",
18084  "hosting-cluster.nl",
18085  "ctfcloud.net",
18086  "convex.site",
18087  "ac.ru",
18088  "edu.ru",
18089  "gov.ru",
18090  "int.ru",
18091  "mil.ru",
18092  "test.ru",
18093  "dyn.cosidns.de",
18094  "dnsupdater.de",
18095  "dynamisches-dns.de",
18096  "internet-dns.de",
18097  "l-o-g-i-n.de",
18098  "dynamic-dns.info",
18099  "feste-ip.net",
18100  "knx-server.net",
18101  "static-access.net",
18102  "craft.me",
18103  "realm.cz",
18104  "on.crisp.email",
18105  "*.cryptonomic.net",
18106  "curv.dev",
18107  "cfolks.pl",
18108  "cyon.link",
18109  "cyon.site",
18110  "platform0.app",
18111  "fnwk.site",
18112  "folionetwork.site",
18113  "biz.dk",
18114  "co.dk",
18115  "firm.dk",
18116  "reg.dk",
18117  "store.dk",
18118  "dyndns.dappnode.io",
18119  "builtwithdark.com",
18120  "darklang.io",
18121  "demo.datadetect.com",
18122  "instance.datadetect.com",
18123  "edgestack.me",
18124  "dattolocal.com",
18125  "dattorelay.com",
18126  "dattoweb.com",
18127  "mydatto.com",
18128  "dattolocal.net",
18129  "mydatto.net",
18130  "ddnss.de",
18131  "dyn.ddnss.de",
18132  "dyndns.ddnss.de",
18133  "dyn-ip24.de",
18134  "dyndns1.de",
18135  "home-webserver.de",
18136  "dyn.home-webserver.de",
18137  "myhome-server.de",
18138  "ddnss.org",
18139  "debian.net",
18140  "definima.io",
18141  "definima.net",
18142  "deno.dev",
18143  "deno-staging.dev",
18144  "dedyn.io",
18145  "deta.app",
18146  "deta.dev",
18147  "dfirma.pl",
18148  "dkonto.pl",
18149  "you2.pl",
18150  "ondigitalocean.app",
18151  "*.digitaloceanspaces.com",
18152  "us.kg",
18153  "rss.my.id",
18154  "diher.solutions",
18155  "discordsays.com",
18156  "discordsez.com",
18157  "jozi.biz",
18158  "dnshome.de",
18159  "online.th",
18160  "shop.th",
18161  "drayddns.com",
18162  "shoparena.pl",
18163  "dreamhosters.com",
18164  "durumis.com",
18165  "mydrobo.com",
18166  "drud.io",
18167  "drud.us",
18168  "duckdns.org",
18169  "dy.fi",
18170  "tunk.org",
18171  "dyndns.biz",
18172  "for-better.biz",
18173  "for-more.biz",
18174  "for-some.biz",
18175  "for-the.biz",
18176  "selfip.biz",
18177  "webhop.biz",
18178  "ftpaccess.cc",
18179  "game-server.cc",
18180  "myphotos.cc",
18181  "scrapping.cc",
18182  "blogdns.com",
18183  "cechire.com",
18184  "dnsalias.com",
18185  "dnsdojo.com",
18186  "doesntexist.com",
18187  "dontexist.com",
18188  "doomdns.com",
18189  "dyn-o-saur.com",
18190  "dynalias.com",
18191  "dyndns-at-home.com",
18192  "dyndns-at-work.com",
18193  "dyndns-blog.com",
18194  "dyndns-free.com",
18195  "dyndns-home.com",
18196  "dyndns-ip.com",
18197  "dyndns-mail.com",
18198  "dyndns-office.com",
18199  "dyndns-pics.com",
18200  "dyndns-remote.com",
18201  "dyndns-server.com",
18202  "dyndns-web.com",
18203  "dyndns-wiki.com",
18204  "dyndns-work.com",
18205  "est-a-la-maison.com",
18206  "est-a-la-masion.com",
18207  "est-le-patron.com",
18208  "est-mon-blogueur.com",
18209  "from-ak.com",
18210  "from-al.com",
18211  "from-ar.com",
18212  "from-ca.com",
18213  "from-ct.com",
18214  "from-dc.com",
18215  "from-de.com",
18216  "from-fl.com",
18217  "from-ga.com",
18218  "from-hi.com",
18219  "from-ia.com",
18220  "from-id.com",
18221  "from-il.com",
18222  "from-in.com",
18223  "from-ks.com",
18224  "from-ky.com",
18225  "from-ma.com",
18226  "from-md.com",
18227  "from-mi.com",
18228  "from-mn.com",
18229  "from-mo.com",
18230  "from-ms.com",
18231  "from-mt.com",
18232  "from-nc.com",
18233  "from-nd.com",
18234  "from-ne.com",
18235  "from-nh.com",
18236  "from-nj.com",
18237  "from-nm.com",
18238  "from-nv.com",
18239  "from-oh.com",
18240  "from-ok.com",
18241  "from-or.com",
18242  "from-pa.com",
18243  "from-pr.com",
18244  "from-ri.com",
18245  "from-sc.com",
18246  "from-sd.com",
18247  "from-tn.com",
18248  "from-tx.com",
18249  "from-ut.com",
18250  "from-va.com",
18251  "from-vt.com",
18252  "from-wa.com",
18253  "from-wi.com",
18254  "from-wv.com",
18255  "from-wy.com",
18256  "getmyip.com",
18257  "gotdns.com",
18258  "hobby-site.com",
18259  "homelinux.com",
18260  "homeunix.com",
18261  "iamallama.com",
18262  "is-a-anarchist.com",
18263  "is-a-blogger.com",
18264  "is-a-bookkeeper.com",
18265  "is-a-bulls-fan.com",
18266  "is-a-caterer.com",
18267  "is-a-chef.com",
18268  "is-a-conservative.com",
18269  "is-a-cpa.com",
18270  "is-a-cubicle-slave.com",
18271  "is-a-democrat.com",
18272  "is-a-designer.com",
18273  "is-a-doctor.com",
18274  "is-a-financialadvisor.com",
18275  "is-a-geek.com",
18276  "is-a-green.com",
18277  "is-a-guru.com",
18278  "is-a-hard-worker.com",
18279  "is-a-hunter.com",
18280  "is-a-landscaper.com",
18281  "is-a-lawyer.com",
18282  "is-a-liberal.com",
18283  "is-a-libertarian.com",
18284  "is-a-llama.com",
18285  "is-a-musician.com",
18286  "is-a-nascarfan.com",
18287  "is-a-nurse.com",
18288  "is-a-painter.com",
18289  "is-a-personaltrainer.com",
18290  "is-a-photographer.com",
18291  "is-a-player.com",
18292  "is-a-republican.com",
18293  "is-a-rockstar.com",
18294  "is-a-socialist.com",
18295  "is-a-student.com",
18296  "is-a-teacher.com",
18297  "is-a-techie.com",
18298  "is-a-therapist.com",
18299  "is-an-accountant.com",
18300  "is-an-actor.com",
18301  "is-an-actress.com",
18302  "is-an-anarchist.com",
18303  "is-an-artist.com",
18304  "is-an-engineer.com",
18305  "is-an-entertainer.com",
18306  "is-certified.com",
18307  "is-gone.com",
18308  "is-into-anime.com",
18309  "is-into-cars.com",
18310  "is-into-cartoons.com",
18311  "is-into-games.com",
18312  "is-leet.com",
18313  "is-not-certified.com",
18314  "is-slick.com",
18315  "is-uberleet.com",
18316  "is-with-theband.com",
18317  "isa-geek.com",
18318  "isa-hockeynut.com",
18319  "issmarterthanyou.com",
18320  "likes-pie.com",
18321  "likescandy.com",
18322  "neat-url.com",
18323  "saves-the-whales.com",
18324  "selfip.com",
18325  "sells-for-less.com",
18326  "sells-for-u.com",
18327  "servebbs.com",
18328  "simple-url.com",
18329  "space-to-rent.com",
18330  "teaches-yoga.com",
18331  "writesthisblog.com",
18332  "ath.cx",
18333  "fuettertdasnetz.de",
18334  "isteingeek.de",
18335  "istmein.de",
18336  "lebtimnetz.de",
18337  "leitungsen.de",
18338  "traeumtgerade.de",
18339  "barrel-of-knowledge.info",
18340  "barrell-of-knowledge.info",
18341  "dyndns.info",
18342  "for-our.info",
18343  "groks-the.info",
18344  "groks-this.info",
18345  "here-for-more.info",
18346  "knowsitall.info",
18347  "selfip.info",
18348  "webhop.info",
18349  "forgot.her.name",
18350  "forgot.his.name",
18351  "at-band-camp.net",
18352  "blogdns.net",
18353  "broke-it.net",
18354  "buyshouses.net",
18355  "dnsalias.net",
18356  "dnsdojo.net",
18357  "does-it.net",
18358  "dontexist.net",
18359  "dynalias.net",
18360  "dynathome.net",
18361  "endofinternet.net",
18362  "from-az.net",
18363  "from-co.net",
18364  "from-la.net",
18365  "from-ny.net",
18366  "gets-it.net",
18367  "ham-radio-op.net",
18368  "homeftp.net",
18369  "homeip.net",
18370  "homelinux.net",
18371  "homeunix.net",
18372  "in-the-band.net",
18373  "is-a-chef.net",
18374  "is-a-geek.net",
18375  "isa-geek.net",
18376  "kicks-ass.net",
18377  "office-on-the.net",
18378  "podzone.net",
18379  "scrapper-site.net",
18380  "selfip.net",
18381  "sells-it.net",
18382  "servebbs.net",
18383  "serveftp.net",
18384  "thruhere.net",
18385  "webhop.net",
18386  "merseine.nu",
18387  "mine.nu",
18388  "shacknet.nu",
18389  "blogdns.org",
18390  "blogsite.org",
18391  "boldlygoingnowhere.org",
18392  "dnsalias.org",
18393  "dnsdojo.org",
18394  "doesntexist.org",
18395  "dontexist.org",
18396  "doomdns.org",
18397  "dvrdns.org",
18398  "dynalias.org",
18399  "dyndns.org",
18400  "go.dyndns.org",
18401  "home.dyndns.org",
18402  "endofinternet.org",
18403  "endoftheinternet.org",
18404  "from-me.org",
18405  "game-host.org",
18406  "gotdns.org",
18407  "hobby-site.org",
18408  "homedns.org",
18409  "homeftp.org",
18410  "homelinux.org",
18411  "homeunix.org",
18412  "is-a-bruinsfan.org",
18413  "is-a-candidate.org",
18414  "is-a-celticsfan.org",
18415  "is-a-chef.org",
18416  "is-a-geek.org",
18417  "is-a-knight.org",
18418  "is-a-linux-user.org",
18419  "is-a-patsfan.org",
18420  "is-a-soxfan.org",
18421  "is-found.org",
18422  "is-lost.org",
18423  "is-saved.org",
18424  "is-very-bad.org",
18425  "is-very-evil.org",
18426  "is-very-good.org",
18427  "is-very-nice.org",
18428  "is-very-sweet.org",
18429  "isa-geek.org",
18430  "kicks-ass.org",
18431  "misconfused.org",
18432  "podzone.org",
18433  "readmyblog.org",
18434  "selfip.org",
18435  "sellsyourhome.org",
18436  "servebbs.org",
18437  "serveftp.org",
18438  "servegame.org",
18439  "stuff-4-sale.org",
18440  "webhop.org",
18441  "better-than.tv",
18442  "dyndns.tv",
18443  "on-the-web.tv",
18444  "worse-than.tv",
18445  "is-by.us",
18446  "land-4-sale.us",
18447  "stuff-4-sale.us",
18448  "dyndns.ws",
18449  "mypets.ws",
18450  "ddnsfree.com",
18451  "ddnsgeek.com",
18452  "giize.com",
18453  "gleeze.com",
18454  "kozow.com",
18455  "loseyourip.com",
18456  "ooguy.com",
18457  "theworkpc.com",
18458  "casacam.net",
18459  "dynu.net",
18460  "accesscam.org",
18461  "camdvr.org",
18462  "freeddns.org",
18463  "mywire.org",
18464  "webredirect.org",
18465  "myddns.rocks",
18466  "dynv6.net",
18467  "e4.cz",
18468  "easypanel.app",
18469  "easypanel.host",
18470  "*.ewp.live",
18471  "twmail.cc",
18472  "twmail.net",
18473  "twmail.org",
18474  "mymailer.com.tw",
18475  "url.tw",
18476  "at.emf.camp",
18477  "rt.ht",
18478  "elementor.cloud",
18479  "elementor.cool",
18480  "en-root.fr",
18481  "mytuleap.com",
18482  "tuleap-partners.com",
18483  "encr.app",
18484  "encoreapi.com",
18485  "eu.encoway.cloud",
18486  "eu.org",
18487  "al.eu.org",
18488  "asso.eu.org",
18489  "at.eu.org",
18490  "au.eu.org",
18491  "be.eu.org",
18492  "bg.eu.org",
18493  "ca.eu.org",
18494  "cd.eu.org",
18495  "ch.eu.org",
18496  "cn.eu.org",
18497  "cy.eu.org",
18498  "cz.eu.org",
18499  "de.eu.org",
18500  "dk.eu.org",
18501  "edu.eu.org",
18502  "ee.eu.org",
18503  "es.eu.org",
18504  "fi.eu.org",
18505  "fr.eu.org",
18506  "gr.eu.org",
18507  "hr.eu.org",
18508  "hu.eu.org",
18509  "ie.eu.org",
18510  "il.eu.org",
18511  "in.eu.org",
18512  "int.eu.org",
18513  "is.eu.org",
18514  "it.eu.org",
18515  "jp.eu.org",
18516  "kr.eu.org",
18517  "lt.eu.org",
18518  "lu.eu.org",
18519  "lv.eu.org",
18520  "me.eu.org",
18521  "mk.eu.org",
18522  "mt.eu.org",
18523  "my.eu.org",
18524  "net.eu.org",
18525  "ng.eu.org",
18526  "nl.eu.org",
18527  "no.eu.org",
18528  "nz.eu.org",
18529  "pl.eu.org",
18530  "pt.eu.org",
18531  "ro.eu.org",
18532  "ru.eu.org",
18533  "se.eu.org",
18534  "si.eu.org",
18535  "sk.eu.org",
18536  "tr.eu.org",
18537  "uk.eu.org",
18538  "us.eu.org",
18539  "eurodir.ru",
18540  "eu-1.evennode.com",
18541  "eu-2.evennode.com",
18542  "eu-3.evennode.com",
18543  "eu-4.evennode.com",
18544  "us-1.evennode.com",
18545  "us-2.evennode.com",
18546  "us-3.evennode.com",
18547  "us-4.evennode.com",
18548  "relay.evervault.app",
18549  "relay.evervault.dev",
18550  "expo.app",
18551  "staging.expo.app",
18552  "onfabrica.com",
18553  "ru.net",
18554  "adygeya.ru",
18555  "bashkiria.ru",
18556  "bir.ru",
18557  "cbg.ru",
18558  "com.ru",
18559  "dagestan.ru",
18560  "grozny.ru",
18561  "kalmykia.ru",
18562  "kustanai.ru",
18563  "marine.ru",
18564  "mordovia.ru",
18565  "msk.ru",
18566  "mytis.ru",
18567  "nalchik.ru",
18568  "nov.ru",
18569  "pyatigorsk.ru",
18570  "spb.ru",
18571  "vladikavkaz.ru",
18572  "vladimir.ru",
18573  "abkhazia.su",
18574  "adygeya.su",
18575  "aktyubinsk.su",
18576  "arkhangelsk.su",
18577  "armenia.su",
18578  "ashgabad.su",
18579  "azerbaijan.su",
18580  "balashov.su",
18581  "bashkiria.su",
18582  "bryansk.su",
18583  "bukhara.su",
18584  "chimkent.su",
18585  "dagestan.su",
18586  "east-kazakhstan.su",
18587  "exnet.su",
18588  "georgia.su",
18589  "grozny.su",
18590  "ivanovo.su",
18591  "jambyl.su",
18592  "kalmykia.su",
18593  "kaluga.su",
18594  "karacol.su",
18595  "karaganda.su",
18596  "karelia.su",
18597  "khakassia.su",
18598  "krasnodar.su",
18599  "kurgan.su",
18600  "kustanai.su",
18601  "lenug.su",
18602  "mangyshlak.su",
18603  "mordovia.su",
18604  "msk.su",
18605  "murmansk.su",
18606  "nalchik.su",
18607  "navoi.su",
18608  "north-kazakhstan.su",
18609  "nov.su",
18610  "obninsk.su",
18611  "penza.su",
18612  "pokrovsk.su",
18613  "sochi.su",
18614  "spb.su",
18615  "tashkent.su",
18616  "termez.su",
18617  "togliatti.su",
18618  "troitsk.su",
18619  "tselinograd.su",
18620  "tula.su",
18621  "tuva.su",
18622  "vladikavkaz.su",
18623  "vladimir.su",
18624  "vologda.su",
18625  "channelsdvr.net",
18626  "u.channelsdvr.net",
18627  "edgecompute.app",
18628  "fastly-edge.com",
18629  "fastly-terrarium.com",
18630  "freetls.fastly.net",
18631  "map.fastly.net",
18632  "a.prod.fastly.net",
18633  "global.prod.fastly.net",
18634  "a.ssl.fastly.net",
18635  "b.ssl.fastly.net",
18636  "global.ssl.fastly.net",
18637  "fastlylb.net",
18638  "map.fastlylb.net",
18639  "*.user.fm",
18640  "fastvps-server.com",
18641  "fastvps.host",
18642  "myfast.host",
18643  "fastvps.site",
18644  "myfast.space",
18645  "conn.uk",
18646  "copro.uk",
18647  "hosp.uk",
18648  "fedorainfracloud.org",
18649  "fedorapeople.org",
18650  "cloud.fedoraproject.org",
18651  "app.os.fedoraproject.org",
18652  "app.os.stg.fedoraproject.org",
18653  "mydobiss.com",
18654  "fh-muenster.io",
18655  "filegear.me",
18656  "firebaseapp.com",
18657  "fldrv.com",
18658  "flutterflow.app",
18659  "fly.dev",
18660  "shw.io",
18661  "edgeapp.net",
18662  "forgeblocks.com",
18663  "id.forgerock.io",
18664  "framer.ai",
18665  "framer.app",
18666  "framercanvas.com",
18667  "framer.media",
18668  "framer.photos",
18669  "framer.website",
18670  "framer.wiki",
18671  "0e.vc",
18672  "freebox-os.com",
18673  "freeboxos.com",
18674  "fbx-os.fr",
18675  "fbxos.fr",
18676  "freebox-os.fr",
18677  "freeboxos.fr",
18678  "freedesktop.org",
18679  "freemyip.com",
18680  "*.frusky.de",
18681  "wien.funkfeuer.at",
18682  "daemon.asia",
18683  "dix.asia",
18684  "mydns.bz",
18685  "0am.jp",
18686  "0g0.jp",
18687  "0j0.jp",
18688  "0t0.jp",
18689  "mydns.jp",
18690  "pgw.jp",
18691  "wjg.jp",
18692  "keyword-on.net",
18693  "live-on.net",
18694  "server-on.net",
18695  "mydns.tw",
18696  "mydns.vc",
18697  "*.futurecms.at",
18698  "*.ex.futurecms.at",
18699  "*.in.futurecms.at",
18700  "futurehosting.at",
18701  "futuremailing.at",
18702  "*.ex.ortsinfo.at",
18703  "*.kunden.ortsinfo.at",
18704  "*.statics.cloud",
18705  "aliases121.com",
18706  "campaign.gov.uk",
18707  "service.gov.uk",
18708  "independent-commission.uk",
18709  "independent-inquest.uk",
18710  "independent-inquiry.uk",
18711  "independent-panel.uk",
18712  "independent-review.uk",
18713  "public-inquiry.uk",
18714  "royal-commission.uk",
18715  "gehirn.ne.jp",
18716  "usercontent.jp",
18717  "gentapps.com",
18718  "gentlentapis.com",
18719  "lab.ms",
18720  "cdn-edges.net",
18721  "localcert.net",
18722  "localhostcert.net",
18723  "gsj.bz",
18724  "githubusercontent.com",
18725  "githubpreview.dev",
18726  "github.io",
18727  "gitlab.io",
18728  "gitapp.si",
18729  "gitpage.si",
18730  "glitch.me",
18731  "nog.community",
18732  "co.ro",
18733  "shop.ro",
18734  "lolipop.io",
18735  "angry.jp",
18736  "babyblue.jp",
18737  "babymilk.jp",
18738  "backdrop.jp",
18739  "bambina.jp",
18740  "bitter.jp",
18741  "blush.jp",
18742  "boo.jp",
18743  "boy.jp",
18744  "boyfriend.jp",
18745  "but.jp",
18746  "candypop.jp",
18747  "capoo.jp",
18748  "catfood.jp",
18749  "cheap.jp",
18750  "chicappa.jp",
18751  "chillout.jp",
18752  "chips.jp",
18753  "chowder.jp",
18754  "chu.jp",
18755  "ciao.jp",
18756  "cocotte.jp",
18757  "coolblog.jp",
18758  "cranky.jp",
18759  "cutegirl.jp",
18760  "daa.jp",
18761  "deca.jp",
18762  "deci.jp",
18763  "digick.jp",
18764  "egoism.jp",
18765  "fakefur.jp",
18766  "fem.jp",
18767  "flier.jp",
18768  "floppy.jp",
18769  "fool.jp",
18770  "frenchkiss.jp",
18771  "girlfriend.jp",
18772  "girly.jp",
18773  "gloomy.jp",
18774  "gonna.jp",
18775  "greater.jp",
18776  "hacca.jp",
18777  "heavy.jp",
18778  "her.jp",
18779  "hiho.jp",
18780  "hippy.jp",
18781  "holy.jp",
18782  "hungry.jp",
18783  "icurus.jp",
18784  "itigo.jp",
18785  "jellybean.jp",
18786  "kikirara.jp",
18787  "kill.jp",
18788  "kilo.jp",
18789  "kuron.jp",
18790  "littlestar.jp",
18791  "lolipopmc.jp",
18792  "lolitapunk.jp",
18793  "lomo.jp",
18794  "lovepop.jp",
18795  "lovesick.jp",
18796  "main.jp",
18797  "mods.jp",
18798  "mond.jp",
18799  "mongolian.jp",
18800  "moo.jp",
18801  "namaste.jp",
18802  "nikita.jp",
18803  "nobushi.jp",
18804  "noor.jp",
18805  "oops.jp",
18806  "parallel.jp",
18807  "parasite.jp",
18808  "pecori.jp",
18809  "peewee.jp",
18810  "penne.jp",
18811  "pepper.jp",
18812  "perma.jp",
18813  "pigboat.jp",
18814  "pinoko.jp",
18815  "punyu.jp",
18816  "pupu.jp",
18817  "pussycat.jp",
18818  "pya.jp",
18819  "raindrop.jp",
18820  "readymade.jp",
18821  "sadist.jp",
18822  "schoolbus.jp",
18823  "secret.jp",
18824  "staba.jp",
18825  "stripper.jp",
18826  "sub.jp",
18827  "sunnyday.jp",
18828  "thick.jp",
18829  "tonkotsu.jp",
18830  "under.jp",
18831  "upper.jp",
18832  "velvet.jp",
18833  "verse.jp",
18834  "versus.jp",
18835  "vivian.jp",
18836  "watson.jp",
18837  "weblike.jp",
18838  "whitesnow.jp",
18839  "zombie.jp",
18840  "heteml.net",
18841  "graphic.design",
18842  "goip.de",
18843  "blogspot.ae",
18844  "blogspot.al",
18845  "blogspot.am",
18846  "*.hosted.app",
18847  "*.run.app",
18848  "web.app",
18849  "blogspot.com.ar",
18850  "blogspot.co.at",
18851  "blogspot.com.au",
18852  "blogspot.ba",
18853  "blogspot.be",
18854  "blogspot.bg",
18855  "blogspot.bj",
18856  "blogspot.com.br",
18857  "blogspot.com.by",
18858  "blogspot.ca",
18859  "blogspot.cf",
18860  "blogspot.ch",
18861  "blogspot.cl",
18862  "blogspot.com.co",
18863  "*.0emm.com",
18864  "appspot.com",
18865  "*.r.appspot.com",
18866  "blogspot.com",
18867  "codespot.com",
18868  "googleapis.com",
18869  "googlecode.com",
18870  "pagespeedmobilizer.com",
18871  "withgoogle.com",
18872  "withyoutube.com",
18873  "blogspot.cv",
18874  "blogspot.com.cy",
18875  "blogspot.cz",
18876  "blogspot.de",
18877  "*.gateway.dev",
18878  "blogspot.dk",
18879  "blogspot.com.ee",
18880  "blogspot.com.eg",
18881  "blogspot.com.es",
18882  "blogspot.fi",
18883  "blogspot.fr",
18884  "cloud.goog",
18885  "translate.goog",
18886  "*.usercontent.goog",
18887  "blogspot.gr",
18888  "blogspot.hk",
18889  "blogspot.hr",
18890  "blogspot.hu",
18891  "blogspot.co.id",
18892  "blogspot.ie",
18893  "blogspot.co.il",
18894  "blogspot.in",
18895  "blogspot.is",
18896  "blogspot.it",
18897  "blogspot.jp",
18898  "blogspot.co.ke",
18899  "blogspot.kr",
18900  "blogspot.li",
18901  "blogspot.lt",
18902  "blogspot.lu",
18903  "blogspot.md",
18904  "blogspot.mk",
18905  "blogspot.com.mt",
18906  "blogspot.mx",
18907  "blogspot.my",
18908  "cloudfunctions.net",
18909  "blogspot.com.ng",
18910  "blogspot.nl",
18911  "blogspot.no",
18912  "blogspot.co.nz",
18913  "blogspot.pe",
18914  "blogspot.pt",
18915  "blogspot.qa",
18916  "blogspot.re",
18917  "blogspot.ro",
18918  "blogspot.rs",
18919  "blogspot.ru",
18920  "blogspot.se",
18921  "blogspot.sg",
18922  "blogspot.si",
18923  "blogspot.sk",
18924  "blogspot.sn",
18925  "blogspot.td",
18926  "blogspot.com.tr",
18927  "blogspot.tw",
18928  "blogspot.ug",
18929  "blogspot.co.uk",
18930  "blogspot.com.uy",
18931  "blogspot.vn",
18932  "blogspot.co.za",
18933  "goupile.fr",
18934  "pymnt.uk",
18935  "cloudapps.digital",
18936  "london.cloudapps.digital",
18937  "gov.nl",
18938  "grafana-dev.net",
18939  "grayjayleagues.com",
18940  "günstigbestellen.de",
18941  "günstigliefern.de",
18942  "fin.ci",
18943  "free.hr",
18944  "caa.li",
18945  "ua.rs",
18946  "conf.se",
18947  "häkkinen.fi",
18948  "hrsn.dev",
18949  "hashbang.sh",
18950  "hasura.app",
18951  "hasura-app.io",
18952  "hatenablog.com",
18953  "hatenadiary.com",
18954  "hateblo.jp",
18955  "hatenablog.jp",
18956  "hatenadiary.jp",
18957  "hatenadiary.org",
18958  "pages.it.hs-heilbronn.de",
18959  "pages-research.it.hs-heilbronn.de",
18960  "heiyu.space",
18961  "helioho.st",
18962  "heliohost.us",
18963  "hepforge.org",
18964  "herokuapp.com",
18965  "herokussl.com",
18966  "heyflow.page",
18967  "heyflow.site",
18968  "ravendb.cloud",
18969  "ravendb.community",
18970  "development.run",
18971  "ravendb.run",
18972  "homesklep.pl",
18973  "*.kin.one",
18974  "*.id.pub",
18975  "*.kin.pub",
18976  "secaas.hk",
18977  "hoplix.shop",
18978  "orx.biz",
18979  "biz.gl",
18980  "biz.ng",
18981  "co.biz.ng",
18982  "dl.biz.ng",
18983  "go.biz.ng",
18984  "lg.biz.ng",
18985  "on.biz.ng",
18986  "col.ng",
18987  "firm.ng",
18988  "gen.ng",
18989  "ltd.ng",
18990  "ngo.ng",
18991  "plc.ng",
18992  "ie.ua",
18993  "hostyhosting.io",
18994  "hf.space",
18995  "static.hf.space",
18996  "hypernode.io",
18997  "iobb.net",
18998  "co.cz",
18999  "*.moonscale.io",
19000  "moonscale.net",
19001  "gr.com",
19002  "iki.fi",
19003  "ibxos.it",
19004  "iliadboxos.it",
19005  "smushcdn.com",
19006  "wphostedmail.com",
19007  "wpmucdn.com",
19008  "tempurl.host",
19009  "wpmudev.host",
19010  "dyn-berlin.de",
19011  "in-berlin.de",
19012  "in-brb.de",
19013  "in-butter.de",
19014  "in-dsl.de",
19015  "in-vpn.de",
19016  "in-dsl.net",
19017  "in-vpn.net",
19018  "in-dsl.org",
19019  "in-vpn.org",
19020  "biz.at",
19021  "info.at",
19022  "info.cx",
19023  "ac.leg.br",
19024  "al.leg.br",
19025  "am.leg.br",
19026  "ap.leg.br",
19027  "ba.leg.br",
19028  "ce.leg.br",
19029  "df.leg.br",
19030  "es.leg.br",
19031  "go.leg.br",
19032  "ma.leg.br",
19033  "mg.leg.br",
19034  "ms.leg.br",
19035  "mt.leg.br",
19036  "pa.leg.br",
19037  "pb.leg.br",
19038  "pe.leg.br",
19039  "pi.leg.br",
19040  "pr.leg.br",
19041  "rj.leg.br",
19042  "rn.leg.br",
19043  "ro.leg.br",
19044  "rr.leg.br",
19045  "rs.leg.br",
19046  "sc.leg.br",
19047  "se.leg.br",
19048  "sp.leg.br",
19049  "to.leg.br",
19050  "pixolino.com",
19051  "na4u.ru",
19052  "apps-1and1.com",
19053  "live-website.com",
19054  "apps-1and1.net",
19055  "websitebuilder.online",
19056  "app-ionos.space",
19057  "iopsys.se",
19058  "*.dweb.link",
19059  "ipifony.net",
19060  "ir.md",
19061  "is-a-good.dev",
19062  "is-a.dev",
19063  "iservschule.de",
19064  "mein-iserv.de",
19065  "schulplattform.de",
19066  "schulserver.de",
19067  "test-iserv.de",
19068  "iserv.dev",
19069  "mel.cloudlets.com.au",
19070  "cloud.interhostsolutions.be",
19071  "alp1.ae.flow.ch",
19072  "appengine.flow.ch",
19073  "es-1.axarnet.cloud",
19074  "diadem.cloud",
19075  "vip.jelastic.cloud",
19076  "jele.cloud",
19077  "it1.eur.aruba.jenv-aruba.cloud",
19078  "it1.jenv-aruba.cloud",
19079  "keliweb.cloud",
19080  "cs.keliweb.cloud",
19081  "oxa.cloud",
19082  "tn.oxa.cloud",
19083  "uk.oxa.cloud",
19084  "primetel.cloud",
19085  "uk.primetel.cloud",
19086  "ca.reclaim.cloud",
19087  "uk.reclaim.cloud",
19088  "us.reclaim.cloud",
19089  "ch.trendhosting.cloud",
19090  "de.trendhosting.cloud",
19091  "jele.club",
19092  "dopaas.com",
19093  "paas.hosted-by-previder.com",
19094  "rag-cloud.hosteur.com",
19095  "rag-cloud-ch.hosteur.com",
19096  "jcloud.ik-server.com",
19097  "jcloud-ver-jpc.ik-server.com",
19098  "demo.jelastic.com",
19099  "paas.massivegrid.com",
19100  "jed.wafaicloud.com",
19101  "ryd.wafaicloud.com",
19102  "j.scaleforce.com.cy",
19103  "jelastic.dogado.eu",
19104  "fi.cloudplatform.fi",
19105  "demo.datacenter.fi",
19106  "paas.datacenter.fi",
19107  "jele.host",
19108  "mircloud.host",
19109  "paas.beebyte.io",
19110  "sekd1.beebyteapp.io",
19111  "jele.io",
19112  "jc.neen.it",
19113  "jcloud.kz",
19114  "cloudjiffy.net",
19115  "fra1-de.cloudjiffy.net",
19116  "west1-us.cloudjiffy.net",
19117  "jls-sto1.elastx.net",
19118  "jls-sto2.elastx.net",
19119  "jls-sto3.elastx.net",
19120  "fr-1.paas.massivegrid.net",
19121  "lon-1.paas.massivegrid.net",
19122  "lon-2.paas.massivegrid.net",
19123  "ny-1.paas.massivegrid.net",
19124  "ny-2.paas.massivegrid.net",
19125  "sg-1.paas.massivegrid.net",
19126  "jelastic.saveincloud.net",
19127  "nordeste-idc.saveincloud.net",
19128  "j.scaleforce.net",
19129  "sdscloud.pl",
19130  "unicloud.pl",
19131  "mircloud.ru",
19132  "enscaled.sg",
19133  "jele.site",
19134  "jelastic.team",
19135  "orangecloud.tn",
19136  "j.layershift.co.uk",
19137  "phx.enscaled.us",
19138  "mircloud.us",
19139  "myjino.ru",
19140  "*.hosting.myjino.ru",
19141  "*.landing.myjino.ru",
19142  "*.spectrum.myjino.ru",
19143  "*.vps.myjino.ru",
19144  "jotelulu.cloud",
19145  "webadorsite.com",
19146  "jouwweb.site",
19147  "*.cns.joyent.com",
19148  "*.triton.zone",
19149  "js.org",
19150  "kaas.gg",
19151  "khplay.nl",
19152  "kapsi.fi",
19153  "ezproxy.kuleuven.be",
19154  "kuleuven.cloud",
19155  "keymachine.de",
19156  "kinghost.net",
19157  "uni5.net",
19158  "knightpoint.systems",
19159  "koobin.events",
19160  "webthings.io",
19161  "krellian.net",
19162  "oya.to",
19163  "git-repos.de",
19164  "lcube-server.de",
19165  "svn-repos.de",
19166  "leadpages.co",
19167  "lpages.co",
19168  "lpusercontent.com",
19169  "lelux.site",
19170  "libp2p.direct",
19171  "runcontainers.dev",
19172  "co.business",
19173  "co.education",
19174  "co.events",
19175  "co.financial",
19176  "co.network",
19177  "co.place",
19178  "co.technology",
19179  "linkyard-cloud.ch",
19180  "linkyard.cloud",
19181  "members.linode.com",
19182  "*.nodebalancer.linode.com",
19183  "*.linodeobjects.com",
19184  "ip.linodeusercontent.com",
19185  "we.bs",
19186  "filegear-sg.me",
19187  "ggff.net",
19188  "*.user.localcert.dev",
19189  "lodz.pl",
19190  "pabianice.pl",
19191  "plock.pl",
19192  "sieradz.pl",
19193  "skierniewice.pl",
19194  "zgierz.pl",
19195  "loginline.app",
19196  "loginline.dev",
19197  "loginline.io",
19198  "loginline.services",
19199  "loginline.site",
19200  "lohmus.me",
19201  "servers.run",
19202  "krasnik.pl",
19203  "leczna.pl",
19204  "lubartow.pl",
19205  "lublin.pl",
19206  "poniatowa.pl",
19207  "swidnik.pl",
19208  "glug.org.uk",
19209  "lug.org.uk",
19210  "lugs.org.uk",
19211  "barsy.bg",
19212  "barsy.club",
19213  "barsycenter.com",
19214  "barsyonline.com",
19215  "barsy.de",
19216  "barsy.dev",
19217  "barsy.eu",
19218  "barsy.gr",
19219  "barsy.in",
19220  "barsy.info",
19221  "barsy.io",
19222  "barsy.me",
19223  "barsy.menu",
19224  "barsyonline.menu",
19225  "barsy.mobi",
19226  "barsy.net",
19227  "barsy.online",
19228  "barsy.org",
19229  "barsy.pro",
19230  "barsy.pub",
19231  "barsy.ro",
19232  "barsy.rs",
19233  "barsy.shop",
19234  "barsyonline.shop",
19235  "barsy.site",
19236  "barsy.store",
19237  "barsy.support",
19238  "barsy.uk",
19239  "barsy.co.uk",
19240  "barsyonline.co.uk",
19241  "*.magentosite.cloud",
19242  "hb.cldmail.ru",
19243  "matlab.cloud",
19244  "modelscape.com",
19245  "mwcloudnonprod.com",
19246  "polyspace.com",
19247  "mayfirst.info",
19248  "mayfirst.org",
19249  "mazeplay.com",
19250  "mcdir.me",
19251  "mcdir.ru",
19252  "vps.mcdir.ru",
19253  "mcpre.ru",
19254  "mediatech.by",
19255  "mediatech.dev",
19256  "hra.health",
19257  "medusajs.app",
19258  "miniserver.com",
19259  "memset.net",
19260  "messerli.app",
19261  "atmeta.com",
19262  "apps.fbsbx.com",
19263  "*.cloud.metacentrum.cz",
19264  "custom.metacentrum.cz",
19265  "flt.cloud.muni.cz",
19266  "usr.cloud.muni.cz",
19267  "meteorapp.com",
19268  "eu.meteorapp.com",
19269  "co.pl",
19270  "*.azurecontainer.io",
19271  "azure-api.net",
19272  "azure-mobile.net",
19273  "azureedge.net",
19274  "azurefd.net",
19275  "azurestaticapps.net",
19276  "1.azurestaticapps.net",
19277  "2.azurestaticapps.net",
19278  "3.azurestaticapps.net",
19279  "4.azurestaticapps.net",
19280  "5.azurestaticapps.net",
19281  "6.azurestaticapps.net",
19282  "7.azurestaticapps.net",
19283  "centralus.azurestaticapps.net",
19284  "eastasia.azurestaticapps.net",
19285  "eastus2.azurestaticapps.net",
19286  "westeurope.azurestaticapps.net",
19287  "westus2.azurestaticapps.net",
19288  "azurewebsites.net",
19289  "cloudapp.net",
19290  "trafficmanager.net",
19291  "blob.core.windows.net",
19292  "servicebus.windows.net",
19293  "routingthecloud.com",
19294  "sn.mynetname.net",
19295  "routingthecloud.net",
19296  "routingthecloud.org",
19297  "csx.cc",
19298  "mydbserver.com",
19299  "webspaceconfig.de",
19300  "mittwald.info",
19301  "mittwaldserver.info",
19302  "typo3server.info",
19303  "project.space",
19304  "modx.dev",
19305  "bmoattachments.org",
19306  "net.ru",
19307  "org.ru",
19308  "pp.ru",
19309  "hostedpi.com",
19310  "caracal.mythic-beasts.com",
19311  "customer.mythic-beasts.com",
19312  "fentiger.mythic-beasts.com",
19313  "lynx.mythic-beasts.com",
19314  "ocelot.mythic-beasts.com",
19315  "oncilla.mythic-beasts.com",
19316  "onza.mythic-beasts.com",
19317  "sphinx.mythic-beasts.com",
19318  "vs.mythic-beasts.com",
19319  "x.mythic-beasts.com",
19320  "yali.mythic-beasts.com",
19321  "cust.retrosnub.co.uk",
19322  "ui.nabu.casa",
19323  "cloud.nospamproxy.com",
19324  "netfy.app",
19325  "netlify.app",
19326  "4u.com",
19327  "nfshost.com",
19328  "ipfs.nftstorage.link",
19329  "ngo.us",
19330  "ngrok.app",
19331  "ngrok-free.app",
19332  "ngrok.dev",
19333  "ngrok-free.dev",
19334  "ngrok.io",
19335  "ap.ngrok.io",
19336  "au.ngrok.io",
19337  "eu.ngrok.io",
19338  "in.ngrok.io",
19339  "jp.ngrok.io",
19340  "sa.ngrok.io",
19341  "us.ngrok.io",
19342  "ngrok.pizza",
19343  "ngrok.pro",
19344  "torun.pl",
19345  "nh-serv.co.uk",
19346  "nimsite.uk",
19347  "mmafan.biz",
19348  "myftp.biz",
19349  "no-ip.biz",
19350  "no-ip.ca",
19351  "fantasyleague.cc",
19352  "gotdns.ch",
19353  "3utilities.com",
19354  "blogsyte.com",
19355  "ciscofreak.com",
19356  "damnserver.com",
19357  "ddnsking.com",
19358  "ditchyourip.com",
19359  "dnsiskinky.com",
19360  "dynns.com",
19361  "geekgalaxy.com",
19362  "health-carereform.com",
19363  "homesecuritymac.com",
19364  "homesecuritypc.com",
19365  "myactivedirectory.com",
19366  "mysecuritycamera.com",
19367  "myvnc.com",
19368  "net-freaks.com",
19369  "onthewifi.com",
19370  "point2this.com",
19371  "quicksytes.com",
19372  "securitytactics.com",
19373  "servebeer.com",
19374  "servecounterstrike.com",
19375  "serveexchange.com",
19376  "serveftp.com",
19377  "servegame.com",
19378  "servehalflife.com",
19379  "servehttp.com",
19380  "servehumour.com",
19381  "serveirc.com",
19382  "servemp3.com",
19383  "servep2p.com",
19384  "servepics.com",
19385  "servequake.com",
19386  "servesarcasm.com",
19387  "stufftoread.com",
19388  "unusualperson.com",
19389  "workisboring.com",
19390  "dvrcam.info",
19391  "ilovecollege.info",
19392  "no-ip.info",
19393  "brasilia.me",
19394  "ddns.me",
19395  "dnsfor.me",
19396  "hopto.me",
19397  "loginto.me",
19398  "noip.me",
19399  "webhop.me",
19400  "bounceme.net",
19401  "ddns.net",
19402  "eating-organic.net",
19403  "mydissent.net",
19404  "myeffect.net",
19405  "mymediapc.net",
19406  "mypsx.net",
19407  "mysecuritycamera.net",
19408  "nhlfan.net",
19409  "no-ip.net",
19410  "pgafan.net",
19411  "privatizehealthinsurance.net",
19412  "redirectme.net",
19413  "serveblog.net",
19414  "serveminecraft.net",
19415  "sytes.net",
19416  "cable-modem.org",
19417  "collegefan.org",
19418  "couchpotatofries.org",
19419  "hopto.org",
19420  "mlbfan.org",
19421  "myftp.org",
19422  "mysecuritycamera.org",
19423  "nflfan.org",
19424  "no-ip.org",
19425  "read-books.org",
19426  "ufcfan.org",
19427  "zapto.org",
19428  "no-ip.co.uk",
19429  "golffan.us",
19430  "noip.us",
19431  "pointto.us",
19432  "stage.nodeart.io",
19433  "*.developer.app",
19434  "noop.app",
19435  "*.northflank.app",
19436  "*.build.run",
19437  "*.code.run",
19438  "*.database.run",
19439  "*.migration.run",
19440  "noticeable.news",
19441  "notion.site",
19442  "dnsking.ch",
19443  "mypi.co",
19444  "n4t.co",
19445  "001www.com",
19446  "myiphost.com",
19447  "forumz.info",
19448  "soundcast.me",
19449  "tcp4.me",
19450  "dnsup.net",
19451  "hicam.net",
19452  "now-dns.net",
19453  "ownip.net",
19454  "vpndns.net",
19455  "dynserv.org",
19456  "now-dns.org",
19457  "x443.pw",
19458  "now-dns.top",
19459  "ntdll.top",
19460  "freeddns.us",
19461  "nsupdate.info",
19462  "nerdpol.ovh",
19463  "nyc.mn",
19464  "prvcy.page",
19465  "obl.ong",
19466  "observablehq.cloud",
19467  "static.observableusercontent.com",
19468  "omg.lol",
19469  "cloudycluster.net",
19470  "omniwe.site",
19471  "123webseite.at",
19472  "123website.be",
19473  "simplesite.com.br",
19474  "123website.ch",
19475  "simplesite.com",
19476  "123webseite.de",
19477  "123hjemmeside.dk",
19478  "123miweb.es",
19479  "123kotisivu.fi",
19480  "123siteweb.fr",
19481  "simplesite.gr",
19482  "123homepage.it",
19483  "123website.lu",
19484  "123website.nl",
19485  "123hjemmeside.no",
19486  "service.one",
19487  "simplesite.pl",
19488  "123paginaweb.pt",
19489  "123minsida.se",
19490  "is-a-fullstack.dev",
19491  "is-cool.dev",
19492  "is-not-a.dev",
19493  "localplayer.dev",
19494  "is-local.org",
19495  "opensocial.site",
19496  "opencraft.hosting",
19497  "16-b.it",
19498  "32-b.it",
19499  "64-b.it",
19500  "orsites.com",
19501  "operaunite.com",
19502  "*.customer-oci.com",
19503  "*.oci.customer-oci.com",
19504  "*.ocp.customer-oci.com",
19505  "*.ocs.customer-oci.com",
19506  "*.oraclecloudapps.com",
19507  "*.oraclegovcloudapps.com",
19508  "*.oraclegovcloudapps.uk",
19509  "tech.orange",
19510  "can.re",
19511  "authgear-staging.com",
19512  "authgearapps.com",
19513  "skygearapp.com",
19514  "outsystemscloud.com",
19515  "*.hosting.ovh.net",
19516  "*.webpaas.ovh.net",
19517  "ownprovider.com",
19518  "own.pm",
19519  "*.owo.codes",
19520  "ox.rs",
19521  "oy.lc",
19522  "pgfog.com",
19523  "pagexl.com",
19524  "gotpantheon.com",
19525  "pantheonsite.io",
19526  "*.paywhirl.com",
19527  "*.xmit.co",
19528  "xmit.dev",
19529  "madethis.site",
19530  "srv.us",
19531  "gh.srv.us",
19532  "gl.srv.us",
19533  "lk3.ru",
19534  "mypep.link",
19535  "perspecta.cloud",
19536  "on-web.fr",
19537  "*.upsun.app",
19538  "upsunapp.com",
19539  "ent.platform.sh",
19540  "eu.platform.sh",
19541  "us.platform.sh",
19542  "*.platformsh.site",
19543  "*.tst.site",
19544  "platter-app.com",
19545  "platter-app.dev",
19546  "platterp.us",
19547  "pley.games",
19548  "onporter.run",
19549  "co.bn",
19550  "postman-echo.com",
19551  "pstmn.io",
19552  "mock.pstmn.io",
19553  "httpbin.org",
19554  "prequalifyme.today",
19555  "xen.prgmr.com",
19556  "priv.at",
19557  "protonet.io",
19558  "chirurgiens-dentistes-en-france.fr",
19559  "byen.site",
19560  "pubtls.org",
19561  "pythonanywhere.com",
19562  "eu.pythonanywhere.com",
19563  "qa2.com",
19564  "qcx.io",
19565  "*.sys.qcx.io",
19566  "myqnapcloud.cn",
19567  "alpha-myqnapcloud.com",
19568  "dev-myqnapcloud.com",
19569  "mycloudnas.com",
19570  "mynascloud.com",
19571  "myqnapcloud.com",
19572  "qoto.io",
19573  "qualifioapp.com",
19574  "ladesk.com",
19575  "qbuser.com",
19576  "*.quipelements.com",
19577  "vapor.cloud",
19578  "vaporcloud.io",
19579  "rackmaze.com",
19580  "rackmaze.net",
19581  "cloudsite.builders",
19582  "myradweb.net",
19583  "servername.us",
19584  "web.in",
19585  "in.net",
19586  "myrdbx.io",
19587  "site.rb-hosting.io",
19588  "*.on-rancher.cloud",
19589  "*.on-k3s.io",
19590  "*.on-rio.io",
19591  "ravpage.co.il",
19592  "readthedocs-hosted.com",
19593  "readthedocs.io",
19594  "rhcloud.com",
19595  "instances.spawn.cc",
19596  "onrender.com",
19597  "app.render.com",
19598  "replit.app",
19599  "id.replit.app",
19600  "firewalledreplit.co",
19601  "id.firewalledreplit.co",
19602  "repl.co",
19603  "id.repl.co",
19604  "replit.dev",
19605  "archer.replit.dev",
19606  "bones.replit.dev",
19607  "canary.replit.dev",
19608  "global.replit.dev",
19609  "hacker.replit.dev",
19610  "id.replit.dev",
19611  "janeway.replit.dev",
19612  "kim.replit.dev",
19613  "kira.replit.dev",
19614  "kirk.replit.dev",
19615  "odo.replit.dev",
19616  "paris.replit.dev",
19617  "picard.replit.dev",
19618  "pike.replit.dev",
19619  "prerelease.replit.dev",
19620  "reed.replit.dev",
19621  "riker.replit.dev",
19622  "sisko.replit.dev",
19623  "spock.replit.dev",
19624  "staging.replit.dev",
19625  "sulu.replit.dev",
19626  "tarpit.replit.dev",
19627  "teams.replit.dev",
19628  "tucker.replit.dev",
19629  "wesley.replit.dev",
19630  "worf.replit.dev",
19631  "repl.run",
19632  "resindevice.io",
19633  "devices.resinstaging.io",
19634  "hzc.io",
19635  "adimo.co.uk",
19636  "itcouldbewor.se",
19637  "aus.basketball",
19638  "nz.basketball",
19639  "git-pages.rit.edu",
19640  "rocky.page",
19641  "rub.de",
19642  "ruhr-uni-bochum.de",
19643  "io.noc.ruhr-uni-bochum.de",
19644  "биз.рус",
19645  "ком.рус",
19646  "крым.рус",
19647  "мир.рус",
19648  "мск.рус",
19649  "орг.рус",
19650  "самара.рус",
19651  "сочи.рус",
19652  "спб.рус",
19653  "я.рус",
19654  "ras.ru",
19655  "nyat.app",
19656  "180r.com",
19657  "dojin.com",
19658  "sakuratan.com",
19659  "sakuraweb.com",
19660  "x0.com",
19661  "2-d.jp",
19662  "bona.jp",
19663  "crap.jp",
19664  "daynight.jp",
19665  "eek.jp",
19666  "flop.jp",
19667  "halfmoon.jp",
19668  "jeez.jp",
19669  "matrix.jp",
19670  "mimoza.jp",
19671  "ivory.ne.jp",
19672  "mail-box.ne.jp",
19673  "mints.ne.jp",
19674  "mokuren.ne.jp",
19675  "opal.ne.jp",
19676  "sakura.ne.jp",
19677  "sumomo.ne.jp",
19678  "topaz.ne.jp",
19679  "netgamers.jp",
19680  "nyanta.jp",
19681  "o0o0.jp",
19682  "rdy.jp",
19683  "rgr.jp",
19684  "rulez.jp",
19685  "s3.isk01.sakurastorage.jp",
19686  "s3.isk02.sakurastorage.jp",
19687  "saloon.jp",
19688  "sblo.jp",
19689  "skr.jp",
19690  "tank.jp",
19691  "uh-oh.jp",
19692  "undo.jp",
19693  "rs.webaccel.jp",
19694  "user.webaccel.jp",
19695  "websozai.jp",
19696  "xii.jp",
19697  "squares.net",
19698  "jpn.org",
19699  "kirara.st",
19700  "x0.to",
19701  "from.tv",
19702  "sakura.tv",
19703  "*.builder.code.com",
19704  "*.dev-builder.code.com",
19705  "*.stg-builder.code.com",
19706  "*.001.test.code-builder-stg.platform.salesforce.com",
19707  "*.d.crm.dev",
19708  "*.w.crm.dev",
19709  "*.wa.crm.dev",
19710  "*.wb.crm.dev",
19711  "*.wc.crm.dev",
19712  "*.wd.crm.dev",
19713  "*.we.crm.dev",
19714  "*.wf.crm.dev",
19715  "sandcats.io",
19716  "logoip.com",
19717  "logoip.de",
19718  "fr-par-1.baremetal.scw.cloud",
19719  "fr-par-2.baremetal.scw.cloud",
19720  "nl-ams-1.baremetal.scw.cloud",
19721  "cockpit.fr-par.scw.cloud",
19722  "fnc.fr-par.scw.cloud",
19723  "functions.fnc.fr-par.scw.cloud",
19724  "k8s.fr-par.scw.cloud",
19725  "nodes.k8s.fr-par.scw.cloud",
19726  "s3.fr-par.scw.cloud",
19727  "s3-website.fr-par.scw.cloud",
19728  "whm.fr-par.scw.cloud",
19729  "priv.instances.scw.cloud",
19730  "pub.instances.scw.cloud",
19731  "k8s.scw.cloud",
19732  "cockpit.nl-ams.scw.cloud",
19733  "k8s.nl-ams.scw.cloud",
19734  "nodes.k8s.nl-ams.scw.cloud",
19735  "s3.nl-ams.scw.cloud",
19736  "s3-website.nl-ams.scw.cloud",
19737  "whm.nl-ams.scw.cloud",
19738  "cockpit.pl-waw.scw.cloud",
19739  "k8s.pl-waw.scw.cloud",
19740  "nodes.k8s.pl-waw.scw.cloud",
19741  "s3.pl-waw.scw.cloud",
19742  "s3-website.pl-waw.scw.cloud",
19743  "scalebook.scw.cloud",
19744  "smartlabeling.scw.cloud",
19745  "dedibox.fr",
19746  "schokokeks.net",
19747  "gov.scot",
19748  "service.gov.scot",
19749  "scrysec.com",
19750  "client.scrypted.io",
19751  "firewall-gateway.com",
19752  "firewall-gateway.de",
19753  "my-gateway.de",
19754  "my-router.de",
19755  "spdns.de",
19756  "spdns.eu",
19757  "firewall-gateway.net",
19758  "my-firewall.org",
19759  "myfirewall.org",
19760  "spdns.org",
19761  "seidat.net",
19762  "sellfy.store",
19763  "minisite.ms",
19764  "senseering.net",
19765  "servebolt.cloud",
19766  "biz.ua",
19767  "co.ua",
19768  "pp.ua",
19769  "as.sh.cn",
19770  "sheezy.games",
19771  "shiftedit.io",
19772  "myshopblocks.com",
19773  "myshopify.com",
19774  "shopitsite.com",
19775  "shopware.shop",
19776  "shopware.store",
19777  "mo-siemens.io",
19778  "1kapp.com",
19779  "appchizi.com",
19780  "applinzi.com",
19781  "sinaapp.com",
19782  "vipsinaapp.com",
19783  "siteleaf.net",
19784  "small-web.org",
19785  "aeroport.fr",
19786  "avocat.fr",
19787  "chambagri.fr",
19788  "chirurgiens-dentistes.fr",
19789  "experts-comptables.fr",
19790  "medecin.fr",
19791  "notaires.fr",
19792  "pharmacien.fr",
19793  "port.fr",
19794  "veterinaire.fr",
19795  "vp4.me",
19796  "*.snowflake.app",
19797  "*.privatelink.snowflake.app",
19798  "streamlit.app",
19799  "streamlitapp.com",
19800  "try-snowplow.com",
19801  "mafelo.net",
19802  "playstation-cloud.com",
19803  "srht.site",
19804  "apps.lair.io",
19805  "*.stolos.io",
19806  "spacekit.io",
19807  "ind.mom",
19808  "customer.speedpartner.de",
19809  "myspreadshop.at",
19810  "myspreadshop.com.au",
19811  "myspreadshop.be",
19812  "myspreadshop.ca",
19813  "myspreadshop.ch",
19814  "myspreadshop.com",
19815  "myspreadshop.de",
19816  "myspreadshop.dk",
19817  "myspreadshop.es",
19818  "myspreadshop.fi",
19819  "myspreadshop.fr",
19820  "myspreadshop.ie",
19821  "myspreadshop.it",
19822  "myspreadshop.net",
19823  "myspreadshop.nl",
19824  "myspreadshop.no",
19825  "myspreadshop.pl",
19826  "myspreadshop.se",
19827  "myspreadshop.co.uk",
19828  "w-corp-staticblitz.com",
19829  "w-credentialless-staticblitz.com",
19830  "w-staticblitz.com",
19831  "stackhero-network.com",
19832  "runs.onstackit.cloud",
19833  "stackit.gg",
19834  "stackit.rocks",
19835  "stackit.run",
19836  "stackit.zone",
19837  "musician.io",
19838  "novecore.site",
19839  "api.stdlib.com",
19840  "feedback.ac",
19841  "forms.ac",
19842  "assessments.cx",
19843  "calculators.cx",
19844  "funnels.cx",
19845  "paynow.cx",
19846  "quizzes.cx",
19847  "researched.cx",
19848  "tests.cx",
19849  "surveys.so",
19850  "storebase.store",
19851  "storipress.app",
19852  "storj.farm",
19853  "strapiapp.com",
19854  "media.strapiapp.com",
19855  "vps-host.net",
19856  "atl.jelastic.vps-host.net",
19857  "njs.jelastic.vps-host.net",
19858  "ric.jelastic.vps-host.net",
19859  "streak-link.com",
19860  "streaklinks.com",
19861  "streakusercontent.com",
19862  "soc.srcf.net",
19863  "user.srcf.net",
19864  "utwente.io",
19865  "temp-dns.com",
19866  "supabase.co",
19867  "supabase.in",
19868  "supabase.net",
19869  "syncloud.it",
19870  "dscloud.biz",
19871  "direct.quickconnect.cn",
19872  "dsmynas.com",
19873  "familyds.com",
19874  "diskstation.me",
19875  "dscloud.me",
19876  "i234.me",
19877  "myds.me",
19878  "synology.me",
19879  "dscloud.mobi",
19880  "dsmynas.net",
19881  "familyds.net",
19882  "dsmynas.org",
19883  "familyds.org",
19884  "direct.quickconnect.to",
19885  "vpnplus.to",
19886  "mytabit.com",
19887  "mytabit.co.il",
19888  "tabitorder.co.il",
19889  "taifun-dns.de",
19890  "ts.net",
19891  "*.c.ts.net",
19892  "gda.pl",
19893  "gdansk.pl",
19894  "gdynia.pl",
19895  "med.pl",
19896  "sopot.pl",
19897  "taveusercontent.com",
19898  "p.tawk.email",
19899  "p.tawkto.email",
19900  "site.tb-hosting.com",
19901  "edugit.io",
19902  "s3.teckids.org",
19903  "telebit.app",
19904  "telebit.io",
19905  "*.telebit.xyz",
19906  "*.firenet.ch",
19907  "*.svc.firenet.ch",
19908  "reservd.com",
19909  "thingdustdata.com",
19910  "cust.dev.thingdust.io",
19911  "reservd.dev.thingdust.io",
19912  "cust.disrec.thingdust.io",
19913  "reservd.disrec.thingdust.io",
19914  "cust.prod.thingdust.io",
19915  "cust.testing.thingdust.io",
19916  "reservd.testing.thingdust.io",
19917  "tickets.io",
19918  "arvo.network",
19919  "azimuth.network",
19920  "tlon.network",
19921  "torproject.net",
19922  "pages.torproject.net",
19923  "townnews-staging.com",
19924  "12hp.at",
19925  "2ix.at",
19926  "4lima.at",
19927  "lima-city.at",
19928  "12hp.ch",
19929  "2ix.ch",
19930  "4lima.ch",
19931  "lima-city.ch",
19932  "trafficplex.cloud",
19933  "de.cool",
19934  "12hp.de",
19935  "2ix.de",
19936  "4lima.de",
19937  "lima-city.de",
19938  "1337.pictures",
19939  "clan.rip",
19940  "lima-city.rocks",
19941  "webspace.rocks",
19942  "lima.zone",
19943  "*.transurl.be",
19944  "*.transurl.eu",
19945  "site.transip.me",
19946  "*.transurl.nl",
19947  "tuxfamily.org",
19948  "dd-dns.de",
19949  "dray-dns.de",
19950  "draydns.de",
19951  "dyn-vpn.de",
19952  "dynvpn.de",
19953  "mein-vigor.de",
19954  "my-vigor.de",
19955  "my-wan.de",
19956  "syno-ds.de",
19957  "synology-diskstation.de",
19958  "synology-ds.de",
19959  "diskstation.eu",
19960  "diskstation.org",
19961  "typedream.app",
19962  "pro.typeform.com",
19963  "*.uberspace.de",
19964  "uber.space",
19965  "hk.com",
19966  "inc.hk",
19967  "ltd.hk",
19968  "hk.org",
19969  "it.com",
19970  "unison-services.cloud",
19971  "virtual-user.de",
19972  "virtualuser.de",
19973  "name.pm",
19974  "sch.tf",
19975  "biz.wf",
19976  "sch.wf",
19977  "org.yt",
19978  "rs.ba",
19979  "bielsko.pl",
19980  "upli.io",
19981  "urown.cloud",
19982  "dnsupdate.info",
19983  "us.org",
19984  "v.ua",
19985  "express.val.run",
19986  "web.val.run",
19987  "vercel.app",
19988  "v0.build",
19989  "vercel.dev",
19990  "vusercontent.net",
19991  "now.sh",
19992  "2038.io",
19993  "router.management",
19994  "v-info.info",
19995  "voorloper.cloud",
19996  "*.vultrobjects.com",
19997  "wafflecell.com",
19998  "webflow.io",
19999  "webflowtest.io",
20000  "*.webhare.dev",
20001  "bookonline.app",
20002  "hotelwithflight.com",
20003  "reserve-online.com",
20004  "reserve-online.net",
20005  "cprapid.com",
20006  "pleskns.com",
20007  "wp2.host",
20008  "pdns.page",
20009  "plesk.page",
20010  "wpsquared.site",
20011  "*.wadl.top",
20012  "remotewd.com",
20013  "box.ca",
20014  "pages.wiardweb.com",
20015  "toolforge.org",
20016  "wmcloud.org",
20017  "wmflabs.org",
20018  "wdh.app",
20019  "panel.gg",
20020  "daemon.panel.gg",
20021  "wixsite.com",
20022  "wixstudio.com",
20023  "editorx.io",
20024  "wixstudio.io",
20025  "wix.run",
20026  "messwithdns.com",
20027  "woltlab-demo.com",
20028  "myforum.community",
20029  "community-pro.de",
20030  "diskussionsbereich.de",
20031  "community-pro.net",
20032  "meinforum.net",
20033  "affinitylottery.org.uk",
20034  "raffleentry.org.uk",
20035  "weeklylottery.org.uk",
20036  "wpenginepowered.com",
20037  "js.wpenginepowered.com",
20038  "half.host",
20039  "xnbay.com",
20040  "u2.xnbay.com",
20041  "u2-local.xnbay.com",
20042  "cistron.nl",
20043  "demon.nl",
20044  "xs4all.space",
20045  "yandexcloud.net",
20046  "storage.yandexcloud.net",
20047  "website.yandexcloud.net",
20048  "official.academy",
20049  "yolasite.com",
20050  "yombo.me",
20051  "ynh.fr",
20052  "nohost.me",
20053  "noho.st",
20054  "za.net",
20055  "za.org",
20056  "zap.cloud",
20057  "zeabur.app",
20058  "bss.design",
20059  "basicserver.io",
20060  "virtualserver.io",
20061  "enterprisecloud.nu"
20062], Q = K.reduce(
20063  (e, s) => {
20064    const c = s.replace(/^(\*\.|\!)/, ""), o = A.toASCII(c), t = s.charAt(0);
20065    if (e.has(o))
20066      throw new Error(`Multiple rules found for ${s} (${o})`);
20067    return e.set(o, {
20068      rule: s,
20069      suffix: c,
20070      punySuffix: o,
20071      wildcard: t === "*",
20072      exception: t === "!"
20073    }), e;
20074  },
20075  /* @__PURE__ */ new Map()
20076), X = (e) => {
20077  const c = A.toASCII(e).split(".");
20078  for (let o = 0; o < c.length; o++) {
20079    const t = c.slice(o).join("."), d = Q.get(t);
20080    if (d)
20081      return d;
20082  }
20083  return null;
20084}, Y = {
20085  DOMAIN_TOO_SHORT: "Domain name too short.",
20086  DOMAIN_TOO_LONG: "Domain name too long. It should be no more than 255 chars.",
20087  LABEL_STARTS_WITH_DASH: "Domain name label can not start with a dash.",
20088  LABEL_ENDS_WITH_DASH: "Domain name label can not end with a dash.",
20089  LABEL_TOO_LONG: "Domain name label should be at most 63 chars long.",
20090  LABEL_TOO_SHORT: "Domain name label should be at least 1 character long.",
20091  LABEL_INVALID_CHARS: "Domain name label can only contain alphanumeric characters or dashes."
20092}, Z = (e) => {
20093  const s = A.toASCII(e);
20094  if (s.length < 1)
20095    return "DOMAIN_TOO_SHORT";
20096  if (s.length > 255)
20097    return "DOMAIN_TOO_LONG";
20098  const c = s.split(".");
20099  let o;
20100  for (let t = 0; t < c.length; ++t) {
20101    if (o = c[t], !o.length)
20102      return "LABEL_TOO_SHORT";
20103    if (o.length > 63)
20104      return "LABEL_TOO_LONG";
20105    if (o.charAt(0) === "-")
20106      return "LABEL_STARTS_WITH_DASH";
20107    if (o.charAt(o.length - 1) === "-")
20108      return "LABEL_ENDS_WITH_DASH";
20109    if (!/^[a-z0-9\-_]+$/.test(o))
20110      return "LABEL_INVALID_CHARS";
20111  }
20112}, O = (e) => {
20113  if (typeof e != "string")
20114    throw new TypeError("Domain name must be a string.");
20115  let s = e.slice(0).toLowerCase();
20116  s.charAt(s.length - 1) === "." && (s = s.slice(0, s.length - 1));
20117  const c = Z(s);
20118  if (c)
20119    return {
20120      input: e,
20121      error: {
20122        message: Y[c],
20123        code: c
20124      }
20125    };
20126  const o = {
20127    input: e,
20128    tld: null,
20129    sld: null,
20130    domain: null,
20131    subdomain: null,
20132    listed: !1
20133  }, t = s.split(".");
20134  if (t[t.length - 1] === "local")
20135    return o;
20136  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);
20137  if (!z)
20138    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());
20139  o.listed = !0;
20140  const y = z.suffix.split("."), g = t.slice(0, t.length - y.length);
20141  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();
20142}, aa = (e) => e && O(e).domain || null, oa = (e) => {
20143  const s = O(e);
20144  return !!(s.domain && s.listed);
20145}, na = { parse: O, get: aa, isValid: oa };
20146
20147
20148
20149/***/ }),
20150
20151/***/ 67536:
20152/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20153
20154"use strict";
20155/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20156/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
20157/* harmony export */ });
20158var raf = function raf(callback) {
20159  return +setTimeout(callback, 16);
20160};
20161var caf = function caf(num) {
20162  return clearTimeout(num);
20163};
20164if (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {
20165  raf = function raf(callback) {
20166    return window.requestAnimationFrame(callback);
20167  };
20168  caf = function caf(handle) {
20169    return window.cancelAnimationFrame(handle);
20170  };
20171}
20172var rafUUID = 0;
20173var rafIds = new Map();
20174function cleanup(id) {
20175  rafIds.delete(id);
20176}
20177var wrapperRaf = function wrapperRaf(callback) {
20178  var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
20179  rafUUID += 1;
20180  var id = rafUUID;
20181  function callRef(leftTimes) {
20182    if (leftTimes === 0) {
20183      // Clean up
20184      cleanup(id);
20185
20186      // Trigger
20187      callback();
20188    } else {
20189      // Next raf
20190      var realId = raf(function () {
20191        callRef(leftTimes - 1);
20192      });
20193
20194      // Bind real raf id
20195      rafIds.set(id, realId);
20196    }
20197  }
20198  callRef(times);
20199  return id;
20200};
20201wrapperRaf.cancel = function (id) {
20202  var realId = rafIds.get(id);
20203  cleanup(id);
20204  return caf(realId);
20205};
20206if (false) // removed by dead control flow
20207{}
20208/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (wrapperRaf);
20209
20210/***/ }),
20211
20212/***/ 69055:
20213/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20214
20215"use strict";
20216/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20217/* harmony export */   A: () => (/* binding */ useIsQk)
20218/* harmony export */ });
20219function useIsQk(server_siteCheck) {
20220  var _a, _b;
20221  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;
20222  return ((_b = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _b === void 0 ? void 0 : _b.isShow('global-qkff')) === false;
20223}
20224
20225/***/ }),
20226
20227/***/ 69740:
20228/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
20229
20230"use strict";
20231/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20232/* harmony export */   A: () => (/* binding */ _objectSpread2)
20233/* harmony export */ });
20234/* harmony import */ var _defineProperty_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24586);
20235
20236function ownKeys(e, r) {
20237  var t = Object.keys(e);
20238  if (Object.getOwnPropertySymbols) {
20239    var o = Object.getOwnPropertySymbols(e);
20240    r && (o = o.filter(function (r) {
20241      return Object.getOwnPropertyDescriptor(e, r).enumerable;
20242    })), t.push.apply(t, o);
20243  }
20244  return t;
20245}
20246function _objectSpread2(e) {
20247  for (var r = 1; r < arguments.length; r++) {
20248    var t = null != arguments[r] ? arguments[r] : {};
20249    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
20250      (0,_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(e, r, t[r]);
20251    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
20252      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
20253    });
20254  }
20255  return e;
20256}
20257
20258
20259/***/ }),
20260
20261/***/ 70297:
20262/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20263
20264"use strict";
20265/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20266/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
20267/* harmony export */ });
20268/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79082);
20269/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
20270/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
20271/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(56003);
20272/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_2__);
20273/* harmony import */ var rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(47169);
20274/* harmony import */ var rc_util_es_warning__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84445);
20275/* harmony import */ var rc_util_es_ref__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(19284);
20276/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(50184);
20277/* harmony import */ var _useDom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(74234);
20278/* harmony import */ var _useScrollLocker__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(6553);
20279/* harmony import */ var _mock__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(71161);
20280
20281
20282
20283
20284
20285
20286
20287
20288
20289
20290var getPortalContainer = function getPortalContainer(getContainer) {
20291  if (getContainer === false) {
20292    return false;
20293  }
20294  if (!(0,rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)() || !getContainer) {
20295    return null;
20296  }
20297  if (typeof getContainer === 'string') {
20298    return document.querySelector(getContainer);
20299  }
20300  if (typeof getContainer === 'function') {
20301    return getContainer();
20302  }
20303  return getContainer;
20304};
20305var Portal = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(function (props, ref) {
20306  var open = props.open,
20307    autoLock = props.autoLock,
20308    getContainer = props.getContainer,
20309    debug = props.debug,
20310    _props$autoDestroy = props.autoDestroy,
20311    autoDestroy = _props$autoDestroy === void 0 ? true : _props$autoDestroy,
20312    children = props.children;
20313  var _React$useState = react__WEBPACK_IMPORTED_MODULE_1__.useState(open),
20314    _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(_React$useState, 2),
20315    shouldRender = _React$useState2[0],
20316    setShouldRender = _React$useState2[1];
20317  var mergedRender = shouldRender || open;
20318
20319  // ========================= Warning =========================
20320  if (false) // removed by dead control flow
20321{}
20322
20323  // ====================== Should Render ======================
20324  react__WEBPACK_IMPORTED_MODULE_1__.useEffect(function () {
20325    if (autoDestroy || open) {
20326      setShouldRender(open);
20327    }
20328  }, [open, autoDestroy]);
20329
20330  // ======================== Container ========================
20331  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_1__.useState(function () {
20332      return getPortalContainer(getContainer);
20333    }),
20334    _React$useState4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(_React$useState3, 2),
20335    innerContainer = _React$useState4[0],
20336    setInnerContainer = _React$useState4[1];
20337  react__WEBPACK_IMPORTED_MODULE_1__.useEffect(function () {
20338    var customizeContainer = getPortalContainer(getContainer);
20339
20340    // Tell component that we check this in effect which is safe to be `null`
20341    setInnerContainer(customizeContainer !== null && customizeContainer !== void 0 ? customizeContainer : null);
20342  });
20343  var _useDom = (0,_useDom__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)(mergedRender && !innerContainer, debug),
20344    _useDom2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(_useDom, 2),
20345    defaultContainer = _useDom2[0],
20346    queueCreate = _useDom2[1];
20347  var mergedContainer = innerContainer !== null && innerContainer !== void 0 ? innerContainer : defaultContainer;
20348
20349  // ========================= Locker ==========================
20350  (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));
20351
20352  // =========================== Ref ===========================
20353  var childRef = null;
20354  if (children && (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_5__/* .supportRef */ .f3)(children) && ref) {
20355    var _ref = children;
20356    childRef = _ref.ref;
20357  }
20358  var mergedRef = (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_5__/* .useComposeRef */ .xK)(childRef, ref);
20359
20360  // ========================= Render ==========================
20361  // Do not render when nothing need render
20362  // When innerContainer is `undefined`, it may not ready since user use ref in the same render
20363  if (!mergedRender || !(0,rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)() || innerContainer === undefined) {
20364    return null;
20365  }
20366
20367  // Render inline
20368  var renderInline = mergedContainer === false || (0,_mock__WEBPACK_IMPORTED_MODULE_9__/* .inlineMock */ .O)();
20369  var reffedChildren = children;
20370  if (ref) {
20371    reffedChildren = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.cloneElement(children, {
20372      ref: mergedRef
20373    });
20374  }
20375  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_Context__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A.Provider, {
20376    value: queueCreate
20377  }, renderInline ? reffedChildren : /*#__PURE__*/(0,react_dom__WEBPACK_IMPORTED_MODULE_2__.createPortal)(reffedChildren, mergedContainer));
20378});
20379if (false) // removed by dead control flow
20380{}
20381/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Portal);
20382
20383/***/ }),
20384
20385/***/ 71161:
20386/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20387
20388"use strict";
20389/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20390/* harmony export */   O: () => (/* binding */ inlineMock)
20391/* harmony export */ });
20392/* unused harmony export inline */
20393var inline = false;
20394function inlineMock(nextInline) {
20395  if (typeof nextInline === 'boolean') {
20396    inline = nextInline;
20397  }
20398  return inline;
20399}
20400
20401/***/ }),
20402
20403/***/ 71850:
20404/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20405
20406"use strict";
20407/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20408/* harmony export */   A: () => (/* binding */ useIsMyCJ),
20409/* harmony export */   h: () => (/* binding */ isMyCjPageCheck)
20410/* harmony export */ });
20411/* harmony import */ var _components_CjHeader_contexts_PropsContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44148);
20412/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
20413/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
20414
20415
20416var isMyCjPageCheck = function isMyCjPageCheck(path) {
20417  return path.startsWith('/my.html') || path.startsWith('/mine/');
20418};
20419function useIsMyCJ() {
20420  var path = (0,_components_CjHeader_contexts_PropsContext__WEBPACK_IMPORTED_MODULE_0__/* .useGlobalProps */ .v)().path;
20421  var isMyCJPage = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(function () {
20422    return isMyCjPageCheck(path);
20423  }, [path]);
20424  var isOld = path.startsWith('/my.html');
20425  var isNew = path.startsWith('/mine/');
20426  return {
20427    isMyCJPage: isMyCJPage,
20428    isOld: isOld,
20429    isNew: isNew
20430  };
20431}
20432
20433/***/ }),
20434
20435/***/ 72715:
20436/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
20437
20438"use strict";
20439/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20440/* harmony export */   A: () => (/* binding */ _getPrototypeOf)
20441/* harmony export */ });
20442function _getPrototypeOf(t) {
20443  return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
20444    return t.__proto__ || Object.getPrototypeOf(t);
20445  }, _getPrototypeOf(t);
20446}
20447
20448
20449/***/ }),
20450
20451/***/ 72777:
20452/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20453
20454"use strict";
20455/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20456/* harmony export */   cc: () => (/* binding */ getOtherCookies)
20457/* harmony export */ });
20458/* unused harmony exports getWarehouses, getShowAuthorPlatform, getCurrencys, getQueryParams */
20459/* harmony import */ var _services__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62934);
20460/* harmony import */ var _common_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4703);
20461/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(81002);
20462/* harmony import */ var _components_CjHeader_const_show_authorize_list__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84266);
20463/* harmony import */ var _common_get_cookies__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(74372);
20464var __assign = undefined && undefined.__assign || function () {
20465  __assign = Object.assign || function (t) {
20466    for (var s, i = 1, n = arguments.length; i < n; i++) {
20467      s = arguments[i];
20468      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
20469    }
20470    return t;
20471  };
20472  return __assign.apply(this, arguments);
20473};
20474var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
20475  function adopt(value) {
20476    return value instanceof P ? value : new P(function (resolve) {
20477      resolve(value);
20478    });
20479  }
20480  return new (P || (P = Promise))(function (resolve, reject) {
20481    function fulfilled(value) {
vendor: 2,671 bytes, lines 20482-20595
20482      try {
20483        step(generator.next(value));
20484      } catch (e) {
20485        reject(e);
20486      }
20487    }
20488    function rejected(value) {
20489      try {
20490        step(generator["throw"](value));
20491      } catch (e) {
20492        reject(e);
20493      }
20494    }
20495    function step(result) {
20496      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
20497    }
20498    step((generator = generator.apply(thisArg, _arguments || [])).next());
20499  });
20500};
20501var __generator = undefined && undefined.__generator || function (thisArg, body) {
20502  var _ = {
20503      label: 0,
20504      sent: function sent() {
20505        if (t[0] & 1) throw t[1];
20506        return t[1];
20507      },
20508      trys: [],
20509      ops: []
20510    },
20511    f,
20512    y,
20513    t,
20514    g;
20515  return g = {
20516    next: verb(0),
20517    "throw": verb(1),
20518    "return": verb(2)
20519  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
20520    return this;
20521  }), g;
20522  function verb(n) {
20523    return function (v) {
20524      return step([n, v]);
20525    };
20526  }
20527  function step(op) {
20528    if (f) throw new TypeError("Generator is already executing.");
20529    while (g && (g = 0, op[0] && (_ = 0)), _) try {
20530      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;
20531      if (y = 0, t) op = [op[0] & 2, t.value];
20532      switch (op[0]) {
20533        case 0:
20534        case 1:
20535          t = op;
20536          break;
20537        case 4:
20538          _.label++;
20539          return {
20540            value: op[1],
20541            done: false
20542          };
20543        case 5:
20544          _.label++;
20545          y = op[1];
20546          op = [0];
20547          continue;
20548        case 7:
20549          op = _.ops.pop();
20550          _.trys.pop();
20551          continue;
20552        default:
20553          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
20554            _ = 0;
20555            continue;
20556          }
20557          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
20558            _.label = op[1];
20559            break;
20560          }
20561          if (op[0] === 6 && _.label < t[1]) {
20562            _.label = t[1];
20563            t = op;
20564            break;
20565          }
20566          if (t && _.label < t[2]) {
20567            _.label = t[2];
20568            _.ops.push(op);
20569            break;
20570          }
20571          if (t[2]) _.ops.pop();
20572          _.trys.pop();
20573          continue;
20574      }
20575      op = body.call(thisArg, _);
20576    } catch (e) {
20577      op = [6, e];
20578      y = 0;
20579    } finally {
20580      f = t = 0;
20581    }
20582    if (op[0] & 5) throw op[1];
20583    return {
20584      value: op[0] ? op[1] : void 0,
20585      done: true
20586    };
20587  }
20588};
20589
20590
20591
20592
20593
20594var getWarehouses = function getWarehouses(_a) {
20595  var ctx = _a.ctx,
20596    $axios = _a.$axios,
20597    lng = _a.lng;
20598  return __awaiter(void 0, void 0, void 0, function () {
20599    var _b, err, data;
20600    return __generator(this, function (_c) {
20601      switch (_c.label) {
20602        case 0:
20603          return [4, getWarehouseList({
20604            ctx: ctx,
20605            $axios: $axios,
20606            lng: lng
20607          })];
20608        case 1:
20609          _b = _c.sent(), err = _b[0], data = _b[1];
20610          if (!err && data) return [2, data];
20611          return [2, []];
20612      }
20613    });
20614  });
20615};
20616var getShowAuthorPlatform = function getShowAuthorPlatform(_a) {
20617  var ctx = _a.ctx,
20618    $axios = _a.$axios,
20619    token = _a.token;
20620  return __awaiter(void 0, void 0, void 0, function () {
20621    var showAuthorizeObject, platformKeys, data, _b, _i, data_1, element, item;
20622    var _c;
20623    return __generator(this, function (_d) {
20624      switch (_d.label) {
20625        case 0:
20626          showAuthorizeObject = __assign({}, showAuthorizeDefaultData);
20627          platformKeys = [];
20628          if (!ctx) return [3, 1];
20629          _b = (_c = ctx === null || ctx === void 0 ? void 0 : ctx.commonTopSSRProps) === null || _c === void 0 ? void 0 : _c.platformShowList;
20630          return [3, 3];
20631        case 1:
20632          return [4, getAuthorizeShowList($axios)];
20633        case 2:
20634          _b = _d.sent();
20635          _d.label = 3;
20636        case 3:
20637          data = _b;
20638          if (data && data.length > 0) {
20639            for (_i = 0, data_1 = data; _i < data_1.length; _i++) {
20640              element = data_1[_i];
20641              item = element;
20642              if (showAuthorizeObject[item.shopPlatformType]) {
20643                showAuthorizeObject[item.shopPlatformType].isAuthor = item.isAuthor;
20644                showAuthorizeObject[item.shopPlatformType].isShow = item.isShow;
20645                platformKeys.push(item.shopPlatformType);
20646              }
20647            }
20648          }
20649          return [2, {
20650            showAuthorizeObject: showAuthorizeObject,
20651            platformKeys: platformKeys
20652          }];
20653      }
20654    });
20655  });
20656};
20657var getCurrencys = function getCurrencys(_a) {
20658  var $axios = _a.$axios,
20659    siteCheck = _a.siteCheck;
20660  return __awaiter(void 0, void 0, void 0, function () {
20661    function request() {
20662      var _a;
20663      return __awaiter(this, void 0, void 0, function () {
20664        return __generator(this, function (_b) {
20665          switch (_b.label) {
20666            case 0:
20667              if (!is1688(siteCheck)) return [3, 2];
20668              return [4, getThCountryData($axios, (_a = siteCheck.data('name')) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase())];
20669            case 1:
20670              return [2, _b.sent()];
20671            case 2:
20672              return [4, getCountryData($axios)];
20673            case 3:
20674              return [2, _b.sent()];
20675          }
20676        });
20677      });
20678    }
20679    var currencys, currentTime;
20680    return __generator(this, function (_b) {
20681      switch (_b.label) {
20682        case 0:
20683          currencys = {};
20684          if (!isBrowser) return [3, 3];
20685          currentTime = new Date().getTime();
20686          currencys = store.get('@country/data', {
20687            parse: true
20688          });
20689          if ((currencys === null || currencys === void 0 ? void 0 : currencys.updateTime) - 1723432631219 < 0) {
20690            currencys = null;
20691          }
20692          if (!(!currencys || currentTime - (currencys.updateTime || 0) > 60 * 60 * 24 * 1000)) return [3, 2];
20693          return [4, request()];
20694        case 1:
20695          currencys = _b.sent();
20696          store.set('@country/data', __assign(__assign({}, currencys), {
20697            updateTime: currentTime
20698          }));
20699          _b.label = 2;
20700        case 2:
20701          return [3, 5];
20702        case 3:
20703          return [4, request()];
20704        case 4:
20705          currencys = _b.sent();
20706          _b.label = 5;
20707        case 5:
20708          return [2, currencys];
20709      }
20710    });
20711  });
20712};
20713var getQueryParams = function getQueryParams(_a) {
20714  var ctx = _a.ctx;
20715  var querySearch = isBrowser ? getQueryVariable() : ctx === null || ctx === void 0 ? void 0 : ctx.query;
20716  return querySearch !== null && querySearch !== void 0 ? querySearch : {};
20717};
20718var getOtherCookies = function getOtherCookies(_a) {
20719  var ctx = _a.ctx;
20720  return (0,_common_get_cookies__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)(ctx, [{
20721    name: 'lng'
20722  }, {
20723    name: 'shopPlatformTypesList'
20724  }, {
20725    name: 'currency'
20726  }, {
20727    name: 'SHOWMESSAGE'
20728  }, {
20729    name: 'cjLoginToken'
20730  }, {
20731    name: 'cur'
20732  }, {
20733    name: 'country'
20734  }, {
20735    name: 'searchSku'
20736  }]);
20737};
20738
20739/***/ }),
20740
20741/***/ 72880:
20742/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
20743
20744"use strict";
20745/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20746/* harmony export */   A: () => (/* binding */ _nonIterableSpread)
20747/* harmony export */ });
20748function _nonIterableSpread() {
20749  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
20750}
20751
20752
20753/***/ }),
20754
20755/***/ 73688:
20756/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20757
20758"use strict";
20759/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20760/* harmony export */   J1: () => (/* binding */ supportTransition),
20761/* harmony export */   Vc: () => (/* binding */ animationEndName),
20762/* harmony export */   by: () => (/* binding */ getTransitionName),
20763/* harmony export */   m8: () => (/* binding */ transitionEndName)
20764/* harmony export */ });
20765/* unused harmony exports getVendorPrefixes, getVendorPrefixedEventName */
20766/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17545);
20767/* harmony import */ var rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(47169);
20768
20769
20770// ================= Transition =================
20771// Event wrapper. Copy from react source code
20772function makePrefixMap(styleProp, eventName) {
20773  var prefixes = {};
20774  prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();
20775  prefixes["Webkit".concat(styleProp)] = "webkit".concat(eventName);
20776  prefixes["Moz".concat(styleProp)] = "moz".concat(eventName);
20777  prefixes["ms".concat(styleProp)] = "MS".concat(eventName);
20778  prefixes["O".concat(styleProp)] = "o".concat(eventName.toLowerCase());
20779  return prefixes;
20780}
20781function getVendorPrefixes(domSupport, win) {
20782  var prefixes = {
20783    animationend: makePrefixMap('Animation', 'AnimationEnd'),
20784    transitionend: makePrefixMap('Transition', 'TransitionEnd')
20785  };
20786  if (domSupport) {
20787    if (!('AnimationEvent' in win)) {
20788      delete prefixes.animationend.animation;
20789    }
20790    if (!('TransitionEvent' in win)) {
20791      delete prefixes.transitionend.transition;
20792    }
20793  }
20794  return prefixes;
20795}
20796var vendorPrefixes = getVendorPrefixes((0,rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(), typeof window !== 'undefined' ? window : {});
20797var style = {};
20798if ((0,rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)()) {
20799  var _document$createEleme = document.createElement('div');
20800  style = _document$createEleme.style;
20801}
20802var prefixedEventNames = {};
20803function getVendorPrefixedEventName(eventName) {
20804  if (prefixedEventNames[eventName]) {
20805    return prefixedEventNames[eventName];
20806  }
20807  var prefixMap = vendorPrefixes[eventName];
20808  if (prefixMap) {
20809    var stylePropList = Object.keys(prefixMap);
20810    var len = stylePropList.length;
20811    for (var i = 0; i < len; i += 1) {
20812      var styleProp = stylePropList[i];
20813      if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {
20814        prefixedEventNames[eventName] = prefixMap[styleProp];
20815        return prefixedEventNames[eventName];
20816      }
20817    }
20818  }
20819  return '';
20820}
20821var internalAnimationEndName = getVendorPrefixedEventName('animationend');
20822var internalTransitionEndName = getVendorPrefixedEventName('transitionend');
20823var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);
20824var animationEndName = internalAnimationEndName || 'animationend';
20825var transitionEndName = internalTransitionEndName || 'transitionend';
20826function getTransitionName(transitionName, transitionType) {
20827  if (!transitionName) return null;
20828  if ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(transitionName) === 'object') {
20829    var type = transitionType.replace(/-\w/g, function (match) {
20830      return match[1].toUpperCase();
20831    });
20832    return transitionName[type];
20833  }
20834  return "".concat(transitionName, "-").concat(transitionType);
20835}
20836
20837/***/ }),
20838
20839/***/ 74234:
20840/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20841
20842"use strict";
20843/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20844/* harmony export */   A: () => (/* binding */ useDom)
20845/* harmony export */ });
20846/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75153);
20847/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79082);
20848/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15442);
20849/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
20850/* harmony import */ var rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84238);
20851/* harmony import */ var rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(47169);
20852/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50184);
20853
20854
20855
20856
20857
20858
20859var EMPTY_LIST = [];
20860
20861/**
20862 * Will add `div` to document. Nest call will keep order
20863 * @param render Render DOM in document
20864 */
20865function useDom(render, debug) {
20866  var _React$useState = react__WEBPACK_IMPORTED_MODULE_2__.useState(function () {
20867      if (!(0,rc_util_es_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)()) {
20868        return null;
20869      }
20870      var defaultEle = document.createElement('div');
20871      if (false) // removed by dead control flow
20872{}
20873      return defaultEle;
20874    }),
20875    _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState, 1),
20876    ele = _React$useState2[0];
20877
20878  // ========================== Order ==========================
20879  var appendedRef = react__WEBPACK_IMPORTED_MODULE_2__.useRef(false);
20880  var queueCreate = react__WEBPACK_IMPORTED_MODULE_2__.useContext(_Context__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A);
20881  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_2__.useState(EMPTY_LIST),
20882    _React$useState4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState3, 2),
20883    queue = _React$useState4[0],
20884    setQueue = _React$useState4[1];
20885  var mergedQueueCreate = queueCreate || (appendedRef.current ? undefined : function (appendFn) {
20886    setQueue(function (origin) {
20887      var newQueue = [appendFn].concat((0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(origin));
20888      return newQueue;
20889    });
20890  });
20891
20892  // =========================== DOM ===========================
20893  function append() {
20894    if (!ele.parentElement) {
20895      document.body.appendChild(ele);
20896    }
20897    appendedRef.current = true;
20898  }
20899  function cleanup() {
20900    var _ele$parentElement;
20901    (_ele$parentElement = ele.parentElement) === null || _ele$parentElement === void 0 ? void 0 : _ele$parentElement.removeChild(ele);
20902    appendedRef.current = false;
20903  }
20904  (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)(function () {
20905    if (render) {
20906      if (queueCreate) {
20907        queueCreate(append);
20908      } else {
20909        append();
20910      }
20911    } else {
20912      cleanup();
20913    }
20914    return cleanup;
20915  }, [render]);
20916  (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)(function () {
20917    if (queue.length) {
20918      queue.forEach(function (appendFn) {
20919        return appendFn();
20920      });
20921      setQueue(EMPTY_LIST);
20922    }
20923  }, [queue]);
20924  return [ele, mergedQueueCreate];
20925}
20926
20927/***/ }),
20928
20929/***/ 74372:
20930/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20931
20932"use strict";
20933/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20934/* harmony export */   A: () => (/* binding */ getCookies)
20935/* harmony export */ });
20936/* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(93584);
20937/* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3478);
20938
20939
20940function getCookies(ctx, names) {
20941  var obj = {};
20942  var customCookies = ctx ? ctx.customCookies || {} : {};
20943  names.forEach(function (_) {
20944    var name = _.name;
20945    var value = ctx ? customCookies[name] ? customCookies[name] : ctx === null || ctx === void 0 ? void 0 : ctx.cookies.get(name, {
20946      signed: false
20947    }) : js_cookie__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A.get(name);
20948    if (_.decode) {
20949      try {
20950        value = js_base64__WEBPACK_IMPORTED_MODULE_0__/* .Base64 */ .o4.decode(value || '');
20951      } catch (_a) {
20952        console.log('base64解析报错', value);
20953      }
20954    }
20955    value = _.parse ? JSON.parse(value || '') : value;
20956    obj[name] = value !== null && value !== void 0 ? value : '';
20957  });
20958  return obj !== null && obj !== void 0 ? obj : {};
20959}
20960
20961/***/ }),
20962
20963/***/ 74430:
20964/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
20965
20966"use strict";
20967/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20968/* harmony export */   A: () => (/* binding */ _iterableToArray)
20969/* harmony export */ });
20970function _iterableToArray(r) {
20971  if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
20972}
20973
20974
20975/***/ }),
20976
20977/***/ 74568:
20978/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20979
20980"use strict";
20981/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20982/* harmony export */   o: () => (/* binding */ Context)
20983/* harmony export */ });
20984/* unused harmony export default */
20985/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15442);
20986/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
20987
20988var _excluded = (/* unused pure expression or super */ null && (["children"]));
20989
20990var Context = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createContext({});
20991function MotionProvider(_ref) {
20992  var children = _ref.children,
20993    props = _objectWithoutProperties(_ref, _excluded);
20994  return /*#__PURE__*/React.createElement(Context.Provider, {
20995    value: props
20996  }, children);
20997}
20998
20999/***/ }),
21000
21001/***/ 74967:
21002/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
21003
21004/** Detect free variable `global` from Node.js. */
21005var freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;
21006
21007module.exports = freeGlobal;
21008
21009
21010/***/ }),
21011
21012/***/ 75153:
21013/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
21014
21015"use strict";
21016/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21017/* harmony export */   A: () => (/* binding */ _toConsumableArray)
21018/* harmony export */ });
21019/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23492);
21020/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(74430);
21021/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27985);
21022/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(72880);
21023
21024
21025
21026
21027function _toConsumableArray(r) {
21028  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)();
21029}
21030
21031
21032/***/ }),
21033
21034/***/ 75476:
21035/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
21036
21037"use strict";
21038/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21039/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
21040/* harmony export */ });
21041/* unused harmony export resetUuid */
21042/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79082);
21043/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(69740);
21044/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15442);
21045/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
21046
21047
21048
21049function getUseId() {
21050  // We need fully clone React function here to avoid webpack warning React 17 do not export `useId`
21051  var fullClone = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)({}, react__WEBPACK_IMPORTED_MODULE_2__);
21052  return fullClone.useId;
21053}
21054var uuid = 0;
21055
21056/** @private Note only worked in develop env. Not work in production. */
21057function resetUuid() {
21058  if (false) // removed by dead control flow
21059{}
21060}
21061var useOriginId = getUseId();
21062/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useOriginId ?
21063// Use React `useId`
21064function useId(id) {
21065  var reactId = useOriginId();
21066
21067  // Developer passed id is single source of truth
21068  if (id) {
21069    return id;
21070  }
21071
21072  // Test env always return mock id
21073  if (false) // removed by dead control flow
21074{}
21075  return reactId;
21076} :
21077// Use compatible of `useId`
21078function useCompatId(id) {
21079  // Inner id for accessibility usage. Only work in client side
21080  var _React$useState = react__WEBPACK_IMPORTED_MODULE_2__.useState('ssr-id'),
21081    _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(_React$useState, 2),
21082    innerId = _React$useState2[0],
21083    setInnerId = _React$useState2[1];
21084  react__WEBPACK_IMPORTED_MODULE_2__.useEffect(function () {
21085    var nextId = uuid;
21086    uuid += 1;
21087    setInnerId("rc_unique_".concat(nextId));
21088  }, []);
21089
21090  // Developer passed id is single source of truth
21091  if (id) {
21092    return id;
21093  }
21094
21095  // Test env always return mock id
21096  if (false) // removed by dead control flow
21097{}
21098
21099  // Return react native id or inner id
21100  return innerId;
21101});
21102
21103/***/ }),
21104
21105/***/ 76293:
21106/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
21107
21108"use strict";
21109/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21110/* harmony export */   A: () => (/* binding */ useStatus)
21111/* harmony export */ });
21112/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69740);
21113/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24586);
21114/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(79082);
21115/* harmony import */ var rc_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(99973);
21116/* harmony import */ var rc_util_es_hooks_useState__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(39348);
21117/* harmony import */ var rc_util_es_hooks_useSyncState__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(86597);
21118/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(15442);
21119/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);
21120/* harmony import */ var _interface__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(45480);
21121/* harmony import */ var _useDomMotionEvents__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(1680);
21122/* harmony import */ var _useIsomorphicLayoutEffect__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(25893);
21123/* harmony import */ var _useStepQueue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(78422);
21124
21125
21126
21127
21128
21129
21130
21131
21132
21133
21134
21135
21136function useStatus(supportMotion, visible, getElement, _ref) {
21137  var _ref$motionEnter = _ref.motionEnter,
21138    motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,
21139    _ref$motionAppear = _ref.motionAppear,
21140    motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,
21141    _ref$motionLeave = _ref.motionLeave,
21142    motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,
21143    motionDeadline = _ref.motionDeadline,
21144    motionLeaveImmediately = _ref.motionLeaveImmediately,
21145    onAppearPrepare = _ref.onAppearPrepare,
21146    onEnterPrepare = _ref.onEnterPrepare,
21147    onLeavePrepare = _ref.onLeavePrepare,
21148    onAppearStart = _ref.onAppearStart,
21149    onEnterStart = _ref.onEnterStart,
21150    onLeaveStart = _ref.onLeaveStart,
21151    onAppearActive = _ref.onAppearActive,
21152    onEnterActive = _ref.onEnterActive,
21153    onLeaveActive = _ref.onLeaveActive,
21154    onAppearEnd = _ref.onAppearEnd,
21155    onEnterEnd = _ref.onEnterEnd,
21156    onLeaveEnd = _ref.onLeaveEnd,
21157    onVisibleChanged = _ref.onVisibleChanged;
21158  // Used for outer render usage to avoid `visible: false & status: none` to render nothing
21159  var _useState = (0,rc_util_es_hooks_useState__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)(),
21160    _useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(_useState, 2),
21161    asyncVisible = _useState2[0],
21162    setAsyncVisible = _useState2[1];
21163  var _useSyncState = (0,rc_util_es_hooks_useSyncState__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)(_interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_NONE */ .SF),
21164    _useSyncState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(_useSyncState, 2),
21165    getStatus = _useSyncState2[0],
21166    setStatus = _useSyncState2[1];
21167  var _useState3 = (0,rc_util_es_hooks_useState__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)(null),
21168    _useState4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(_useState3, 2),
21169    style = _useState4[0],
21170    setStyle = _useState4[1];
21171  var currentStatus = getStatus();
21172  var mountedRef = (0,react__WEBPACK_IMPORTED_MODULE_6__.useRef)(false);
21173  var deadlineRef = (0,react__WEBPACK_IMPORTED_MODULE_6__.useRef)(null);
21174
21175  // =========================== Dom Node ===========================
21176  function getDomElement() {
21177    return getElement();
21178  }
21179
21180  // ========================== Motion End ==========================
21181  var activeRef = (0,react__WEBPACK_IMPORTED_MODULE_6__.useRef)(false);
21182
21183  /**
21184   * Clean up status & style
21185   */
21186  function updateMotionEndStatus() {
21187    setStatus(_interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_NONE */ .SF);
21188    setStyle(null, true);
21189  }
21190  var onInternalMotionEnd = (0,rc_util__WEBPACK_IMPORTED_MODULE_3__/* .useEvent */ ._q)(function (event) {
21191    var status = getStatus();
21192    // Do nothing since not in any transition status.
21193    // This may happen when `motionDeadline` trigger.
21194    if (status === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_NONE */ .SF) {
21195      return;
21196    }
21197    var element = getDomElement();
21198    if (event && !event.deadline && event.target !== element) {
21199      // event exists
21200      // not initiated by deadline
21201      // transitionEnd not fired by inner elements
21202      return;
21203    }
21204    var currentActive = activeRef.current;
21205    var canEnd;
21206    if (status === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_APPEAR */ .Tv && currentActive) {
21207      canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);
21208    } else if (status === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_ENTER */ .Wd && currentActive) {
21209      canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);
21210    } else if (status === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_LEAVE */ .dp && currentActive) {
21211      canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);
21212    }
21213
21214    // Only update status when `canEnd` and not destroyed
21215    if (currentActive && canEnd !== false) {
21216      updateMotionEndStatus();
21217    }
21218  });
21219  var _useDomMotionEvents = (0,_useDomMotionEvents__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(onInternalMotionEnd),
21220    _useDomMotionEvents2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(_useDomMotionEvents, 1),
21221    patchMotionEvents = _useDomMotionEvents2[0];
21222
21223  // ============================= Step =============================
21224  var getEventHandlers = function getEventHandlers(targetStatus) {
21225    switch (targetStatus) {
21226      case _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_APPEAR */ .Tv:
21227        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);
21228      case _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_ENTER */ .Wd:
21229        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);
21230      case _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_LEAVE */ .dp:
21231        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);
21232      default:
21233        return {};
21234    }
21235  };
21236  var eventHandlers = react__WEBPACK_IMPORTED_MODULE_6__.useMemo(function () {
21237    return getEventHandlers(currentStatus);
21238  }, [currentStatus]);
21239  var _useStepQueue = (0,_useStepQueue__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Ay)(currentStatus, !supportMotion, function (newStep) {
21240      // Only prepare step can be skip
21241      if (newStep === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_PREPARE */ .px) {
21242        var onPrepare = eventHandlers[_interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_PREPARE */ .px];
21243        if (!onPrepare) {
21244          return _useStepQueue__WEBPACK_IMPORTED_MODULE_10__/* .SkipStep */ .es;
21245        }
21246        return onPrepare(getDomElement());
21247      }
21248
21249      // Rest step is sync update
21250      if (step in eventHandlers) {
21251        var _eventHandlers$step;
21252        setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);
21253      }
21254      if (step === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_ACTIVE */ .m7 && currentStatus !== _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_NONE */ .SF) {
21255        // Patch events when motion needed
21256        patchMotionEvents(getDomElement());
21257        if (motionDeadline > 0) {
21258          clearTimeout(deadlineRef.current);
21259          deadlineRef.current = setTimeout(function () {
21260            onInternalMotionEnd({
21261              deadline: true
21262            });
21263          }, motionDeadline);
21264        }
21265      }
21266      if (step === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_PREPARED */ .LV) {
21267        updateMotionEndStatus();
21268      }
21269      return _useStepQueue__WEBPACK_IMPORTED_MODULE_10__/* .DoStep */ .qB;
21270    }),
21271    _useStepQueue2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(_useStepQueue, 2),
21272    startStep = _useStepQueue2[0],
21273    step = _useStepQueue2[1];
21274  var active = (0,_useStepQueue__WEBPACK_IMPORTED_MODULE_10__/* .isActive */ .$m)(step);
21275  activeRef.current = active;
21276
21277  // ============================ Status ============================
21278  var visibleRef = (0,react__WEBPACK_IMPORTED_MODULE_6__.useRef)(null);
21279
21280  // Update with new status
21281  (0,_useIsomorphicLayoutEffect__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(function () {
21282    // When use Suspense, the `visible` will repeat trigger,
21283    // But not real change of the `visible`, we need to skip it.
21284    // https://github.com/ant-design/ant-design/issues/44379
21285    if (mountedRef.current && visibleRef.current === visible) {
21286      return;
21287    }
21288    setAsyncVisible(visible);
21289    var isMounted = mountedRef.current;
21290    mountedRef.current = true;
21291
21292    // if (!supportMotion) {
21293    //   return;
21294    // }
21295
21296    var nextStatus;
21297
21298    // Appear
21299    if (!isMounted && visible && motionAppear) {
21300      nextStatus = _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_APPEAR */ .Tv;
21301    }
21302
21303    // Enter
21304    if (isMounted && visible && motionEnter) {
21305      nextStatus = _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_ENTER */ .Wd;
21306    }
21307
21308    // Leave
21309    if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {
21310      nextStatus = _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_LEAVE */ .dp;
21311    }
21312    var nextEventHandlers = getEventHandlers(nextStatus);
21313
21314    // Update to next status
21315    if (nextStatus && (supportMotion || nextEventHandlers[_interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_PREPARE */ .px])) {
21316      setStatus(nextStatus);
21317      startStep();
21318    } else {
21319      // Set back in case no motion but prev status has prepare step
21320      setStatus(_interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_NONE */ .SF);
21321    }
21322    visibleRef.current = visible;
21323  }, [visible]);
21324
21325  // ============================ Effect ============================
21326  // Reset when motion changed
21327  (0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
21328    if (
21329    // Cancel appear
21330    currentStatus === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_APPEAR */ .Tv && !motionAppear ||
21331    // Cancel enter
21332    currentStatus === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_ENTER */ .Wd && !motionEnter ||
21333    // Cancel leave
21334    currentStatus === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_LEAVE */ .dp && !motionLeave) {
21335      setStatus(_interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_NONE */ .SF);
21336    }
21337  }, [motionAppear, motionEnter, motionLeave]);
21338  (0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
21339    return function () {
21340      mountedRef.current = false;
21341      clearTimeout(deadlineRef.current);
21342    };
21343  }, []);
21344
21345  // Trigger `onVisibleChanged`
21346  var firstMountChangeRef = react__WEBPACK_IMPORTED_MODULE_6__.useRef(false);
21347  (0,react__WEBPACK_IMPORTED_MODULE_6__.useEffect)(function () {
21348    // [visible & motion not end] => [!visible & motion end] still need trigger onVisibleChanged
21349    if (asyncVisible) {
21350      firstMountChangeRef.current = true;
21351    }
21352    if (asyncVisible !== undefined && currentStatus === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STATUS_NONE */ .SF) {
21353      // Skip first render is invisible since it's nothing changed
21354      if (firstMountChangeRef.current || asyncVisible) {
21355        onVisibleChanged === null || onVisibleChanged === void 0 || onVisibleChanged(asyncVisible);
21356      }
21357      firstMountChangeRef.current = true;
21358    }
21359  }, [asyncVisible, currentStatus]);
21360
21361  // ============================ Styles ============================
21362  var mergedStyle = style;
21363  if (eventHandlers[_interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_PREPARE */ .px] && step === _interface__WEBPACK_IMPORTED_MODULE_7__/* .STEP_START */ .Mv) {
21364    mergedStyle = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({
21365      transition: 'none'
21366    }, mergedStyle);
21367  }
21368  return [currentStatus, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];
21369}
21370
21371/***/ }),
21372
21373/***/ 77326:
21374/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
21375
21376"use strict";
21377/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21378/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
21379/* harmony export */ });
21380/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89575);
21381/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
21382/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
21383/* harmony import */ var rc_util_es_Children_toArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41747);
21384/* harmony import */ var rc_util_es_warning__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84445);
21385/* harmony import */ var _SingleObserver__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(47689);
21386/* harmony import */ var _Collection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23660);
21387/* harmony import */ var _utils_observerUtil__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(22616);
21388
21389
21390
21391
21392
21393
21394var INTERNAL_PREFIX_KEY = 'rc-observer-key';
21395
21396
21397function ResizeObserver(props, ref) {
21398  var children = props.children;
21399  var childNodes = typeof children === 'function' ? [children] : (0,rc_util_es_Children_toArray__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(children);
21400  if (false) // removed by dead control flow
21401{}
21402  return childNodes.map(function (child, index) {
21403    var key = (child === null || child === void 0 ? void 0 : child.key) || "".concat(INTERNAL_PREFIX_KEY, "-").concat(index);
21404    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, {
21405      key: key,
21406      ref: index === 0 ? ref : undefined
21407    }), child);
21408  });
21409}
21410var RefResizeObserver = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(ResizeObserver);
21411if (false) // removed by dead control flow
21412{}
21413RefResizeObserver.Collection = _Collection__WEBPACK_IMPORTED_MODULE_5__/* .Collection */ .p;
21414/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RefResizeObserver);
21415
21416/***/ }),
21417
21418/***/ 77427:
21419/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
21420
21421"use strict";
21422/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21423/* harmony export */   Q: () => (/* binding */ createInstance)
21424/* harmony export */ });
21425/* unused harmony export urlAddSlash */
21426/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62742);
21427/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_0__);
21428/* harmony import */ var _common_login_info_controller__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12097);
21429/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(81002);
21430/* harmony import */ var _cj_href__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84963);
21431/* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(93584);
21432/* harmony import */ var _common_toast__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(50937);
21433var __assign = undefined && undefined.__assign || function () {
21434  __assign = Object.assign || function (t) {
21435    for (var s, i = 1, n = arguments.length; i < n; i++) {
21436      s = arguments[i];
21437      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
21438    }
21439    return t;
21440  };
21441  return __assign.apply(this, arguments);
21442};
21443var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
21444  function adopt(value) {
21445    return value instanceof P ? value : new P(function (resolve) {
21446      resolve(value);
21447    });
21448  }
21449  return new (P || (P = Promise))(function (resolve, reject) {
21450    function fulfilled(value) {
21451      try {
21452        step(generator.next(value));
21453      } catch (e) {
21454        reject(e);
21455      }
21456    }
21457    function rejected(value) {
21458      try {
21459        step(generator["throw"](value));
21460      } catch (e) {
21461        reject(e);
21462      }
21463    }
21464    function step(result) {
21465      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
21466    }
21467    step((generator = generator.apply(thisArg, _arguments || [])).next());
21468  });
21469};
21470var __generator = undefined && undefined.__generator || function (thisArg, body) {
21471  var _ = {
21472      label: 0,
21473      sent: function sent() {
21474        if (t[0] & 1) throw t[1];
21475        return t[1];
21476      },
21477      trys: [],
21478      ops: []
21479    },
21480    f,
21481    y,
21482    t,
21483    g;
21484  return g = {
21485    next: verb(0),
21486    "throw": verb(1),
21487    "return": verb(2)
21488  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
21489    return this;
21490  }), g;
21491  function verb(n) {
21492    return function (v) {
21493      return step([n, v]);
21494    };
21495  }
21496  function step(op) {
21497    if (f) throw new TypeError("Generator is already executing.");
21498    while (g && (g = 0, op[0] && (_ = 0)), _) try {
21499      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;
21500      if (y = 0, t) op = [op[0] & 2, t.value];
21501      switch (op[0]) {
21502        case 0:
21503        case 1:
21504          t = op;
21505          break;
21506        case 4:
21507          _.label++;
21508          return {
21509            value: op[1],
21510            done: false
21511          };
21512        case 5:
21513          _.label++;
21514          y = op[1];
21515          op = [0];
21516          continue;
21517        case 7:
21518          op = _.ops.pop();
21519          _.trys.pop();
21520          continue;
21521        default:
21522          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
21523            _ = 0;
21524            continue;
21525          }
21526          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
21527            _.label = op[1];
21528            break;
21529          }
21530          if (op[0] === 6 && _.label < t[1]) {
21531            _.label = t[1];
21532            t = op;
21533            break;
21534          }
21535          if (t && _.label < t[2]) {
21536            _.label = t[2];
21537            _.ops.push(op);
21538            break;
21539          }
21540          if (t[2]) _.ops.pop();
21541          _.trys.pop();
21542          continue;
21543      }
21544      op = body.call(thisArg, _);
21545    } catch (e) {
21546      op = [6, e];
21547      y = 0;
21548    } finally {
21549      f = t = 0;
21550    }
21551    if (op[0] & 5) throw op[1];
21552    return {
21553      value: op[0] ? op[1] : void 0,
21554      done: true
21555    };
21556  }
21557};
21558var __rest = undefined && undefined.__rest || function (s, e) {
21559  var t = {};
21560  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
21561  if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
21562    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
21563  }
21564  return t;
21565};
21566
21567
21568
21569
21570
21571
21572function resDataProcess(data) {
21573  var _a;
21574  var _data = data;
21575  try {
21576    if (typeof data.result === 'string') {
21577      _data.result = JSON.parse(data.result);
21578    }
21579  } catch (e) {
21580    console.error('resDataProcess error:', (_a = e === null || e === void 0 ? void 0 : e.message) !== null && _a !== void 0 ? _a : '');
21581  }
21582  return _data;
21583}
21584var To = function To(promise) {
21585  return promise.then(function (res) {
21586    return [null, res];
21587  })["catch"](function (err) {
21588    return [err];
21589  });
21590};
21591var urlAddSlash = function urlAddSlash(url) {
21592  return (url === null || url === void 0 ? void 0 : url.startsWith('http')) ? url : (url === null || url === void 0 ? void 0 : url.startsWith('/')) ? url : "/".concat(url);
21593};
21594var createInstance = function createInstance(token, getDomainByUrl) {
21595  return function (_a) {
21596    return __awaiter(void 0, void 0, void 0, function () {
21597      var requestErrorCount, error, response, _request, data, result;
21598      var url = _a.url,
21599        otherConfig = __rest(_a, ["url"]);
21600      return __generator(this, function (_b) {
21601        switch (_b.label) {
21602          case 0:
21603            requestErrorCount = 0;
21604            error = null;
21605            response = null;
21606            _request = function request() {
21607              return __awaiter(void 0, void 0, Promise, function () {
21608                var apiUrl, callerHeaders;
21609                var _a;
21610                var _b, _c, _d;
21611                return __generator(this, function (_e) {
21612                  switch (_e.label) {
21613                    case 0:
21614                      apiUrl = (0,_index__WEBPACK_IMPORTED_MODULE_2__/* .useVipPrefix */ .Bz)({
21615                        url: url
21616                      });
21617                      if (getDomainByUrl) {
21618                        apiUrl = getDomainByUrl(apiUrl);
21619                      } else {
21620                        apiUrl = urlAddSlash(apiUrl);
21621                      }
21622                      callerHeaders = otherConfig.headers || {};
21623                      return [4, To(axios__WEBPACK_IMPORTED_MODULE_0___default()(__assign(__assign({
21624                        url: apiUrl,
21625                        timeout: 15000
21626                      }, otherConfig), {
21627                        headers: __assign(__assign({
21628                          Accept: 'application/json;charset=utf-8',
21629                          'Content-Type': 'application/json;charset=utf-8'
21630                        }, callerHeaders), {
21631                          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')) || '',
21632                          'cj-area': ((_c = callerHeaders['cj-area']) !== null && _c !== void 0 ? _c : !_index__WEBPACK_IMPORTED_MODULE_2__/* .isBrowser */ .Bd ? process.env.areacode : window.__AREACODE__) || '000000'
21633                        })
21634                      })))];
21635                    case 1:
21636                      _a = _e.sent(), error = _a[0], response = _a[1];
21637                      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))) {
21638                        if (requestErrorCount < 2) {
21639                          requestErrorCount++;
21640                          return [2, _request()];
21641                        }
21642                      }
21643                      return [2];
21644                  }
21645                });
21646              });
21647            };
21648            return [4, _request()];
21649          case 1:
21650            _b.sent();
21651            if ((response === null || response === void 0 ? void 0 : response.status) === 200) {
21652              data = response.data;
21653              if (data.data === null) data.data = {};
21654              result = resDataProcess(data);
21655              clearLoginStoreInfo(url, result);
21656              clearBlockedUser(result);
21657              return [2, [null, result]];
21658            }
21659            return [2, [error]];
21660        }
21661      });
21662    });
21663  };
21664};
21665function clearLoginStoreInfo(url, response) {
21666  var _a;
21667  if (typeof window === 'undefined') return;
21668  var codeNoLogin = (response === null || response === void 0 ? void 0 : response.code) == 601;
21669  var noLogin = (response === null || response === void 0 ? void 0 : response.message) == 'Sorry, you are not logged in';
21670  if (noLogin || codeNoLogin) {
21671    console.error('mf-component: 请求接口跳出登录=>', url, JSON.stringify(__assign({}, response || {})));
21672    window.__Sentry__ && window.__Sentry__.withScope(function (scope) {
21673      scope.setTags({
21674        apiUrl: url,
21675        apiError: true,
21676        errorType: 'client',
21677        isToCJ: !!_common_login_info_controller__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A.info('loginfromerp')
21678      });
21679      scope.setExtras({
21680        request: {
21681          url: url
21682        },
21683        response: response
21684      });
21685      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'), ")"));
21686    });
21687    var isInternalAccount = window.loginInfoController.info('internalAccount');
21688    _common_login_info_controller__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A.clear();
21689    (0,_common_toast__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)(response === null || response === void 0 ? void 0 : response.message);
21690    if (isInternalAccount) {
21691      window.location.href = '/authority-login.html';
21692      return;
21693    }
21694    if (location.pathname.indexOf('my.html') > -1 || location.pathname.indexOf('mine') > -1) {
21695      var loginHref = '/login.html';
21696      if ((_a = window.siteCheck) === null || _a === void 0 ? void 0 : _a.isSite('CJ')) {
21697        loginHref = (0,_cj_href__WEBPACK_IMPORTED_MODULE_3__/* .cjHref */ .F)(loginHref);
21698      }
21699      return location.href = "".concat(loginHref, "?target=") + js_base64__WEBPACK_IMPORTED_MODULE_4__/* .Base64 */ .o4.encode(location.href);
21700    }
21701    location.reload();
21702  }
21703}
21704function clearBlockedUser(response) {
21705  var _a;
21706  if (typeof window === 'undefined') return;
21707  var codeBlocked = (response === null || response === void 0 ? void 0 : response.code) == 8880014;
21708  if (codeBlocked) {
21709    _common_login_info_controller__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A.clear();
21710    var href = "/mine/intercept";
21711    if ((_a = window.siteCheck) === null || _a === void 0 ? void 0 : _a.isSite('CJ')) {
21712      href = (0,_cj_href__WEBPACK_IMPORTED_MODULE_3__/* .cjHref */ .F)(href);
21713    }
21714    location.href = href;
21715  }
21716}
21717
21718/***/ }),
21719
21720/***/ 77517:
21721/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
21722
21723"use strict";
21724/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21725/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
21726/* harmony export */ });
21727// extracted by mini-css-extract-plugin
21728/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({"tooltipOverlayBox":"tooltipOverlayBox--VYaHT","light":"light--gjfAs"});
21729
21730/***/ }),
21731
21732/***/ 78068:
21733/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
21734
21735"use strict";
21736/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21737/* harmony export */   Ay: () => (__WEBPACK_DEFAULT_EXPORT__)
21738/* harmony export */ });
21739/* unused harmony exports defaultUserMenu, helpMenuList */
21740/* harmony import */ var _common_login_info_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12097);
21741/* harmony import */ var _common_request__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(77427);
21742/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(81002);
21743var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
21744  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
21745    if (ar || !(i in from)) {
21746      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
21747      ar[i] = from[i];
21748    }
21749  }
21750  return to.concat(ar || Array.prototype.slice.call(from));
21751};
21752
21753
21754
21755var defaultUserMenu = function defaultUserMenu(isCommonTop, i18next, getDomainByUrl, isQk, siteCheck) {
21756  return __spreadArray(__spreadArray([{
21757    icon: 'gerenzhongxin',
21758    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-profile') : 'Profile',
21759    code: 'mycj_profile',
21760    route: '/my.html#/profile'
21761  }, {
21762    icon: 'zhanghu',
21763    code: 'mycj_wallet',
21764    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-wallet') : 'Wallet',
21765    route: '/mine/wallet'
21766  }], isQk ? [] : __spreadArray(__spreadArray([{
21767    icon: 'wuliu',
21768    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-tool') : 'Tool',
21769    children: __spreadArray(__spreadArray([], siteCheck && siteCheck.isShow('header-track-orders') ? [{
21770      name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-track-orders') : 'Track Orders',
21771      route: siteCheck && siteCheck.isShow('global-vp') ? 'https://cjpacket.com/' : 'https://cjpacket.com/',
21772      target: '_blank'
21773    }] : [], true), siteCheck && siteCheck.isShow('header-shipping-calculation') ? [{
21774      name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-shipping-calculation') : 'Shipping Calculation',
21775      route: '/calculation.html',
21776      target: '_blank'
21777    }] : [], true)
21778  }], siteCheck && siteCheck.isShow('header-user-account') ? [{
21779    icon: 'zizhanghu',
21780    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-account') : 'Account',
21781    code: 'mycj_account',
21782    route: '/my.html#/accountManage'
21783  }] : [], true), siteCheck && siteCheck.isShow('header-user-affiliate') ? [{
21784    icon: 'fenxiaoicon',
21785    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-affiliate') : 'Affiliate',
21786    route: 'https://affiliate.cjdropshipping.com/',
21787    target: '_blank'
21788  }] : [], true), true), [{
21789    icon: 'tuichu',
21790    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-log-out') : 'Log out',
21791    loginOut: function loginOut() {
21792      var token = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.info('token');
21793      var isInternalAccount = window.loginInfoController.info('internalAccount');
21794      var myAxios = (0,_common_request__WEBPACK_IMPORTED_MODULE_1__/* .createInstance */ .Q)(token, getDomainByUrl);
21795      myAxios({
21796        url: 'userCenterForeignWeb/foreign/signOut',
21797        method: 'POST',
21798        data: {
21799          token: token
21800        }
21801      }).then(function () {
21802        (0,_common__WEBPACK_IMPORTED_MODULE_2__/* .removeLogin */ ._$)();
21803        if (isInternalAccount) {
21804          window.location.href = '/authority-login.html';
21805          return;
21806        }
21807        location.href = '/';
21808      });
21809    }
21810  }], false);
21811};
21812function getElitesUrl() {
21813  var t = Date.now();
21814  var url = 'https://elites.cjdropshipping.com/cross';
21815  var token = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.info('token');
21816  if (token) {
21817    try {
21818      url = "".concat(url, "?_t=").concat(t, "&token=").concat(token);
21819    } catch (err) {
21820      console.error('ElitesUrl token decode err', err);
21821    }
21822  }
21823  return url;
21824}
21825var helpMenuList = function helpMenuList(isCommonTop, i18next, tipNumber, siteCheck) {
21826  return __spreadArray(__spreadArray([{
21827    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-ticket') : 'Ticket',
21828    icon: 'ticket',
21829    code: 'mycj_ticket',
21830    route: '/mine/ticket',
21831    isShowTips: true,
21832    tipNum: tipNumber
21833  }, {
21834    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-help-center') : 'Help Center',
21835    icon: 'tutorial',
21836    route: '/help-center',
21837    target: '_blank'
21838  }], siteCheck && siteCheck.isShow('header-help-elites') ? [{
21839    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-elites') : 'Elites',
21840    icon: 'elites',
21841    code: 'mycj_elites',
21842    route: getElitesUrl(),
21843    target: '_blank'
21844  }] : [], true), siteCheck && siteCheck.isShow('header-help-blog') ? [{
21845    name: isCommonTop ? i18next === null || i18next === void 0 ? void 0 : i18next.t('common-top-blog') : 'Blog',
21846    icon: 'boke',
21847    route: 'https://www.cjdropshipping.com/blogs',
21848    target: '_blank'
21849  }] : [], true);
21850};
21851var createAuthTree = function createAuthTree() {
21852  var userMenu = defaultUserMenu(false);
21853  var helpMenu = helpMenuList(false);
21854  var authMapByRoute = [];
21855  var _fun = function fun(list) {
21856    return list.map(function (l) {
21857      if (l.route && l.code) authMapByRoute.push({
21858        name: l.name,
21859        code: l.code,
21860        route: l.route
21861      });
21862      return {
21863        name: l.name,
21864        code: l.code,
21865        route: l.route,
21866        children: l.children && _fun(l.children)
21867      };
21868    });
21869  };
21870  return [[{
21871    name: 'Management',
21872    children: _fun(userMenu)
21873  }, {
21874    name: 'Support Center',
21875    children: _fun(helpMenu)
21876  }], authMapByRoute];
21877};
21878/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAut
21878hTree);
21879
21880/***/ }),
21881
21882/***/ 78422:
21883/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
21884
21885"use strict";
21886/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21887/* harmony export */   $m: () => (/* binding */ isActive),
21888/* harmony export */   Ay: () => (__WEBPACK_DEFAULT_EXPORT__),
21889/* harmony export */   es: () => (/* binding */ SkipStep),
21890/* harmony export */   qB: () => (/* binding */ DoStep)
21891/* harmony export */ });
21892/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79082);
21893/* harmony import */ var rc_util_es_hooks_useState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39348);
21894/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15442);
21895/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
21896/* harmony import */ var _interface__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(45480);
21897/* harmony import */ var _useIsomorphicLayoutEffect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(25893);
21898/* harmony import */ var _useNextFrame__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(20181);
21899
21900
21901
21902
21903
21904
21905var 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];
21906var SIMPLE_STEP_QUEUE = [_interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_PREPARE */ .px, _interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_PREPARED */ .LV];
21907
21908/** Skip current step */
21909var SkipStep = false;
21910/** Current step should be update in */
21911var DoStep = true;
21912function isActive(step) {
21913  return step === _interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_ACTIVE */ .m7 || step === _interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_ACTIVATED */ .Hs;
21914}
21915/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function (status, prepareOnly, callback) {
21916  var _useState = (0,rc_util_es_hooks_useState__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_NONE */ .cE),
21917    _useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(_useState, 2),
21918    step = _useState2[0],
21919    setStep = _useState2[1];
21920  var _useNextFrame = (0,_useNextFrame__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A)(),
21921    _useNextFrame2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(_useNextFrame, 2),
21922    nextFrame = _useNextFrame2[0],
21923    cancelNextFrame = _useNextFrame2[1];
21924  function startQueue() {
21925    setStep(_interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_PREPARE */ .px, true);
21926  }
21927  var STEP_QUEUE = prepareOnly ? SIMPLE_STEP_QUEUE : FULL_STEP_QUEUE;
21928  (0,_useIsomorphicLayoutEffect__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A)(function () {
21929    if (step !== _interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_NONE */ .cE && step !== _interface__WEBPACK_IMPORTED_MODULE_3__/* .STEP_ACTIVATED */ .Hs) {
21930      var index = STEP_QUEUE.indexOf(step);
21931      var nextStep = STEP_QUEUE[index + 1];
21932      var result = callback(step);
21933      if (result === SkipStep) {
21934        // Skip when no needed
21935        setStep(nextStep, true);
21936      } else if (nextStep) {
21937        // Do as frame for step update
21938        nextFrame(function (info) {
21939          function doNext() {
21940            // Skip since current queue is ood
21941            if (info.isCanceled()) return;
21942            setStep(nextStep, true);
21943          }
21944          if (result === true) {
21945            doNext();
21946          } else {
21947            // Only promise should be async
21948            Promise.resolve(result).then(doNext);
21949          }
21950        });
21951      }
21952    }
21953  }, [status, step]);
21954  react__WEBPACK_IMPORTED_MODULE_2__.useEffect(function () {
21955    return function () {
21956      cancelNextFrame();
21957    };
21958  }, []);
21959  return [startQueue, step];
21960});
21961
21962/***/ }),
21963
21964/***/ 78942:
21965/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
21966
21967var freeGlobal = __webpack_require__(74967);
21968
21969/** Detect free variable `self`. */
21970var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
21971
21972/** Used as a reference to the global object. */
21973var root = freeGlobal || freeSelf || Function('return this')();
21974
21975module.exports = root;
21976
21977
21978/***/ }),
21979
21980/***/ 78977:
21981/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
21982
21983"use strict";
21984/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21985/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
21986/* harmony export */ });
21987/* unused harmony export generateTrigger */
21988/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69740);
21989/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79082);
21990/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(39850);
21991/* harmony import */ var _rc_component_portal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42963);
21992/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(53373);
21993/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_4__);
21994/* harmony import */ var rc_resize_observer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(77326);
21995/* harmony import */ var rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(28299);
21996/* harmony import */ var rc_util_es_Dom_shadow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(49116);
21997/* harmony import */ var rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(9449);
21998/* harmony import */ var rc_util_es_hooks_useId__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(75476);
21999/* harmony import */ var rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(84238);
22000/* harmony import */ var rc_util_es_isMobile__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(26651);
22001/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(15442);
22002/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_12__);
22003/* harmony import */ var _Popup__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(59788);
22004/* harmony import */ var _TriggerWrapper__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(36694);
22005/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(85086);
22006/* harmony import */ var _hooks_useAction__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(48043);
22007/* harmony import */ var _hooks_useAlign__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(24628);
22008/* harmony import */ var _hooks_useWatch__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(66318);
22009/* harmony import */ var _hooks_useWinClick__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(46783);
22010/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(61225);
22011
22012
22013
22014var _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"];
22015
22016
22017
22018
22019
22020
22021
22022
22023
22024
22025
22026
22027
22028
22029
22030
22031
22032
22033
22034// Removed Props List
22035// Seems this can be auto
22036// getDocument?: (element?: HTMLElement) => Document;
22037
22038// New version will not wrap popup with `rc-trigger-popup-content` when multiple children
22039
22040function generateTrigger() {
22041  var PortalComponent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _rc_component_portal__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A;
22042  var Trigger = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.forwardRef(function (props, ref) {
22043    var _props$prefixCls = props.prefixCls,
22044      prefixCls = _props$prefixCls === void 0 ? 'rc-trigger-popup' : _props$prefixCls,
22045      children = props.children,
22046      _props$action = props.action,
22047      action = _props$action === void 0 ? 'hover' : _props$action,
22048      showAction = props.showAction,
22049      hideAction = props.hideAction,
22050      popupVisible = props.popupVisible,
22051      defaultPopupVisible = props.defaultPopupVisible,
22052      onPopupVisibleChange = props.onPopupVisibleChange,
22053      afterPopupVisibleChange = props.afterPopupVisibleChange,
22054      mouseEnterDelay = props.mouseEnterDelay,
22055      _props$mouseLeaveDela = props.mouseLeaveDelay,
22056      mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,
22057      focusDelay = props.focusDelay,
22058      blurDelay = props.blurDelay,
22059      mask = props.mask,
22060      _props$maskClosable = props.maskClosable,
22061      maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,
22062      getPopupContainer = props.getPopupContainer,
22063      forceRender = props.forceRender,
22064      autoDestroy = props.autoDestroy,
22065      destroyPopupOnHide = props.destroyPopupOnHide,
22066      popup = props.popup,
22067      popupClassName = props.popupClassName,
22068      popupStyle = props.popupStyle,
22069      popupPlacement = props.popupPlacement,
22070      _props$builtinPlaceme = props.builtinPlacements,
22071      builtinPlacements = _props$builtinPlaceme === void 0 ? {} : _props$builtinPlaceme,
22072      popupAlign = props.popupAlign,
22073      zIndex = props.zIndex,
22074      stretch = props.stretch,
22075      getPopupClassNameFromAlign = props.getPopupClassNameFromAlign,
22076      fresh = props.fresh,
22077      alignPoint = props.alignPoint,
22078      onPopupClick = props.onPopupClick,
22079      onPopupAlign = props.onPopupAlign,
22080      arrow = props.arrow,
22081      popupMotion = props.popupMotion,
22082      maskMotion = props.maskMotion,
22083      popupTransitionName = props.popupTransitionName,
22084      popupAnimation = props.popupAnimation,
22085      maskTransitionName = props.maskTransitionName,
22086      maskAnimation = props.maskAnimation,
22087      className = props.className,
22088      getTriggerDOMNode = props.getTriggerDOMNode,
22089      restProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(props, _excluded);
22090    var mergedAutoDestroy = autoDestroy || destroyPopupOnHide || false;
22091
22092    // =========================== Mobile ===========================
22093    var _React$useState = react__WEBPACK_IMPORTED_MODULE_12__.useState(false),
22094      _React$useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState, 2),
22095      mobile = _React$useState2[0],
22096      setMobile = _React$useState2[1];
22097    (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A)(function () {
22098      setMobile((0,rc_util_es_isMobile__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .A)());
22099    }, []);
22100
22101    // ========================== Context ===========================
22102    var subPopupElements = react__WEBPACK_IMPORTED_MODULE_12__.useRef({});
22103    var parentContext = react__WEBPACK_IMPORTED_MODULE_12__.useContext(_context__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .A);
22104    var context = react__WEBPACK_IMPORTED_MODULE_12__.useMemo(function () {
22105      return {
22106        registerSubPopup: function registerSubPopup(id, subPopupEle) {
22107          subPopupElements.current[id] = subPopupEle;
22108          parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, subPopupEle);
22109        }
22110      };
22111    }, [parentContext]);
22112
22113    // =========================== Popup ============================
22114    var id = (0,rc_util_es_hooks_useId__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)();
22115    var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_12__.useState(null),
22116      _React$useState4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState3, 2),
22117      popupEle = _React$useState4[0],
22118      setPopupEle = _React$useState4[1];
22119
22120    // Used for forwardRef popup. Not use internal
22121    var externalPopupRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef(null);
22122    var setPopupRef = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(function (node) {
22123      externalPopupRef.current = node;
22124      if ((0,rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_6__/* .isDOM */ .fk)(node) && popupEle !== node) {
22125        setPopupEle(node);
22126      }
22127      parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, node);
22128    });
22129
22130    // =========================== Target ===========================
22131    // Use state to control here since `useRef` update not trigger render
22132    var _React$useState5 = react__WEBPACK_IMPORTED_MODULE_12__.useState(null),
22133      _React$useState6 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState5, 2),
22134      targetEle = _React$useState6[0],
22135      setTargetEle = _React$useState6[1];
22136
22137    // Used for forwardRef target. Not use internal
22138    var externalForwardRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef(null);
22139    var setTargetRef = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(function (node) {
22140      if ((0,rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_6__/* .isDOM */ .fk)(node) && targetEle !== node) {
22141        setTargetEle(node);
22142        externalForwardRef.current = node;
22143      }
22144    });
22145
22146    // ========================== Children ==========================
22147    var child = react__WEBPACK_IMPORTED_MODULE_12__.Children.only(children);
22148    var originChildProps = (child === null || child === void 0 ? void 0 : child.props) || {};
22149    var cloneProps = {};
22150    var inPopupOrChild = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(function (ele) {
22151      var _getShadowRoot, _getShadowRoot2;
22152      var childDOM = targetEle;
22153      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) {
22154        return (subPopupEle === null || subPopupEle === void 0 ? void 0 : subPopupEle.contains(ele)) || ele === subPopupEle;
22155      });
22156    });
22157
22158    // =========================== Motion ===========================
22159    var mergePopupMotion = (0,_util__WEBPACK_IMPORTED_MODULE_20__/* .getMotion */ .Vu)(prefixCls, popupMotion, popupAnimation, popupTransitionName);
22160    var mergeMaskMotion = (0,_util__WEBPACK_IMPORTED_MODULE_20__/* .getMotion */ .Vu)(prefixCls, maskMotion, maskAnimation, maskTransitionName);
22161
22162    // ============================ Open ============================
22163    var _React$useState7 = react__WEBPACK_IMPORTED_MODULE_12__.useState(defaultPopupVisible || false),
22164      _React$useState8 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState7, 2),
22165      internalOpen = _React$useState8[0],
22166      setInternalOpen = _React$useState8[1];
22167
22168    // Render still use props as first priority
22169    var mergedOpen = popupVisible !== null && popupVisible !== void 0 ? popupVisible : internalOpen;
22170
22171    // We use effect sync here in case `popupVisible` back to `undefined`
22172    var setMergedOpen = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(function (nextOpen) {
22173      if (popupVisible === undefined) {
22174        setInternalOpen(nextOpen);
22175      }
22176    });
22177    (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A)(function () {
22178      setInternalOpen(popupVisible || false);
22179    }, [popupVisible]);
22180    var openRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef(mergedOpen);
22181    openRef.current = mergedOpen;
22182    var lastTriggerRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef([]);
22183    lastTriggerRef.current = [];
22184    var internalTriggerOpen = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(function (nextOpen) {
22185      var _lastTriggerRef$curre;
22186      setMergedOpen(nextOpen);
22187
22188      // Enter or Pointer will both trigger open state change
22189      // We only need take one to avoid duplicated change event trigger
22190      // Use `lastTriggerRef` to record last open type
22191      if (((_lastTriggerRef$curre = lastTriggerRef.current[lastTriggerRef.current.length - 1]) !== null && _lastTriggerRef$curre !== void 0 ? _lastTriggerRef$curre : mergedOpen) !== nextOpen) {
22192        lastTriggerRef.current.push(nextOpen);
22193        onPopupVisibleChange === null || onPopupVisibleChange === void 0 || onPopupVisibleChange(nextOpen);
22194      }
22195    });
22196
22197    // Trigger for delay
22198    var delayRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef();
22199    var clearDelay = function clearDelay() {
22200      clearTimeout(delayRef.current);
22201    };
22202    var triggerOpen = function triggerOpen(nextOpen) {
22203      var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
22204      clearDelay();
22205      if (delay === 0) {
22206        internalTriggerOpen(nextOpen);
22207      } else {
22208        delayRef.current = setTimeout(function () {
22209          internalTriggerOpen(nextOpen);
22210        }, delay * 1000);
22211      }
22212    };
22213    react__WEBPACK_IMPORTED_MODULE_12__.useEffect(function () {
22214      return clearDelay;
22215    }, []);
22216
22217    // ========================== Motion ============================
22218    var _React$useState9 = react__WEBPACK_IMPORTED_MODULE_12__.useState(false),
22219      _React$useState10 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState9, 2),
22220      inMotion = _React$useState10[0],
22221      setInMotion = _React$useState10[1];
22222    (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A)(function (firstMount) {
22223      if (!firstMount || mergedOpen) {
22224        setInMotion(true);
22225      }
22226    }, [mergedOpen]);
22227    var _React$useState11 = react__WEBPACK_IMPORTED_MODULE_12__.useState(null),
22228      _React$useState12 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState11, 2),
22229      motionPrepareResolve = _React$useState12[0],
22230      setMotionPrepareResolve = _React$useState12[1];
22231
22232    // =========================== Align ============================
22233    var _React$useState13 = react__WEBPACK_IMPORTED_MODULE_12__.useState(null),
22234      _React$useState14 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState13, 2),
22235      mousePos = _React$useState14[0],
22236      setMousePos = _React$useState14[1];
22237    var setMousePosByEvent = function setMousePosByEvent(event) {
22238      setMousePos([event.clientX, event.clientY]);
22239    };
22240    var _useAlign = (0,_hooks_useAlign__WEBPACK_IMPORTED_MODULE_17__/* ["default"] */ .A)(mergedOpen, popupEle, alignPoint && mousePos !== null ? mousePos : targetEle, popupPlacement, builtinPlacements, popupAlign, onPopupAlign),
22241      _useAlign2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_useAlign, 11),
22242      ready = _useAlign2[0],
22243      offsetX = _useAlign2[1],
22244      offsetY = _useAlign2[2],
22245      offsetR = _useAlign2[3],
22246      offsetB = _useAlign2[4],
22247      arrowX = _useAlign2[5],
22248      arrowY = _useAlign2[6],
22249      scaleX = _useAlign2[7],
22250      scaleY = _useAlign2[8],
22251      alignInfo = _useAlign2[9],
22252      onAlign = _useAlign2[10];
22253    var _useAction = (0,_hooks_useAction__WEBPACK_IMPORTED_MODULE_16__/* ["default"] */ .A)(mobile, action, showAction, hideAction),
22254      _useAction2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_useAction, 2),
22255      showActions = _useAction2[0],
22256      hideActions = _useAction2[1];
22257    var clickToShow = showActions.has('click');
22258    var clickToHide = hideActions.has('click') || hideActions.has('contextMenu');
22259    var triggerAlign = (0,rc_util_es_hooks_useEvent__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(function () {
22260      if (!inMotion) {
22261        onAlign();
22262      }
22263    });
22264    var onScroll = function onScroll() {
22265      if (openRef.current && alignPoint && clickToHide) {
22266        triggerOpen(false);
22267      }
22268    };
22269    (0,_hooks_useWatch__WEBPACK_IMPORTED_MODULE_18__/* ["default"] */ .A)(mergedOpen, targetEle, popupEle, triggerAlign, onScroll);
22270    (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A)(function () {
22271      triggerAlign();
22272    }, [mousePos, popupPlacement]);
22273
22274    // When no builtinPlacements and popupAlign changed
22275    (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A)(function () {
22276      if (mergedOpen && !(builtinPlacements !== null && builtinPlacements !== void 0 && builtinPlacements[popupPlacement])) {
22277        triggerAlign();
22278      }
22279    }, [JSON.stringify(popupAlign)]);
22280    var alignedClassName = react__WEBPACK_IMPORTED_MODULE_12__.useMemo(function () {
22281      var baseClassName = (0,_util__WEBPACK_IMPORTED_MODULE_20__/* .getAlignPopupClassName */ .H1)(builtinPlacements, prefixCls, al
22281ignInfo, alignPoint);
22282      return classnames__WEBPACK_IMPORTED_MODULE_4___default()(baseClassName, getPopupClassNameFromAlign === null || getPopupClassNameFromAlign === void 0 ? void 0 : getPopupClassNameFromAlign(alignInfo));
22283    }, [alignInfo, getPopupClassNameFromAlign, builtinPlacements, prefixCls, alignPoint]);
22284
22285    // ============================ Refs ============================
22286    react__WEBPACK_IMPORTED_MODULE_12__.useImperativeHandle(ref, function () {
22287      return {
22288        nativeElement: externalForwardRef.current,
22289        popupElement: externalPopupRef.current,
22290        forceAlign: triggerAlign
22291      };
22292    });
22293
22294    // ========================== Stretch ===========================
22295    var _React$useState15 = react__WEBPACK_IMPORTED_MODULE_12__.useState(0),
22296      _React$useState16 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState15, 2),
22297      targetWidth = _React$useState16[0],
22298      setTargetWidth = _React$useState16[1];
22299    var _React$useState17 = react__WEBPACK_IMPORTED_MODULE_12__.useState(0),
22300      _React$useState18 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(_React$useState17, 2),
22301      targetHeight = _React$useState18[0],
22302      setTargetHeight = _React$useState18[1];
22303    var syncTargetSize = function syncTargetSize() {
22304      if (stretch && targetEle) {
22305        var rect = targetEle.getBoundingClientRect();
22306        setTargetWidth(rect.width);
22307        setTargetHeight(rect.height);
22308      }
22309    };
22310    var onTargetResize = function onTargetResize() {
22311      syncTargetSize();
22312      triggerAlign();
22313    };
22314
22315    // ========================== Motion ============================
22316    var onVisibleChanged = function onVisibleChanged(visible) {
22317      setInMotion(false);
22318      onAlign();
22319      afterPopupVisibleChange === null || afterPopupVisibleChange === void 0 || afterPopupVisibleChange(visible);
22320    };
22321
22322    // We will trigger align when motion is in prepare
22323    var onPrepare = function onPrepare() {
22324      return new Promise(function (resolve) {
22325        syncTargetSize();
22326        setMotionPrepareResolve(function () {
22327          return resolve;
22328        });
22329      });
22330    };
22331    (0,rc_util_es_hooks_useLayoutEffect__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A)(function () {
22332      if (motionPrepareResolve) {
22333        onAlign();
22334        motionPrepareResolve();
22335        setMotionPrepareResolve(null);
22336      }
22337    }, [motionPrepareResolve]);
22338
22339    // =========================== Action ===========================
22340    /**
22341     * Util wrapper for trigger action
22342     */
22343    function wrapperAction(eventName, nextOpen, delay, preEvent) {
22344      cloneProps[eventName] = function (event) {
22345        var _originChildProps$eve;
22346        preEvent === null || preEvent === void 0 || preEvent(event);
22347        triggerOpen(nextOpen, delay);
22348
22349        // Pass to origin
22350        for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
22351          args[_key - 1] = arguments[_key];
22352        }
22353        (_originChildProps$eve = originChildProps[eventName]) === null || _originChildProps$eve === void 0 || _originChildProps$eve.call.apply(_originChildProps$eve, [originChildProps, event].concat(args));
22354      };
22355    }
22356
22357    // ======================= Action: Click ========================
22358    if (clickToShow || clickToHide) {
22359      cloneProps.onClick = function (event) {
22360        var _originChildProps$onC;
22361        if (openRef.current && clickToHide) {
22362          triggerOpen(false);
22363        } else if (!openRef.current && clickToShow) {
22364          setMousePosByEvent(event);
22365          triggerOpen(true);
22366        }
22367
22368        // Pass to origin
22369        for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
22370          args[_key2 - 1] = arguments[_key2];
22371        }
22372        (_originChildProps$onC = originChildProps.onClick) === null || _originChildProps$onC === void 0 || _originChildProps$onC.call.apply(_originChildProps$onC, [originChildProps, event].concat(args));
22373      };
22374    }
22375
22376    // Click to hide is special action since click popup element should not hide
22377    var onPopupPointerDown = (0,_hooks_useWinClick__WEBPACK_IMPORTED_MODULE_19__/* ["default"] */ .A)(mergedOpen, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen);
22378
22379    // ======================= Action: Hover ========================
22380    var hoverToShow = showActions.has('hover');
22381    var hoverToHide = hideActions.has('hover');
22382    var onPopupMouseEnter;
22383    var onPopupMouseLeave;
22384    if (hoverToShow) {
22385      // Compatible with old browser which not support pointer event
22386      wrapperAction('onMouseEnter', true, mouseEnterDelay, function (event) {
22387        setMousePosByEvent(event);
22388      });
22389      wrapperAction('onPointerEnter', true, mouseEnterDelay, function (event) {
22390        setMousePosByEvent(event);
22391      });
22392      onPopupMouseEnter = function onPopupMouseEnter(event) {
22393        // Only trigger re-open when popup is visible
22394        if ((mergedOpen || inMotion) && popupEle !== null && popupEle !== void 0 && popupEle.contains(event.target)) {
22395          triggerOpen(true, mouseEnterDelay);
22396        }
22397      };
22398
22399      // Align Point
22400      if (alignPoint) {
22401        cloneProps.onMouseMove = function (event) {
22402          var _originChildProps$onM;
22403          // setMousePosByEvent(event);
22404          (_originChildProps$onM = originChildProps.onMouseMove) === null || _originChildProps$onM === void 0 || _originChildProps$onM.call(originChildProps, event);
22405        };
22406      }
22407    }
22408    if (hoverToHide) {
22409      wrapperAction('onMouseLeave', false, mouseLeaveDelay);
22410      wrapperAction('onPointerLeave', false, mouseLeaveDelay);
22411      onPopupMouseLeave = function onPopupMouseLeave() {
22412        triggerOpen(false, mouseLeaveDelay);
22413      };
22414    }
22415
22416    // ======================= Action: Focus ========================
22417    if (showActions.has('focus')) {
22418      wrapperAction('onFocus', true, focusDelay);
22419    }
22420    if (hideActions.has('focus')) {
22421      wrapperAction('onBlur', false, blurDelay);
22422    }
22423
22424    // ==================== Action: ContextMenu =====================
22425    if (showActions.has('contextMenu')) {
22426      cloneProps.onContextMenu = function (event) {
22427        var _originChildProps$onC2;
22428        if (openRef.current && hideActions.has('contextMenu')) {
22429          triggerOpen(false);
22430        } else {
22431          setMousePosByEvent(event);
22432          triggerOpen(true);
22433        }
22434        event.preventDefault();
22435
22436        // Pass to origin
22437        for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
22438          args[_key3 - 1] = arguments[_key3];
22439        }
22440        (_originChildProps$onC2 = originChildProps.onContextMenu) === null || _originChildProps$onC2 === void 0 || _originChildProps$onC2.call.apply(_originChildProps$onC2, [originChildProps, event].concat(args));
22441      };
22442    }
22443
22444    // ========================= ClassName ==========================
22445    if (className) {
22446      cloneProps.className = classnames__WEBPACK_IMPORTED_MODULE_4___default()(originChildProps.className, className);
22447    }
22448
22449    // ============================ Perf ============================
22450    var renderedRef = react__WEBPACK_IMPORTED_MODULE_12__.useRef(false);
22451    renderedRef.current || (renderedRef.current = forceRender || mergedOpen || inMotion);
22452
22453    // =========================== Render ===========================
22454    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);
22455
22456    // Pass props into cloneProps for nest usage
22457    var passedProps = {};
22458    var passedEventList = ['onContextMenu', 'onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur'];
22459    passedEventList.forEach(function (eventName) {
22460      if (restProps[eventName]) {
22461        passedProps[eventName] = function () {
22462          var _mergedChildrenProps$;
22463          for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
22464            args[_key4] = arguments[_key4];
22465          }
22466          (_mergedChildrenProps$ = mergedChildrenProps[eventName]) === null || _mergedChildrenProps$ === void 0 || _mergedChildrenProps$.call.apply(_mergedChildrenProps$, [mergedChildrenProps].concat(args));
22467          restProps[eventName].apply(restProps, args);
22468        };
22469      }
22470    });
22471
22472    // Child Node
22473    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));
22474    var arrowPos = {
22475      x: arrowX,
22476      y: arrowY
22477    };
22478    var innerArrow = arrow ? (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)({}, arrow !== true ? arrow : {}) : null;
22479
22480    // Render
22481    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, {
22482      disabled: !mergedOpen,
22483      ref: setTargetRef,
22484      onResize: onTargetResize
22485    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.createElement(_TriggerWrapper__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .A, {
22486      getTriggerDOMNode: getTriggerDOMNode
22487    }, triggerNode)), renderedRef.current && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.createElement(_context__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .A.Provider, {
22488      value: context
22489    }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_12__.createElement(_Popup__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .A, {
22490      portal: PortalComponent,
22491      ref: setPopupRef,
22492      prefixCls: prefixCls,
22493      popup: popup,
22494      className: classnames__WEBPACK_IMPORTED_MODULE_4___default()(popupClassName, alignedClassName),
22495      style: popupStyle,
22496      target: targetEle,
22497      onMouseEnter: onPopupMouseEnter,
22498      onMouseLeave: onPopupMouseLeave
22499      // https://github.com/ant-design/ant-design/issues/43924
22500      ,
22501      onPointerEnter: onPopupMouseEnter,
22502      zIndex: zIndex
22503      // Open
22504      ,
22505      open: mergedOpen,
22506      keepDom: inMotion,
22507      fresh: fresh
22508      // Click
22509      ,
22510      onClick: onPopupClick,
22511      onPointerDownCapture: onPopupPointerDown
22512      // Mask
22513      ,
22514      mask: mask
22515      // Motion
22516      ,
22517      motion: mergePopupMotion,
22518      maskMotion: mergeMaskMotion,
22519      onVisibleChanged: onVisibleChanged,
22520      onPrepare: onPrepare
22521      // Portal
22522      ,
22523      forceRender: forceRender,
22524      autoDestroy: mergedAutoDestroy,
22525      getPopupContainer: getPopupContainer
22526      // Arrow
22527      ,
22528      align: alignInfo,
22529      arrow: innerArrow,
22530      arrowPos: arrowPos
22531      // Align
22532      ,
22533      ready: ready,
22534      offsetX: offsetX,
22535      offsetY: offsetY,
22536      offsetR: offsetR,
22537      offsetB: offsetB,
22538      onAlign: triggerAlign
22539      // Stretch
22540      ,
22541      stretch: stretch,
22542      targetWidth: targetWidth / scaleX,
22543      targetHeight: targetHeight / scaleY
22544    })));
22545  });
22546  if (false) // removed by dead control flow
22547{}
22548  return Trigger;
22549}
22550/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (generateTrigger(_rc_component_portal__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A));
22551
22552/***/ }),
22553
22554/***/ 79082:
22555/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22556
22557"use strict";
22558/* harmony export */ __webpack_require__.d(__webpack_exports__, {
22559/* harmony export */   A: () => (/* binding */ _slicedToArray)
22560/* harmony export */ });
22561/* harmony import */ var _arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(96488);
22562/* harmony import */ var _iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23171);
22563/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27985);
22564/* harmony import */ var _nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5405);
22565
22566
22567
22568
22569function _slicedToArray(r, e) {
22570  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)();
22571}
22572
22573
22574/***/ }),
22575
22576/***/ 79191:
22577/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
22578
22579"use strict";
22580/* harmony export */ __webpack_require__.d(__webpack_exports__, {
22581/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__),
22582/* harmony export */   E: () => (/* binding */ STORAGE_GUIDE_DATA)
22583/* harmony export */ });
22584/* harmony import */ var _common_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4703);
22585/* harmony import */ var _components_CjHeader_contexts_PropsContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44148);
22586/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15442);
22587/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
22588/* harmony import */ var _common_request__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(77427);
22589var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
22590  function adopt(value) {
22591    return value instanceof P ? value : new P(function (resolve) {
22592      resolve(value);
22593    });
22594  }
22595  return new (P || (P = Promise))(function (resolve, reject) {
22596    function fulfilled(value) {
22597      try {
22598        step(generator.next(value));
22599      } catch (e) {
22600        reject(e);
22601      }
22602    }
22603    function rejected(value) {
22604      try {
22605        step(generator["throw"](value));
22606      } catch (e) {
22607        reject(e);
22608      }
22609    }
22610    function step(result) {
22611      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
22612    }
22613    step((generator = generator.apply(thisArg, _arguments || [])).next());
22614  });
22615};
22616var __generator = undefined && undefined.__generator || function (thisArg, body) {
22617  var _ = {
22618      label: 0,
22619      sent: function sent() {
22620        if (t[0] & 1) throw t[1];
22621        return t[1];
22622      },
22623      trys: [],
22624      ops: []
22625    },
22626    f,
22627    y,
22628    t,
22629    g;
22630  return g = {
22631    next: verb(0),
22632    "throw": verb(1),
22633    "return": verb(2)
22634  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
22635    return this;
22636  }), g;
22637  function verb(n) {
22638    return function (v) {
22639      return step([n, v]);
22640    };
22641  }
22642  function step(op) {
22643    if (f) throw new TypeError("Generator is already executing.");
22644    while (g && (g = 0, op[0] && (_ = 0)), _) try {
22645      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;
22646      if (y = 0, t) op = [op[0] & 2, t.value];
22647      switch (op[0]) {
22648        case 0:
22649        case 1:
22650          t = op;
22651          break;
22652        case 4:
22653          _.label++;
22654          return {
22655            value: op[1],
22656            done: false
22657          };
22658        case 5:
22659          _.label++;
22660          y = op[1];
22661          op = [0];
22662          continue;
22663        case 7:
22664          op = _.ops.pop();
22665          _.trys.pop();
22666          continue;
22667        default:
22668          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
22669            _ = 0;
22670            continue;
22671          }
22672          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
22673            _.label = op[1];
22674            break;
22675          }
22676          if (op[0] === 6 && _.label < t[1]) {
22677            _.label = t[1];
22678            t = op;
22679            break;
22680          }
22681          if (t && _.label < t[2]) {
22682            _.label = t[2];
22683            _.ops.push(op);
22684            break;
22685          }
22686          if (t[2]) _.ops.pop();
22687          _.trys.pop();
22688          continue;
22689      }
22690      op = body.call(thisArg, _);
22691    } catch (e) {
22692      op = [6, e];
22693      y = 0;
22694    } finally {
22695      f = t = 0;
22696    }
22697    if (op[0] & 5) throw op[1];
22698    return {
22699      value: op[0] ? op[1] : void 0,
22700      done: true
22701    };
22702  }
22703};
22704
22705
22706
22707
22708var STORAGE_GUIDE_DATA = 'cj_guide_data';
22709var useGuidShow = function useGuidShow(_a) {
22710  var _b = _a === void 0 ? {} : _a,
22711    _c = _b.getDomainByUrl,
22712    getDomainByUrl = _c === void 0 ? function (v) {
22713      return v;
22714    } : _c;
22715  var loginInfo = (0,_components_CjHeader_contexts_PropsContext__WEBPACK_IMPORTED_MODULE_1__/* .useGlobalProps */ .v)().loginInfo;
22716  var _d = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false),
22717    loading = _d[0],
22718    setLoading = _d[1];
22719  var axios = (0,_common_request__WEBPACK_IMPORTED_MODULE_3__/* .createInstance */ .Q)();
22720  var getIsShow = function getIsShow() {
22721    return __awaiter(void 0, void 0, void 0, function () {
22722      var data, _a, res;
22723      return __generator(this, function (_b) {
22724        switch (_b.label) {
22725          case 0:
22726            data = _common_store__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get(STORAGE_GUIDE_DATA);
22727            if (data) return [2];
22728            setLoading(true);
22729            return [4, axios({
22730              method: 'POST',
22731              url: 'chat-web/app/message/guide/getDspGuideNodeByLoginName',
22732              data: {
22733                accLoginName: loginInfo === null || loginInfo === void 0 ? void 0 : loginInfo.loginName
22734              }
22735            })];
22736          case 1:
22737            _a = _b.sent(), res = _a[1];
22738            setLoading(false);
22739            if (res === null || res === void 0 ? void 0 : res.data) {
22740              _common_store__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.set(STORAGE_GUIDE_DATA, res.data);
22741            }
22742            return [2];
22743        }
22744      });
22745    });
22746  };
22747  return {
22748    loading: loading,
22749    getIsShow: getIsShow
22750  };
22751};
22752/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useGuidShow);
22753
22754/***/ }),
22755
22756/***/ 79328:
22757/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
22758
22759"use strict";
22760/* harmony export */ __webpack_require__.d(__webpack_exports__, {
22761/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
22762/* harmony export */ });
22763/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__webpack_require__.p + "assets/nav-bg.38bd807e.png");
22764
22765/***/ }),
22766
22767/***/ 79824:
22768/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
22769
22770"use strict";
22771/* harmony export */ __webpack_require__.d(__webpack_exports__, {
22772/* harmony export */   A: () => (/* binding */ toPrimitive)
22773/* harmony export */ });
22774/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17545);
22775
22776function toPrimitive(t, r) {
22777  if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(t) || !t) return t;
22778  var e = t[Symbol.toPrimitive];
22779  if (void 0 !== e) {
22780    var i = e.call(t, r || "default");
22781    if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(i)) return i;
22782    throw new TypeError("@@toPrimitive must return a primitive value.");
22783  }
22784  return ("string" === r ? String : Number)(t);
22785}
22786
22787
22788/***/ }),
22789
22790/***/ 80129:
22791/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
22792
22793"use strict";
22794/* harmony export */ __webpack_require__.d(__webpack_exports__, {
22795/* harmony export */   A: () => (/* binding */ contains)
22796/* harmony export */ });
22797function contains(root, n) {
22798  if (!root) {
22799    return false;
22800  }
22801
22802  // Use native if support
22803  if (root.contains) {
22804    return root.contains(n);
22805  }
22806
22807  // `document.contains` not support with IE11
22808  var node = n;
22809  while (node) {
22810    if (node === root) {
22811      return true;
22812    }
22813    node = node.parentNode;
22814  }
22815  return false;
22816}
22817
22818/***/ }),
22819
22820/***/ 80547:
22821/***/ ((module) => {
22822
22823/**
22824 * Checks if `value` is object-like. A value is object-like if it's not `null`
22825 * and has a `typeof` result of "object".
22826 *
22827 * @static
22828 * @memberOf _
22829 * @since 4.0.0
22830 * @category Lang
22831 * @param {*} value The value to check.
22832 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
22833 * @example
22834 *
22835 * _.isObjectLike({});
22836 * // => true
22837 *
22838 * _.isObjectLike([1, 2, 3]);
22839 * // => true
22840 *
22841 * _.isObjectLike(_.noop);
22842 * // => false
22843 *
22844 * _.isObjectLike(null);
22845 * // => false
22846 */
22847function isObjectLike(value) {
22848  return value != null && typeof value == 'object';
22849}
22850
22851module.exports = isObjectLike;
22852
22853
22854/***/ }),
22855
22856/***/ 80745:
22857/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
22858
22859"use strict";
22860/* harmony export */ __webpack_require__.d(__webpack_exports__, {
22861/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
22862/* harmony export */ });
22863/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15442);
22864/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
22865
22866var PopupContent = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (_ref) {
22867  var children = _ref.children;
22868  return children;
22869}, function (_, next) {
22870  return next.cache;
22871});
22872if (false) // removed by dead control flow
22873{}
22874/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PopupContent);
22875
22876/***/ }),
22877
22878/***/ 81002:
22879/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
22880
22881"use strict";
22882/* harmony export */ __webpack_require__.d(__webpack_exports__, {
22883/* harmony export */   Bd: () => (/* binding */ isBrowser),
22884/* harmony export */   Bz: () => (/* binding */ useVipPrefix),
22885/* harmony export */   Fr: () => (/* binding */ isMobile),
22886/* harmony export */   G3: () => (/* binding */ is1688),
22887/* harmony export */   GA: () => (/* binding */ statusCode200),
22888/* harmony export */   JE: () => (/* binding */ getQueryVariable),
22889/* harmony export */   Me: () => (/* binding */ httpsOptionsConfig),
22890/* harmony export */   SR: () => (/* binding */ getTopDomain),
22891/* harmony export */   Wc: () => (/* reexport safe */ _cookies_refact__WEBPACK_IMPORTED_MODULE_0__.W),
22892/* harmony export */   Wg: () => (/* binding */ unlockBodyScroll),
22893/* harmony export */   _$: () => (/* binding */ removeLogin),
22894/* harmony export */   cH: () => (/* binding */ isInViewport),
22895/* harmony export */   dn: () => (/* binding */ isSafeUser),
22896/* harmony export */   gQ: () => (/* binding */ handleAuthUrl),
22897/* harmony export */   hQ: () => (/* binding */ getRouteHref),
22898/* harmony export */   kJ: () => (/* binding */ isMobileFun),
22899/* harmony export */   sg: () => (/* binding */ debounce),
22900/* harmony export */   t_: () => (/* binding */ isShowNewFeatures),
22901/* harmony export */   zI: () => (/* binding */ lockBodyScroll)
22902/* harmony export */ });
22903/* 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 */
22904/* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(93584);
22905/* harmony import */ var _cookies_refact__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(84873);
22906/* harmony import */ var _common_login_info_controller__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12097);
22907/* harmony import */ var _authority_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25435);
22908/* harmony import */ var psl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67399);
22909/* harmony import */ var _replace_prefix_for_api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20000);
22910
22911
22912
22913
22914
22915
22916
22917var getRouteHref = function getRouteHref(router) {
22918  if (!router.route) return '#';
22919  if (!(0,_authority_utils__WEBPACK_IMPORTED_MODULE_2__/* .hasAuth */ .Vm)({
22920    code: router.code
22921  })) return _authority_utils__WEBPACK_IMPORTED_MODULE_2__/* .noAuthPath */ .Z7;
22922  return router.route;
22923};
22924function getTopDomain(host) {
22925  if (host === void 0) {
22926    host = location === null || location === void 0 ? void 0 : location.hostname;
22927  }
22928  var ip_pattern = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
22929  if (ip_pattern.test(host)) {
22930    return host;
22931  }
22932  var domain = '';
22933  var p = psl__WEBPACK_IMPORTED_MODULE_3__/* ["default"].parse */ .Ay.parse(host);
22934  if (p.listed) {
22935    domain = p.domain;
22936  } else {
22937    domain = host;
22938  }
22939  return domain === 'localhost' ? domain : ".".concat(domain);
22940}
22941function statusCode200(data) {
22942  var errormsg = 'api request error!';
22943  if (!data) {
22944    return [errormsg];
22945  }
22946  if (data.success) {
22947    return [null, data.data];
22948  }
22949  return +data.statusCode === 200 ? [null, data.result] : [data.message || errormsg];
22950}
22951var isBrowser = typeof window != 'undefined';
22952var getQueryVariable = function getQueryVariable(name) {
22953  var _a;
22954  try {
22955    var searchParams = new URLSearchParams(location.search);
22956    var query = Array.from(searchParams.entries()).reduce(function (obj, _a) {
22957      var key = _a[0],
22958        value = _a[1];
22959      obj[key] = value;
22960      return obj;
22961    }, {});
22962    if (name) {
22963      return (_a = query[name]) !== null && _a !== void 0 ? _a : '';
22964    }
22965    return query;
22966  } catch (e) {
22967    return name ? '' : {};
22968  }
22969};
22970function debounce(fn, wait, immediate) {
22971  if (immediate === void 0) {
22972    immediate = false;
22973  }
22974  var timer,
22975    startTimeStamp = 0;
22976  var context, args;
22977  var _run = function run(timerInterval) {
22978    timer = setTimeout(function () {
22979      var now = Date.now();
22980      var interval = now - startTimeStamp;
22981      if (interval < timerInterval) {
22982        startTimeStamp = now;
22983        _run(wait - interval);
22984      } else {
22985        if (!immediate) {
22986          fn.apply(context, args);
22987        }
22988        clearTimeout(timer);
22989        timer = null;
22990      }
22991    }, timerInterval);
22992  };
22993  return function () {
22994    context = this;
22995    args = arguments;
22996    var now = Date.now();
22997    startTimeStamp = now;
22998    if (!timer) {
22999      if (immediate) {
23000        fn.apply(context, args);
23001      }
23002      _run(wait);
23003    }
23004  };
23005}
23006function isSupportWebpFun() {
23007  if (typeof window === 'undefined') return false;
23008  try {
23009    return document.createElement('canvas').toDataURL('image/webp').indexOf('data:image/webp') == 0;
23010  } catch (err) {
23011    return false;
23012  }
23013}
23014var isSupportWebp = isSupportWebpFun();
23015var IMG_SIZE = function IMG_SIZE(url) {
23016  var args = [];
23017  for (var _i = 1; _i < arguments.length; _i++) {
23018    args[_i - 1] = arguments[_i];
23019  }
23020  if (isBrowser && is1688()) return url;
23021  if (typeof url !== 'string' || !url.trim()) return url;
23022  if (url.indexOf('data:image') > -1) return url;
23023  try {
23024    var _url = new URL(url);
23025    if (_url.searchParams.size > 0) {
23026      _url.search = '';
23027    }
23028    var webpT = 'image/format,webp,';
23029    var json = {};
23030    var size = 200;
23031    var xOssProcess = "".concat(isSupportWebp ? webpT : '', "image/resize,m_fill,m_pad");
23032    if (args.length === 1) json = {
23033      w: args[0]
23034    };else if (args.length === 2) json = {
23035      w: args[0],
23036      h: args[1]
23037    };else {
23038      json = {
23039        w: size,
23040        h: size
23041      };
23042    }
23043    for (var k in json) xOssProcess += ",".concat(k, "_").concat(json[k]);
23044    _url.search = "?x-oss-process=".concat(xOssProcess);
23045    return HTTPS_PREFIX(_url.toString());
23046  } catch (e) {
23047    console.error("\u56FE\u7247url: ".concat(url, " \u5904\u7406\u62A5\u9519"), JSON.stringify(e));
23048    return url;
23049  }
23050};
23051var HTTPS_PREFIX = function HTTPS_PREFIX(url) {
23052  var str = url;
23053  if (!(str === null || str === void 0 ? void 0 : str.startsWith('https'))) {
23054    var suffix = str.replace(/^http:\/\//, '');
23055    str = "https://".concat(suffix);
23056  }
23057  return str;
23058};
23059var handleAuthUrl = function handleAuthUrl(url) {
23060  var _href = url;
23061  if (_href.indexOf('my.html') > -1 || _href.indexOf('mine') > -1) {
23062    _href = "/login.html?target=".concat(js_base64__WEBPACK_IMPORTED_MODULE_5__/* .Base64 */ .o4.encode(url));
23063  }
23064  return _href;
23065};
23066var isMobileFun = function isMobileFun() {
23067  return window.innerWidth < 700;
23068};
23069var isTabletFun = function isTabletFun() {
23070  return window.innerWidth > 700 && window.innerWidth < 1200;
23071};
23072var jumpMobileFun = function jumpMobileFun(_a) {
23073  var _b;
23074  var url = _a.url,
23075    _c = _a._back_url,
23076    _back_url = _c === void 0 ? window.location.href : _c,
23077    _source_url = _a._source_url,
23078    isLogin = _a.isLogin,
23079    _d = _a.shouldJump,
23080    shouldJump = _d === void 0 ? true : _d,
23081    _e = _a.openInNewTab,
23082    openInNewTab = _e === void 0 ? false : _e,
23083    _f = _a.noBackUrl,
23084    noBackUrl = _f === void 0 ? false : _f;
23085  var m_host = (_b = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _b === void 0 ? void 0 : _b.data('m-host');
23086  if (!m_host || !url) {
23087    return shouldJump ? undefined : '';
23088  }
23089  var m_url = "".concat(m_host).concat(url);
23090  if (isLogin) {
23091    if (shouldJump) {
23092      if (openInNewTab) {
23093        window.open("".concat(m_url).concat(noBackUrl ? '' : "".concat(url.includes('?') ? '&' : '?', "_back_url=").concat(_back_url)), '_blank');
23094      } else {
23095        window.location.href = "".concat(m_url).concat(noBackUrl ? '' : "".concat(url.includes('?') ? '&' : '?', "_back_url=").concat(_back_url));
23096      }
23097      return;
23098    }
23099    return "".concat(m_url).concat(noBackUrl ? '' : "".concat(url.includes('?') ? '&' : '?', "_back_url=").concat(_back_url));
23100  }
23101  var loginUrl = "".concat(m_host, "/login-register?_source_url=").concat(_source_url || m_url).concat(noBackUrl ? '' : "&_back_url=".concat(_back_url));
23102  if (shouldJump) {
23103    if (openInNewTab) {
23104      window.open(loginUrl, '_blank');
23105    } else {
23106      window.location.href = loginUrl;
23107    }
23108    return;
23109  }
23110  return loginUrl;
23111};
23112var originalStyles = {
23113  html: {
23114    overflow: '',
23115    position: '',
23116    top: '',
23117    width: ''
23118  },
23119  body: {
23120    overflow: '',
23121    position: '',
23122    top: '',
23123    width: ''
23124  }
23125};
23126var isLocked = false;
23127var lockedScrollY = 0;
23128var lockBodyScroll = function lockBodyScroll() {
23129  if (isLocked) return;
23130  var html = document.documentElement;
23131  var body = document.body;
23132  originalStyles.html = {
23133    overflow: html.style.overflow,
23134    position: html.style.position,
23135    top: html.style.top,
23136    width: html.style.width
23137  };
23138  originalStyles.body = {
23139    overflow: body.style.overflow,
23140    position: body.style.position,
23141    top: body.style.top,
23142    width: body.style.width
23143  };
23144  lockedScrollY = window.scrollY || window.pageYOffset;
23145  html.style.overflow = 'hidden';
23146  html.style.position = 'fixed';
23147  html.style.top = "-".concat(lockedScrollY, "px");
23148  html.style.width = '100%';
23149  body.style.overflow = 'hidden';
23150  body.style.position = 'fixed';
23151  body.style.top = "-".concat(lockedScrollY, "px");
23152  body.style.width = '100%';
23153  if (/iPad|iPhone|iPod/.test(navigator.userAgent)) {
23154    body.style.position = 'fixed';
23155    body.style.top = "-".concat(lockedScrollY, "px");
23156  }
23157  isLocked = true;
23158};
23159var unlockBodyScroll = function unlockBodyScroll() {
23160  if (!isLocked) return;
23161  var html = document.documentElement;
23162  var body = document.body;
23163  html.style.overflow = originalStyles.html.overflow;
23164  html.style.position = originalStyles.html.position;
23165  html.style.top = originalStyles.html.top;
23166  html.style.width = originalStyles.html.width;
23167  body.style.overflow = originalStyles.body.overflow;
23168  body.style.position = originalStyles.body.position;
23169  body.style.top = originalStyles.body.top;
23170  body.style.width = originalStyles.body.width;
23171  window.scrollTo(0, lockedScrollY);
23172  isLocked = false;
23173};
23174var handleServiceItemClick = function handleServiceItemClick(service) {
23175  if (isMobileFun()) {
23176    if (service.isThirdLink) {
23177      if (service.openInNewTab) {
23178        window.open(service.mlink, '_blank');
23179      } else {
23180        window.location.href = service.mlink;
23181      }
23182      return;
23183    }
23184    jumpMobileFun({
23185      url: service.mlink,
23186      _back_url: window.location.href,
23187      isLogin: true,
23188      openInNewTab: service.openInNewTab
23189    });
23190    return;
23191  }
23192  if (service.openInNewTab) {
23193    window.open(service.link, '_blank');
23194  } else {
23195    window.location.href = service.link;
23196  }
23197};
23198var removeLogin = function removeLogin() {
23199  var _a;
23200  (_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);
23201};
23202function cartesian(arr) {
23203  if (arr.length < 2) return arr[0] || [];
23204  return [].reduce.call(arr, function (col, set) {
23205    var res = [];
23206    col.forEach(function (c) {
23207      set.forEach(function (s) {
23208        var t = [].concat(Array.isArray(c) ? c : [c]);
23209        t.push(s);
23210        res.push(t);
23211      });
23212    });
23213    return res;
23214  });
23215}
23216var cookieGenerator = function cookieGenerator(cookie) {
23217  if (cookie === void 0) {
23218    cookie = {};
23219  }
23220  var arr = Object.keys(cookie).filter(function (k) {
23221    return cookie[k];
23222  }).map(function (k) {
23223    var v = cookie[k];
23224    return "".concat(k, "=").concat(v);
23225  });
23226  return arr.join(';');
23227};
23228var cookieParser = function cookieParser(cookie) {
23229  var r = null;
23230  if (!cookie) {
23231    return null;
23232  }
23233  try {
23234    var tmp = decodeURIComponent(cookie);
23235    var arr = tmp.split(';');
23236    var obj_1 = {};
23237    arr.forEach(function (_) {
23238      var t = _.split('=');
23239      obj_1[t[0]] = t[1];
23240    });
23241    r = obj_1;
23242    return r;
23243  } catch (error) {
23244    console.log('error', error);
23245  }
23246};
23247var isPageType = function isPageType(_path) {
23248  var path = _path;
23249  switch (path) {
23250    case '/':
23251      path = '/home.html';
23252      break;
23253    default:
23254      break;
23255  }
23256  return {
23257    isHome: ['/home.html'].includes(path)
23258  };
23259};
23260var toUnitShow = function toUnitShow(num) {
23261  if (isNaN(num) || !num || num == null || num <= 0) return 0;
23262  if (num < 1000) return num;
23263  if (num < 100000) return "".concat((num / 1000).toFixed(1), "K");
23264  return "99K+";
23265};
23266var getProductHref = function getProductHref(id, name) {
23267  if (name === void 0) {
23268    name = '';
23269  }
23270  function urlQueryFormat(url, encode) {
23271    if (url === void 0) {
23272      url = '';
23273    }
23274    if (encode === void 0) {
23275      encode = true;
23276    }
23277    var _url = String(url);
23278    _url = _url.toLocaleLowerCase();
23279    function _(reg, value) {
23280      if (value === void 0) {
23281        value = '';
23282      }
23283      _url = _url.replace(reg, value);
23284    }
23285    _(/,/g);
23286    _(/( )?&/g);
23287    _(/'/g);
23288    _(/\?/g);
23289    _(/ /g, '-');
23290    _url = encode ? encodeURIComponent(_url) : decodeURIComponent(_url);
23291    return _url;
23292  }
23293  return "/product/".concat(urlQueryFormat(name), "-p-").concat(id, ".html");
23294};
23295function priceFormat(price) {
23296  if (!price) return '0.00';
23297  var _price = price.replace('--', '-');
23298  var arr = _price.split('-');
23299  if (arr.length == 1) {
23300    return "".concat(Number(arr[0]).toFixed(2));
23301  } else {
23302    return "".concat(Number(arr[0]).toFixed(2), "-").concat(Number(arr[1]).toFixed(2));
23303  }
23304}
23305function ratePrice(price, rate) {
23306  if (rate === void 0) {
23307    rate = 1;
23308  }
23309  var resultPrice = price * rate;
23310  return resultPrice.toFixed(2);
23311}
23312var joinVideoScreenUrl = function joinVideoScreenUrl(url, size) {
23313  if (size === void 0) {
23314    size = [];
23315  }
23316  var joinTemp = [];
23317  size[0] && joinTemp.push("w_".concat(size[0]));
23318  size[1] && joinTemp.push("h_".concat(size[1]));
23319  var joinStr = joinTemp.join(',');
23320  return "".concat(url, "?x-oss-process=video/snapshot,t_1,m_fast") + (joinStr ? ",".concat(joinStr) : '');
23321};
23322function isNodeExist(node) {
23323  if (!node) return false;
23324  return document.contains(node);
23325}
23326function isVip() {
23327  return loginInfoController.info('vip') == '1' && document.body.classList.contains('vip');
23328}
23329function goLogin(url) {
23330  if (url === void 0) {
23331    url = '';
23332  }
23333  var goUrl = url;
23334  if (!goUrl) {
23335    goUrl = location.origin + location.pathname + '?' + location.search;
23336  }
23337  location.href = '/login.html?target=' + Base64.encode(goUrl);
23338}
23339function uniqueArr(arr, key) {
23340  if (key === void 0) {
23341    key = '';
23342  }
23343  var res = new Map();
23344  return arr.filter(function (a) {
23345    var _key = key ? a[key] : a;
23346    return !res.has(_key) && res.set(_key, 1);
23347  });
23348}
23349function isInViewport(el, offsetHeight) {
23350  if (offsetHeight === void 0) {
23351    offsetHeight = 0;
23352  }
23353  if (!el) return true;
23354  var rect = el.getBoundingClientRect();
23355  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) - offsetHeight && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
23356}
23357function isSafeUser(SHOWMESSAGE, token) {
23358  var _a;
23359  if (SHOWMESSAGE === void 0) {
23360    SHOWMESSAGE = '';
23361  }
23362  if (token === void 0) {
23363    token = '';
23364  }
23365  if (typeof window !== 'undefined') {
23366    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');
23367  }
23368  return (SHOWMESSAGE === null || SHOWMESSAGE === void 0 ? void 0 : SHOWMESSAGE.indexOf('S')) > -1 && !!token;
23369}
23370var noReplaceUrl = ['/order-center/proxyOrder/saveOrder/excelImportOrder', '/order-center/proxyOrder/saveOrder/excelImportOrderV2', '/order-center/proxyOrder/saveOrder/excelImportOrderV3', '/order-center/proxyOrder/saveOrder/excelImportOrderV4'];
23371function useVipPrefix(_a) {
23372  var _b;
23373  var _c = _a === void 0 ? {} : _a,
23374    _d = _c.SHOWMESSAGE,
23375    SHOWMESSAGE = _d === void 0 ? '' : _d,
23376    _e = _c.token,
23377    token = _e === void 0 ? '' : _e,
23378    _f = _c.url,
23379    url = _f === void 0 ? '' : _f;
23380  if (!url || url.startsWith('http')) return url;
23381  var hasPreLine = url === null || url === void 0 ? void 0 : url.startsWith('/');
23382  var diagonalLineUrl = hasPreLine ? url : "/".concat(url);
23383  if (noReplaceUrl.some(function (u) {
23384    return u === diagonalLineUrl;
23385  })) return url;
23386  var prefix = (_b = diagonalLineUrl === null || diagonalLineUrl === void 0 ? void 0 : diagonalLineUrl.split('/')) === null || _b === void 0 ? void 0 : _b[1];
23387  var _g = _replace_prefix_for_api__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .A[prefix] || {},
23388    normalPrefix = _g.normal,
23389    vipPrefix = _g.vip;
23390  var _SHOWMESSAGE = SHOWMESSAGE;
23391  var _token = token;
23392  if (typeof window !== 'undefined') {
23393    _SHOWMESSAGE = _cookies_refact__WEBPACK_IMPORTED_MODULE_0__/* .Cookies */ .W.get('SHOWMESSAGE') || '';
23394    _token = _cookies_refact__WEBPACK_IMPORTED_MODULE_0__/* .Cookies */ .W.get('token') || '';
23395  }
23396  var needReplace = (_SHOWMESSAGE === null || _SHOWMESSAGE === void 0 ? void 0 : _SHOWMESSAGE.indexOf('V')) > -1 && !!_token;
23397  if (needReplace && vipPrefix) return url.replace("".concat(prefix), "".concat(vipPrefix));
23398  if (normalPrefix) return url.replace("".concat(prefix), "".concat(normalPrefix));
23399  return url;
23400}
23401function isMobile(ctx) {
23402  var _a;
23403  if (ctx === void 0) {
23404    ctx = null;
23405  }
23406  if (ctx) {
23407    var ua = ((_a = ctx === null || ctx === void 0 ? void 0 : ctx.req) === null || _a === void 0 ? void 0 : _a.headers['user-agent']) || '';
23408    return /Mobile|mobile|android|iphone|ipod|phone|blackberry|windows phone|ipad/i.test(ua);
23409  }
23410  if (typeof window === 'undefined') return false;
23411  return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
23412}
23413function isShowNewInventory(SHOWMESSAGE) {
23414  var _a, _b;
23415  if (SHOWMESSAGE === void 0) {
23416    SHOWMESSAGE = '';
23417  }
23418  if (typeof window !== 'undefined') {
23419    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;
23420  }
23421  return (SHOWMESSAGE === null || SHOWMESSAGE === void 0 ? void 0 : SHOWMESSAGE.indexOf('K')) > -1 && (SHOWMESSAGE === null || SHOWMESSAGE === void 0 ? void 0 : SHOWMESSAGE.indexOf('k')) === -1;
23422}
23423function isOldNewInventory(SHOWMESSAGE) {
23424  var _a, _b;
23425  if (SHOWMESSAGE === void 0) {
23426    SHOWMESSAGE = '';
23427  }
23428  if (typeof window !== 'undefined') {
23429    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;
23430  }
23431  return (SHOWMESSAGE === null || SHOWMESSAGE === void 0 ? void 0 : SHOWMESSAGE.indexOf('K')) > -1 && (SHOWMESSAGE === null || SHOWMESSAGE === void 0 ? void 0 : SHOWMESSAGE.indexOf('k')) > -1;
23432}
23433function isOldInventory(SHOWMESSAGE) {
23434  var _a, _b;
23435  if (SHOWMESSAGE === void 0) {
23436    SHOWMESSAGE = '';
23437  }
23438  if (typeof window !== 'undefined') {
23439    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;
23440  }
23441  return (SHOWMESSAGE === null || SHOWMESSAGE === void 0 ? void 0 : SHOWMESSAGE.indexOf('K')) === -1 && (SHOWMESSAGE === null || SHOWMESSAGE === void 0 ? void 0 : SHOWMESSAGE.indexOf('k')) > -1;
23442}
23443var parseSize = function parseSize(targetSize, size) {
23444  var t_width = targetSize[0],
23445    t_height = targetSize[1];
23446  var width = size[0],
23447    height = size[1];
23448  var newWidth = 0,
23449    newHeight = 0;
23450  var targetRatio = t_width / t_height;
23451  var ratio = width / height;
23452  if (targetRatio > ratio) {
23453    newWidth = ratio * t_height;
23454    newHeight = t_height;
23455  } else {
23456    newWidth = t_width;
23457    newHeight = t_width / ratio;
23458  }
23459  return [parseInt(newWidth + ''), parseInt(newHeight + '')];
23460};
23461function getVideoScreen(url, size) {
23462  if (size === void 0) {
23463    size = [200, 200];
23464  }
23465  var _a = parseSize(size, [200, 200]),
23466    width = _a[0],
23467    height = _a[1];
23468  return new Promise(function (resolve) {
23469    var video = document.createElement('video');
23470    video.crossOrigin = 'anonymous';
23471    video.src = url;
23472    video.width = width;
23473    video.height = height;
23474    video.preload = 'auto';
23475    video.currentTime = 2;
23476    video.onloadeddata = function () {
23477      var canvas = document.createElement('canvas');
23478      var t_w = size[0];
23479      var t_h = size[1];
23480      canvas.width = t_w;
23481      canvas.height = t_h;
23482      var x = 0;
23483      var y = 0;
23484      if (t_w === width) {
23485        y = (t_h - height) / 2;
23486      } else {
23487        x = (t_w - width) / 2;
23488      }
23489      var ctx = canvas.getContext('2d');
23490      ctx.drawImage(video, x, y, canvas.width, canvas.height);
23491      ctx.fillStyle = '#000';
23492      var fileType = 'image/jpeg';
23493      var base64Url = canvas.toDataURL(fileType);
23494      resolve(base64Url);
23495    };
23496  });
23497}
23498function is1688(_siteCheck) {
23499  var siteCheck = _siteCheck !== null && _siteCheck !== void 0 ? _siteCheck : window === null || window === void 0 ? void 0 : window.siteCheck;
23500  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'));
23501}
23502function getSecureSameSiteCookiesOptions() {
23503  var cookieOptions = {};
23504  if (false) // removed by dead control flow
23505{}
23506  cookieOptions.secure = true;
23507  cookieOptions.sameSite = 'None';
23508  return cookieOptions;
23509}
23510function isSku(value) {
23511  var regSKU = /^[A-Za-z]{4}[A-Za-z0-9]*[0-9]{2}[A-Za-z]{2}$/;
23512  var regOldSKU = /^CJ[0-9A-Za-z]{3,11}-[0-9A-Za-z+]+.*$/;
23513  var packageSKU = /^BZ[0-9A-Za-z]{3,11}-[0-9A-Za-z+]+.*$/;
23514  return regSKU.test(value) || regOldSKU.test(value) || packageSKU.test(value);
23515}
23516function setSearchSku(value) {
23517  if (value === void 0) {
23518    value = '';
23519  }
23520  if (value && isSku(value)) {
23521    Cookies.set('searchSku', value);
23522  } else {
23523    Cookies.remove('searchSku');
23524  }
23525}
23526function isShowNewFeatures() {
23527  var maxNewTime = new Date('2025/5/20').getTime();
23528  var cacheNew = _cookies_refact__WEBPACK_IMPORTED_MODULE_0__/* .Cookies */ .W.get('view-cogs');
23529  var isShowNew = new Date().getTime() < maxNewTime && !cacheNew;
23530  return isShowNew;
23531}
23532function getVolume(_long, width, height, number) {
23533  _long = parseFloat(_long) || 0;
23534  width = parseFloat(width) || 0;
23535  height = parseFloat(height) || 0;
23536  number = parseInt(number) || 0;
23537  return _long * width * height * number;
23538}
23539function getStandard(name, content) {
23540  var reg = RegExp(name + '=(\\d+)', 'gi');
23541  var result = reg.exec(content);
23542  return Array.isArray(result) ? parseInt(result[1]) / 10 : null;
23543}
23544function qsImageHostChange(url) {
23545  return url.replace(/https:\/\/oss-cf.cjdropshipping.com/g, 'https://oss-cf.yesourcing.com');
23546}
23547function httpsOptionsConfig() {
23548  if (typeof window !== 'undefined' && location.href.includes('offline.pre')) {
23549    return {};
23550  }
23551  return {
23552    secure: true,
23553    sameSite: 'None'
23554  };
23555}
23556function goSupplierShopPage(shopId, domainName, siteName, openInNewTab) {
23557  if (siteName === void 0) {
23558    siteName = 'cj';
23559  }
23560  if (openInNewTab === void 0) {
23561    openInNewTab = false;
23562  }
23563  var host = {"qs":"https://shop.qksource.com","cj":"https://shop.cjdropshipping.com"}[siteName];
23564  if (domainName) {
23565    var hasDev = /dev-/.test(host);
23566    host = host.replace(/(dev-)?shop/i, (hasDev ? 'dev-' : '') + domainName);
23567    if (openInNewTab) {
23568      window.open(host, '_blank');
23569    } else {
23570      location.href = host;
23571    }
23572    return;
23573  }
23574  if (openInNewTab) {
23575    window.open("/seller/".concat(shopId), '_blank');
23576  } else {
23577    location.href = "/seller/".concat(shopId);
23578  }
23579}
23580
23581/***/ }),
23582
23583/***/ 81943:
23584/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23585
23586"use strict";
23587/* harmony export */ __webpack_require__.d(__webpack_exports__, {
23588/* harmony export */   Ay: () => (__WEBPACK_DEFAULT_EXPORT__),
23589/* harmony export */   DD: () => (/* binding */ menuPath),
23590/* harmony export */   T_: () => (/* binding */ menus),
23591/* harmony export */   Yn: () => (/* binding */ getPath)
23592/* harmony export */ });
23593/* unused harmony export menuNames */
23594/* harmony import */ var _common_platform_show__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(37597);
23595var __assign = undefined && undefined.__assign || function () {
23596  __assign = Object.assign || function (t) {
23597    for (var s, i = 1, n = arguments.length; i < n; i++) {
23598      s = arguments[i];
23599      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
23600    }
23601    return t;
23602  };
23603  return __assign.apply(this, arguments);
23604};
23605var _a;
23606
23607var menus = [{
23608  name: 'Catalog',
23609  nameTrans: function nameTrans() {
23610    return "".concat(window.i18next.t("common-mycj-menu-catalog", 'Catalog'));
23611  },
23612  iconclass: 'Catalog',
23613  active: true,
23614  childs: [],
23615  route: '/list/wholesale-all-categories-l-all.html'
23616}, {
23617  name: 'Products',
23618  nameTrans: function nameTrans() {
23619    return "".concat(window.i18next.t("common-mycj-menu-products", 'Products'));
23620  },
23621  iconclass: 'Products',
23622  active: false,
23623  code: 'mycj_products',
23624  childs: [{
23625    name: 'My Products',
23626    nameTrans: function nameTrans() {
23627      return "".concat(window.i18next.t("common-mycj-menu-my-products", 'My Products'));
23628    },
23629    code: 'mycj_my_products',
23630    route: '/mine/myQuotation',
23631    active: false
23632  }, {
23633    name: 'My Upsell',
23634    nameTrans: function nameTrans() {
23635      return "".concat(window.i18next.t("common-mycj-menu-my-upsell", 'My Upsell'));
23636    },
23637    code: 'mycj_my_upsell',
23638    route: '/mine/myUpsell',
23639    active: false
23640  }, {
23641    name: 'Store Products',
23642    nameTrans: function nameTrans() {
23643      return "".concat(window.i18next.t("common-mycj-menu-store-products", 'Store Products'));
23644    },
23645    code: 'mycj_store_products',
23646    route: '/mine/products/connection',
23647    active: false,
23648    tip: function tip() {
23649      return window.i18next.t("common-mycj-menu-store-products-tip");
23650    }
23651  }]
23652}, {
23653  name: 'Orders',
23654  nameTrans: function nameTrans() {
23655    return "".concat(window.i18next.t("common-mycj-menu-orders", 'Orders'));
23656  },
23657  iconclass: 'Orders1',
23658  active: false,
23659  code: 'mycj_orders',
23660  childs: [{
23661    name: 'Store Orders',
23662    nameTrans: function nameTrans() {
23663      return "".concat(window.i18next.t("common-mycj-menu-store-orders", 'Store Orders'));
23664    },
23665    active: false,
23666    code: 'mycj_store_orders',
23667    route: '/mine/dropshipping/zestyOrder'
23668  }, {
23669    name: 'Disputes',
23670    nameTrans: function nameTrans() {
23671      return "".concat(window.i18next.t("common-mycj-menu-disputes", 'Disputes'));
23672    },
23673    code: 'mycj_disputes',
23674    route: '/mine/dispute/list',
23675    active: false
23676  }, {
23677    name: 'Undelivered Orders',
23678    nameTrans: function nameTrans() {
23679      return "".concat(window.i18next.t("common-mycj-menu-undelivered-orders", 'Undelivered Orders'));
23680    },
23681    code: 'mycj_undelivered_orders',
23682    route: '/mine/undeliveredOrder',
23683    active: false
23684  }]
23685}, {
23686  name: 'Tracking',
23687  nameTrans: function nameTrans() {
23688    return "".concat(window.i18next.t("common-mycj-menu-tracking", 'Tracking'));
23689  },
23690  iconclass: 'Tracking',
23691  active: false,
23692  code: 'mycj_tracking',
23693  childs: [{
23694    name: 'Tracking List',
23695    nameTrans: function nameTrans() {
23696      return "".concat(window.i18next.t("common-mycj-menu-tracking-list", 'Tracking List'));
23697    },
23698    active: false,
23699    code: 'mycj_tracking',
23700    route: '/mine/tracking'
23701  }, {
23702    name: 'Tracking Changes',
23703    nameTrans: function nameTrans() {
23704      return "".concat(window.i18next.t("common-mycj-menu-tracking-changes", 'Tracking Changes'));
23705    },
23706    active: false,
23707    code: 'mycj_tracking_changes',
23708    route: '/mine/tracking/changes'
23709  }]
23710}, {
23711  name: 'Authorization',
23712  nameTrans: function nameTrans() {
23713    return "".concat(window.i18next.t("common-mycj-menu-authorization"));
23714  },
23715  iconclass: 'Authorization',
23716  active: false,
23717  special: true,
23718  code: 'mycj_authorization',
23719  childs: [__assign(__assign({}, _common_platform_show__WEBPACK_IMPORTED_MODULE_0__/* .PLATFORM */ .i9.api), {
23720    nameTrans: function nameTrans() {
23721      return "".concat(window.i18next.t("common-mycj-menu-api"));
23722    },
23723    version: 2,
23724    type: 'authorize',
23725    active: false
23726  })]
23727}, {
23728  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'))),
23729  nameVal: "My CJ",
23730  nameTrans: function nameTrans() {
23731    var _a;
23732    return window.i18next.t("common-mycj-my-site", {
23733      siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('full-name')
23734    });
23735  },
23736  iconclass: 'a-MyCJZesty',
23737  active: false,
23738  childs: [{
23739    name: 'Dashboard',
23740    nameTrans: function nameTrans() {
23741      return "".concat(window.i18next.t("common-mycj-menu-dashboard", 'Dashboard'));
23742    },
23743    code: 'mycj_dashboard',
23744    route: '/mine/zestyDashboard',
23745    active: false
23746  }, {
23747    name: 'Profile',
23748    nameTrans: function nameTrans() {
23749      return "".concat(window.i18next.t("common-mycj-menu-profile"));
23750    },
23751    code: 'mycj_profile',
23752    route: '/my.html#/profile/info',
23753    active: false
23754  }, {
23755    name: 'Wallet',
23756    nameTrans: function nameTrans() {
23757      return "".concat(window.i18next.t("common-mycj-menu-wallet"));
23758    },
23759    code: 'mycj_wallet',
23760    route: '/mine/wallet',
23761    active: false
23762  }, {
23763    name: 'Ticket',
23764    nameTrans: function nameTrans() {
23765      return "".concat(window.i18next.t("common-mycj-menu-ticket"));
23766    },
23767    code: 'mycj_ticket',
23768    route: '/mine/ticket',
23769    active: false
23770  }, {
23771    name: 'Sub-account',
23772    nameTrans: function nameTrans() {
23773      return "".concat(window.i18next.t("common-mycj-menu-sub-account"));
23774    },
23775    code: 'mycj_sub_account',
23776    route: '/my.html#/accountManage',
23777    active: false
23778  }, {
23779    name: 'Export List',
23780    nameTrans: function nameTrans() {
23781      return "".concat(window.i18next.t("common-mycj-menu-export-list"));
23782    },
23783    iconclass: 'liwuicon_',
23784    code: 'mycj_export_list',
23785    route: '/mine/exportList',
23786    active: false
23787  }, {
23788    name: 'Warehouse Operation Video',
23789    nameTrans: function nameTrans() {
23790      return "".concat(window.i18next.t("common-mycj-menu-order-list-video"));
23791    },
23792    code: 'mycj_order-video',
23793    route: '/mine/orderVideo',
23794    active: false
23795  }]
23796}];
23797var menuPath = {};
23798var menuNames = {};
23799function loops(list, parent) {
23800  return (list || []).map(function (_a) {
23801    var route = _a.route,
23802      childs = _a.childs,
23803      name = _a.name,
23804      version = _a.version;
23805    var _route = route;
23806    var node = menuNames[name] = menuPath[_route] = {
23807      parent: parent,
23808      name: name,
23809      version: version,
23810      route: _route
23811    };
23812    node['childs'] = loops(childs, node);
23813    return node;
23814  });
23815}
23816function getPath(name) {
23817  var obj = menuNames[name];
23818  var arr = [];
23819  while (obj && obj.name) {
23820    if (obj.childs && obj.childs[0]) {
23821      arr.push(obj.name);
23822    } else {
23823      arr.push(obj.name);
23824    }
23825    if (!obj.parent) break;
23826    obj = obj.parent;
23827  }
23828  return arr;
23829}
23830loops(menus, null);
23831var createAuthTree = function createAuthTree() {
23832  var authMapByRoute = [];
23833  var _fun = function fun(list) {
23834    return list.map(function (l) {
23835      if (l.route && l.code) authMapByRoute.push({
23836        name: l.name,
23837        code: l.code,
23838        route: l.route
23839      });
23840      return {
23841        name: l.name,
23842        code: l.code,
23843        route: l.route,
23844        children: l.childs && _fun(l.childs)
23845      };
23846    });
23847  };
23848  return [_fun(menus), authMapByRoute];
23849};
23850/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAuthTree);
23851
23852/***/ }),
23853
23854/***/ 82058:
23855/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23856
23857"use strict";
23858/* harmony export */ __webpack_require__.d(__webpack_exports__, {
23859/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
23860/* harmony export */ });
23861/* harmony import */ var _components_CjHeader_contexts_PropsContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44148);
23862
23863/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function () {
23864  var siteCheck = (0,_components_CjHeader_contexts_PropsContext__WEBPACK_IMPORTED_MODULE_0__/* .useGlobalProps */ .v)().siteCheck;
23865  return siteCheck;
23866});
23867
23868/***/ }),
23869
23870/***/ 84238:
23871/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23872
23873"use strict";
23874/* harmony export */ __webpack_require__.d(__webpack_exports__, {
23875/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
23876/* harmony export */ });
23877/* unused harmony export useLayoutUpdateEffect */
23878/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15442);
23879/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
23880/* harmony import */ var _Dom_canUseDom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(47169);
23881
23882
23883
23884/**
23885 * Wrap `React.useLayoutEffect` which will not throw warning message in test env
23886 */
23887var useInternalLayoutEffect =  true && (0,_Dom_canUseDom__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)() ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;
23888var useLayoutEffect = function useLayoutEffect(callback, deps) {
23889  var firstMountRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(true);
23890  useInternalLayoutEffect(function () {
23891    return callback(firstMountRef.current);
23892  }, deps);
23893
23894  // We tell react that first mount has passed
23895  useInternalLayoutEffect(function () {
23896    firstMountRef.current = false;
23897    return function () {
23898      firstMountRef.current = true;
23899    };
23900  }, []);
23901};
23902var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {
23903  useLayoutEffect(function (firstMount) {
23904    if (!firstMount) {
23905      return callback();
23906    }
23907  }, deps);
23908};
23909/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useLayoutEffect);
23910
23911/***/ }),
23912
23913/***/ 84266:
23914/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23915
23916"use strict";
23917/* harmony export */ __webpack_require__.d(__webpack_exports__, {
23918/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
23919/* harmony export */ });
23920/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
23921  shopify: {
23922    Title: 'Shopify',
23923    value: 'shopify',
23924    otherValue: [],
23925    isAuthor: true,
23926    isShow: true
23927  },
23928  wed2c: {
23929    Title: 'WED2C',
23930    value: 'wed2c',
23931    otherValue: [],
23932    isAuthor: true,
23933    isShow: true
23934  },
23935  temu: {
23936    Title: 'Temu',
23937    value: 'temu',
23938    otherValue: [],
23939    isAuthor: true,
23940    isShow: true
23941  },
23942  temu_us_local: {
23943    Title: 'Temu US Local',
23944    value: 'temu_us_local',
23945    otherValue: [],
23946    isAuthor: true,
23947    isShow: true
23948  },
23949  temu_certified_overseas: {
23950    Title: 'Temu Cooperative Warehouse',
23951    value: 'temu_certified_overseas',
23952    otherValue: [],
23953    isAuthor: true,
23954    isShow: true
23955  },
23956  shein: {
23957    Title: 'Shein',
23958    value: 'shein',
23959    otherValue: [],
23960    isAuthor: true,
23961    isShow: true
23962  },
23963  tiktok: {
23964    Title: 'TikTok',
23965    value: 'tikTok',
23966    otherValue: [],
23967    isAuthor: true,
23968    isShow: true
23969  },
23970  tiktok_us: {
23971    Title: 'TikTok_US',
23972    value: 'TikTok_US',
23973    otherValue: [],
23974    isAuthor: true,
23975    isShow: true
23976  },
23977  tiktok_us_cross: {
23978    Title: 'TikTok_US_Cross',
23979    value: 'TikTok_US_Cross',
23980    otherValue: [],
23981    isAuthor: true,
23982    isShow: true
23983  },
23984  woocommerce: {
23985    Title: 'Woocommerce',
23986    value: 'woocommerce',
23987    otherValue: [],
23988    isAuthor: true,
23989    isShow: true
23990  },
23991  ebay: {
23992    Title: 'Ebay',
23993    value: 'ebay',
23994    otherValue: [],
23995    isAuthor: true,
23996    isShow: true
23997  },
23998  api: {
23999    Title: 'API',
24000    value: 'api',
24001    otherValue: ['CJ API', 'cj api'],
24002    isAuthor: true,
24003    isShow: true
24004  },
24005  etsy: {
24006    Title: 'Etsy',
24007    value: 'etsy',
24008    otherValue: [],
24009    isAuthor: true,
24010    isShow: true
24011  },
24012  aliexpress: {
24013    Title: 'AliExpress',
24014    value: 'aliexpress',
24015    otherValue: [],
24016    isAuthor: true,
24017    isShow: true
24018  },
24019  wix: {
24020    Title: 'Wix',
24021    value: 'wix',
24022    otherValue: [],
24023    isAuthor: true,
24024    isShow: true
24025  },
24026  lazada: {
24027    Title: 'Lazada',
24028    value: 'lazada',
24029    otherValue: [],
24030    isAuthor: false,
24031    isShow: false
24032  },
24033  shopee: {
24034    Title: 'Shopee',
24035    value: 'shopee',
24036    otherValue: [],
24037    isAuthor: false,
24038    isShow: false
24039  },
24040  squarespace: {
24041    Title: 'Squarespace',
24042    value: 'squarespace',
24043    otherValue: [],
24044    isAuthor: true,
24045    isShow: true
24046  },
24047  shoplazza: {
24048    Title: 'Shoplazza',
24049    value: 'shoplazza',
24050    otherValue: [],
24051    isAuthor: true,
24052    isShow: true
24053  },
24054  magento: {
24055    Title: 'Magento',
24056    value: 'magento',
24057    otherValue: [],
24058    isAuthor: true,
24059    isShow: true
24060  },
24061  bigcommerce: {
24062    Title: 'Bigcommerce',
24063    value: 'bigcommerce',
24064    otherValue: [],
24065    isAuthor: true,
24066    isShow: true
24067  },
24068  prestashop: {
24069    Title: 'PrestaShop',
24070    value: 'prestaShop',
24071    otherValue: [],
24072    isAuthor: true,
24073    isShow: true
24074  },
24075  allvalue: {
24076    Title: 'AllValue',
24077    value: 'allValue',
24078    otherValue: [],
24079    isAuthor: true,
24080    isShow: true
24081  },
24082  nuvemshop: {
24083    Title: 'Nuvemshop',
24084    value: 'nuvemshop',
24085    otherValue: [],
24086    isAuthor: false,
24087    isShow: false
24088  },
24089  shipstation: {
24090    Title: 'Shipstation',
24091    value: 'shipstation',
24092    otherValue: [],
24093    isAuthor: true,
24094    isShow: true
24095  },
24096  mercado: {
24097    Title: 'Mercado',
24098    value: 'mercado',
24099    otherValue: [],
24100    isAuthor: true,
24101    isShow: true
24102  },
24103  others: {
24104    Title: 'Others',
24105    value: 'others',
24106    otherValue: [],
24107    isAuthor: false,
24108    isShow: false
24109  },
24110  mabang: {
24111    Title: 'MabangERP',
24112    value: 'mabang',
24113    otherValue: [],
24114    isAuthor: true,
24115    isShow: true
24116  },
24117  miaoshou: {
24118    Title: '妙手ERP',
24119    value: 'miaoshou',
24120    otherValue: [],
24121    isAuthor: true,
24122    isShow: true
24123  }
24124});
24125
24126/***/ }),
24127
24128/***/ 84445:
24129/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24130
24131"use strict";
24132/* unused harmony exports preMessage, warning, note, resetWarned, call, warningOnce, noteOnce */
24133/* eslint-disable no-console */
24134var warned = {};
24135var preWarningFns = [];
24136
24137/**
24138 * Pre warning enable you to parse content before console.error.
24139 * Modify to null will prevent warning.
24140 */
24141var preMessage = function preMessage(fn) {
24142  preWarningFns.push(fn);
24143};
24144
24145/**
24146 * Warning if condition not match.
24147 * @param valid Condition
24148 * @param message Warning message
24149 * @example
24150 * ```js
24151 * warning(false, 'some error'); // print some error
24152 * warning(true, 'some error'); // print nothing
24153 * warning(1 === 2, 'some error'); // print some error
24154 * ```
24155 */
24156function warning(valid, message) {
24157  if (false) // removed by dead control flow
24158{ var finalMessage; }
24159}
24160
24161/** @see Similar to {@link warning} */
24162function note(valid, message) {
24163  if (false) // removed by dead control flow
24164{ var finalMessage; }
24165}
24166function resetWarned() {
24167  warned = {};
24168}
24169function call(method, valid, message) {
24170  if (!valid && !warned[message]) {
24171    method(false, message);
24172    warned[message] = true;
24173  }
24174}
24175
24176/** @see Same as {@link warning}, but only warn once for the same message */
24177function warningOnce(valid, message) {
24178  call(warning, valid, message);
24179}
24180
24181/** @see Same as {@link warning}, but only warn once for the same message */
24182function noteOnce(valid, message) {
24183  call(note, valid, message);
24184}
24185warningOnce.preMessage = preMessage;
24186warningOnce.resetWarned = resetWarned;
24187warningOnce.noteOnce = noteOnce;
24188/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ((/* unused pure expression or super */ null && (warningOnce)));
24189
24190/***/ }),
24191
24192/***/ 84873:
24193/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24194
24195"use strict";
24196/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24197/* harmony export */   W: () => (/* reexport safe */ js_cookie__WEBPACK_IMPORTED_MODULE_0__.A)
24198/* harmony export */ });
24199/* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3478);
24200/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(81002);
24201var __assign = undefined && undefined.__assign || function () {
24202  __assign = Object.assign || function (t) {
24203    for (var s, i = 1, n = arguments.length; i < n; i++) {
24204      s = arguments[i];
24205      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
24206    }
24207    return t;
24208  };
24209  return __assign.apply(this, arguments);
24210};
24211
24212
24213js_cookie__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.set = function (set) {
24214  return function (key, value, options) {
24215    if (options === void 0) {
24216      options = {};
24217    }
24218    var _options = __assign({
24219      path: '/',
24220      domain: (0,___WEBPACK_IMPORTED_MODULE_1__/* .getTopDomain */ .SR)(),
24221      expires: 3
24222    }, options);
24223    return set.apply(this, [key, value, _options]);
24224  };
24225}(js_cookie__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.set);
24226js_cookie__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.remove = function (remove) {
24227  return function (key, options) {
24228    if (options === void 0) {
24229      options = {};
24230    }
24231    var _options = __assign({
24232      path: '/',
24233      domain: (0,___WEBPACK_IMPORTED_MODULE_1__/* .getTopDomain */ .SR)(),
24234      expires: -1
24235    }, options);
24236    return remove.apply(this, [key, _options]);
24237  };
24238}(js_cookie__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.remove);
24239
24240
24241/***/ }),
24242
24243/***/ 84963:
24244/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24245
24246"use strict";
24247/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24248/* harmony export */   F: () => (/* binding */ cjHref)
24249/* harmony export */ });
24250/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(81002);
24251
24252var cjHref = function cjHref(href, host) {
24253  var _a;
24254  if (href.indexOf('http') > -1 || href == '#') return href;
24255  var domain = host ? (0,_common__WEBPACK_IMPORTED_MODULE_0__/* .getTopDomain */ .SR)(host) : (0,_common__WEBPACK_IMPORTED_MODULE_0__/* .getTopDomain */ .SR)();
24256  var cjTestDomain = 'http://www.cjdropshipping.offline.pre.com';
24257  var todo = {
24258    localhost: cjTestDomain,
24259    '.pre.com': cjTestDomain,
24260    '.pre.cn': cjTestDomain,
24261    '.cjdropshipping.com': 'https://www.cjdropshipping.com',
24262    '.cjdropshipping.cn': 'https://app.cjdropshipping.cn',
24263    '.cj.com': cjTestDomain
24264  };
24265  if (domain.indexOf('localhost') > -1) domain = 'localhost';
24266  var centerText = '/';
24267  if (href.startsWith('/')) centerText = '';
24268  return ((_a = todo[domain]) !== null && _a !== void 0 ? _a : '') + centerText + href;
24269};
24270
24271/***/ }),
24272
24273/***/ 85086:
24274/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24275
24276"use strict";
24277/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24278/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
24279/* harmony export */ });
24280/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15442);
24281/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
24282
24283var TriggerContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createContext(null);
24284/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TriggerContext);
24285
24286/***/ }),
24287
24288/***/ 86284:
24289/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24290
24291"use strict";
24292/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24293/* harmony export */   A: () => (/* binding */ _arrayLikeToArray)
24294/* harmony export */ });
24295function _arrayLikeToArray(r, a) {
24296  (null == a || a > r.length) && (a = r.length);
24297  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
24298  return n;
24299}
24300
24301
24302/***/ }),
24303
24304/***/ 86403:
24305/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
24306
24307var trimmedEndIndex = __webpack_require__(62945);
24308
24309/** Used to match leading whitespace. */
24310var reTrimStart = /^\s+/;
24311
24312/**
24313 * The base implementation of `_.trim`.
24314 *
24315 * @private
24316 * @param {string} string The string to trim.
24317 * @returns {string} Returns the trimmed string.
24318 */
24319function baseTrim(string) {
24320  return string
24321    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')
24322    : string;
24323}
24324
24325module.exports = baseTrim;
24326
24327
24328/***/ }),
24329
24330/***/ 86488:
24331/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24332
24333"use strict";
24334/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24335/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
24336/* harmony export */ });
24337/* harmony import */ var _Popup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23294);
24338/* harmony import */ var _Tooltip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(93607);
24339
24340
24341
24342/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_Tooltip__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A);
24343
24344/***/ }),
24345
24346/***/ 86597:
24347/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24348
24349"use strict";
24350/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24351/* harmony export */   A: () => (/* binding */ useSyncState)
24352/* harmony export */ });
24353/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79082);
24354/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
24355/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
24356/* harmony import */ var _useEvent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9449);
24357
24358
24359
24360/**
24361 * Same as React.useState but will always get latest state.
24362 * This is useful when React merge multiple state updates into one.
24363 * e.g. onTransitionEnd trigger multiple event at once will be merged state update in React.
24364 */
24365function useSyncState(defaultValue) {
24366  var _React$useReducer = react__WEBPACK_IMPORTED_MODULE_1__.useReducer(function (x) {
24367      return x + 1;
24368    }, 0),
24369    _React$useReducer2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(_React$useReducer, 2),
24370    forceUpdate = _React$useReducer2[1];
24371  var currentValueRef = react__WEBPACK_IMPORTED_MODULE_1__.useRef(defaultValue);
24372  var getValue = (0,_useEvent__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(function () {
24373    return currentValueRef.current;
24374  });
24375  var setValue = (0,_useEvent__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(function (updater) {
24376    currentValueRef.current = typeof updater === 'function' ? updater(currentValueRef.current) : updater;
24377    forceUpdate();
24378  });
24379  return [getValue, setValue];
24380}
24381
24382/***/ }),
24383
24384/***/ 87379:
24385/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
24386
24387var Symbol = __webpack_require__(65650),
24388    getRawTag = __webpack_require__(8870),
24389    objectToString = __webpack_require__(29005);
24390
24391/** `Object#toString` result references. */
24392var nullTag = '[object Null]',
24393    undefinedTag = '[object Undefined]';
24394
24395/** Built-in value references. */
24396var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
24397
24398/**
24399 * The base implementation of `getTag` without fallbacks for buggy environments.
24400 *
24401 * @private
24402 * @param {*} value The value to query.
24403 * @returns {string} Returns the `toStringTag`.
24404 */
24405function baseGetTag(value) {
24406  if (value == null) {
24407    return value === undefined ? undefinedTag : nullTag;
24408  }
24409  return (symToStringTag && symToStringTag in Object(value))
24410    ? getRawTag(value)
24411    : objectToString(value);
24412}
24413
24414module.exports = baseGetTag;
24415
24416
24417/***/ }),
24418
24419/***/ 89575:
24420/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24421
24422"use strict";
24423/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24424/* harmony export */   A: () => (/* binding */ _extends)
24425/* harmony export */ });
24426function _extends() {
24427  return _extends = Object.assign ? Object.assign.bind() : function (n) {
24428    for (var e = 1; e < arguments.length; e++) {
24429      var t = arguments[e];
24430      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
24431    }
24432    return n;
24433  }, _extends.apply(null, arguments);
24434}
24435
24436
24437/***/ }),
24438
24439/***/ 89614:
24440/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24441
24442"use strict";
24443/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24444/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
24445/* harmony export */ });
24446/* unused harmony export genCSSMotion */
24447/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24586);
24448/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(69740);
24449/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(79082);
24450/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17545);
24451/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(53373);
24452/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_4__);
24453/* harmony import */ var rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(28299);
24454/* harmony import */ var rc_util_es_ref__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(19284);
24455/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(15442);
24456/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);
24457/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(74568);
24458/* harmony import */ var _DomWrapper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(40484);
24459/* harmony import */ var _hooks_useStatus__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(76293);
24460/* harmony import */ var _hooks_useStepQueue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(78422);
24461/* harmony import */ var _interface__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(45480);
24462/* harmony import */ var _util_motion__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(73688);
24463
24464
24465
24466
24467/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */
24468
24469
24470
24471
24472
24473
24474
24475
24476
24477
24478
24479/**
24480 * `transitionSupport` is used for none transition test case.
24481 * Default we use browser transition event support check.
24482 */
24483function genCSSMotion(config) {
24484  var transitionSupport = config;
24485  if ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A)(config) === 'object') {
24486    transitionSupport = config.transitionSupport;
24487  }
24488  function isSupportTransition(props, contextMotion) {
24489    return !!(props.motionName && transitionSupport && contextMotion !== false);
24490  }
24491  var CSSMotion = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.forwardRef(function (props, ref) {
24492    var _props$visible = props.visible,
24493      visible = _props$visible === void 0 ? true : _props$visible,
24494      _props$removeOnLeave = props.removeOnLeave,
24495      removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,
24496      forceRender = props.forceRender,
24497      children = props.children,
24498      motionName = props.motionName,
24499      leavedClassName = props.leavedClassName,
24500      eventProps = props.eventProps;
24501    var _React$useContext = react__WEBPACK_IMPORTED_MODULE_7__.useContext(_context__WEBPACK_IMPORTED_MODULE_8__/* .Context */ .o),
24502      contextMotion = _React$useContext.motion;
24503    var supportMotion = isSupportTransition(props, contextMotion);
24504
24505    // Ref to the react node, it may be a HTMLElement
24506    var nodeRef = (0,react__WEBPACK_IMPORTED_MODULE_7__.useRef)();
24507    // Ref to the dom wrapper in case ref can not pass to HTMLElement
24508    var wrapperNodeRef = (0,react__WEBPACK_IMPORTED_MODULE_7__.useRef)();
24509    function getDomElement() {
24510      try {
24511        // Here we're avoiding call for findDOMNode since it's deprecated
24512        // in strict mode. We're calling it only when node ref is not
24513        // an instance of DOM HTMLElement. Otherwise use
24514        // findDOMNode as a final resort
24515        return nodeRef.current instanceof HTMLElement ? nodeRef.current : (0,rc_util_es_Dom_findDOMNode__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Ay)(wrapperNodeRef.current);
24516      } catch (e) {
24517        // Only happen when `motionDeadline` trigger but element removed.
24518        return null;
24519      }
24520    }
24521    var _useStatus = (0,_hooks_useStatus__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A)(supportMotion, visible, getDomElement, props),
24522      _useStatus2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(_useStatus, 4),
24523      status = _useStatus2[0],
24524      statusStep = _useStatus2[1],
24525      statusStyle = _useStatus2[2],
24526      mergedVisible = _useStatus2[3];
24527
24528    // Record whether content has rendered
24529    // Will return null for un-rendered even when `removeOnLeave={false}`
24530    var renderedRef = react__WEBPACK_IMPORTED_MODULE_7__.useRef(mergedVisible);
24531    if (mergedVisible) {
24532      renderedRef.current = true;
24533    }
24534
24535    // ====================== Refs ======================
24536    var setNodeRef = react__WEBPACK_IMPORTED_MODULE_7__.useCallback(function (node) {
24537      nodeRef.current = node;
24538      (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_6__/* .fillRef */ .Xf)(ref, node);
24539    }, [ref]);
24540
24541    // ===================== Render =====================
24542    var motionChildren;
24543    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), {}, {
24544      visible: visible
24545    });
24546    if (!children) {
24547      // No children
24548      motionChildren = null;
24549    } else if (status === _interface__WEBPACK_IMPORTED_MODULE_12__/* .STATUS_NONE */ .SF) {
24550      // Stable children
24551      if (mergedVisible) {
24552        motionChildren = children((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)({}, mergedProps), setNodeRef);
24553      } else if (!removeOnLeave && renderedRef.current && leavedClassName) {
24554        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), {}, {
24555          className: leavedClassName
24556        }), setNodeRef);
24557      } else if (forceRender || !removeOnLeave && !leavedClassName) {
24558        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), {}, {
24559          style: {
24560            display: 'none'
24561          }
24562        }), setNodeRef);
24563      } else {
24564        motionChildren = null;
24565      }
24566    } else {
24567      // In motion
24568      var statusSuffix;
24569      if (statusStep === _interface__WEBPACK_IMPORTED_MODULE_12__/* .STEP_PREPARE */ .px) {
24570        statusSuffix = 'prepare';
24571      } else if ((0,_hooks_useStepQueue__WEBPACK_IMPORTED_MODULE_11__/* .isActive */ .$m)(statusStep)) {
24572        statusSuffix = 'active';
24573      } else if (statusStep === _interface__WEBPACK_IMPORTED_MODULE_12__/* .STEP_START */ .Mv) {
24574        statusSuffix = 'start';
24575      }
24576      var motionCls = (0,_util_motion__WEBPACK_IMPORTED_MODULE_13__/* .getTransitionName */ .by)(motionName, "".concat(status, "-").concat(statusSuffix));
24577      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), {}, {
24578        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')),
24579        style: statusStyle
24580      }), setNodeRef);
24581    }
24582
24583    // Auto inject ref if child node not have `ref` props
24584    if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.isValidElement(motionChildren) && (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_6__/* .supportRef */ .f3)(motionChildren)) {
24585      var originNodeRef = (0,rc_util_es_ref__WEBPACK_IMPORTED_MODULE_6__/* .getNodeRef */ .A9)(motionChildren);
24586      if (!originNodeRef) {
24587        motionChildren = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.cloneElement(motionChildren, {
24588          ref: setNodeRef
24589        });
24590      }
24591    }
24592    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(_DomWrapper__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A, {
24593      ref: wrapperNodeRef
24594    }, motionChildren);
24595  });
24596  CSSMotion.displayName = 'CSSMotion';
24597  return CSSMotion;
24598}
24599/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (genCSSMotion(_util_motion__WEBPACK_IMPORTED_MODULE_13__/* .supportTransition */ .J1));
24600
24601/***/ }),
24602
24603/***/ 90857:
24604/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24605
24606"use strict";
24607/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24608/* harmony export */   A: () => (/* binding */ _createSuper)
24609/* harmony export */ });
24610/* harmony import */ var _getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72715);
24611/* harmony import */ var _isNativeReflectConstruct_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49105);
24612/* harmony import */ var _possibleConstructorReturn_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(95309);
24613
24614
24615
24616function _createSuper(t) {
24617  var r = (0,_isNativeReflectConstruct_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)();
24618  return function () {
24619    var e,
24620      o = (0,_getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(t);
24621    if (r) {
24622      var s = (0,_getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(this).constructor;
24623      e = Reflect.construct(o, arguments, s);
24624    } else e = o.apply(this, arguments);
24625    return (0,_possibleConstructorReturn_js__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(this, e);
24626  };
24627}
24628
24629
24630/***/ }),
24631
24632/***/ 92252:
24633/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24634
24635"use strict";
24636/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24637/* harmony export */   A: () => (/* binding */ useMyCjReactRoute)
24638/* harmony export */ });
24639/* harmony import */ var _hook_use_is_mycj__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71850);
24640/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
24641/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
24642
24643
24644function useMyCjReactRoute() {
24645  var isNew = (0,_hook_use_is_mycj__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)().isNew;
24646  var _a = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true),
24647    isNewCogs = _a[0],
24648    setIsNewCogs = _a[1];
24649  var changeRoute = function changeRoute(routeName) {
24650    var route = routeName.replace(/\/mine/, '');
24651    window.dispatchEvent(new CustomEvent('onUmiChangeRoute', {
24652      detail: route
24653    }));
24654  };
24655  var viewCogs = function viewCogs(childMenu) {
24656    window.addEventListener('viewcogs', function (e) {
24657      setIsNewCogs(e.detail);
24658      console.log(childMenu.isNew, 'childMenu.isNew');
24659    });
24660  };
24661  var isMyCjRoute = function isMyCjRoute(route) {
24662    return (route === null || route === void 0 ? void 0 : route.indexOf('mine')) > -1;
24663  };
24664  var canUseNewMyCjRouteJump = function canUseNewMyCjRouteJump(route) {
24665    return isMyCjRoute(route) && isNew;
24666  };
24667  var getAProps = function getAProps(route) {
24668    if (isMyCjRoute(route) && isNew) {
24669      return {
24670        onClick: function onClick(e) {
24671          e.preventDefault();
24672          changeRoute(route);
24673        }
24674      };
24675    }
24676    return {};
24677  };
24678  return {
24679    changeRoute: changeRoute,
24680    getAProps: getAProps,
24681    canUseNewMyCjRouteJump: canUseNewMyCjRouteJump,
24682    viewCogs: viewCogs,
24683    isNewCogs: isNewCogs
24684  };
24685}
24686
24687/***/ }),
24688
24689/***/ 92513:
24690/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24691
24692"use strict";
24693/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24694/* harmony export */   p: () => (/* binding */ getAxios),
24695/* harmony export */   q: () => (/* binding */ useAxios)
24696/* harmony export */ });
24697/* harmony import */ var _common_request__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77427);
24698/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15442);
24699/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
24700
24701
24702var getAxios = function getAxios(token, getDomainByUrl) {
24703  if (token === void 0) {
24704    token = '';
24705  }
24706  return (0,_common_request__WEBPACK_IMPORTED_MODULE_0__/* .createInstance */ .Q)(token, getDomainByUrl);
24707};
24708var useAxios = function useAxios(getDomainByUrl) {
24709  return (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(function () {
24710    return (0,_common_request__WEBPACK_IMPORTED_MODULE_0__/* .createInstance */ .Q)('', getDomainByUrl);
24711  }, []);
24712};
24713
24714/***/ }),
24715
24716/***/ 92575:
24717/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24718
24719"use strict";
24720/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24721/* harmony export */   A: () => (/* binding */ useIsAiChat)
24722/* harmony export */ });
24723/* harmony import */ var _common_login_info_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12097);
24724
24725function hashCode(str) {
24726  var hash = 0;
24727  for (var i = 0; i < str.length; i++) {
24728    var _char = str.charCodeAt(i);
24729    hash = (hash << 5) - hash + _char | 0;
24730  }
24731  return Math.abs(hash);
24732}
24733function useIsAiChat(server_siteCheck) {
24734  var _a, _b, _c, _d, _e, _f, _g;
24735  var siteCheck = typeof window !== 'undefined' ? window === null || window === void 0 ? void 0 : window.siteCheck : server_siteCheck;
24736  var userId = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.info('userId') || '';
24737  if (!siteCheck) return false;
24738  if (!((_a = siteCheck.isSite) === null || _a === void 0 ? void 0 : _a.call(siteCheck, 'CJ'))) return false;
24739  if (((_b = siteCheck.isShow) === null || _b === void 0 ? void 0 : _b.call(siteCheck, 'use-old-chat')) === true) return false;
24740  if (((_c = siteCheck.isShow) === null || _c === void 0 ? void 0 : _c.call(siteCheck, 'use-ai-chat-full-user')) === true) return true;
24741  var aiChatUsers = ((_d = siteCheck.data) === null || _d === void 0 ? void 0 : _d.call(siteCheck, 'ai-chat-users')) || [];
24742  if (aiChatUsers.length > 0) {
24743    var customerNo = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.info('num') || '';
24744    if (customerNo && aiChatUsers.includes(customerNo)) {
24745      return true;
24746    }
24747  }
24748  var useHash = ((_e = siteCheck.isShow) === null || _e === void 0 ? void 0 : _e.call(siteCheck, 'ai-chat-use-hash')) === true;
24749  if (!userId || !useHash) return false;
24750  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;
24751  var level = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.info('moneyLevelType');
24752  if (!level) return false;
24753  if (level && Number(level) < 2) {
24754    return hashCode(String(userId)) % 100 < threshold;
24755  }
24756  return false;
24757}
24758
24759/***/ }),
24760
24761/***/ 93584:
24762/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
24763
24764"use strict";
24765/* harmony export */ __webpack_require__.d(__webpack_exports__, {
24766/* harmony export */   D4: () => (/* binding */ decode),
24767/* harmony export */   lF: () => (/* binding */ encode),
24768/* harmony export */   o4: () => (/* binding */ gBase64)
24769/* harmony export */ });
24770/* unused harmony exports version, VERSION, atob, atobPolyfill, btoa, btoaPolyfill, fromBase64, toBase64, utob, encodeURI, encodeURL, btou, isValid, fromUint8Array, toUint8Array, extendString, extendUint8Array, extendBuiltins */
24771/**
24772 *  base64.ts
24773 *
24774 *  Licensed under the BSD 3-Clause License.
24775 *    http://opensource.org/licenses/BSD-3-Clause
24776 *
24777 *  References:
24778 *    http://en.wikipedia.org/wiki/Base64
24779 *
24780 * @author Dan Kogai (https://github.com/dankogai)
24781 */
24782const version = '3.7.7';
24783/**
24784 * @deprecated use lowercase `version`.
24785 */
24786const VERSION = version;
24787const _hasBuffer = typeof Buffer === 'function';
24788const _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;
24789const _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;
24790const b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
24791const b64chs = Array.prototype.slice.call(b64ch);
24792const b64tab = ((a) => {
24793    let tab = {};
24794    a.forEach((c, i) => tab[c] = i);
24795    return tab;
24796})(b64chs);
24797const b64re = /^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/;
24798const _fromCC = String.fromCharCode.bind(String);
24799const _U8Afrom = typeof Uint8Array.from === 'function'
24800    ? Uint8Array.from.bind(Uint8Array)
24801    : (it) => new Uint8Array(Array.prototype.slice.call(it, 0));
24802const _mkUriSafe = (src) => src
24803    .replace(/=/g, '').replace(/[+\/]/g, (m0) => m0 == '+' ? '-' : '_');
24804const _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\+\/]/g, '');
24805/**
24806 * polyfill version of `btoa`
24807 */
24808const btoaPolyfill = (bin) => {
24809    // console.log('polyfilled');
24810    let u32, c0, c1, c2, asc = '';
24811    const pad = bin.length % 3;
24812    for (let i = 0; i < bin.length;) {
24813        if ((c0 = bin.charCodeAt(i++)) > 255 ||
24814            (c1 = bin.charCodeAt(i++)) > 255 ||
24815            (c2 = bin.charCodeAt(i++)) > 255)
24816            throw new TypeError('invalid character found');
24817        u32 = (c0 << 16) | (c1 << 8) | c2;
24818        asc += b64chs[u32 >> 18 & 63]
24819            + b64chs[u32 >> 12 & 63]
24820            + b64chs[u32 >> 6 & 63]
24821            + b64chs[u32 & 63];
24822    }
24823    return pad ? asc.slice(0, pad - 3) + "===".substring(pad) : asc;
24824};
24825/**
24826 * does what `window.btoa` of web browsers do.
24827 * @param {String} bin binary string
24828 * @returns {string} Base64-encoded string
24829 */
24830const _btoa = typeof btoa === 'function' ? (bin) => btoa(bin)
24831    : _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64')
24832        : btoaPolyfill;
24833const _fromUint8Array = _hasBuffer
24834    ? (u8a) => Buffer.from(u8a).toString('base64')
24835    : (u8a) => {
24836        // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326
24837        const maxargs = 0x1000;
24838        let strs = [];
24839        for (let i = 0, l = u8a.length; i < l; i += maxargs) {
24840            strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));
24841        }
24842        return _btoa(strs.join(''));
24843    };
24844/**
24845 * converts a Uint8Array to a Base64 string.
24846 * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5
24847 * @returns {string} Base64 string
24848 */
24849const fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);
24850// This trick is found broken https://github.com/dankogai/js-base64/issues/130
24851// const utob = (src: string) => unescape(encodeURIComponent(src));
24852// reverting good old fationed regexp
24853const cb_utob = (c) => {
24854    if (c.length < 2) {
24855        var cc = c.charCodeAt(0);
24856        return cc < 0x80 ? c
24857            : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))
24858                + _fromCC(0x80 | (cc & 0x3f)))
24859                : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))
24860                    + _fromCC(0x80 | ((cc >>> 6) & 0x3f))
24861                    + _fromCC(0x80 | (cc & 0x3f)));
24862    }
24863    else {
24864        var cc = 0x10000
24865            + (c.charCodeAt(0) - 0xD800) * 0x400
24866            + (c.charCodeAt(1) - 0xDC00);
24867        return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))
24868            + _fromCC(0x80 | ((cc >>> 12) & 0x3f))
24869            + _fromCC(0x80 | ((cc >>> 6) & 0x3f))
24870            + _fromCC(0x80 | (cc & 0x3f)));
24871    }
24872};
24873const re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
24874/**
24875 * @deprecated should have been internal use only.
24876 * @param {string} src UTF-8 string
24877 * @returns {string} UTF-16 string
24878 */
24879const utob = (u) => u.replace(re_utob, cb_utob);
24880//
24881const _encode = _hasBuffer
24882    ? (s) => Buffer.from(s, 'utf8').toString('base64')
24883    : _TE
24884        ? (s) => _fromUint8Array(_TE.encode(s))
24885        : (s) => _btoa(utob(s));
24886/**
24887 * converts a UTF-8-encoded string to a Base64 string.
24888 * @param {boolean} [urlsafe] if `true` make the result URL-safe
24889 * @returns {string} Base64 string
24890 */
24891const encode = (src, urlsafe = false) => urlsafe
24892    ? _mkUriSafe(_encode(src))
24893    : _encode(src);
24894/**
24895 * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.
24896 * @returns {string} Base64 string
24897 */
24898const encodeURI = (src) => encode(src, true);
24899// This trick is found broken https://github.com/dankogai/js-base64/issues/130
24900// const btou = (src: string) => decodeURIComponent(escape(src));
24901// reverting good old fationed regexp
24902const re_btou = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g;
24903const cb_btou = (cccc) => {
24904    switch (cccc.length) {
24905        case 4:
24906            var cp = ((0x07 & cccc.charCodeAt(0)) << 18)
24907                | ((0x3f & cccc.charCodeAt(1)) << 12)
24908                | ((0x3f & cccc.charCodeAt(2)) << 6)
24909                | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;
24910            return (_fromCC((offset >>> 10) + 0xD800)
24911                + _fromCC((offset & 0x3FF) + 0xDC00));
24912        case 3:
24913            return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)
24914                | ((0x3f & cccc.charCodeAt(1)) << 6)
24915                | (0x3f & cccc.charCodeAt(2)));
24916        default:
24917            return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)
24918                | (0x3f & cccc.charCodeAt(1)));
24919    }
24920};
24921/**
24922 * @deprecated should have been internal use only.
24923 * @param {string} src UTF-16 string
24924 * @returns {string} UTF-8 string
24925 */
24926const btou = (b) => b.replace(re_btou, cb_btou);
24927/**
24928 * polyfill version of `atob`
24929 */
24930const atobPolyfill = (asc) => {
24931    // console.log('polyfilled');
24932    asc = asc.replace(/\s+/g, '');
24933    if (!b64re.test(asc))
24934        throw new TypeError('malformed base64.');
24935    asc += '=='.slice(2 - (asc.length & 3));
24936    let u24, bin = '', r1, r2;
24937    for (let i = 0; i < asc.length;) {
24938        u24 = b64tab[asc.charAt(i++)] << 18
24939            | b64tab[asc.charAt(i++)] << 12
24940            | (r1 = b64tab[asc.charAt(i++)]) << 6
24941            | (r2 = b64tab[asc.charAt(i++)]);
24942        bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)
24943            : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)
24944                : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);
24945    }
24946    return bin;
24947};
24948/**
24949 * does what `window.atob` of web browsers do.
24950 * @param {String} asc Base64-encoded string
24951 * @returns {string} binary string
24952 */
24953const _atob = typeof atob === 'function' ? (asc) => atob(_tidyB64(asc))
24954    : _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary')
24955        : atobPolyfill;
24956//
24957const _toUint8Array = _hasBuffer
24958    ? (a) => _U8Afrom(Buffer.from(a, 'base64'))
24959    : (a) => _U8Afrom(_atob(a).split('').map(c => c.charCodeAt(0)));
24960/**
24961 * converts a Base64 string to a Uint8Array.
24962 */
24963const toUint8Array = (a) => _toUint8Array(_unURI(a));
24964//
24965const _decode = _hasBuffer
24966    ? (a) => Buffer.from(a, 'base64').toString('utf8')
24967    : _TD
24968        ? (a) => _TD.decode(_toUint8Array(a))
24969        : (a) => btou(_atob(a));
24970const _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/'));
24971/**
24972 * converts a Base64 string to a UTF-8 string.
24973 * @param {String} src Base64 string.  Both normal and URL-safe are supported
24974 * @returns {string} UTF-8 string
24975 */
24976const decode = (src) => _decode(_unURI(src));
24977/**
24978 * check if a value is a valid Base64 string
24979 * @param {String} src a value to check
24980  */
24981const isValid = (src) => {
24982    if (typeof src !== 'string')
24983        return false;
24984    const s = src.replace(/\s+/g, '').replace(/={0,2}$/, '');
24985    return !/[^\s0-9a-zA-Z\+/]/.test(s) || !/[^\s0-9a-zA-Z\-_]/.test(s);
24986};
24987//
24988const _noEnum = (v) => {
24989    return {
24990        value: v, enumerable: false, writable: true, configurable: true
24991    };
24992};
24993/**
24994 * extend String.prototype with relevant methods
24995 */
24996const extendString = function () {
24997    const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body));
24998    _add('fromBase64', function () { return decode(this); });
24999    _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });
25000    _add('toBase64URI', function () { return encode(this, true); });
25001    _add('toBase64URL', function () { return encode(this, true); });
25002    _add('toUint8Array', function () { return toUint8Array(this); });
25003};
25004/**
25005 * extend Uint8Array.prototype with relevant methods
25006 */
25007const extendUint8Array = function () {
25008    const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body));
25009    _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });
25010    _add('toBase64URI', function () { return fromUint8Array(this, true); });
25011    _add('toBase64URL', function () { return fromUint8Array(this, true); });
25012};
25013/**
25014 * extend Builtin prototypes with relevant methods
25015 */
25016const extendBuiltins = () => {
25017    extendString();
25018    extendUint8Array();
25019};
25020const gBase64 = {
25021    version: version,
25022    VERSION: VERSION,
25023    atob: _atob,
25024    atobPolyfill: atobPolyfill,
25025    btoa: _btoa,
25026    btoaPolyfill: btoaPolyfill,
25027    fromBase64: decode,
25028    toBase64: encode,
25029    encode: encode,
25030    encodeURI: encodeURI,
25031    encodeURL: encodeURI,
25032    utob: utob,
25033    btou: btou,
25034    decode: decode,
25035    isValid: isValid,
25036    fromUint8Array: fromUint8Array,
25037    toUint8Array: toUint8Array,
25038    extendString: extendString,
25039    extendUint8Array: extendUint8Array,
25040    extendBuiltins: extendBuiltins
25041};
25042// makecjs:CUT //
25043
25044
25045
25046
25047
25048
25049
25050
25051
25052
25053
25054
25055
25056
25057
25058
25059
25060
25061
25062
25063// and finally,
25064
25065
25066
25067/***/ }),
25068
25069/***/ 93607:
25070/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25071
25072"use strict";
25073/* harmony export */ __webpack_require__.d(__webpack_exports__, {
25074/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
25075/* harmony export */ });
25076/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89575);
25077/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(69740);
25078/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(39850);
25079/* harmony import */ var _rc_component_trigger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(78977);
25080/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(53373);
25081/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_4__);
25082/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(15442);
25083/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);
25084/* harmony import */ var _placements__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(46538);
25085/* harmony import */ var _Popup__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(23294);
25086/* harmony import */ var rc_util_es_hooks_useId__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(75476);
25087
25088
25089
25090var _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"];
25091
25092
25093
25094
25095
25096
25097
25098var Tooltip = function Tooltip(props, ref) {
25099  var overlayClassName = props.overlayClassName,
25100    _props$trigger = props.trigger,
25101    trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,
25102    _props$mouseEnterDela = props.mouseEnterDelay,
25103    mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,
25104    _props$mouseLeaveDela = props.mouseLeaveDelay,
25105    mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,
25106    overlayStyle = props.overlayStyle,
25107    _props$prefixCls = props.prefixCls,
25108    prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,
25109    children = props.children,
25110    onVisibleChange = props.onVisibleChange,
25111    afterVisibleChange = props.afterVisibleChange,
25112    transitionName = props.transitionName,
25113    animation = props.animation,
25114    motion = props.motion,
25115    _props$placement = props.placement,
25116    placement = _props$placement === void 0 ? 'right' : _props$placement,
25117    _props$align = props.align,
25118    align = _props$align === void 0 ? {} : _props$align,
25119    _props$destroyTooltip = props.destroyTooltipOnHide,
25120    destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,
25121    defaultVisible = props.defaultVisible,
25122    getTooltipContainer = props.getTooltipContainer,
25123    overlayInnerStyle = props.overlayInnerStyle,
25124    arrowContent = props.arrowContent,
25125    overlay = props.overlay,
25126    id = props.id,
25127    _props$showArrow = props.showArrow,
25128    showArrow = _props$showArrow === void 0 ? true : _props$showArrow,
25129    tooltipClassNames = props.classNames,
25130    tooltipStyles = props.styles,
25131    restProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A)(props, _excluded);
25132  var mergedId = (0,rc_util_es_hooks_useId__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(id);
25133  var triggerRef = (0,react__WEBPACK_IMPORTED_MODULE_5__.useRef)(null);
25134  (0,react__WEBPACK_IMPORTED_MODULE_5__.useImperativeHandle)(ref, function () {
25135    return triggerRef.current;
25136  });
25137  var extraProps = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)({}, restProps);
25138  if ('visible' in props) {
25139    extraProps.popupVisible = props.visible;
25140  }
25141  var getPopupElement = function getPopupElement() {
25142    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5__.createElement(_Popup__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A, {
25143      key: "content",
25144      prefixCls: prefixCls,
25145      id: mergedId,
25146      bodyClassName: tooltipClassNames === null || tooltipClassNames === void 0 ? void 0 : tooltipClassNames.body,
25147      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)
25148    }, overlay);
25149  };
25150  var getChildren = function getChildren() {
25151    var child = react__WEBPACK_IMPORTED_MODULE_5__.Children.only(children);
25152    var originalProps = (child === null || child === void 0 ? void 0 : child.props) || {};
25153    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), {}, {
25154      'aria-describedby': overlay ? mergedId : null
25155    });
25156    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_5__.cloneElement(children, childProps);
25157  };
25158  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)({
25159    popupClassName: classnames__WEBPACK_IMPORTED_MODULE_4___default()(overlayClassName, tooltipClassNames === null || tooltipClassNames === void 0 ? void 0 : tooltipClassNames.root),
25160    prefixCls: prefixCls,
25161    popup: getPopupElement,
25162    action: trigger,
25163    builtinPlacements: _placements__WEBPACK_IMPORTED_MODULE_6__/* .placements */ .D,
25164    popupPlacement: placement,
25165    ref: triggerRef,
25166    popupAlign: align,
25167    getPopupContainer: getTooltipContainer,
25168    onPopupVisibleChange: onVisibleChange,
25169    afterPopupVisibleChange: afterVisibleChange,
25170    popupTransitionName: transitionName,
25171    popupAnimation: animation,
25172    popupMotion: motion,
25173    defaultPopupVisible: defaultVisible,
25174    autoDestroy: destroyTooltipOnHide,
25175    mouseLeaveDelay: mouseLeaveDelay,
25176    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),
25177    mouseEnterDelay: mouseEnterDelay,
25178    arrow: showArrow
25179  }, extraProps), getChildren());
25180};
25181/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_5__.forwardRef)(Tooltip));
25182
25183/***/ }),
25184
25185/***/ 94495:
25186/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
25187
25188var root = __webpack_require__(78942);
25189
25190/**
25191 * Gets the timestamp of the number of milliseconds that have elapsed since
25192 * the Unix epoch (1 January 1970 00:00:00 UTC).
25193 *
25194 * @static
25195 * @memberOf _
25196 * @since 2.4.0
25197 * @category Date
25198 * @returns {number} Returns the timestamp.
25199 * @example
25200 *
25201 * _.defer(function(stamp) {
25202 *   console.log(_.now() - stamp);
25203 * }, _.now());
25204 * // => Logs the number of milliseconds it took for the deferred invocation.
25205 */
25206var now = function() {
25207  return root.Date.now();
25208};
25209
25210module.exports = now;
25211
25212
25213/***/ }),
25214
25215/***/ 95092:
25216/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25217
25218"use strict";
25219/* harmony export */ __webpack_require__.d(__webpack_exports__, {
25220/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
25221/* harmony export */ });
25222/* harmony import */ var _common_login_info_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12097);
25223
25224var useIsVip = function useIsVip() {
25225  var isVip = _common_login_info_controller__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.info('vip') == '1';
25226  return isVip;
25227};
25228/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useIsVip);
25229
25230/***/ }),
25231
25232/***/ 95309:
25233/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25234
25235"use strict";
25236/* harmony export */ __webpack_require__.d(__webpack_exports__, {
25237/* harmony export */   A: () => (/* binding */ _possibleConstructorReturn)
25238/* harmony export */ });
25239/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17545);
25240/* harmony import */ var _assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2474);
25241
25242
25243function _possibleConstructorReturn(t, e) {
25244  if (e && ("object" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(e) || "function" == typeof e)) return e;
25245  if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
25246  return (0,_assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(t);
25247}
25248
25249
25250/***/ }),
25251
25252/***/ 96488:
25253/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25254
25255"use strict";
25256/* harmony export */ __webpack_require__.d(__webpack_exports__, {
25257/* harmony export */   A: () => (/* binding */ _arrayWithHoles)
25258/* harmony export */ });
25259function _arrayWithHoles(r) {
25260  if (Array.isArray(r)) return r;
25261}
25262
25263
25264/***/ }),
25265
25266/***/ 96551:
25267/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25268
25269"use strict";
25270/* harmony export */ __webpack_require__.d(__webpack_exports__, {
25271/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
25272/* harmony export */ });
25273/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
25274  common: {
25275    module: {
25276      'mycj-menu': {
25277        'print-on-demand': false,
25278        orders: {
25279          'undelivered-orders': false,
25280          'orders-tracking': false
25281        },
25282        'store-authorization': {
25283          wed2c: false
25284        },
25285        'my-cj': {
25286          customization: false,
25287          'my-photography': false,
25288          dashboard: false,
25289          sourcing: false
25290        }
25291      },
25292      'mycj-header': {
25293        notice: false
25294      },
25295      header: {
25296        'check-list': false,
25297        'support-center': false,
25298        'user-account': false,
25299        'cart-count': false,
25300        'search-queue': false,
25301        'video-selection': false
25302      },
25303      'product-video': {
25304        'sell-and-earn': false,
25305        purchase: false,
25306        customize: false
25307      },
25308      'photography-request': false,
25309      'chat-body': false
25310    }
25311  },
25312  '/product': {
25313    module: {
25314      productdetail: {
25315        counseling: false,
25316        'photography-request': false,
25317        customize: false,
25318        reviews: false,
25319        'sell-and-earn': false,
25320        design: false,
25321        connect: false
25322      }
25323    }
25324  }
25325});
25326
25327/***/ }),
25328
25329/***/ 98331:
25330/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25331
25332"use strict";
25333/* harmony export */ __webpack_require__.d(__webpack_exports__, {
25334/* harmony export */   $: () => (/* binding */ isBodyOverflowing)
25335/* harmony export */ });
25336/**
25337 * Test usage export. Do not use in your production
25338 */
25339function isBodyOverflowing() {
25340  return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;
25341}
25342
25343/***/ }),
25344
25345/***/ 99126:
25346/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25347
25348"use strict";
25349/* harmony export */ __webpack_require__.d(__webpack_exports__, {
25350/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
25351/* harmony export */ });
25352/**
25353 * A collection of shims that provide minimal functionality of the ES6 collections.
25354 *
25355 * These implementations are not meant to be used outside of the ResizeObserver
25356 * modules as they cover only a limited range of use cases.
25357 */
25358/* eslint-disable require-jsdoc, valid-jsdoc */
25359var MapShim = (function () {
25360    if (typeof Map !== 'undefined') {
25361        return Map;
25362    }
25363    /**
25364     * Returns index in provided array that matches the specified key.
25365     *
25366     * @param {Array<Array>} arr
25367     * @param {*} key
25368     * @returns {number}
25369     */
25370    function getIndex(arr, key) {
25371        var result = -1;
25372        arr.some(function (entry, index) {
25373            if (entry[0] === key) {
25374                result = index;
25375                return true;
25376            }
25377            return false;
25378        });
25379        return result;
25380    }
25381    return /** @class */ (function () {
25382        function class_1() {
25383            this.__entries__ = [];
25384        }
25385        Object.defineProperty(class_1.prototype, "size", {
25386            /**
25387             * @returns {boolean}
25388             */
25389            get: function () {
25390                return this.__entries__.length;
25391            },
25392            enumerable: true,
25393            configurable: true
25394        });
25395        /**
25396         * @param {*} key
25397         * @returns {*}
25398         */
25399        class_1.prototype.get = function (key) {
25400            var index = getIndex(this.__entries__, key);
25401            var entry = this.__entries__[index];
25402            return entry && entry[1];
25403        };
25404        /**
25405         * @param {*} key
25406         * @param {*} value
25407         * @returns {void}
25408         */
25409        class_1.prototype.set = function (key, value) {
25410            var index = getIndex(this.__entries__, key);
25411            if (~index) {
25412                this.__entries__[index][1] = value;
25413            }
25414            else {
25415                this.__entries__.push([key, value]);
25416            }
25417        };
25418        /**
25419         * @param {*} key
25420         * @returns {void}
25421         */
25422        class_1.prototype.delete = function (key) {
25423            var entries = this.__entries__;
25424            var index = getIndex(entries, key);
25425            if (~index) {
vendor: 1,332 bytes, lines 25426-25466
25426                entries.splice(index, 1);
25427            }
25428        };
25429        /**
25430         * @param {*} key
25431         * @returns {void}
25432         */
25433        class_1.prototype.has = function (key) {
25434            return !!~getIndex(this.__entries__, key);
25435        };
25436        /**
25437         * @returns {void}
25438         */
25439        class_1.prototype.clear = function () {
25440            this.__entries__.splice(0);
25441        };
25442        /**
25443         * @param {Function} callback
25444         * @param {*} [ctx=null]
25445         * @returns {void}
25446         */
25447        class_1.prototype.forEach = function (callback, ctx) {
25448            if (ctx === void 0) { ctx = null; }
25449            for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {
25450                var entry = _a[_i];
25451                callback.call(ctx, entry[1], entry[0]);
25452            }
25453        };
25454        return class_1;
25455    }());
25456})();
25457
25458/**
25459 * Detects whether window and document objects are available in current environment.
25460 */
25461var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;
25462
25463// Returns global object of a current environment.
25464var global$1 = (function () {
25465    if (typeof __webpack_require__.g !== 'undefined' && __webpack_require__.g.Math === Math) {
25466        return __webpack_require__.g
vendor: 30,132 bytes, lines 25466-26279
25466;
25467    }
25468    if (typeof self !== 'undefined' && self.Math === Math) {
25469        return self;
25470    }
25471    if (typeof window !== 'undefined' && window.Math === Math) {
25472        return window;
25473    }
25474    // eslint-disable-next-line no-new-func
25475    return Function('return this')();
25476})();
25477
25478/**
25479 * A shim for the requestAnimationFrame which falls back to the setTimeout if
25480 * first one is not supported.
25481 *
25482 * @returns {number} Requests' identifier.
25483 */
25484var requestAnimationFrame$1 = (function () {
25485    if (typeof requestAnimationFrame === 'function') {
25486        // It's required to use a bounded function because IE sometimes throws
25487        // an "Invalid calling object" error if rAF is invoked without the global
25488        // object on the left hand side.
25489        return requestAnimationFrame.bind(global$1);
25490    }
25491    return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };
25492})();
25493
25494// Defines minimum timeout before adding a trailing call.
25495var trailingTimeout = 2;
25496/**
25497 * Creates a wrapper function which ensures that provided callback will be
25498 * invoked only once during the specified delay period.
25499 *
25500 * @param {Function} callback - Function to be invoked after the delay period.
25501 * @param {number} delay - Delay after which to invoke callback.
25502 * @returns {Function}
25503 */
25504function throttle (callback, delay) {
25505    var leadingCall = false, trailingCall = false, lastCallTime = 0;
25506    /**
25507     * Invokes the original callback function and schedules new invocation if
25508     * the "proxy" was called during current request.
25509     *
25510     * @returns {void}
25511     */
25512    function resolvePending() {
25513        if (leadingCall) {
25514            leadingCall = false;
25515            callback();
25516        }
25517        if (trailingCall) {
25518            proxy();
25519        }
25520    }
25521    /**
25522     * Callback invoked after the specified delay. It will further postpone
25523     * invocation of the original function delegating it to the
25524     * requestAnimationFrame.
25525     *
25526     * @returns {void}
25527     */
25528    function timeoutCallback() {
25529        requestAnimationFrame$1(resolvePending);
25530    }
25531    /**
25532     * Schedules invocation of the original function.
25533     *
25534     * @returns {void}
25535     */
25536    function proxy() {
25537        var timeStamp = Date.now();
25538        if (leadingCall) {
25539            // Reject immediately following calls.
25540            if (timeStamp - lastCallTime < trailingTimeout) {
25541                return;
25542            }
25543            // Schedule new call to be in invoked when the pending one is resolved.
25544            // This is important for "transitions" which never actually start
25545            // immediately so there is a chance that we might miss one if change
25546            // happens amids the pending invocation.
25547            trailingCall = true;
25548        }
25549        else {
25550            leadingCall = true;
25551            trailingCall = false;
25552            setTimeout(timeoutCallback, delay);
25553        }
25554        lastCallTime = timeStamp;
25555    }
25556    return proxy;
25557}
25558
25559// Minimum delay before invoking the update of observers.
25560var REFRESH_DELAY = 20;
25561// A list of substrings of CSS properties used to find transition events that
25562// might affect dimensions of observed elements.
25563var transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];
25564// Check if MutationObserver is available.
25565var mutationObserverSupported = typeof MutationObserver !== 'undefined';
25566/**
25567 * Singleton controller class which handles updates of ResizeObserver instances.
25568 */
25569var ResizeObserverController = /** @class */ (function () {
25570    /**
25571     * Creates a new instance of ResizeObserverController.
25572     *
25573     * @private
25574     */
25575    function ResizeObserverController() {
25576        /**
25577         * Indicates whether DOM listeners have been added.
25578         *
25579         * @private {boolean}
25580         */
25581        this.connected_ = false;
25582        /**
25583         * Tells that controller has subscribed for Mutation Events.
25584         *
25585         * @private {boolean}
25586         */
25587        this.mutationEventsAdded_ = false;
25588        /**
25589         * Keeps reference to the instance of MutationObserver.
25590         *
25591         * @private {MutationObserver}
25592         */
25593        this.mutationsObserver_ = null;
25594        /**
25595         * A list of connected observers.
25596         *
25597         * @private {Array<ResizeObserverSPI>}
25598         */
25599        this.observers_ = [];
25600        this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);
25601        this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);
25602    }
25603    /**
25604     * Adds observer to observers list.
25605     *
25606     * @param {ResizeObserverSPI} observer - Observer to be added.
25607     * @returns {void}
25608     */
25609    ResizeObserverController.prototype.addObserver = function (observer) {
25610        if (!~this.observers_.indexOf(observer)) {
25611            this.observers_.push(observer);
25612        }
25613        // Add listeners if they haven't been added yet.
25614        if (!this.connected_) {
25615            this.connect_();
25616        }
25617    };
25618    /**
25619     * Removes observer from observers list.
25620     *
25621     * @param {ResizeObserverSPI} observer - Observer to be removed.
25622     * @returns {void}
25623     */
25624    ResizeObserverController.prototype.removeObserver = function (observer) {
25625        var observers = this.observers_;
25626        var index = observers.indexOf(observer);
25627        // Remove observer if it's present in registry.
25628        if (~index) {
25629            observers.splice(index, 1);
25630        }
25631        // Remove listeners if controller has no connected observers.
25632        if (!observers.length && this.connected_) {
25633            this.disconnect_();
25634        }
25635    };
25636    /**
25637     * Invokes the update of observers. It will continue running updates insofar
25638     * it detects changes.
25639     *
25640     * @returns {void}
25641     */
25642    ResizeObserverController.prototype.refresh = function () {
25643        var changesDetected = this.updateObservers_();
25644        // Continue running updates if changes have been detected as there might
25645        // be future ones caused by CSS transitions.
25646        if (changesDetected) {
25647            this.refresh();
25648        }
25649    };
25650    /**
25651     * Updates every observer from observers list and notifies them of queued
25652     * entries.
25653     *
25654     * @private
25655     * @returns {boolean} Returns "true" if any observer has detected changes in
25656     *      dimensions of it's elements.
25657     */
25658    ResizeObserverController.prototype.updateObservers_ = function () {
25659        // Collect observers that have active observations.
25660        var activeObservers = this.observers_.filter(function (observer) {
25661            return observer.gatherActive(), observer.hasActive();
25662        });
25663        // Deliver notifications in a separate cycle in order to avoid any
25664        // collisions between observers, e.g. when multiple instances of
25665        // ResizeObserver are tracking the same element and the callback of one
25666        // of them changes content dimensions of the observed target. Sometimes
25667        // this may result in notifications being blocked for the rest of observers.
25668        activeObservers.forEach(function (observer) { return observer.broadcastActive(); });
25669        return activeObservers.length > 0;
25670    };
25671    /**
25672     * Initializes DOM listeners.
25673     *
25674     * @private
25675     * @returns {void}
25676     */
25677    ResizeObserverController.prototype.connect_ = function () {
25678        // Do nothing if running in a non-browser environment or if listeners
25679        // have been already added.
25680        if (!isBrowser || this.connected_) {
25681            return;
25682        }
25683        // Subscription to the "Transitionend" event is used as a workaround for
25684        // delayed transitions. This way it's possible to capture at least the
25685        // final state of an element.
25686        document.addEventListener('transitionend', this.onTransitionEnd_);
25687        window.addEventListener('resize', this.refresh);
25688        if (mutationObserverSupported) {
25689            this.mutationsObserver_ = new MutationObserver(this.refresh);
25690            this.mutationsObserver_.observe(document, {
25691                attributes: true,
25692                childList: true,
25693                characterData: true,
25694                subtree: true
25695            });
25696        }
25697        else {
25698            document.addEventListener('DOMSubtreeModified', this.refresh);
25699            this.mutationEventsAdded_ = true;
25700        }
25701        this.connected_ = true;
25702    };
25703    /**
25704     * Removes DOM listeners.
25705     *
25706     * @private
25707     * @returns {void}
25708     */
25709    ResizeObserverController.prototype.disconnect_ = function () {
25710        // Do nothing if running in a non-browser environment or if listeners
25711        // have been already removed.
25712        if (!isBrowser || !this.connected_) {
25713            return;
25714        }
25715        document.removeEventListener('transitionend', this.onTransitionEnd_);
25716        window.removeEventListener('resize', this.refresh);
25717        if (this.mutationsObserver_) {
25718            this.mutationsObserver_.disconnect();
25719        }
25720        if (this.mutationEventsAdded_) {
25721            document.removeEventListener('DOMSubtreeModified', this.refresh);
25722        }
25723        this.mutationsObserver_ = null;
25724        this.mutationEventsAdded_ = false;
25725        this.connected_ = false;
25726    };
25727    /**
25728     * "Transitionend" event handler.
25729     *
25730     * @private
25731     * @param {TransitionEvent} event
25732     * @returns {void}
25733     */
25734    ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {
25735        var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;
25736        // Detect whether transition may affect dimensions of an element.
25737        var isReflowProperty = transitionKeys.some(function (key) {
25738            return !!~propertyName.indexOf(key);
25739        });
25740        if (isReflowProperty) {
25741            this.refresh();
25742        }
25743    };
25744    /**
25745     * Returns instance of the ResizeObserverController.
25746     *
25747     * @returns {ResizeObserverController}
25748     */
25749    ResizeObserverController.getInstance = function () {
25750        if (!this.instance_) {
25751            this.instance_ = new ResizeObserverController();
25752        }
25753        return this.instance_;
25754    };
25755    /**
25756     * Holds reference to the controller's instance.
25757     *
25758     * @private {ResizeObserverController}
25759     */
25760    ResizeObserverController.instance_ = null;
25761    return ResizeObserverController;
25762}());
25763
25764/**
25765 * Defines non-writable/enumerable properties of the provided target object.
25766 *
25767 * @param {Object} target - Object for which to define properties.
25768 * @param {Object} props - Properties to be defined.
25769 * @returns {Object} Target object.
25770 */
25771var defineConfigurable = (function (target, props) {
25772    for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {
25773        var key = _a[_i];
25774        Object.defineProperty(target, key, {
25775            value: props[key],
25776            enumerable: false,
25777            writable: false,
25778            configurable: true
25779        });
25780    }
25781    return target;
25782});
25783
25784/**
25785 * Returns the global object associated with provided element.
25786 *
25787 * @param {Object} target
25788 * @returns {Object}
25789 */
25790var getWindowOf = (function (target) {
25791    // Assume that the element is an instance of Node, which means that it
25792    // has the "ownerDocument" property from which we can retrieve a
25793    // corresponding global object.
25794    var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;
25795    // Return the local global object if it's not possible extract one from
25796    // provided element.
25797    return ownerGlobal || global$1;
25798});
25799
25800// Placeholder of an empty content rectangle.
25801var emptyRect = createRectInit(0, 0, 0, 0);
25802/**
25803 * Converts provided string to a number.
25804 *
25805 * @param {number|string} value
25806 * @returns {number}
25807 */
25808function toFloat(value) {
25809    return parseFloat(value) || 0;
25810}
25811/**
25812 * Extracts borders size from provided styles.
25813 *
25814 * @param {CSSStyleDeclaration} styles
25815 * @param {...string} positions - Borders positions (top, right, ...)
25816 * @returns {number}
25817 */
25818function getBordersSize(styles) {
25819    var positions = [];
25820    for (var _i = 1; _i < arguments.length; _i++) {
25821        positions[_i - 1] = arguments[_i];
25822    }
25823    return positions.reduce(function (size, position) {
25824        var value = styles['border-' + position + '-width'];
25825        return size + toFloat(value);
25826    }, 0);
25827}
25828/**
25829 * Extracts paddings sizes from provided styles.
25830 *
25831 * @param {CSSStyleDeclaration} styles
25832 * @returns {Object} Paddings box.
25833 */
25834function getPaddings(styles) {
25835    var positions = ['top', 'right', 'bottom', 'left'];
25836    var paddings = {};
25837    for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {
25838        var position = positions_1[_i];
25839        var value = styles['padding-' + position];
25840        paddings[position] = toFloat(value);
25841    }
25842    return paddings;
25843}
25844/**
25845 * Calculates content rectangle of provided SVG element.
25846 *
25847 * @param {SVGGraphicsElement} target - Element content rectangle of which needs
25848 *      to be calculated.
25849 * @returns {DOMRectInit}
25850 */
25851function getSVGContentRect(target) {
25852    var bbox = target.getBBox();
25853    return createRectInit(0, 0, bbox.width, bbox.height);
25854}
25855/**
25856 * Calculates content rectangle of provided HTMLElement.
25857 *
25858 * @param {HTMLElement} target - Element for which to calculate the content rectangle.
25859 * @returns {DOMRectInit}
25860 */
25861function getHTMLElementContentRect(target) {
25862    // Client width & height properties can't be
25863    // used exclusively as they provide rounded values.
25864    var clientWidth = target.clientWidth, clientHeight = target.clientHeight;
25865    // By this condition we can catch all non-replaced inline, hidden and
25866    // detached elements. Though elements with width & height properties less
25867    // than 0.5 will be discarded as well.
25868    //
25869    // Without it we would need to implement separate methods for each of
25870    // those cases and it's not possible to perform a precise and performance
25871    // effective test for hidden elements. E.g. even jQuery's ':visible' filter
25872    // gives wrong results for elements with width & height less than 0.5.
25873    if (!clientWidth && !clientHeight) {
25874        return emptyRect;
25875    }
25876    var styles = getWindowOf(target).getComputedStyle(target);
25877    var paddings = getPaddings(styles);
25878    var horizPad = paddings.left + paddings.right;
25879    var vertPad = paddings.top + paddings.bottom;
25880    // Computed styles of width & height are being used because they are the
25881    // only dimensions available to JS that contain non-rounded values. It could
25882    // be possible to utilize the getBoundingClientRect if only it's data wasn't
25883    // affected by CSS transformations let alone paddings, borders and scroll bars.
25884    var width = toFloat(styles.width), height = toFloat(styles.height);
25885    // Width & height include paddings and borders when the 'border-box' box
25886    // model is applied (except for IE).
25887    if (styles.boxSizing === 'border-box') {
25888        // Following conditions are required to handle Internet Explorer which
25889        // doesn't include paddings and borders to computed CSS dimensions.
25890        //
25891        // We can say that if CSS dimensions + paddings are equal to the "client"
25892        // properties then it's either IE, and thus we don't need to subtract
25893        // anything, or an element merely doesn't have paddings/borders styles.
25894        if (Math.round(width + horizPad) !== clientWidth) {
25895            width -= getBordersSize(styles, 'left', 'right') + horizPad;
25896        }
25897        if (Math.round(height + vertPad) !== clientHeight) {
25898            height -= getBordersSize(styles, 'top', 'bottom') + vertPad;
25899        }
25900    }
25901    // Following steps can't be applied to the document's root element as its
25902    // client[Width/Height] properties represent viewport area of the window.
25903    // Besides, it's as well not necessary as the <html> itself neither has
25904    // rendered scroll bars nor it can be clipped.
25905    if (!isDocumentElement(target)) {
25906        // In some browsers (only in Firefox, actually) CSS width & height
25907        // include scroll bars size which can be removed at this step as scroll
25908        // bars are the only difference between rounded dimensions + paddings
25909        // and "client" properties, though that is not always true in Chrome.
25910        var vertScrollbar = Math.round(width + horizPad) - clientWidth;
25911        var horizScrollbar = Math.round(height + vertPad) - clientHeight;
25912        // Chrome has a rather weird rounding of "client" properties.
25913        // E.g. for an element with content width of 314.2px it sometimes gives
25914        // the client width of 315px and for the width of 314.7px it may give
25915        // 314px. And it doesn't happen all the time. So just ignore this delta
25916        // as a non-relevant.
25917        if (Math.abs(vertScrollbar) !== 1) {
25918            width -= vertScrollbar;
25919        }
25920        if (Math.abs(horizScrollbar) !== 1) {
25921            height -= horizScrollbar;
25922        }
25923    }
25924    return createRectInit(paddings.left, paddings.top, width, height);
25925}
25926/**
25927 * Checks whether provided element is an instance of the SVGGraphicsElement.
25928 *
25929 * @param {Element} target - Element to be checked.
25930 * @returns {boolean}
25931 */
25932var isSVGGraphicsElement = (function () {
25933    // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement
25934    // interface.
25935    if (typeof SVGGraphicsElement !== 'undefined') {
25936        return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };
25937    }
25938    // If it's so, then check that element is at least an instance of the
25939    // SVGElement and that it has the "getBBox" method.
25940    // eslint-disable-next-line no-extra-parens
25941    return function (target) { return (target instanceof getWindowOf(target).SVGElement &&
25942        typeof target.getBBox === 'function'); };
25943})();
25944/**
25945 * Checks whether provided element is a document element (<html>).
25946 *
25947 * @param {Element} target - Element to be checked.
25948 * @returns {boolean}
25949 */
25950function isDocumentElement(target) {
25951    return target === getWindowOf(target).document.documentElement;
25952}
25953/**
25954 * Calculates an appropriate content rectangle for provided html or svg element.
25955 *
25956 * @param {Element} target - Element content rectangle of which needs to be calculated.
25957 * @returns {DOMRectInit}
25958 */
25959function getContentRect(target) {
25960    if (!isBrowser) {
25961        return emptyRect;
25962    }
25963    if (isSVGGraphicsElement(target)) {
25964        return getSVGContentRect(target);
25965    }
25966    return getHTMLElementContentRect(target);
25967}
25968/**
25969 * Creates rectangle with an interface of the DOMRectReadOnly.
25970 * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly
25971 *
25972 * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.
25973 * @returns {DOMRectReadOnly}
25974 */
25975function createReadOnlyRect(_a) {
25976    var x = _a.x, y = _a.y, width = _a.width, height = _a.height;
25977    // If DOMRectReadOnly is available use it as a prototype for the rectangle.
25978    var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;
25979    var rect = Object.create(Constr.prototype);
25980    // Rectangle's properties are not writable and non-enumerable.
25981    defineConfigurable(rect, {
25982        x: x, y: y, width: width, height: height,
25983        top: y,
25984        right: x + width,
25985        bottom: height + y,
25986        left: x
25987    });
25988    return rect;
25989}
25990/**
25991 * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.
25992 * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit
25993 *
25994 * @param {number} x - X coordinate.
25995 * @param {number} y - Y coordinate.
25996 * @param {number} width - Rectangle's width.
25997 * @param {number} height - Rectangle's height.
25998 * @returns {DOMRectInit}
25999 */
26000function createRectInit(x, y, width, height) {
26001    return { x: x, y: y, width: width, height: height };
26002}
26003
26004/**
26005 * Class that is responsible for computations of the content rectangle of
26006 * provided DOM element and for keeping track of it's changes.
26007 */
26008var ResizeObservation = /** @class */ (function () {
26009    /**
26010     * Creates an instance of ResizeObservation.
26011     *
26012     * @param {Element} target - Element to be observed.
26013     */
26014    function ResizeObservation(target) {
26015        /**
26016         * Broadcasted width of content rectangle.
26017         *
26018         * @type {number}
26019         */
26020        this.broadcastWidth = 0;
26021        /**
26022         * Broadcasted height of content rectangle.
26023         *
26024         * @type {number}
26025         */
26026        this.broadcastHeight = 0;
26027        /**
26028         * Reference to the last observed content rectangle.
26029         *
26030         * @private {DOMRectInit}
26031         */
26032        this.contentRect_ = createRectInit(0, 0, 0, 0);
26033        this.target = target;
26034    }
26035    /**
26036     * Updates content rectangle and tells whether it's width or height properties
26037     * have changed since the last broadcast.
26038     *
26039     * @returns {boolean}
26040     */
26041    ResizeObservation.prototype.isActive = function () {
26042        var rect = getContentRect(this.target);
26043        this.contentRect_ = rect;
26044        return (rect.width !== this.broadcastWidth ||
26045            rect.height !== this.broadcastHeight);
26046    };
26047    /**
26048     * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data
26049     * from the corresponding properties of the last observed content rectangle.
26050     *
26051     * @returns {DOMRectInit} Last observed content rectangle.
26052     */
26053    ResizeObservation.prototype.broadcastRect = function () {
26054        var rect = this.contentRect_;
26055        this.broadcastWidth = rect.width;
26056        this.broadcastHeight = rect.height;
26057        return rect;
26058    };
26059    return ResizeObservation;
26060}());
26061
26062var ResizeObserverEntry = /** @class */ (function () {
26063    /**
26064     * Creates an instance of ResizeObserverEntry.
26065     *
26066     * @param {Element} target - Element that is being observed.
26067     * @param {DOMRectInit} rectInit - Data of the element's content rectangle.
26068     */
26069    function ResizeObserverEntry(target, rectInit) {
26070        var contentRect = createReadOnlyRect(rectInit);
26071        // According to the specification following properties are not writable
26072        // and are also not enumerable in the native implementation.
26073        //
26074        // Property accessors are not being used as they'd require to define a
26075        // private WeakMap storage which may cause memory leaks in browsers that
26076        // don't support this type of collections.
26077        defineConfigurable(this, { target: target, contentRect: contentRect });
26078    }
26079    return ResizeObserverEntry;
26080}());
26081
26082var ResizeObserverSPI = /** @class */ (function () {
26083    /**
26084     * Creates a new instance of ResizeObserver.
26085     *
26086     * @param {ResizeObserverCallback} callback - Callback function that is invoked
26087     *      when one of the observed elements changes it's content dimensions.
26088     * @param {ResizeObserverController} controller - Controller instance which
26089     *      is responsible for the updates of observer.
26090     * @param {ResizeObserver} callbackCtx - Reference to the public
26091     *      ResizeObserver instance which will be passed to callback function.
26092     */
26093    function ResizeObserverSPI(callback, controller, callbackCtx) {
26094        /**
26095         * Collection of resize observations that have detected changes in dimensions
26096         * of elements.
26097         *
26098         * @private {Array<ResizeObservation>}
26099         */
26100        this.activeObservations_ = [];
26101        /**
26102         * Registry of the ResizeObservation instances.
26103         *
26104         * @private {Map<Element, ResizeObservation>}
26105         */
26106        this.observations_ = new MapShim();
26107        if (typeof callback !== 'function') {
26108            throw new TypeError('The callback provided as parameter 1 is not a function.');
26109        }
26110        this.callback_ = callback;
26111        this.controller_ = controller;
26112        this.callbackCtx_ = callbackCtx;
26113    }
26114    /**
26115     * Starts observing provided element.
26116     *
26117     * @param {Element} target - Element to be observed.
26118     * @returns {void}
26119     */
26120    ResizeObserverSPI.prototype.observe = function (target) {
26121        if (!arguments.length) {
26122            throw new TypeError('1 argument required, but only 0 present.');
26123        }
26124        // Do nothing if current environment doesn't have the Element interface.
26125        if (typeof Element === 'undefined' || !(Element instanceof Object)) {
26126            return;
26127        }
26128        if (!(target instanceof getWindowOf(target).Element)) {
26129            throw new TypeError('parameter 1 is not of type "Element".');
26130        }
26131        var observations = this.observations_;
26132        // Do nothing if element is already being observed.
26133        if (observations.has(target)) {
26134            return;
26135        }
26136        observations.set(target, new ResizeObservation(target));
26137        this.controller_.addObserver(this);
26138        // Force the update of observations.
26139        this.controller_.refresh();
26140    };
26141    /**
26142     * Stops observing provided element.
26143     *
26144     * @param {Element} target - Element to stop observing.
26145     * @returns {void}
26146     */
26147    ResizeObserverSPI.prototype.unobserve = function (target) {
26148        if (!arguments.length) {
26149            throw new TypeError('1 argument required, but only 0 present.');
26150        }
26151        // Do nothing if current environment doesn't have the Element interface.
26152        if (typeof Element === 'undefined' || !(Element instanceof Object)) {
26153            return;
26154        }
26155        if (!(target instanceof getWindowOf(target).Element)) {
26156            throw new TypeError('parameter 1 is not of type "Element".');
26157        }
26158        var observations = this.observations_;
26159        // Do nothing if element is not being observed.
26160        if (!observations.has(target)) {
26161            return;
26162        }
26163        observations.delete(target);
26164        if (!observations.size) {
26165            this.controller_.removeObserver(this);
26166        }
26167    };
26168    /**
26169     * Stops observing all elements.
26170     *
26171     * @returns {void}
26172     */
26173    ResizeObserverSPI.prototype.disconnect = function () {
26174        this.clearActive();
26175        this.observations_.clear();
26176        this.controller_.removeObserver(this);
26177    };
26178    /**
26179     * Collects observation instances the associated element of which has changed
26180     * it's content rectangle.
26181     *
26182     * @returns {void}
26183     */
26184    ResizeObserverSPI.prototype.gatherActive = function () {
26185        var _this = this;
26186        this.clearActive();
26187        this.observations_.forEach(function (observation) {
26188            if (observation.isActive()) {
26189                _this.activeObservations_.push(observation);
26190            }
26191        });
26192    };
26193    /**
26194     * Invokes initial callback function with a list of ResizeObserverEntry
26195     * instances collected from active resize observations.
26196     *
26197     * @returns {void}
26198     */
26199    ResizeObserverSPI.prototype.broadcastActive = function () {
26200        // Do nothing if observer doesn't have active observations.
26201        if (!this.hasActive()) {
26202            return;
26203        }
26204        var ctx = this.callbackCtx_;
26205        // Create ResizeObserverEntry instance for every active observation.
26206        var entries = this.activeObservations_.map(function (observation) {
26207            return new ResizeObserverEntry(observation.target, observation.broadcastRect());
26208        });
26209        this.callback_.call(ctx, entries, ctx);
26210        this.clearActive();
26211    };
26212    /**
26213     * Clears the collection of active observations.
26214     *
26215     * @returns {void}
26216     */
26217    ResizeObserverSPI.prototype.clearActive = function () {
26218        this.activeObservations_.splice(0);
26219    };
26220    /**
26221     * Tells whether observer has active observations.
26222     *
26223     * @returns {boolean}
26224     */
26225    ResizeObserverSPI.prototype.hasActive = function () {
26226        return this.activeObservations_.length > 0;
26227    };
26228    return ResizeObserverSPI;
26229}());
26230
26231// Registry of internal observers. If WeakMap is not available use current shim
26232// for the Map collection as it has all required methods and because WeakMap
26233// can't be fully polyfilled anyway.
26234var observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();
26235/**
26236 * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation
26237 * exposing only those methods and properties that are defined in the spec.
26238 */
26239var ResizeObserver = /** @class */ (function () {
26240    /**
26241     * Creates a new instance of ResizeObserver.
26242     *
26243     * @param {ResizeObserverCallback} callback - Callback that is invoked when
26244     *      dimensions of the observed elements change.
26245     */
26246    function ResizeObserver(callback) {
26247        if (!(this instanceof ResizeObserver)) {
26248            throw new TypeError('Cannot call a class as a function.');
26249        }
26250        if (!arguments.length) {
26251            throw new TypeError('1 argument required, but only 0 present.');
26252        }
26253        var controller = ResizeObserverController.getInstance();
26254        var observer = new ResizeObserverSPI(callback, controller, this);
26255        observers.set(this, observer);
26256    }
26257    return ResizeObserver;
26258}());
26259// Expose public methods of ResizeObserver.
26260[
26261    'observe',
26262    'unobserve',
26263    'disconnect'
26264].forEach(function (method) {
26265    ResizeObserver.prototype[method] = function () {
26266        var _a;
26267        return (_a = observers.get(this))[method].apply(_a, arguments);
26268    };
26269});
26270
26271var index = (function () {
26272    // Export existing implementation if available.
26273    if (typeof global$1.ResizeObserver !== 'undefined') {
26274        return global$1.ResizeObserver;
26275    }
26276    return ResizeObserver;
26277})();
26278
26279/* harmony default export */ 
vendor: 2,865 bytes, lines 26279-26288
26279const __WEBPACK_DEFAULT_EXPORT__ = (index);
26280
26281
26282/***/ }),
26283
26284/***/ 99437:
26285/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
26286
26287/*! For license information please see index.js.LICENSE.txt */
26288!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}
26288var 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;
26288if(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];
26288this.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
26288:""}),"";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
26288: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
26288ding 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
26289{ 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})()));
26290
26291/***/ }),
26292
26293/***/ 99973:
26294/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
26295
26296"use strict";
26297/* harmony export */ __webpack_require__.d(__webpack_exports__, {
26298/* harmony export */   _q: () => (/* reexport safe */ _hooks_useEvent__WEBPACK_IMPORTED_MODULE_0__.A)
26299/* harmony export */ });
26300/* harmony import */ var _hooks_useEvent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9449);
26301/* harmony import */ var _hooks_useMergedState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64948);
26302/* harmony import */ var _ref__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19284);
26303/* harmony import */ var _utils_set__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(53795);
26304/* harmony import */ var _warning__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84445);
26305
26306
26307
26308
26309
26310
26311
26312/***/ })
26313
26314/******/ 	});
26315/************************************************************************/
26316/******/ 	// The module cache
26317/******/ 	var __webpack_module_cache__ = {};
26318/******/ 	
26319/******/ 	// The require function
26320/******/ 	function __webpack_require__(moduleId) {
26321/******/ 		// Check if module is in cache
26322/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
26323/******/ 		if (cachedModule !== undefined) {
26324/******/ 			return cachedModule.exports;
26325/******/ 		}
26326/******/ 		// Create a new module (and put it into the cache)
26327/******/ 		var module = __webpack_module_cache__[moduleId] = {
26328/******/ 			// no module.id needed
26329/******/ 			// no module.loaded needed
26330/******/ 			exports: {}
26331/******/ 		};
26332/******/ 	
26333/******/ 		// Execute the module function
26334/******/ 		__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
26335/******/ 	
26336/******/ 		// Return the exports of the module
26337/******/ 		return module.exports;
26338/******/ 	}
26339/******/ 	
26340/******/ 	// expose the modules object (__webpack_modules__)
26341/******/ 	__webpack_require__.m = __webpack_modules__;
26342/******/ 	
26343/************************************************************************/
26344/******/ 	/* webpack/runtime/compat get default export */
26345/******/ 	(() => {
26346/******/ 		// getDefaultExport function for compatibility with non-harmony modules
26347/******/ 		__webpack_require__.n = (module) => {
26348/******/ 			var getter = module && module.__esModule ?
26349/******/ 				() => (module['default']) :
26350/******/ 				() => (module);
26351/******/ 			__webpack_require__.d(getter, { a: getter });
26352/******/ 			return getter;
26353/******/ 		};
26354/******/ 	})();
26355/******/ 	
26356/******/ 	/* webpack/runtime/create fake namespace object */
26357/******/ 	(() => {
26358/******/ 		var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);
26359/******/ 		var leafPrototypes;
26360/******/ 		// create a fake namespace object
26361/******/ 		// mode & 1: value is a module id, require it
26362/******/ 		// mode & 2: merge all properties of value into the ns
26363/******/ 		// mode & 4: return value when already ns object
26364/******/ 		// mode & 16: return value when it's Promise-like
26365/******/ 		// mode & 8|1: behave like require
26366/******/ 		__webpack_require__.t = function(value, mode) {
26367/******/ 			if(mode & 1) value = this(value);
26368/******/ 			if(mode & 8) return value;
26369/******/ 			if(typeof value === 'object' && value) {
26370/******/ 				if((mode & 4) && value.__esModule) return value;
26371/******/ 				if((mode & 16) && typeof value.then === 'function') return value;
26372/******/ 			}
26373/******/ 			var ns = Object.create(null);
26374/******/ 			__webpack_require__.r(ns);
26375/******/ 			var def = {};
26376/******/ 			leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];
26377/******/ 			for(var current = mode & 2 && value; (typeof current == 'object' || typeof current == 'function') && !~leafPrototypes.indexOf(current); current = getProto(current)) {
26378/******/ 				Object.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));
26379/******/ 			}
26380/******/ 			def['default'] = () => (value);
26381/******/ 			__webpack_require__.d(ns, def);
26382/******/ 			return ns;
26383/******/ 		};
26384/******/ 	})();
26385/******/ 	
26386/******/ 	/* webpack/runtime/define property getters */
26387/******/ 	(() => {
26388/******/ 		// define getter functions for harmony exports
26389/******/ 		__webpack_require__.d = (exports, definition) => {
26390/******/ 			for(var key in definition) {
26391/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
26392/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
26393/******/ 				}
26394/******/ 			}
26395/******/ 		};
26396/******/ 	})();
26397/******/ 	
26398/******/ 	/* webpack/runtime/ensure chunk */
26399/******/ 	(() => {
26400/******/ 		__webpack_require__.f = {};
26401/******/ 		// This file contains only the entry chunk.
26402/******/ 		// The chunk loading function for additional chunks
26403/******/ 		__webpack_require__.e = (chunkId) => {
26404/******/ 			return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {
26405/******/ 				__webpack_require__.f[key](chunkId, promises);
26406/******/ 				return promises;
26407/******/ 			}, []));
26408/******/ 		};
26409/******/ 	})();
26410/******/ 	
26411/******/ 	/* webpack/runtime/get javascript chunk filename */
26412/******/ 	(() => {
26413/******/ 		// This function allow to reference async chunks
26414/******/ 		__webpack_require__.u = (chunkId) => {
26415/******/ 			// return url for filenames based on template
26416/******/ 			return "" + chunkId + "." + {"326":"4bc08576","406":"f608243a","1261":"93733d8f","1554":"3e96d156","2440":"3e7d73ab","4639":"f9393676","5503":"37fabb60","5579":"52682a8b","5772":"56977352","6164":"27d93440","9506":"1a6e6559"}[chunkId] + ".js";
26417/******/ 		};
26418/******/ 	})();
26419/******/ 	
26420/******/ 	/* webpack/runtime/get mini-css chunk filename */
26421/******/ 	(() => {
26422/******/ 		// This function allow to reference async chunks
26423/******/ 		__webpack_require__.miniCssF = (chunkId) => {
26424/******/ 			// return url for filenames based on template
26425/******/ 			return "" + chunkId + "." + {"326":"5a7b3210","2440":"f5b2275a","5579":"2b74cea0","6164":"813fff74"}[chunkId] + ".css";
26426/******/ 		};
26427/******/ 	})();
26428/******/ 	
26429/******/ 	/* webpack/runtime/global */
26430/******/ 	(() => {
26431/******/ 		__webpack_require__.g = (function() {
26432/******/ 			if (typeof globalThis === 'object') return globalThis;
26433/******/ 			try {
26434/******/ 				return this || new Function('return this')();
26435/******/ 			} catch (e) {
26436/******/ 				if (typeof window === 'object') return window;
26437/******/ 			}
26438/******/ 		})();
26439/******/ 	})();
26440/******/ 	
26441/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
26442/******/ 	(() => {
26443/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
26444/******/ 	})();
26445/******/ 	
26446/******/ 	/* webpack/runtime/load script */
26447/******/ 	(() => {
26448/******/ 		var inProgress = {};
26449/******/ 		var dataWebpackPrefix = "@cckj/mf-mycj-components:";
26450/******/ 		// loadScript function to load a script via script tag
26451/******/ 		__webpack_require__.l = (url, done, key, chunkId) => {
26452/******/ 			if(inProgress[url]) { inProgress[url].push(done); return; }
26453/******/ 			var script, needAttach;
26454/******/ 			if(key !== undefined) {
26455/******/ 				var scripts = document.getElementsByTagName("script");
26456/******/ 				for(var i = 0; i < scripts.length; i++) {
26457/******/ 					var s = scripts[i];
26458/******/ 					if(s.getAttribute("src") == url || s.getAttribute("data-webpack") == dataWebpackPrefix + key) { script = s; break; }
26459/******/ 				}
26460/******/ 			}
26461/******/ 			if(!script) {
26462/******/ 				needAttach = true;
26463/******/ 				script = document.createElement('script');
26464/******/ 		
26465/******/ 				script.charset = 'utf-8';
26466/******/ 				script.timeout = 120;
26467/******/ 				if (__webpack_require__.nc) {
26468/******/ 					script.setAttribute("nonce", __webpack_require__.nc);
26469/******/ 				}
26470/******/ 				script.setAttribute("data-webpack", dataWebpackPrefix + key);
26471/******/ 		
26472/******/ 				script.src = url;
26473/******/ 			}
26474/******/ 			inProgress[url] = [done];
26475/******/ 			var onScriptComplete = (prev, event) => {
26476/******/ 				// avoid mem leaks in IE.
26477/******/ 				script.onerror = script.onload = null;
26478/******/ 				clearTimeout(timeout);
26479/******/ 				var doneFns = inProgress[url];
26480/******/ 				delete inProgress[url];
26481/******/ 				script.parentNode && script.parentNode.removeChild(script);
26482/******/ 				doneFns && doneFns.forEach((fn) => (fn(event)));
26483/******/ 				if(prev) return prev(event);
26484/******/ 			}
26485/******/ 			var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);
26486/******/ 			script.onerror = onScriptComplete.bind(null, script.onerror);
26487/******/ 			script.onload = onScriptComplete.bind(null, script.onload);
26488/******/ 			needAttach && document.head.appendChild(script);
26489/******/ 		};
26490/******/ 	})();
26491/******/ 	
26492/******/ 	/* webpack/runtime/make namespace object */
26493/******/ 	(() => {
26494/******/ 		// define __esModule on exports
26495/******/ 		__webpack_require__.r = (exports) => {
26496/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
26497/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
26498/******/ 			}
26499/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
26500/******/ 		};
26501/******/ 	})();
26502/******/ 	
26503/******/ 	/* webpack/runtime/publicPath */
26504/******/ 	(() => {
26505/******/ 		__webpack_require__.p = "https://sv-resource.oss-accelerate.aliyuncs.com/mf-components-v3/";
26506/******/ 	})();
26507/******/ 	
26508/******/ 	/* webpack/runtime/css loading */
26509/******/ 	(() => {
26510/******/ 		if (typeof document === "undefined") return;
26511/******/ 		var createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {
26512/******/ 			var linkTag = document.createElement("link");
26513/******/ 		
26514/******/ 			linkTag.rel = "stylesheet";
26515/******/ 			linkTag.type = "text/css";
26516/******/ 			if (__webpack_require__.nc) {
26517/******/ 				linkTag.nonce = __webpack_require__.nc;
26518/******/ 			}
26519/******/ 			var onLinkComplete = (event) => {
26520/******/ 				// avoid mem leaks.
26521/******/ 				linkTag.onerror = linkTag.onload = null;
26522/******/ 				if (event.type === 'load') {
26523/******/ 					resolve();
26524/******/ 				} else {
26525/******/ 					var errorType = event && event.type;
26526/******/ 					var realHref = event && event.target && event.target.href || fullhref;
26527/******/ 					var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + errorType + ": " + realHref + ")");
26528/******/ 					err.name = "ChunkLoadError";
26529/******/ 					err.code = "CSS_CHUNK_LOAD_FAILED";
26530/******/ 					err.type = errorType;
26531/******/ 					err.request = realHref;
26532/******/ 					if (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)
26533/******/ 					reject(err);
26534/******/ 				}
26535/******/ 			}
26536/******/ 			linkTag.onerror = linkTag.onload = onLinkComplete;
26537/******/ 			linkTag.href = fullhref;
26538/******/ 		
26539/******/ 		
26540/******/ 			if (oldTag) {
26541/******/ 				oldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);
26542/******/ 			} else {
26543/******/ 				document.head.appendChild(linkTag);
26544/******/ 			}
26545/******/ 			return linkTag;
26546/******/ 		};
26547/******/ 		var findStylesheet = (href, fullhref) => {
26548/******/ 			var existingLinkTags = document.getElementsByTagName("link");
26549/******/ 			for(var i = 0; i < existingLinkTags.length; i++) {
26550/******/ 				var tag = existingLinkTags[i];
26551/******/ 				var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");
26552/******/ 				if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag;
26553/******/ 			}
26554/******/ 			var existingStyleTags = document.getElementsByTagName("style");
26555/******/ 			for(var i = 0; i < existingStyleTags.length; i++) {
26556/******/ 				var tag = existingStyleTags[i];
26557/******/ 				var dataHref = tag.getAttribute("data-href");
26558/******/ 				if(dataHref === href || dataHref === fullhref) return tag;
26559/******/ 			}
26560/******/ 		};
26561/******/ 		var loadStylesheet = (chunkId) => {
26562/******/ 			return new Promise((resolve, reject) => {
26563/******/ 				var href = __webpack_require__.miniCssF(chunkId);
26564/******/ 				var fullhref = __webpack_require__.p + href;
26565/******/ 				if(findStylesheet(href, fullhref)) return resolve();
26566/******/ 				createStylesheet(chunkId, fullhref, null, resolve, reject);
26567/******/ 			});
26568/******/ 		}
26569/******/ 		// object to store loaded CSS chunks
26570/******/ 		var installedCssChunks = {
26571/******/ 			6488: 0,
26572/******/ 			7420: 0,
26573/******/ 			8430: 0
26574/******/ 		};
26575/******/ 		
26576/******/ 		__webpack_require__.f.miniCss = (chunkId, promises) => {
26577/******/ 			var cssChunks = {"326":1,"2440":1,"5579":1,"6164":1};
26578/******/ 			if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
26579/******/ 			else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
26580/******/ 				promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {
26581/******/ 					installedCssChunks[chunkId] = 0;
26582/******/ 				}, (e) => {
26583/******/ 					delete installedCssChunks[chunkId];
26584/******/ 					throw e;
26585/******/ 				}));
26586/******/ 			}
26587/******/ 		};
26588/******/ 		
26589/******/ 		// no hmr
26590/******/ 		
26591/******/ 		// no prefetching
26592/******/ 		
26593/******/ 		// no preloaded
vendor: 4,947 bytes, lines 26594-26705
26594/******/ 	})();
26595/******/ 	
26596/******/ 	/* webpack/runtime/jsonp chunk loading */
26597/******/ 	(() => {
26598/******/ 		// no baseURI
26599/******/ 		
26600/******/ 		// object to store loaded and loading chunks
26601/******/ 		// undefined = chunk not loaded, null = chunk preloaded/prefetched
26602/******/ 		// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
26603/******/ 		var installedChunks = {
26604/******/ 			6488: 0,
26605/******/ 			7420: 0,
26606/******/ 			8430: 0
26607/******/ 		};
26608/******/ 		
26609/******/ 		__webpack_require__.f.j = (chunkId, promises) => {
26610/******/ 				// JSONP chunk loading for javascript
26611/******/ 				var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;
26612/******/ 				if(installedChunkData !== 0) { // 0 means "already installed".
26613/******/ 		
26614/******/ 					// a Promise means "currently loading".
26615/******/ 					if(installedChunkData) {
26616/******/ 						promises.push(installedChunkData[2]);
26617/******/ 					} else {
26618/******/ 						if(true) { // all chunks have JS
26619/******/ 							// setup Promise in chunk cache
26620/******/ 							var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));
26621/******/ 							promises.push(installedChunkData[2] = promise);
26622/******/ 		
26623/******/ 							// start chunk loading
26624/******/ 							var url = __webpack_require__.p + __webpack_require__.u(chunkId);
26625/******/ 							// create error before stack unwound to get useful stacktrace later
26626/******/ 							var error = new Error();
26627/******/ 							var loadingEnded = (event) => {
26628/******/ 								if(__webpack_require__.o(installedChunks, chunkId)) {
26629/******/ 									installedChunkData = installedChunks[chunkId];
26630/******/ 									if(installedChunkData !== 0) installedChunks[chunkId] = undefined;
26631/******/ 									if(installedChunkData) {
26632/******/ 										var errorType = event && (event.type === 'load' ? 'missing' : event.type);
26633/******/ 										var realSrc = event && event.target && event.target.src;
26634/******/ 										error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
26635/******/ 										error.name = 'ChunkLoadError';
26636/******/ 										error.type = errorType;
26637/******/ 										error.request = realSrc;
26638/******/ 										installedChunkData[1](error);
26639/******/ 									}
26640/******/ 								}
26641/******/ 							};
26642/******/ 							__webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId);
26643/******/ 						}
26644/******/ 					}
26645/******/ 				}
26646/******/ 		};
26647/******/ 		
26648/******/ 		// no prefetching
26649/******/ 		
26650/******/ 		// no preloaded
26651/******/ 		
26652/******/ 		// no HMR
26653/******/ 		
26654/******/ 		// no HMR manifest
26655/******/ 		
26656/******/ 		// no on chunks loaded
26657/******/ 		
26658/******/ 		// install a JSONP callback for chunk loading
26659/******/ 		var webpackJsonpCallback = (parentChunkLoadingFunction, data) => {
26660/******/ 			var [chunkIds, moreModules, runtime] = data;
26661/******/ 			// add "moreModules" to the modules object,
26662/******/ 			// then flag all "chunkIds" as loaded and fire callback
26663/******/ 			var moduleId, chunkId, i = 0;
26664/******/ 			if(chunkIds.some((id) => (installedChunks[id] !== 0))) {
26665/******/ 				for(moduleId in moreModules) {
26666/******/ 					if(__webpack_require__.o(moreModules, moduleId)) {
26667/******/ 						__webpack_require__.m[moduleId] = moreModules[moduleId];
26668/******/ 					}
26669/******/ 				}
26670/******/ 				if(runtime) var result = runtime(__webpack_require__);
26671/******/ 			}
26672/******/ 			if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
26673/******/ 			for(;i < chunkIds.length; i++) {
26674/******/ 				chunkId = chunkIds[i];
26675/******/ 				if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
26676/******/ 					installedChunks[chunkId][0]();
26677/******/ 				}
26678/******/ 				installedChunks[chunkId] = 0;
26679/******/ 			}
26680/******/ 		
26681/******/ 		}
26682/******/ 		
26683/******/ 		var chunkLoadingGlobal = this["webpackChunk_cckj_mf_mycj_components"] = this["webpackChunk_cckj_mf_mycj_components"] || [];
26684/******/ 		chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
26685/******/ 		chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
26686/******/ 	})();
26687/******/ 	
26688/************************************************************************/
26689var __webpack_exports__ = {};
26690// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
26691(() => {
26692"use strict";
26693/* harmony import */ var _common_oss_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44190);
26694
26695(function setRuntimePublicPath() {
26696  var host = _common_oss_controller__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Ay && _common_oss_controller__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Ay.host;
26697  if (host) {
26698    __webpack_require__.p = String(host).replace(/\/+$/, '') + '/mf-components-v3/';
26699  }
26700})();
26701})();
26702
26703// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
26704(() => {
26705"use strict";
26706// ESM COMPAT FLAG
26707__webpack_require__.r(__webpack_exports__);
26708
26709// EXPORTS
26710__webpack_require__.d(__webpack_exports__, {
26711  "default": () => (/* binding */ Menu_Menu),
26712  fetchAuth: () => (/* reexport */ authority_utils/* fetchAuth */.tw),
26713  goNoAuthPath: () => (/* reexport */ authority_utils/* goNoAuthPath */.lU),
26714  hasAuth: () => (/* reexport */ authority_utils/* hasAuth */.Vm)
26715});
26716
26717// EXTERNAL MODULE: external {"root":"React","commonjs2":"react","commonjs":"react","amd":"react"}
26718var external_root_React_commonjs2_react_commonjs_react_amd_react_ = __webpack_require__(15442);
26719var external_root_React_commonjs2_react_commonjs_react_amd_react_default = /*#__PURE__*/__webpack_require__.n(external_root_React_commonjs2_react_commonjs_react_amd_react_);
26720// EXTERNAL MODULE: ./src/common/index.ts
26721var common = __webpack_require__(81002);
26722// EXTERNAL MODULE: ./src/universalComps/Iconfont/index.tsx
26723var Iconfont = __webpack_require__(12191);
26724// EXTERNAL MODULE: ./src/common/login-info-controller.ts
26725var login_info_controller = __webpack_require__(12097);
26726;// ./src/components/Menu/hooks/useIsShowMenuItem.ts
26727
26728var useIsShowOrangeConnex = function useIsShowOrangeConnex(routerName) {
26729  if (!/orangeconnex/i.test(routerName)) return true;
26730  var flag = login_info_controller/* default */.A.info('loginName') == 'EbayOC001';
26731  return flag;
26732};
26733var useIsShowMiaoshou = function useIsShowMiaoshou(routerName, siteCheck) {
26734  if (!/miaoshou/i.test(routerName)) return true;
26735  var flag = (siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.isSite('CJCN')) || siteCheck.isSite('CJ') && (window === null || window === void 0 ? void 0 : window.isChina);
26736  return flag;
26737};
26738var popoverFixed = function popoverFixed(boxDom) {
26739  var popoverDom = boxDom === null || boxDom === void 0 ? void 0 : boxDom.getElementsByClassName('popoverDom')[0];
26740  var height = popoverDom === null || popoverDom === void 0 ? void 0 : popoverDom.clientHeight;
26741  var getBoundingClientRect = boxDom.getBoundingClientRect();
26742  if (!popoverDom) return;
26743  popoverDom.style.position = 'fixed';
26744  popoverDom.style.left = getBoundingClientRect.left + boxDom.offsetWidth / 2 + 'px';
26745  popoverDom.style.top = getBoundingClientRect.top - height + 'px';
26746  popoverDom.style.bottom = 'auto';
26747};
26748var isShowAuthorizeType = function isShowAuthorizeType(showAuthorizeListData, routeName) {
26749  if (showAuthorizeListData === void 0) {
26750    showAuthorizeListData = {};
26751  }
26752  var type = String(routeName).toLocaleLowerCase();
26753  if (showAuthorizeListData[type]) {
26754    return showAuthorizeListData[type].isAuthor;
26755  } else {
26756    for (var key in showAuthorizeListData) {
26757      if (Object.prototype.hasOwnProperty.call(showAuthorizeListData, key) && showAuthorizeListData[key].otherValue.includes(type)) {
26758        return showAuthorizeListData[key].isAuthor;
26759      }
26760    }
26761  }
26762  return true;
26763};
26764// EXTERNAL MODULE: ./src/components/Menu/hooks/useIsVip.ts
26765var useIsVip = __webpack_require__(95092);
26766;// ./src/components/Menu/MenuCollapsed/index.less
26767// extracted by mini-css-extract-plugin
26768/* 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"});
26769// EXTERNAL MODULE: ../../node_modules/classnames/index.js
26770var classnames = __webpack_require__(53373);
26771var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
26772// EXTERNAL MODULE: ./src/hook/use-platform-href.ts
26773var use_platform_href = __webpack_require__(50137);
26774// EXTERNAL MODULE: ./src/components/Menu/hooks/useMyCjReactRoute.ts
26775var useMyCjReactRoute = __webpack_require__(92252);
26776;// ./src/components/Menu/MenuNormal/index.less
26777// extracted by mini-css-extract-plugin
26778/* 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"});
26779;// ./src/components/Menu/hooks/useMenuChilds.ts
26780function useMenuChilds(_a) {
26781  var selector = _a.selector,
26782    _b = _a.useNewLogic,
26783    useNewLogic = _b === void 0 ? false : _b;
26784  var handlerMouseMove = function handlerMouseMove(e, addTop, isCjSpecial) {
26785    if (addTop === void 0) {
26786      addTop = 0;
26787    }
26788    var shouldUseNewLogic = isCjSpecial !== undefined ? isCjSpecial : useNewLogic;
26789    var target = e.currentTarget;
26790    var specialMenuBox = target.querySelector(selector);
26791    var rect = target.getBoundingClientRect();
26792    if (!specialMenuBox) return;
26793    if (shouldUseNewLogic) {
26794      specialMenuBox.style.position = 'fixed';
26795      specialMenuBox.style.left = "".concat(rect.left + target.offsetWidth, "px");
26796      specialMenuBox.style.display = 'block';
26797      specialMenuBox.style.visibility = 'hidden';
26798      var windowHeight_1 = window.innerHeight;
26799      specialMenuBox.style.maxHeight = "".concat(windowHeight_1, "px");
26800      specialMenuBox.style.overflow = 'auto';
26801      specialMenuBox.style.overflowY = 'auto';
26802      specialMenuBox.style.overflowX = 'hidden';
26803      requestAnimationFrame(function () {
26804        requestAnimationFrame(function () {
26805          var boxHeight = specialMenuBox.scrollHeight;
26806          var actualHeight = Math.min(boxHeight, windowHeight_1);
26807          var top = rect.top - 10 + addTop;
26808          if (top + actualHeight > windowHeight_1) {
26809            top = windowHeight_1 - actualHeight;
26810            if (top < 0) {
26811              top = 0;
26812            }
26813          }
26814          if (top < 0) {
26815            top = 0;
26816          }
26817          specialMenuBox.style.top = "".concat(top, "px");
26818          specialMenuBox.style.visibility = 'visible';
26819        });
26820      });
26821    } else {
26822      specialMenuBox.style.position = 'fixed';
26823      specialMenuBox.style.left = "".concat(rect.left + target.offsetWidth, "px");
26824      var windowHeight = window.innerHeight;
26825      var boxHeight = specialMenuBox.offsetHeight;
26826      if (boxHeight + rect.top > windowHeight) {
26827        specialMenuBox.style.top = "".concat(windowHeight - boxHeight, "px");
26828      } else {
26829        specialMenuBox.style.top = "".concat(rect.top - 10 + addTop, "px");
26830      }
26831      specialMenuBox.style.display = 'block';
26832    }
26833  };
26834  var handlerMouseLeave = function handlerMouseLeave(target) {
26835    var childBoxThree = target.querySelector(selector);
26836    if (!childBoxThree) return;
26837    childBoxThree.style.display = 'none';
26838    childBoxThree.style.maxHeight = '';
26839    childBoxThree.style.overflowY = '';
26840    childBoxThree.style.overflow = '';
26841    childBoxThree.style.overflowX = '';
26842    childBoxThree.style.visibility = '';
26843  };
26844  return {
26845    handlerMouseMove: handlerMouseMove,
26846    handlerMouseLeave: handlerMouseLeave
26847  };
26848}
26849// EXTERNAL MODULE: ./src/universalComps/Tooltip/index.tsx
26850var Tooltip = __webpack_require__(59912);
26851// EXTERNAL MODULE: ./src/components/Menu/MenuNormal/MultipleMenuItem.tsx + 3 modules
26852var MultipleMenuItem = __webpack_require__(16754);
26853// EXTERNAL MODULE: ./src/common/gtag.ts
26854var gtag = __webpack_require__(11543);
26855;// ./src/components/ExtensionGuide/detect.ts
26856var CRX_ATTR = 'data-cjcrx';
26857var CRX_INSTALLED_VALUE = 'addYes';
26858var EXTENSION_STORE_URL = 'https://chrome.google.com/webstore/detail/cjdropshipping/mbndljkgaoailfnpeodnlejigmkdpokb?utm_source=chrome-ntp-icon';
26859var SOURCE_PLATFORM_URLS = {
26860  '1688': 'https://www.1688.com/',
26861  taobao: 'https://www.taobao.com/',
26862  aliexpress: 'https://alitems.com/g/1e8d11449400282ca80416525dc3e8/',
26863  ebay: 'https://www.ebay.com/'
26864};
26865var isExtensionInstalled = function isExtensionInstalled() {
26866  var _a;
26867  return ((_a = document === null || document === void 0 ? void 0 : document.body) === null || _a === void 0 ? void 0 : _a.getAttribute(CRX_ATTR)) === CRX_INSTALLED_VALUE;
26868};
26869var DEFAULT_WAIT_MS = 3000;
26870var defaultWaitMs = function defaultWaitMs() {
26871  try {
26872    var raw = typeof process !== 'undefined' && process.env && process.env.EXT_GUIDE_WAIT_MS;
26873    var n = Number(raw);
26874    return raw && !Number.isNaN(n) && n >= 0 ? n : DEFAULT_WAIT_MS;
26875  } catch (e) {
26876    return DEFAULT_WAIT_MS;
26877  }
26878};
26879var detect_waitForExtension = function waitForExtension(timeoutMs) {
26880  if (timeoutMs === void 0) {
26881    timeoutMs = defaultWaitMs();
26882  }
26883  return new Promise(function (resolve) {
26884    if (isExtensionInstalled()) return resolve(true);
26885    if (typeof MutationObserver === 'undefined' || !(document === null || document === void 0 ? void 0 : document.body)) return resolve(false);
26886    var settled = false;
26887    var finish = function finish(installed) {
26888      if (settled) return;
26889      settled = true;
26890      observer.disconnect();
26891      document.removeEventListener('DOMContentLoaded', check);
26892      window.removeEventListener('load', check);
26893      clearTimeout(timer);
26894      resolve(installed);
26895    };
26896    var check = function check() {
26897      if (isExtensionInstalled()) finish(true);
26898    };
26899    var observer = new MutationObserver(check);
26900    observer.observe(document.body, {
26901      attributes: true,
26902      attributeFilter: [CRX_ATTR]
26903    });
26904    document.addEventListener('DOMContentLoaded', check);
26905    window.addEventListener('load', check);
26906    var timer = setTimeout(function () {
26907      return finish(false);
26908    }, timeoutMs);
26909  });
26910};
26911var isChromeBrowser = function isChromeBrowser() {
26912  return /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
26913};
26914var detect_isAllowedTargetUrl = function isAllowedTargetUrl(url) {
26915  return !!url && Object.values(SOURCE_PLATFORM_URLS).indexOf(url) > -1;
26916};
26917// EXTERNAL MODULE: external {"root":"ReactDOM","commonjs2":"react-dom","commonjs":"react-dom","amd":"react-dom"}
26918var external_root_ReactDOM_commonjs2_react_dom_commonjs_react_dom_amd_react_dom_ = __webpack_require__(56003);
26919var 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_);
26920// EXTERNAL MODULE: ./src/universalComps/button/index.tsx
26921var universalComps_button = __webpack_require__(37183);
26922;// ./src/components/ExtensionGuide/storage.ts
26923var RESUME_STORAGE_KEY = 'sourcingUrl';
26924var saveResumeUrl = function saveResumeUrl(targetUrl) {
26925  try {
26926    sessionStorage.setItem(RESUME_STORAGE_KEY, targetUrl);
26927  } catch (e) {}
26928};
26929var storage_takeResumeUrl = function takeResumeUrl() {
26930  try {
26931    var value = sessionStorage.getItem(RESUME_STORAGE_KEY);
26932    sessionStorage.removeItem(RESUME_STORAGE_KEY);
26933    return value;
26934  } catch (e) {
26935    return null;
26936  }
26937};
26938;// ./src/components/ExtensionGuide/index.less
26939// extracted by mini-css-extract-plugin
26940/* harmony default export */ const ExtensionGuide = ({"mask":"mask--rGfYk","box":"box--l7olb","title":"title--QbR7E","text":"text--eByoV","footer":"footer--yKQKt","btn":"btn--a0nM5"});
26941;// ./src/components/ExtensionGuide/ExtensionGuideModal.tsx
26942
26943
26944
26945
26946
26947var COPY = {
26948  install: {
26949    title: function title() {
26950      return window.i18next.t('common-top-install-cj-chrome-extension', 'Install CJ Chrome Extension');
26951    },
26952    text: function text() {
26953      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?');
26954    }
26955  },
26956  refresh: {
26957    title: function title() {
26958      return window.i18next.t('common-top-refresh-page-required', 'Refresh Page Required:');
26959    },
26960    text: function text() {
26961      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.');
26962    }
26963  },
26964  noChrome: {
26965    title: function title() {
26966      return window.i18next.t('common-top-browser-not-supported', 'Browser Not Supported');
26967    },
26968    text: function text() {
26969      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.');
26970    }
26971  },
26972  resume: {
26973    title: function title() {
26974      return window.i18next.t('common-top-extension-ready', 'CJ Chrome Extension Is Ready');
26975    },
26976    text: function text() {
26977      return window.i18next.t('common-top-extension-ready-continue-to-the-platform-you
26977-selected', 'The extension is installed. Continue to the platform you selected.');
26978    }
26979  }
26980};
26981var ExtensionGuideModal = function ExtensionGuideModal(_a) {
26982  var targetUrl = _a.targetUrl,
26983    onClose = _a.onClose,
26984    initialStep = _a.initialStep;
26985  var _b = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(initialStep || (isChromeBrowser() ? 'install' : 'noChrome')),
26986    step = _b[0],
26987    setStep = _b[1];
26988  var handleInstall = function handleInstall() {
26989    window.open(EXTENSION_STORE_URL, '_blank', 'noreferrer');
26990    setStep('refresh');
26991  };
26992  var handleRefresh = function handleRefresh() {
26993    if (targetUrl) saveResumeUrl(targetUrl);
26994    onClose();
26995    window.location.reload();
26996  };
26997  var handleContinue = function handleContinue() {
26998    if (targetUrl) window.open(targetUrl, '_blank', 'noreferrer');
26999    onClose();
27000  };
27001  var copy = COPY[step];
27002  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27003    className: ExtensionGuide.mask,
27004    "data-testid": "extension-guide-modal",
27005    onClick: function onClick(e) {
27006      if (e.target === e.currentTarget) onClose();
27007    }
27008  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27009    className: ExtensionGuide.box
27010  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("h3", {
27011    className: ExtensionGuide.title,
27012    "data-testid": "extension-guide-title"
27013  }, copy.title()), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("p", {
27014    className: ExtensionGuide.text,
27015    "data-testid": "extension-guide-text"
27016  }, copy.text()), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27017    className: ExtensionGuide.footer
27018  }, 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, {
27019    type: "primary",
27020    title: window.i18next.t('common-top-install-now', 'Install Now'),
27021    onClick: handleInstall,
27022    className: ExtensionGuide.btn,
27023    "data-testid": "extension-guide-install",
27024    "data-gtag-element": "plugin_install"
27025  }), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(universalComps_button/* default */.A, {
27026    type: "ghost",
27027    title: window.i18next.t('common-top-cancel', 'Cancel'),
27028    onClick: onClose,
27029    className: ExtensionGuide.btn,
27030    "data-testid": "extension-guide-cancel",
27031    "data-gtag-element": "plugin_modal_cancel"
27032  }))), 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, {
27033    type: "primary",
27034    title: window.i18next.t('common-top-refresh', 'Refresh'),
27035    onClick: handleRefresh,
27036    className: ExtensionGuide.btn,
27037    "data-testid": "extension-guide-refresh",
27038    "data-gtag-element": "plugin_refresh"
27039  }), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(universalComps_button/* default */.A, {
27040    type: "ghost",
27041    title: window.i18next.t('common-top-later', 'Later'),
27042    onClick: onClose,
27043    className: ExtensionGuide.btn,
27044    "data-testid": "extension-guide-later",
27045    "data-gtag-element": "plugin_refresh_later"
27046  }))), 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, {
27047    type: "primary",
27048    title: window.i18next.t('common-top-continue', 'Continue'),
27049    onClick: handleContinue,
27050    className: ExtensionGuide.btn,
27051    "data-testid": "extension-guide-continue",
27052    "data-gtag-element": "plugin_resume_continue"
27053  }), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(universalComps_button/* default */.A, {
27054    type: "ghost",
27055    title: window.i18next.t('common-top-later', 'Later'),
27056    onClick: onClose,
27057    className: ExtensionGuide.btn,
27058    "data-testid": "extension-guide-later",
27059    "data-gtag-element": "plugin_resume_later"
27060  }))), step === 'noChrome' && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(universalComps_button/* default */.A, {
27061    type: "primary",
27062    title: window.i18next.t('common-top-close', 'Close'),
27063    onClick: onClose,
27064    className: ExtensionGuide.btn,
27065    "data-testid": "extension-guide-close",
27066    "data-gtag-element": "plugin_no_chrome_close"
27067  })))));
27068};
27069/* harmony default export */ const ExtensionGuide_ExtensionGuideModal = (ExtensionGuideModal);
27070;// ./src/components/ExtensionGuide/show.tsx
27071
27072
27073
27074
27075var SINGLETON_KEY = '__CJ_EXTENSION_GUIDE_CONTAINER__';
27076var getActiveContainer = function getActiveContainer() {
27077  var container = window[SINGLETON_KEY];
27078  return container && container.isConnected ? container : null;
27079};
27080var mount = function mount(targetUrl, initialStep) {
27081  if (getActiveContainer()) return;
27082  var container = document.createElement('div');
27083  document.body.appendChild(container);
27084  window[SINGLETON_KEY] = container;
27085  var close = function close() {
27086    external_root_ReactDOM_commonjs2_react_dom_commonjs_react_dom_amd_react_dom_default().unmountComponentAtNode(container);
27087    if (container.parentNode) container.parentNode.removeChild(container);
27088    window[SINGLETON_KEY] = null;
27089  };
27090  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, {
27091    targetUrl: targetUrl,
27092    initialStep: initialStep,
27093    onClose: close
27094  }), container);
27095};
27096var show_showExtensionGuide = function showExtensionGuide(targetUrl) {
27097  if (isExtensionInstalled()) {
27098    if (targetUrl) window.open(targetUrl, '_blank', 'noreferrer');
27099    return;
27100  }
27101  mount(targetUrl);
27102};
27103var show_showResumePrompt = function showResumePrompt(targetUrl) {
27104  mount(targetUrl, 'resume');
27105};
27106;// ./src/components/ExtensionGuide/resume.ts
27107
27108
27109
27110
27111var consumeResumeUrl = function consumeResumeUrl() {
27112  var targetUrl = takeResumeUrl();
27113  if (!isAllowedTargetUrl(targetUrl)) return;
27114  waitForExtension().then(function (installed) {
27115    if (installed) {
27116      showResumePrompt(targetUrl);
27117    } else {
27118      showExtensionGuide(targetUrl);
27119    }
27120  });
27121};
27122;// ./src/components/ExtensionGuide/menu.ts
27123
27124
27125var interceptExtensionMenuClick = function interceptExtensionMenuClick(event, menu) {
27126  var _a;
27127  if (!(menu === null || menu === void 0 ? void 0 : menu.requireExtension)) return false;
27128  if (!detect_isAllowedTargetUrl(menu.route)) return false;
27129  if (isExtensionInstalled()) return false;
27130  (_a = event === null || event === void 0 ? void 0 : event.preventDefault) === null || _a === void 0 ? void 0 : _a.call(event);
27131  show_showExtensionGuide(menu.route);
27132  return true;
27133};
27134;// ./src/components/ExtensionGuide/index.ts
27135
27136
27137
27138
27139;// ./src/components/Menu/MenuNormal/MenuItem.tsx
27140var __assign = undefined && undefined.__assign || function () {
27141  __assign = Object.assign || function (t) {
27142    for (var s, i = 1, n = arguments.length; i < n; i++) {
27143      s = arguments[i];
27144      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
27145    }
27146    return t;
27147  };
27148  return __assign.apply(this, arguments);
27149};
27150
27151
27152
27153
27154
27155
27156
27157
27158
27159
27160
27161
27162
27163
27164var TipWrap = function TipWrap(_a) {
27165  var children = _a.children,
27166    tip = _a.tip;
27167  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);
27168  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Tooltip/* default */.A, {
27169    content: tip,
27170    className: Menu_MenuNormal.menuTip,
27171    immediateHide: true,
27172    noImmediateShow: true,
27173    noImmediateShowDelay: 300
27174  }, children);
27175};
27176var MenuItem = function MenuItem(_a) {
27177  var _b, _c;
27178  var _d, _e;
27179  var childMenu = _a.childMenu,
27180    isActive = _a.isActive,
27181    _f = _a.showAuthorizeListData,
27182    showAuthorizeListData = _f === void 0 ? {} : _f,
27183    isSpecial = _a.isSpecial;
27184  var isVip = (0,useIsVip/* default */.A)();
27185  var isShowOrange = useIsShowOrangeConnex(childMenu.name);
27186  var isShowAuthorize = isShowAuthorizeType(showAuthorizeListData, childMenu.name);
27187  var hookMenusChilds = useMenuChilds({
27188    selector: '.childBoxThree'
27189  });
27190  var hookMyCjRoute = (0,useMyCjReactRoute/* default */.A)();
27191  hookMyCjRoute.viewCogs(childMenu);
27192  var isPopover = !!(childMenu === null || childMenu === void 0 ? void 0 : childMenu.tip);
27193  var isShowNew = (0,common/* isShowNewFeatures */.t_)() && hookMyCjRoute.isNewCogs;
27194  var hasChilds = childMenu.childs && childMenu.childs.length > 0;
27195  var platformHref = (0,use_platform_href/* default */.A)();
27196  var leaveTimer = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef();
27197  var isZesty = window.siteCheck.isSite('ZS');
27198  if (!isShowOrange || !isShowAuthorize) return null;
27199  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27200    className: classnames_default()(Menu_MenuNormal.MenuItem, (_b = {}, _b[Menu_MenuNormal.vip] = isVip, _b[Menu_MenuNormal.zs] = isZesty, _b)),
27201    onMouseEnter: function onMouseEnter(event) {
27202      leaveTimer.current && clearTimeout(leaveTimer.current);
27203      hasChilds && hookMenusChilds.handlerMouseMove(event);
27204    },
27205    onMouseLeave: function onMouseLeave(event) {
27206      var target = event.currentTarget;
27207      leaveTimer.current = setTimeout(function () {
27208        hasChilds && hookMenusChilds.handlerMouseLeave(target);
27209      }, 200);
27210    }
27211  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(TipWrap, {
27212    tip: ((_d = childMenu === null || childMenu === void 0 ? void 0 : childMenu.tip) === null || _d === void 0 ? void 0 : _d.call(childMenu)) || ''
27213  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27214    className: classnames_default()(Menu_MenuNormal.box, (_c = {}, _c[Menu_MenuNormal.active] = isActive(childMenu.name), _c[Menu_MenuNormal.zs] = isZesty, _c)),
27215    onClick: function onClick(e) {
27216      e.stopPropagation();
27217    },
27218    onMouseMove: function onMouseMove(event) {
27219      if (isPopover) {
27220        popoverFixed(event.currentTarget);
27221      }
27222    },
27223    "data-route": childMenu.name,
27224    "data-gtag-element": (0,gtag/* toGtagElement */.l)(childMenu.name)
27225  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27226    className: Menu_MenuNormal.title
27227  }
27227, hasChilds && !childMenu.route && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
27228    className: Menu_MenuNormal.titleSpan
27229  }, childMenu.nameTrans())), hasChilds && childMenu.route && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("a", __assign({
27230    href: platformHref((0,common/* getRouteHref */.hQ)(childMenu)),
27231    target: childMenu.target || '_self'
27232  }, hookMyCjRoute.getAProps(childMenu.route)), childMenu.nameTrans())), !hasChilds && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("a", __assign({
27233    href: platformHref((0,common/* getRouteHref */.hQ)(childMenu)),
27234    target: childMenu.target || '_self'
27235  }, hookMyCjRoute.getAProps(childMenu.route), childMenu.trackingClick ? {
27236    'data-tracking-element-click': childMenu.trackingClick
27237  } : {}, {
27238    "data-gtag-element": (0,gtag/* toGtagElement */.l)(childMenu.name)
27239  }), isSpecial ? (0,MultipleMenuItem/* showName */.$)({
27240    key: childMenu.key,
27241    name: (_e = childMenu.nameTrans) === null || _e === void 0 ? void 0 : _e.call(childMenu),
27242    count: childMenu.count
27243  }) : childMenu.nameTrans(), childMenu.isNew && isShowNew && /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
27244    className: Menu_MenuNormal.newfeatures
27245  }, "New")))), hasChilds && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27246    className: classnames_default()(Menu_MenuNormal.arrow),
27247    style: {
27248      transform: 'rotate(-90deg)'
27249    }
27250  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
27251    type: "xiangxia"
27252  }))), isZesty && isActive(childMenu.name) && /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27253    className: Menu_MenuNormal.activeLeftLineMenuItem
27254  }))), hasChilds && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27255    className: classnames_default()(Menu_MenuNormal.childBoxThree, 'childBoxThree')
27256  }, childMenu.childs.map(function (threeMenu) {
27257    var _a;
27258    if (typeof threeMenu.isHide === 'function' ? threeMenu.isHide() : threeMenu.isHide) return null;
27259    return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27260      key: threeMenu.name,
27261      className: classnames_default()(Menu_MenuNormal.threeMenu, (_a = {}, _a[Menu_MenuNormal.active] = isActive(threeMenu.name), _a)),
27262      onClick: function onClick(e) {
27263        e.stopPropagation();
27264      }
27265    }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("a", __assign({
27266      href: platformHref((0,common/* getRouteHref */.hQ)(threeMenu)),
27267      target: threeMenu.target || '_self'
27268    }, hookMyCjRoute.getAProps(threeMenu.route), {
27269      "data-gtag-element": (0,gtag/* toGtagElement */.l)(threeMenu.name),
27270      onClick: function onClick(e) {
27271        var _a, _b;
27272        if (interceptExtensionMenuClick(e, threeMenu)) return;
27273        (_b = (_a = hookMyCjRoute.getAProps(threeMenu.route)).onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);
27274      }
27275    }), threeMenu.nameTrans()));
27276  }))));
27277};
27278/* harmony default export */ const MenuNormal_MenuItem = (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().memo(MenuItem));
27279// EXTERNAL MODULE: ./src/hook/use-site-check.ts
27280var use_site_check = __webpack_require__(82058);
27281;// ./src/components/Menu/MenuCollapsed/MenuItem.tsx
27282var MenuItem_assign = undefined && undefined.__assign || function () {
27283  MenuItem_assign = Object.assign || function (t) {
27284    for (var s, i = 1, n = arguments.length; i < n; i++) {
27285      s = arguments[i];
27286      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
27287    }
27288    return t;
27289  };
27290  return MenuItem_assign.apply(this, arguments);
27291};
27292var __spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
27293  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
27294    if (ar || !(i in from)) {
27295      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
27296      ar[i] = from[i];
27297    }
27298  }
27299  return to.concat(ar || Array.prototype.slice.call(from));
27300};
27301
27302
27303
27304
27305
27306
27307
27308
27309
27310
27311
27312
27313
27314
27315
27316var MenuItem_MenuItem = function MenuItem(_a) {
27317  var _b, _c, _d, _e;
27318  var _f, _g;
27319  var childMenu = _a.childMenu,
27320    isActive = _a.isActive,
27321    showAuthorizeListData = _a.showAuthorizeListData,
27322    isSpecial = _a.isSpecial;
27323  var isVip = (0,useIsVip/* default */.A)();
27324  var siteCheck = (0,use_site_check/* default */.A)();
27325  var isShowOrange = useIsShowOrangeConnex(childMenu.name);
27326  var isShowAuthorize = isShowAuthorizeType(showAuthorizeListData, childMenu.name);
27327  var isZesty = siteCheck.isSite('ZS');
27328  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))]),
27329    threeClass = _h[0],
27330    setThreeClass = _h[1];
27331  var hookMenusChilds = useMenuChilds({
27332    selector: '.childBoxThree',
27333    useNewLogic: true
27334  });
27335  var leaveTimer = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef();
27336  var hookMyCjRoute = (0,useMyCjReactRoute/* default */.A)();
27337  hookMyCjRoute.viewCogs(childMenu);
27338  var hasChilds = childMenu.childs && childMenu.childs.length > 0;
27339  var platformHref = (0,use_platform_href/* default */.A)();
27340  var isShowNew = (0,common/* isShowNewFeatures */.t_)() && hookMyCjRoute.isNewCogs;
27341  var childCurrentRoute = (childMenu === null || childMenu === void 0 ? void 0 : childMenu.name) || '';
27342  if (!isShowOrange || !isShowAuthorize) return null;
27343  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27344    className: classnames_default()(Menu_MenuCollapsed.childItem, (_c = {}, _c[Menu_MenuCollapsed.vip] = isVip, _c[Menu_MenuCollapsed.active] = isActive(childCurrentRoute), _c[Menu_MenuCollapsed.zs] = isZesty, _c)),
27345    onMouseEnter: function onMouseEnter(event) {
27346      leaveTimer.current && clearTimeout(leaveTimer.current);
27347      setThreeClass(__spreadArray(__spreadArray([], threeClass, true), [Menu_MenuCollapsed.active], false));
27348      hasChilds && hookMenusChilds.handlerMouseMove(event);
27349    },
27350    onMouseLeave: function onMouseLeave(event) {
27351      var target = event.currentTarget;
27352      setThreeClass(__spreadArray([], threeClass.filter(function (_) {
27353        return _ !== Menu_MenuCollapsed.active;
27354      }), true));
27355      leaveTimer.current = setTimeout(function () {
27356        hasChilds && hookMenusChilds.handlerMouseLeave(target);
27357      }, 200);
27358    },
27359    onClick: function onClick(e) {
27360      e.stopPropagation();
27361      if (childMenu.name === childCurrentRoute) return;
27362    }
27363  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(TipWrap, {
27364    tip: ((_f = childMenu === null || childMenu === void 0 ? void 0 : childMenu.tip) === null || _f === void 0 ? void 0 : _f.call(childMenu)) || ''
27365  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27366    className: Menu_MenuCollapsed.childItemBox
27367  }
27367, hasChilds && !childMenu.route ? (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
27368    className: classnames_default()(Menu_MenuCollapsed.nameTitle, (_d = {}, _d[Menu_MenuCollapsed.zs] = isZesty, _d))
27369  }, childMenu.nameTrans())) : (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("a", MenuItem_assign({
27370    href: platformHref((0,common/* getRouteHref */.hQ)(childMenu)),
27371    className: classnames_default()(hasChilds ? Menu_MenuCollapsed.nameTitle : Menu_MenuCollapsed.name, (_e = {}, _e[Menu_MenuCollapsed.zs] = isZesty, _e)),
27372    target: childMenu.target || '_self'
27373  }, hookMyCjRoute.getAProps(childMenu.route), childMenu.trackingClick ? {
27374    'data-tracking-element-click': childMenu.trackingClick
27375  } : {}, {
27376    "data-gtag-element": (0,gtag/* toGtagElement */.l)(childMenu.name)
27377  }), isSpecial ? (0,MultipleMenuItem/* showName */.$)({
27378    key: childMenu.key,
27379    name: (_g = childMenu.nameTrans) === null || _g === void 0 ? void 0 : _g.call(childMenu),
27380    count: childMenu.count
27381  }) : childMenu.nameTrans(), childMenu.isNew && isShowNew && /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
27382    className: Menu_MenuCollapsed.newfeatures
27383  }, "New"))), hasChilds && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27384    className: Menu_MenuCollapsed.arrowRight
27385  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
27386    type: "jiantou_you"
27387  }))))), hasChilds && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27388    className: classnames_default()(threeClass.join(' '), 'childBoxThree')
27389  }, childMenu.childs.map(function (threeMenu) {
27390    var _a, _b;
27391    if (typeof threeMenu.isHide === 'function' ? threeMenu.isHide() : threeMenu.isHide) return null;
27392    return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27393      key: threeMenu.name,
27394      className: classnames_default()(Menu_MenuCollapsed.childItemThree, (_a = {}, _a[Menu_MenuCollapsed.active] = isActive(threeMenu.name), _a[Menu_MenuCollapsed.vip] = isVip, _a)),
27395      onClick: function onClick(e) {
27396        e.stopPropagation();
27397      }
27398    }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
27399      className: Menu_MenuCollapsed.childItemBoxThree
27400    }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("a", MenuItem_assign({
27401      href: platformHref((0,common/* getRouteHref */.hQ)(threeMenu)),
27402      className: classnames_default()(Menu_MenuCollapsed.nameThree, (_b = {}, _b[Menu_MenuCollapsed.zs] = isZesty, _b)),
27403      target: threeMenu.target || '_self'
27404    }, hookMyCjRoute.getAProps(threeMenu.route), {
27405      "data-gtag-element": (0,gtag/* toGtagElement */.l)(threeMenu.name),
27406      onClick: function onClick(e) {
27407        var _a, _b;
27408        if (interceptExtensionMenuClick(e, threeMenu)) return;
27409        (_b = (_a = hookMyCjRoute.getAProps(threeMenu.route)).onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);
27410      }
27411    }), threeMenu.nameTrans())));
27412  }))));
27413};
27414/* harmony default export */ const MenuCollapsed_MenuItem = (MenuItem_MenuItem);
27415// EXTERNAL MODULE: ./src/common/cj-href.ts
27416var cj_href = __webpack_require__(84963);
27417// EXTERNAL MODULE: ./src/components/CjHeader/hooks/use-parent-platform.ts
27418var use_parent_platform = __webpack_require__(6925);
27419// EXTERNAL MODULE: ./src/common/oss-controller.ts
27420var oss_controller = __webpack_require__(44190);
27421// EXTERNAL MODULE: ./src/components/CjHeader/services.ts
27422var services = __webpack_require__(62934);
27423// EXTERNAL MODULE: ./src/components/CjHeader/const/show-authorize-list.ts
27424var show_authorize_list = __webpack_require__(84266);
27425;// ./src/components/CjHeader/const/show-authorize-all-list.ts
27426var show_authorize_all_list_assign = undefined && undefined.__assign || function () {
27427  show_authorize_all_list_assign = Object.assign || function (t) {
27428    for (var s, i = 1, n = arguments.length; i < n; i++) {
27429      s = arguments[i];
27430      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
27431    }
27432    return t;
27433  };
27434  return show_authorize_all_list_assign.apply(this, arguments);
27435};
27436var __rest = undefined && undefined.__rest || function (s, e) {
27437  var t = {};
27438  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
27439  if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
27440    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
27441  }
27442  return t;
27443};
27444
27445var mabang = show_authorize_list/* default */.A.mabang,
27446  otherShowAuthorizeList = __rest(show_authorize_list/* default */.A, ["mabang"]);
27447/* harmony default export */ const show_authorize_all_list = (show_authorize_all_list_assign(show_authorize_all_list_assign({}, otherShowAuthorizeList), {
27448  others: {
27449    Title: 'Others',
27450    value: 'others',
27451    otherValue: [],
27452    isAuthor: true,
27453    isShow: true
27454  },
27455  mabang: mabang
27456}));
27457// EXTERNAL MODULE: ../../node_modules/js-cookie/dist/js.cookie.mjs
27458var js_cookie = __webpack_require__(3478);
27459// EXTERNAL MODULE: ./src/common/platform-show.ts
27460var platform_show = __webpack_require__(37597);
27461;// ./src/components/Menu/bar.config.cf.ts
27462var bar_config_cf_assign = undefined && undefined.__assign || function () {
27463  bar_config_cf_assign = Object.assign || function (t) {
27464    for (var s, i = 1, n = arguments.length; i < n; i++) {
27465      s = arguments[i];
27466      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
27467    }
27468    return t;
27469  };
27470  return bar_config_cf_assign.apply(this, arguments);
27471};
27472var _a, _b;
27473
27474
27475var isNewUser = ((_a = js_cookie/* default */.A.get('SHOWMESSAGE')) === null || _a === void 0 ? void 0 : _a.indexOf('N')) > -1 || !js_cookie/* default */.A.get('token');
27476var isWarehouseOperationVideoUser = function isWarehouseOperationVideoUser() {
27477  return true;
27478};
27479var hideMyQuotationMenu = function hideMyQuotationMenu() {
27480  var _a, _b;
27481  var flag = true;
27482  if (typeof window !== 'undefined') {
27483    var cjNum = (_a = window === null || window === void 0 ? void 0 : window.loginInfoController) === null || _a === void 0 ? void 0 : _a.info('num');
27484    var users = ((_b = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _b === void 0 ? void 0 : _b.data('my-quotation-users')) || [];
27485    if (!users.includes('CJ10001')) {
27486      users.push('CJ10001');
27487    }
27488    flag = !users.includes(cjNum);
27489  }
27490  return flag;
27491};
27492var menus = [{
27493  name: 'Orders',
27494  nameTrans: function nameTrans() {
27495    return "".concat(window.i18next.t("common-mycj-menu-3pl-orders", 'Orders'));
27496  },
27497  iconclass: 'bianzu41',
27498  active: false,
27499  code: 'mycj_orders',
27500  childs: [{
27501    name: 'Sales Orders',
27502    nameTrans: function nameTrans() {
27503      return "".concat(window.i18next.t("common-mycj-menu-3pl-sales-orders", 'Sales Orders'));
27504    },
27505    active: false,
27506    code: 'mycj_sales_orders',
27507    route: '/mine/dropshipping/orderList?orderType=3&childType=1'
27508  }, {
27509    name: 'Inventory Orders',
27510    nameTrans: function nameTrans() {
27511      return "".concat(window.i18next.t("common-mycj-menu-3pl-inventory-orders", 'Inventory Orders'));
27512    },
27513    active: false,
27514    code: 'mycj_inventory_orders',
27515    route: '/mine/purchase/purchaseList?orderType=2'
27516  }]
27517}, {
27518  name: 'Fulfillment',
27519  nameTrans: function nameTrans() {
27520    return "".concat(window.i18next.t("common-mycj-menu-3pl-orders-fulfillment", 'Fulfillment Tracking'));
27521  },
27522  iconclass: 'lvyue',
27523  active: false,
27524  code: 'mycj_orders_fulfillment',
27525  childs: [{
27526    name: 'Fulfillment Status',
27527    nameTrans: function nameTrans() {
27528      return "".concat(window.i18next.t("common-mycj-menu-3pl-fulfillment-status", 'Fulfillment Status'));
27529    },
27530    code: 'mycj_orders_tracking',
27531    route: '/mine/orderTracing/list',
27532    active: false
27533  }, {
27534    name: 'Undelivered Orders',
27535    nameTrans: function nameTrans() {
27536      return "".concat(window.i18next.t("common-mycj-menu-3pl-undelivered-orders", 'Undelivered Orders'));
27537    },
27538    code: 'mycj_undelivered_orders',
27539    route: '/mine/undeliveredOrder',
27540    active: false
27541  }, {
27542    name: 'Disputes',
27543    nameTrans: function nameTrans() {
27544      return "".concat(window.i18next.t("common-mycj-menu-3pl-disputes", 'Disputes'));
27545    },
27546    code: 'mycj_disputes',
27547    route: '/mine/dispute/list',
27548    active: false
27549  }]
27550}, {
27551  name: 'Products',
27552  nameTrans: function nameTrans() {
27553    return "".concat(window.i18next.t("common-mycj-menu-3pl-products", 'Products'));
27554  },
27555  iconclass: 'bianzu62',
27556  active: false,
27557  code: 'mycj_products',
27558  childs: [{
27559    name: 'My Products',
27560    nameTrans: function nameTrans() {
27561      return "".concat(window.i18next.t("common-mycj-menu-3pl-my-products", 'My Products'));
27562    },
27563    code: 'mycj_3pl_products',
27564    route: '/my.html#/products-connection/goods',
27565    active: false
27566  }, {
27567    name: 'Store Products',
27568    nameTrans: function nameTrans() {
27569      return "".concat(window.i18next.t("common-mycj-menu-3pl-store-products", 'Store Products'));
27570    },
27571    code: 'mycj_store_products',
27572    route: '/mine/products/connection',
27573    active: false,
27574    tip: function tip() {
27575      return window.i18next.t("common-mycj-menu-3pl-store-products-tip", 'Check here for your store products, where you can make product connections.');
27576    }
27577  }, {
27578    name: 'Custom Packaging',
27579    nameTrans: function nameTrans() {
27580      return "".concat(window.i18next.t("common-mycj-menu-3pl-custom-packaging", 'Custom Packaging'));
27581    },
27582    code: 'mycj_custom_packaging',
27583    route: '/my.html#/regular-packaging',
27584    active: false,
27585    tip: function tip() {
27586      return window.i18next.t("common-mycj-menu-3pl-custom-packaging-tip", 'Purchase or design packaging and connect packages with your products.');
27587    }
27588  }]
27589}, {
27590  name: 'Inventory',
27591  nameTrans: function nameTrans() {
27592    return "".concat(window.i18next.t("common-mycj-menu-3pl-inventory", 'Inventory'));
27593  },
27594  iconclass: 'shouyecangku1',
27595  active: false,
27596  code: 'mycj_products',
27597  childs: [{
27598    name: 'My Inventory',
27599    nameTrans: function nameTrans() {
27600      return "".concat(window.i18next.t("common-mycj-menu-3pl-my-inventory", 'My Inventory'));
27601    },
27602    code: 'mycj_my_inventory',
27603    route: '/mine/myInventoryNew/productInventory',
27604    active: false,
27605    tip: function tip() {
27606      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.');
27607    }
27608  }, {
27609    name: 'Inventory Planner',
27610    nameTrans: function nameTrans() {
27611      return "".concat(window.i18next.t("common-mycj-menu-inventory-planner", 'Inventory Planner'));
27612    },
27613    code: 'mycj_inventory_planner',
27614    route: '/mine/inventoryPlanner',
27615    active: false
27616  }, {
27617    name: 'Shipment',
27618    nameTrans: function nameTrans() {
27619      return "".concat(window.i18next.t("common-mycj-menu-3pl-shipment", 'Shipment'));
27620    },
27621    code: 'mycj_3pl_shipment',
27622    route: '/mine/shipment',
27623    active: false
27624  }]
27625}, {
27626  name: 'Service',
27627  nameTrans: function nameTrans() {
27628    return "".concat(window.i18next.t("common-mycj-menu-3pl-partnership", 'Partnership'));
27629  },
27630  iconclass: 'bianzu71',
27631  active: false,
27632  code: 'mycj_service',
27633  childs: [{
27634    name: 'Credit Service',
27635    nameTrans: function nameTrans() {
27636      return "".concat(window.i18next.t("common-mycj-menu-3pl-credit-service", 'Credit Service'));
27637    },
27638    code: 'mycj_credit_service',
27639    route: '/loancredit',
27640    active: false,
27641    target: '_blank'
27642  }, {
27643    name: 'Affiliate',
27644    nameTrans: function nameTrans() {
27645      return "".concat(window.i18next.t("common-mycj-menu-3pl-affiliate", 'Affiliate'));
27646    },
27647    code: 'mycj_affiliate',
27648    route: 'https://affiliate.cjdropshipping.com/',
27649    active: false,
27650    target: '_blank'
27651  }]
27652}, {
27653  name: 'Authorization',
27654  nameTrans: function nameTrans() {
27655    return "".concat(window.i18next.t("common-mycj-menu-3pl-authorization-new", 'Apps'));
27656  },
27657  iconclass: 'dianpushouquan',
27658  active: false,
27659  special: true,
27660  code: 'mycj_authorization',
27661  childs: [bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.shopify), {
27662    nameTrans: function nameTrans() {
27663      return "".concat(window.i18next.t("common-mycj-menu-shopify"));
27664    },
27665    version: 2,
27666    active: false
27667  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.wed2c), {
27668    nameTrans: function nameTrans() {
27669      return "".concat(window.i18next.t("common-mycj-menu-wed2c"));
27670    },
27671    version: 2,
27672    active: false
27673  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.temu), {
27674    nameTrans: function nameTrans() {
27675      return "".concat(window.i18next.t("common-mycj-menu-temu"));
27676    },
27677    version: 2,
27678    type: 'authorize',
27679    active: false
27680  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.temu_us_local), {
27681    nameTrans: function nameTrans() {
27682      return "".concat(window.i18next.t("common-mycj-menu-temu-us-local"));
27683    },
27684    version: 2,
27685    type: 'authorize',
27686    active: false
27687  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.temu_certified_overseas), {
27688    nameTrans: function nameTrans() {
27689      return "".concat(window.i18next.t("common-mycj-menu-temu-certified-overseas"));
27690    },
27691    version: 2,
27692    type: 'authorize',
27693    active: false
27694  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.shein), {
27695    nameTrans: function nameTrans() {
27696      return "".concat(window.i18next.t("common-mycj-menu-shein"));
27697    },
27698    version: 2,
27699    type: 'authorize',
27700    active: false
27701  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.tiktok), {
27702    nameTrans: function nameTrans() {
27703      return "".concat(window.i18next.t("common-mycj-menu-tiktok"));
27704    },
27705    version: 2,
27706    type: 'authorize',
27707    active: false
27708  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.tiktok_us), {
27709    nameTrans: function nameTrans() {
27710      return "".concat(window.i18next.t("common-mycj-menu-tiktok-us"));
27711    },
27712    version: 2,
27713    type: 'authorize',
27714    active: false
27715  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.tiktok_us_cross), {
27716    nameTrans: function nameTrans() {
27717      return "".concat(window.i18next.t("common-mycj-menu-tiktok-us-cross"));
27718    },
27719    version: 2,
27720    type: 'authorize',
27721    active: false
27722  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.woocommerce), {
27723    nameTrans: function nameTrans() {
27724      return "".concat(window.i18next.t("common-mycj-menu-woocommerce"));
27725    },
27726    version: 2,
27727    type: 'authorize',
27728    active: false
27729  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.ebay), {
27730    nameTrans: function nameTrans() {
27731      return "".concat(window.i18next.t("common-mycj-menu-ebay"));
27732    },
27733    version: 2,
27734    type: 'authorize',
27735    active: false
27736  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.api), {
27737    nameTrans: function nameTrans() {
27738      return "".concat(window.i18next.t("common-mycj-menu-api"));
27739    },
27740    version: 2,
27741    type: 'authorize',
27742    active: false
27743  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.etsy), {
27744    nameTrans: function nameTrans() {
27745      return "".concat(window.i18next.t("common-mycj-menu-etsy"));
27746    },
27747    version: 2,
27748    type: 'authorize',
27749    active: false
27750  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.aliexpress), {
27751    nameTrans: function nameTrans() {
27752      return "".concat(window.i18next.t("common-mycj-menu-aliexpress"));
27753    },
27754    version: 2,
27755    type: 'authorize',
27756    active: false
27757  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.wix), {
27758    nameTrans: function nameTrans() {
27759      return "".concat(window.i18next.t("common-mycj-menu-wix"));
27760    },
27761    version: 2,
27762    type: 'authorize',
27763    active: false
27764  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.lazada), {
27765    nameTrans: function nameTrans() {
27766      return "".concat(window.i18next.t("common-mycj-menu-lazada"));
27767    },
27768    version: 2,
27769    type: 'authorize',
27770    active: false
27771  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.shopee), {
27772    nameTrans: function nameTrans() {
27773      return "".concat(window.i18next.t("common-mycj-menu-shopee"));
27774    },
27775    version: 2,
27776    type: 'authorize',
27777    active: false
27778  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.squarespace), {
27779    nameTrans: function nameTrans() {
27780      return "".concat(window.i18next.t("common-mycj-menu-squarespace"));
27781    },
27782    version: 2,
27783    type: 'authorize',
27784    active: false
27785  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.shoplazza), {
27786    nameTrans: function nameTrans() {
27787      return "".concat(window.i18next.t("common-mycj-menu-shoplazza"));
27788    },
27789    version: 2,
27790    type: 'authorize',
27791    active: false
27792  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.magento), {
27793    nameTrans: function nameTrans() {
27794      return "".concat(window.i18next.t("common-mycj-menu-magento"));
27795    },
27796    version: 2,
27797    type: 'authorize',
27798    active: false
27799  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.bigcommerce), {
27800    nameTrans: function nameTrans() {
27801      return "".concat(window.i18next.t("common-mycj-menu-bigcommerce"));
27802    },
27803    version: 2,
27804    type: 'authorize',
27805    active: false
27806  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.prestashop), {
27807    nameTrans: function nameTrans() {
27808      return "".concat(window.i18next.t("common-mycj-menu-prestashop"));
27809    },
27810    version: 2,
27811    type: 'authorize',
27812    active: false
27813  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.allvalue), {
27814    nameTrans: function nameTrans() {
27815      return "".concat(window.i18next.t("common-mycj-menu-allvalue"));
27816    },
27817    version: 2,
27818    type: 'authorize',
27819    active: false
27820  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.nuvemshop), {
27821    nameTrans: function nameTrans() {
27822      return "".concat(window.i18next.t("common-mycj-menu-nuvemshop"));
27823    },
27824    version: 2,
27825    type: 'authorize',
27826    active: false
27827  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.mercado), {
27828    nameTrans: function nameTrans() {
27829      return "".concat(window.i18next.t("common-mycj-menu-mercado"));
27830    },
27831    version: 2,
27832    type: 'authorize',
27833    active: false
27834  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.shipstation), {
27835    nameTrans: function nameTrans() {
27836      return "".concat(window.i18next.t("common-mycj-menu-shipstation"));
27837    },
27838    version: 2,
27839    type: 'authorize',
27840    active: false
27841  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.orangeconnex), {
27842    nameTrans: function nameTrans() {
27843      return "".concat(window.i18next.t("common-mycj-menu-orangeconnex"));
27844    },
27845    version: 2,
27846    type: 'authorize',
27847    active: false
27848  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORMAll */.Z8.others), {
27849    nameTrans: function nameTrans() {
27850      return "".concat(window.i18next.t("common-mycj-menu-others"));
27851    },
27852    version: 2,
27853    type: 'authorize',
27854    active: false
27855  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.mabang), {
27856    nameTrans: function nameTrans() {
27857      return "".concat(window.i18next.t("common-mycj-menu-mabang"));
27858    },
27859    version: 2,
27860    type: 'authorize',
27861    active: false
27862  }), bar_config_cf_assign(bar_config_cf_assign({}, platform_show/* PLATFORM */.i9.miaoshou), {
27863    nameTrans: function nameTrans() {
27864      return "".concat(window.i18next.t("common-mycj-menu-miaoshou"));
27865    },
27866    version: 2,
27867    type: 'authorize',
27868    active: false
27869  })]
27870}, {
27871  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'))),
27872  nameVal: "My CJ",
27873  nameTrans: function nameTrans() {
27874    return window.i18next.t("common-mycj-3pl-my-account", 'My Account');
27875  },
27876  iconclass: 'bianzu32',
27877  active: false,
27878  childs: [{
27879    name: 'Settings',
27880    nameTrans: function nameTrans() {
27881      return "".concat(window.i18next.t("common-mycj-menu-3pl-setting", 'Settings'));
27882    },
27883    code: 'mycj_profile',
27884    route: '/my.html#/profile/info',
27885    active: false
27886  }, {
27887    name: 'Ticket',
27888    nameTrans: function nameTrans() {
27889      return "".concat(window.i18next.t("common-mycj-menu-3pl-ticket", 'Ticket'));
27890    },
27891    code: 'mycj_ticket',
27892    route: '/mine/ticket',
27893    active: false
27894  }, {
27895    name: 'Wallet',
27896    nameTrans: function nameTrans() {
27897      return "".concat(window.i18next.t("common-mycj-menu-3pl-wallet", 'Wallet'));
27898    },
27899    code: 'mycj_wallet',
27900    route: '/mine/wallet',
27901    active: false
27902  }, {
27903    name: 'Export List',
27904    nameTrans: function nameTrans() {
27905      return "".concat(window.i18next.t("common-mycj-menu-3pl-export-list", 'Export List'));
27906    },
27907    iconclass: 'liwuicon_',
27908    code: 'mycj_export_list',
27909    route: '/mine/exportList',
27910    active: false
27911  }]
27912}];
27913var menuPath = {};
27914var menuNames = {};
27915function loops(list, parent) {
27916  return (list || []).map(function (_a) {
27917    var route = _a.route,
27918      childs = _a.childs,
27919      name = _a.name,
27920      version = _a.version;
27921    var _route = route;
27922    var node = menuNames[name] = menuPath[_route] = {
27923      parent: parent,
27924      name: name,
27925      version: version,
27926      route: _route
27927    };
27928    node['childs'] = loops(childs, node);
27929    return node;
27930  });
27931}
27932function getPath(name) {
27933  var obj = menuNames[name];
27934  var arr = [];
27935  while (obj && obj.name) {
27936    if (obj.childs && obj.childs[0]) {
27937      arr.push(obj.name);
27938    } else {
27939      arr.push(obj.name);
27940    }
27941    if (!obj.parent) break;
27942    obj = obj.parent;
27943  }
27944  return arr;
27945}
27946loops(menus, null);
27947var createAuthTree = function createAuthTree() {
27948  var authMapByRoute = [];
27949  var _fun = function fun(list) {
27950    return list.map(function (l) {
27951      if (l.route && l.code) authMapByRoute.push({
27952        name: l.name,
27953        code: l.code,
27954        route: l.route
27955      });
27956      return {
27957        name: l.name,
27958        code: l.code,
27959        route: l.route,
27960        children: l.childs && _fun(l.childs)
27961      };
27962    });
27963  };
27964  return [_fun(menus), authMapByRoute];
27965};
27966/* harmony default export */ const bar_config_cf = ((/* unused pure expression or super */ null && (createAuthTree)));
27967// EXTERNAL MODULE: ./src/components/Menu/bar.config.ts
27968var bar_config = __webpack_require__(34692);
27969;// ./src/components/Menu/hooks/useShopifyUser.ts
27970
27971function useShopifyUser(server_siteCheck) {
27972  var _a, _b, _c, _d;
27973  var isQSShopify = ((_a = js_cookie/* default */.A.get('SHOWMESSAGE')) === null || _a === void 0 ? void 0 : _a.indexOf('B')) > -1;
27974  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'));
27975  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'));
27976}
27977// EXTERNAL MODULE: ./src/common/store.ts
27978var store = __webpack_require__(4703);
27979;// ./src/components/Menu/bar.config.qs.ts
27980var bar_config_qs_assign = undefined && undefined.__assign || function () {
27981  bar_config_qs_assign = Object.assign || function (t) {
27982    for (var s, i = 1, n = arguments.length; i < n; i++) {
27983      s = arguments[i];
27984      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
27985    }
27986    return t;
27987  };
27988  return bar_config_qs_assign.apply(this, arguments);
27989};
27990var bar_config_qs_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
27991  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
27992    if (ar || !(i in from)) {
27993      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
27994      ar[i] = from[i];
27995    }
27996  }
27997  return to.concat(ar || Array.prototype.slice.call(from));
27998};
27999var bar_config_qs_a;
28000
28001
28002
28003
28004var isFromErp = store/* default */.A.get('loginfromerp');
28005var showInventoryOrder = function showInventoryOrder() {
28006  var _a, _b;
28007  if (typeof window === 'undefined') {
28008    return false;
28009  }
28010  var inventoryUser = ((_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('inventory-user')) || [];
28011  var cjNum = (_b = window === null || window === void 0 ? void 0 : window.loginInfoController) === null || _b === void 0 ? void 0 : _b.info('num');
28012  return inventoryUser.includes(cjNum);
28013};
28014var bar_config_qs_menus = [{
28015  name: 'Products',
28016  nameTrans: function nameTrans() {
28017    return "".concat(window.i18next.t("common-mycj-menu-products"));
28018  },
28019  iconclass: 'zuocedaohangshangpin-QS',
28020  active: false,
28021  code: 'mycj_products',
28022  childs: bar_config_qs_spreadArray([{
28023    name: 'My Products',
28024    nameTrans: function nameTrans() {
28025      return "".concat(window.i18next.t("common-mycj-menu-my-products"));
28026    },
28027    code: 'mycj_my_products',
28028    route: '/mine/products/myproducts',
28029    active: false
28030  }, {
28031    name: 'Store Products',
28032    nameTrans: function nameTrans() {
28033      return "".concat(window.i18next.t("common-mycj-menu-store-products"));
28034    },
28035    code: 'mycj_store_products',
28036    route: '/mine/products/connection',
28037    active: false,
28038    tip: function tip() {
28039      return window.i18next.t("common-mycj-menu-store-products-tip");
28040    }
28041  }, {
28042    name: 'Listing Records',
28043    nameTrans: function nameTrans() {
28044      return "".concat(window.i18next.t("common-mycj-menu-listing-records"));
28045    },
28046    active: false,
28047    childs: [{
28048      name: 'Products Records',
28049      nameTrans: function nameTrans() {
28050        return "".concat(window.i18next.t("common-mycj-menu-products-records"));
28051      },
28052      route: '/my.html#/products-connection/history',
28053      code: 'mycj_products_records',
28054      active: false
28055    }, {
28056      name: 'Video Records',
28057      nameTrans: function nameTrans() {
28058        return "".concat(window.i18next.t("common-mycj-menu-video-records"));
28059      },
28060      code: 'mycj_video_list',
28061      route: '/mine/listVideos',
28062      active: false
28063    }]
28064  }], isFromErp || showInventoryOrder() ? [{
28065    name: 'My Inventory',
28066    nameTrans: function nameTrans() {
28067      return "".concat(window.i18next.t("common-mycj-menu-my-inventory"));
28068    },
28069    code: 'mycj_my_inventory',
28070    route: '/mine/myInventoryNew/productInventory',
28071    active: false,
28072    tip: function tip() {
28073      return window.i18next.t("common-mycj-menu-my-inventory-tip");
28074    }
28075  }, {
28076    name: 'Inventory Planner',
28077    nameTrans: function nameTrans() {
28078      return "".concat(window.i18next.t("common-mycj-menu-inventory-planner", 'Inventory Planner'));
28079    },
28080    code: 'mycj_inventory_planner',
28081    route: '/mine/inventoryPlanner',
28082    active: false
28083  }] : [], true)
28084}, {
28085  name: 'Orders',
28086  nameTrans: function nameTrans() {
28087    return "".concat(window.i18next.t("common-mycj-menu-orders"));
28088  },
28089  iconclass: 'zuocedaohangdingdan-QS',
28090  active: false,
28091  code: 'mycj_orders',
28092  childs: bar_config_qs_spreadArray(bar_config_qs_spreadArray([{
28093    name: 'Store Orders',
28094    nameTrans: function nameTrans() {
28095      return "".concat(window.i18next.t("common-mycj-menu-store-orders"));
28096    },
28097    active: false,
28098    code: 'mycj_store_orders',
28099    route: '/mine/dropshipping/orderList?orderType=3&childType=1'
28100  }, {
28101    name: 'Sample Orders',
28102    nameTrans: function nameTrans() {
28103      return "".concat(window.i18next.t("common-mycj-menu-sample-orders"));
28104    },
28105    active: false,
28106    code: 'mycj_sample_orders',
28107    route: '/mine/purchase/purchaseList?orderType=1'
28108  }, {
28109    name: 'Wholesale Orders',
28110    nameTrans: function nameTrans() {
28111      return "".concat(window.i18next.t("common-mycj-menu-wholesale-orders"));
28112    },
28113    active: false,
28114    code: 'mycj_wholesale_orders',
28115    route: '/mine/purchase/purchaseList?orderType=3'
28116  }], isFromErp || showInventoryOrder() ? [{
28117    name: 'Inventory Orders',
28118    nameTrans: function nameTrans() {
28119      return "".concat(window.i18next.t("common-mycj-menu-inventory-orders"));
28120    },
28121    active: false,
28122    code: 'mycj_inventory_orders',
28123    route: '/mine/purchase/purchaseList?orderType=2'
28124  }] : [], true), [{
28125    name: 'Undelivered Orders',
28126    nameTrans: function nameTrans() {
28127      return "".concat(window.i18next.t("common-mycj-menu-undelivered-orders"));
28128    },
28129    code: 'mycj_undelivered_orders',
28130    route: '/mine/undeliveredOrder',
28131    active: false
28132  }, {
28133    name: 'Disputes',
28134    nameTrans: function nameTrans() {
28135      return "".concat(window.i18next.t("common-mycj-menu-disputes"));
28136    },
28137    code: 'mycj_disputes',
28138    route: '/mine/dispute/list',
28139    active: false
28140  }], false)
28141}, {
28142  name: 'Service',
28143  nameTrans: function nameTrans() {
28144    return "".concat(window.i18next.t("common-mycj-menu-service"));
28145  },
28146  iconclass: 'zuocedaohangfuwu-QS',
28147  active: false,
28148  code: 'mycj_service',
28149  childs: bar_config_qs_spreadArray(bar_config_qs_spreadArray([], isFromErp ? [{
28150    name: '3PL Fulfillment',
28151    nameTrans: function nameTrans() {
28152      return "".concat(window.i18next.t("common-mycj-menu-3pl"));
28153    },
28154    code: 'mycj_3pl',
28155    active: false,
28156    tip: function tip() {
28157      var _a;
28158      return window.i18next.t("common-mycj-menu-3pl-tip", {
28159        siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
28160      });
28161    },
28162    childs: [{
28163      name: 'Products',
28164      nameTrans: function nameTrans() {
28165        return "".concat(window.i18next.t("common-mycj-menu-products"));
28166      },
28167      code: 'mycj_3pl_products',
28168      route: '/my.html#/products-connection/goods',
28169      active: false
28170    }, {
28171      name: 'Shipment',
28172      nameTrans: function nameTrans() {
28173        return "".concat(window.i18next.t("common-mycj-menu-shipment"));
28174      },
28175      code: 'mycj_3pl_shipment',
28176      route: '/mine/shipment',
28177      active: false
28178    }, {
28179      name: '24h Fulfillment',
28180      nameTrans: function nameTrans() {
28181        return "".concat(window.i18next.t("common-mycj-menu-24h-fulfillment", '24h Fulfillment'));
28182      },
28183      code: 'mycj_24h_fulfillment',
28184      route: '/fulfillmentservice',
28185      active: false
28186    }]
28187  }] : [], true), [{
28188    name: 'Sourcing',
28189    nameTrans: function nameTrans() {
28190      return "".concat(window.i18next.t("common-mycj-menu-sourcing"));
28191    },
28192    code: 'mycj_sourcing',
28193    route: '/mine/sourcing/list',
28194    active: false,
28195    tip: function tip() {
28196      return window.i18next.t("common-mycj-menu-sourcing-tip");
28197    }
28198  }, {
28199    name: 'Custom Packaging',
28200    nameTrans: function nameTrans() {
28201      return "".concat(window.i18next.t("common-mycj-menu-custom-packaging"));
28202    },
28203    code: 'mycj_custom_packaging',
28204    route: '/my.html#/regular-packaging',
28205    active: false,
28206    tip: function tip() {
28207      return window.i18next.t("common-mycj-menu-custom-packaging-tip");
28208    }
28209  }, {
28210    name: 'Print on Demand',
28211    nameTrans: function nameTrans() {
28212      return "".concat(window.i18next.t("common-mycj-menu-print-on-demand"));
28213    },
28214    active: false,
28215    tip: function tip() {
28216      return window.i18next.t("common-mycj-menu-print-on-demand-tip");
28217    },
28218    childs: [{
28219      name: "Buyer's Design",
28220      nameTrans: function nameTrans() {
28221        return "".concat(window.i18next.t("common-mycj-menu-buyers-design"));
28222      },
28223      iconclass: 'maijiaxinxi',
28224      code: 'mycj_buyers_design',
28225      route: '/my.html#/pod/buyer-design',
28226      active: false,
28227      tipName: 'Connected POD products in your store.'
28228    }, {
28229      name: 'Design Myself',
28230      nameTrans: function nameTrans() {
28231        return "".concat(window.i18next.t("common-mycj-menu-design-myself"));
28232      },
28233      iconclass: 'maijiazhongxin_chanpinkumingjiangku',
28234      code: 'mycj_design_myself',
28235      route: '/my.html#/pod/design-myself',
28236      active: false,
28237      tipName: 'Your designed products on CJ.'
28238    }]
28239  }], false)
28240}, {
28241  name: 'Authorization',
28242  nameTrans: function nameTrans() {
28243    return "".concat(window.i18next.t("common-mycj-menu-authorization"));
28244  },
28245  iconclass: 'zuocedaohangshouquandianpu-QS',
28246  active: false,
28247  special: true,
28248  code: 'mycj_authorization',
28249  childs: [bar_config_qs_assign(bar_config_qs_assign({}, platform_show/* PLATFORM */.i9.shopify), {
28250    nameTrans: function nameTrans() {
28251      return "".concat(window.i18next.t("common-mycj-menu-shopify"));
28252    },
28253    version: 2,
28254    active: false
28255  })]
28256}, {
28257  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'))),
28258  nameVal: "My CJ",
28259  nameTrans: function nameTrans() {
28260    var _a;
28261    return window.i18next.t("common-mycj-my-site", {
28262      siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
28263    });
28264  },
28265  iconclass: 'a-zuocedaohangMYQS-QS',
28266  active: false,
28267  childs: bar_config_qs_spreadArray(bar_config_qs_spreadArray([{
28268    name: 'Profile',
28269    nameTrans: function nameTrans() {
28270      return "".concat(window.i18next.t("common-mycj-menu-profile"));
28271    },
28272    code: 'mycj_profile',
28273    route: '/my.html#/profile/info',
28274    active: false
28275  }, {
28276    name: 'Ticket',
28277    nameTrans: function nameTrans() {
28278      return "".concat(window.i18next.t("common-mycj-menu-ticket"));
28279    },
28280    code: 'mycj_ticket',
28281    route: '/mine/ticket',
28282    active: false
28283  }], !useShopifyUser() ? [{
28284    name: 'Wallet',
28285    nameTrans: function nameTrans() {
28286      return "".concat(window.i18next.t("common-mycj-menu-wallet"));
28287    },
28288    code: 'mycj_wallet',
28289    route: '/mine/wallet',
28290    active: false
28291  }] : [], true), [{
28292    name: 'Browsing History',
28293    nameTrans: function nameTrans() {
28294      return "".concat(window.i18next.t("common-mycj-menu-browsing-history"));
28295    },
28296    code: 'mycj_browsing_history',
28297    route: '/viewHistory',
28298    active: false
28299  }, {
28300    name: 'Export List',
28301    nameTrans: function nameTrans() {
28302      return "".concat(window.i18next.t("common-mycj-menu-export-list"));
28303    },
28304    iconclass: 'liwuicon_',
28305    code: 'mycj_export_list',
28306    route: '/mine/exportList',
28307    active: false
28308  }, {
28309    name: 'Sub-account',
28310    nameTrans: function nameTrans() {
28311      return "".concat(window.i18next.t("common-mycj-menu-sub-account"));
28312    },
28313    code: 'mycj_sub_account',
28314    route: '/my.html#/accountManage',
28315    active: false
28316  }, {
28317    name: 'Order-video',
28318    nameTrans: function nameTrans() {
28319      return "".concat(window.i18next.t("common-mycj-menu-order-list-video"));
28320    },
28321    code: 'mycj_order-video',
28322    route: '/mine/orderVideo',
28323    active: false,
28324    isHide: bar_config/* isWarehouseOperationVideoUser */.fO
28325  }], false)
28326}];
28327var bar_config_qs_menuPath = {};
28328var bar_config_qs_menuNames = {};
28329function bar_config_qs_loops(list, parent) {
28330  return (list || []).map(function (_a) {
28331    var route = _a.route,
28332      childs = _a.childs,
28333      name = _a.name,
28334      version = _a.version;
28335    var _route = route;
28336    var node = bar_config_qs_menuNames[name] = bar_config_qs_menuPath[_route] = {
28337      parent: parent,
28338      name: name,
28339      version: version,
28340      route: _route
28341    };
28342    node['childs'] = bar_config_qs_loops(childs, node);
28343    return node;
28344  });
28345}
28346function bar_config_qs_getPath(name) {
28347  var obj = bar_config_qs_menuNames[name];
28348  var arr = [];
28349  while (obj && obj.name) {
28350    if (obj.childs && obj.childs[0]) {
28351      arr.push(obj.name);
28352    } else {
28353      arr.push(obj.name);
28354    }
28355    if (!obj.parent) break;
28356    obj = obj.parent;
28357  }
28358  return arr;
28359}
28360bar_config_qs_loops(bar_config_qs_menus, null);
28361var bar_config_qs_createAuthTree = function createAuthTree() {
28362  var authMapByRoute = [];
28363  var _fun = function fun(list) {
28364    return list.map(function (l) {
28365      if (l.route && l.code) authMapByRoute.push({
28366        name: l.name,
28367        code: l.code,
28368        route: l.route
28369      });
28370      return {
28371        name: l.name,
28372        code: l.code,
28373        route: l.route,
28374        children: l.childs && _fun(l.childs)
28375      };
28376    });
28377  };
28378  return [_fun(bar_config_qs_menus), authMapByRoute];
28379};
28380/* harmony default export */ const bar_config_qs = ((/* unused pure expression or super */ null && (bar_config_qs_createAuthTree)));
28381;// ./src/components/CjProductDetail/common/isQs.ts
28382
28383function isQs(siteCheck) {
28384  if (siteCheck === void 0) {
28385    siteCheck = null;
28386  }
28387  if (common/* isBrowser */.Bd) return window.siteCheck.isSite('QS');
28388  return siteCheck.isSite('QS');
28389}
28390;// ./src/components/CjProductDetail/common/isAr.ts
28391
28392function isAr(siteCheck) {
28393  if (siteCheck === void 0) {
28394    siteCheck = null;
28395  }
28396  if (isBrowser) return window.siteCheck.isSite('AR');
28397  return siteCheck.isSite('AR');
28398}
28399;// ./src/components/CjProductDetail/common/isZs.ts
28400
28401function isZs(siteCheck) {
28402  if (siteCheck === void 0) {
28403    siteCheck = null;
28404  }
28405  if (isBrowser) return window.siteCheck.isSite('ZS');
28406  return siteCheck.isSite('ZS');
28407}
28408;// ./src/components/CjProductDetail/common/index.ts
28409
28410
28411
28412
28413;// ./src/components/Menu/hooks/useIsCF.ts
28414function useIsCf(server_siteCheck) {
28415  var _a, _b, _c;
28416  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;
28417  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';
28418}
28419;// ./src/common/deep-clone.ts
28420function _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); }
28421var isObject = function isObject(obj) {
28422  return obj && _typeof(obj) === 'object' && !isArray(obj);
28423};
28424var isFunction = function isFunction(obj) {
28425  return obj && typeof obj === 'function';
28426};
28427var isArray = function isArray(obj) {
28428  return obj && Array.isArray(obj);
28429};
28430var isRegExp = function isRegExp(obj) {
28431  return obj && obj instanceof RegExp;
28432};
28433var _deepClone = function deepClone(obj) {
28434  var res;
28435  if (isArray(obj)) {
28436    res = [];
28437    for (var _i = 0, obj_1 = obj; _i < obj_1.length; _i++) {
28438      var item = obj_1[_i];
28439      if ((isObject(item) || isArray(item)) && !isRegExp(item)) {
28440        res.push(_deepClone(item));
28441      } else {
28442        res.push(item);
28443      }
28444    }
28445  } else if (isObject(obj)) {
28446    res = {};
28447    var _keys = Object.keys(obj);
28448    for (var _a = 0, _keys_1 = _keys; _a < _keys_1.length; _a++) {
28449      var key = _keys_1[_a];
28450      var item = obj[key];
28451      if ((isObject(item) || isArray(item)) && !isRegExp(item)) {
28452        res[key] = _deepClone(item);
28453      } else {
28454        res[key] = item;
28455      }
28456    }
28457  }
28458  return res;
28459};
28460/* harmony default export */ const deep_clone = (_deepClone);
28461// EXTERNAL MODULE: ./src/components/Menu/hooks/useIsZS.ts
28462var useIsZS = __webpack_require__(60488);
28463// EXTERNAL MODULE: ./src/components/Menu/bar.config.zs.ts
vendor: 4,298 bytes, lines 28464-28625
28464var bar_config_zs = __webpack_require__(81943);
28465;// ./src/common/platforms-sort-show.ts
28466var platforms_sort_show_assign = undefined && undefined.__assign || function () {
28467  platforms_sort_show_assign = Object.assign || function (t) {
28468    for (var s, i = 1, n = arguments.length; i < n; i++) {
28469      s = arguments[i];
28470      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
28471    }
28472    return t;
28473  };
28474  return platforms_sort_show_assign.apply(this, arguments);
28475};
28476var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
28477  function adopt(value) {
28478    return value instanceof P ? value : new P(function (resolve) {
28479      resolve(value);
28480    });
28481  }
28482  return new (P || (P = Promise))(function (resolve, reject) {
28483    function fulfilled(value) {
28484      try {
28485        step(generator.next(value));
28486      } catch (e) {
28487        reject(e);
28488      }
28489    }
28490    function rejected(value) {
28491      try {
28492        step(generator["throw"](value));
28493      } catch (e) {
28494        reject(e);
28495      }
28496    }
28497    function step(result) {
28498      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
28499    }
28500    step((generator = generator.apply(thisArg, _arguments || [])).next());
28501  });
28502};
28503var __generator = undefined && undefined.__generator || function (thisArg, body) {
28504  var _ = {
28505      label: 0,
28506      sent: function sent() {
28507        if (t[0] & 1) throw t[1];
28508        return t[1];
28509      },
28510      trys: [],
28511      ops: []
28512    },
28513    f,
28514    y,
28515    t,
28516    g;
28517  return g = {
28518    next: verb(0),
28519    "throw": verb(1),
28520    "return": verb(2)
28521  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
28522    return this;
28523  }), g;
28524  function verb(n) {
28525    return function (v) {
28526      return step([n, v]);
28527    };
28528  }
28529  function step(op) {
28530    if (f) throw new TypeError("Generator is already executing.");
28531    while (g && (g = 0, op[0] && (_ = 0)), _) try {
28532      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;
28533      if (y = 0, t) op = [op[0] & 2, t.value];
28534      switch (op[0]) {
28535        case 0:
28536        case 1:
28537          t = op;
28538          break;
28539        case 4:
28540          _.label++;
28541          return {
28542            value: op[1],
28543            done: false
28544          };
28545        case 5:
28546          _.label++;
28547          y = op[1];
28548          op = [0];
28549          continue;
28550        case 7:
28551          op = _.ops.pop();
28552          _.trys.pop();
28553          continue;
28554        default:
28555          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
28556            _ = 0;
28557            continue;
28558          }
28559          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
28560            _.label = op[1];
28561            break;
28562          }
28563          if (op[0] === 6 && _.label < t[1]) {
28564            _.label = t[1];
28565            t = op;
28566            break;
28567          }
28568          if (t && _.label < t[2]) {
28569            _.label = t[2];
28570            _.ops.push(op);
28571            break;
28572          }
28573          if (t[2]) _.ops.pop();
28574          _.trys.pop();
28575          continue;
28576      }
28577      op = body.call(thisArg, _);
28578    } catch (e) {
28579      op = [6, e];
28580      y = 0;
28581    } finally {
28582      f = t = 0;
28583    }
28584    if (op[0] & 5) throw op[1];
28585    return {
28586      value: op[0] ? op[1] : void 0,
28587      done: true
28588    };
28589  }
28590};
28591var platforms_sort_show_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
28592  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
28593    if (ar || !(i in from)) {
28594      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
28595      ar[i] = from[i];
28596    }
28597  }
28598  return to.concat(ar || Array.prototype.slice.call(from));
28599};
28600
28601
28602
28603
28604
28605
28606
28607
28608
28609
28610
28611
28612
28613var EBusinessType;
28614(function (EBusinessType) {
28615  EBusinessType[EBusinessType["ERP"] = 0] = "ERP";
28616  EBusinessType[EBusinessType["CROSS"] = 1] = "CROSS";
28617})(EBusinessType || (EBusinessType = {}));
28618var PlatformSortShow = function () {
28619  function PlatformSortShow(axios) {
28620    var _a, _b, _c;
28621    this.platforms = [];
28622    this.allPlatforms = [];
28623    this.platformsResponse = [];
28624    this.showAuthorizeData = show_authorize_list/* default */.A;
28625    this.showAuthorizeAllData = show_authorize_all_list;
28626    var initialMenus = isQs() ? bar_config_qs_menus : bar_config/* menus */.T_;
28627    if ((0,useIsZS/* default */.A)()) initialMenus = bar_config_zs/* menus */.T_;
28628    if (useIsCf()) initialMenus = menus;
28629    this.platforms = ((_b = (_a = initialMenus === null || initialMenus === void 0 ? void 0 : initialMenus.find(function (ele) {
28630      return ele.name === 'Authorization';
28631    })) === null || _a === void 0 ? void 0 : _a.childs) === null || _b === void 0 ? void 0 : _b.filter(function (item) {
28632      return !['others'].includes(item.key);
28633    })) || [];
28634    this.allPlatforms = ((_c = initialMenus === null || initialMenus === void 0 ? void 0 : initialMenus.find(function (ele) {
28635      return ele.name === 'Authorization';
28636    })) === null || _c === void 0 ? void 0 : _c.childs) || [];
28637    this.axios = axios;
28638  }
28639  PlatformSortShow.prototype.handler = function () {
28640    return __awaiter(this, void 0, void 0, function () {
28641      var data, keys, platformCount, i, item;
28642      return __generator(this, function (_a) {
28643        switch (_a.label) {
28644          case 0:
28645            return [4, this.getPlatformsByUser()];
28646          case 1:
28647            data = _a.sent();
28648            if (data.length > 0) {
28649              this.platformsResponse = data === null || data === void 0 ? void 0 : data.map(function (ele) {
28650                return platforms_sort_show_assign(platforms_sort_show_assign({}, ele), platform_show/* PLATFORMAll */.Z8[ele.shopPlatformType] || {});
28651              });
28652              keys = [];
28653              platformCount = {};
28654              for (i = 0; i < data.length; i++) {
28655                item = data[i];
28656                if (this.showAuthorizeAllData[item.shopPlatformType]) {
28657                  this.showAuthorizeAllData[item.shopPlatformType].isAuthor = item.isAuthor;
28658                  this.showAuthorizeAllData[item.shopPlatformType].isShow = item.isShow;
28659                  keys.push(item.shopPlatformType);
28660                  platformCount[item.shopPlatformType] = item.count;
28661                }
28662              }
28663              this.modifiedPlatformSort(keys, data, platformCount);
28664              this.handlerFilterPlatforms();
28665            }
28666            return [2];
28667        }
28668      });
28669    });
28670  };
28671  PlatformSortShow.prototype.getPlatformsByUser = function () {
28672    return __awaiter(this, void 0, void 0, function () {
28673      var data;
28674      return __generator(this, function (_a) {
28675        switch (_a.label) {
28676          case 0:
28677            return [4, (0,services/* getAuthorizeShowList */.vG)(this.axios)];
28678          case 1:
28679            data = _a.sent();
28680            if (!data || (data === null || data === void 0 ? void 0 : data.length) == 0) return [2, []];
28681            return [2, data];
28682        }
28683      });
28684    });
28685  };
28686  PlatformSortShow.prototype.modifiedPlatformSort = function (keys, data, platformCount) {
28687    if (keys === void 0) {
28688      keys = [];
28689    }
28690    if (data === void 0) {
28691      data = [];
28692    }
28693    var oldPlatforms = platforms_sort_show_spreadArray([], this.allPlatforms, true);
28694    if (keys.length > 0) {
28695      var temp = [];
28696      var _loop_1 = function _loop_1(i) {
28697        var item = oldPlatforms.find(function (ele) {
28698          if (keys[i] == 'tiktok_us' || keys[i] == 'tiktok_us_cross') {
28699            return ele.name.toLocaleLowerCase().replaceAll('-', '_') == keys[i];
28700          }
28701          return ele.name.toLocaleLowerCase() == keys[i];
28702        });
28703        if (item) {
28704          item.count = keys[i] === 'etsy' ? 0 : platformCount[keys[i]];
28705          var userData = data.find(function (ele) {
28706            return ele.shopPlatformType == keys[i];
28707          });
28708          temp.push(platforms_sort_show_assign({
28709            businessType: userData === null || userData === void 0 ? void 0 : userData.businessType
28710          }, item));
28711        }
28712      };
28713      for (var i = 0; i < keys.length; i++) {
28714        _loop_1(i);
28715      }
28716      this.platforms = platforms_sort_show_spreadArray([], temp, true);
28717    }
28718  };
28719  PlatformSortShow.prototype.handlerFilterPlatforms = function () {
28720    var _this = this;
28721    var oldPlatforms = platforms_sort_show_spreadArray([], this.platforms, true);
28722    this.platforms = oldPlatforms.filter(function (ele) {
28723      var isShowAuthorize = isShowAuthorizeType(_this.showAuthorizeData, ele.name);
28724      return isShowAuthorize;
28725    });
28726    this.allPlatforms = oldPlatforms.filter(function (ele) {
28727      var isShowAuthorize = isShowAuthorizeType(_this.showAuthorizeAllData, ele.name);
28728      return isShowAuthorize;
28729    });
28730  };
28731  PlatformSortShow.prototype.showAppStore = function () {
28732    var _a, _b;
28733    return __awaiter(this, void 0, void 0, function () {
28734      var data, initialMenus, oldAllPlatforms, temp, _loop_2, this_1, i, shopifyIndex, shopify;
28735      return __generator(this, function (_c) {
28736        switch (_c.label) {
28737          case 0:
28738            return [4, (0,services/* getAppStoreList */.Jv)(this.axios)];
28739          case 1:
28740            data = _c.sent();
28741            if ((data === null || data === void 0 ? void 0 : data.length) > 0) {
28742              this.platformsResponse = data === null || data === void 0 ? void 0 : data.filter(function (ele) {
28743                return !!ele.isAuthor;
28744              }).map(function (ele) {
28745                return platforms_sort_show_assign(platforms_sort_show_assign({}, ele), platform_show/* PLATFORMAll */.Z8[ele.shopPlatformType] || {});
28746              });
28747              initialMenus = isQs() ? bar_config_qs_menus : bar_config/* menus */.T_;
28748              oldAllPlatforms = ((_b = (_a = deep_clone(initialMenus)) === null || _a === void 0 ? void 0 : _a.find(function (ele) {
28749                return ele.name === 'Authorization';
28750              })) === null || _b === void 0 ? void 0 : _b.childs) || [];
28751              temp = [];
28752              _loop_2 = function _loop_2(i) {
28753                var _d = data[i],
28754                  isAuthor = _d.isAuthor,
28755                  platformCode = _d.platformCode,
28756                  count = _d.count;
28757                var platformCodeLower = platformCode === null || platformCode === void 0 ? void 0 : platformCode.toLowerCase();
28758                if (this_1.showAuthorizeAllData[platformCodeLower]) {
28759                  this_1.showAuthorizeAllData[platformCodeLower].isAuthor = isAuthor;
28760                }
28761                var item = oldAllPlatforms.find(function (ele) {
28762                  return ele.key == platformCodeLower;
28763                });
28764                if (item && isAuthor) {
28765                  item.count = platformCodeLower === 'etsy' ? 0 : count;
28766                  temp.push(platforms_sort_show_assign(platforms_sort_show_assign({}, item), data[i]));
28767                }
28768              };
28769              this_1 = this;
28770              for (i = 0; i < data.length; i++) {
28771                _loop_2(i);
28772              }
28773              temp.sort(function (a, b) {
28774                if (a.installTime && b.installTime) {
28775                  return Number(a.installTime) - Number(b.installTime);
28776                }
28777                return 0;
28778              });
28779              shopifyIndex = temp.findIndex(function (ele) {
28780                return ele.key === 'shopify';
28781              });
28782              if (shopifyIndex > -1) {
28783                shopify = temp.splice(shopifyIndex, 1);
28784                temp.unshift(shopify[0]);
28785              }
28786              this.allPlatforms = platforms_sort_show_spreadArray([], temp, true);
28787            }
28788            return [2];
28789        }
28790      });
28791    });
28792  };
28793  return PlatformSortShow;
28794}();
28795/* harmony default export */ const platforms_sort_show = (PlatformSortShow);
28796;// ./src/components/Menu/MenuCollapsed/SubMenu.tsx
28797var SubMenu_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
28798  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
28799    if (ar || !(i in from)) {
28800      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
28801      ar[i] = from[i];
28802    }
28803  }
28804  return to.concat(ar || Array.prototype.slice.call(from));
28805};
28806
28807
28808
28809
28810
28811
28812
28813
28814
28815
28816
28817
28818
28819
28820
28821
28822
28823var SubMenu = function SubMenu(_a) {
28824  var _b, _c, _d;
28825  var _e;
28826  var item = _a.item,
28827    isActive = _a.isActive,
28828    isParentActive = _a.isParentActive,
28829    showAuthorizeListData = _a.showAuthorizeListData,
28830    _f = _a.isLastMenu,
28831    isLastMenu = _f === void 0 ? false : _f,
28832    openAddStore = _a.openAddStore,
28833    openServiceCenter = _a.openServiceCenter;
28834  var siteCheck = (0,use_site_check/* default */.A)();
28835  var isVip = (0,useIsVip/* default */.A)();
28836  var isCj = (0,use_parent_platform/* default */.A)().isCj;
28837  var isCJSite = siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.isSite('CJ');
28838  var isZesty = siteCheck.isSite('ZS');
28839  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))]),
28840    childClass = _g[0],
28841    setChildClass = _g[1];
28842  var hookMenuChilds = useMenuChilds({
28843    selector: '.specialMenuItem'
28844  });
28845  var hookMenusNormalChilds = useMenuChilds({
28846    selector: '.childBoxThree'
28847  });
28848  var i18next = window === null || window === void 0 ? void 0 : window.i18next;
28849  var hookMyCjRoute = (0,useMyCjReactRoute/* default */.A)();
28850  var hasChilds = item.childs && item.childs.length > 0;
28851  var leaveTimer = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef();
28852  var normalSpecial = item.special && !isCJSite;
28853  var cjSpecial = item.special && isCJSite;
28854  var getAddTop = function getAddTop(name, childs) {
28855    var _a;
28856    if (name === void 0) {
28857      name = '';
28858    }
28859    if (childs === void 0) {
28860      childs = [];
28861    }
28862    if (normalSpecial) {
28863      var hasMiaoshou = ((_a = childs.filter(function (child) {
28864        return child.key === 'miaoshou';
28865      })) === null || _a === void 0 ? void 0 : _a.length) > 0;
28866      return hasMiaoshou ? -50 : 0;
28867    }
28868    return 0;
28869  };
28870  var hideBodyScroll = function hideBodyScroll(bol) {
28871    if (bol) {
28872      document.body.style.overflow = 'hidden';
28873    } else {
28874      document.body.style.overflow = 'auto';
28875    }
28876  };
28877  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28878    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)),
28879    onMouseEnter: function onMouseEnter(e) {
28880      leaveTimer.current && clearTimeout(leaveTimer.current);
28881      setChildClass(SubMenu_spreadArray(SubMenu_spreadArray([], childClass, true), [isLastMenu ? Menu_MenuCollapsed.lastActive : Menu_MenuCollapsed.active, cjSpecial ? Menu_MenuCollapsed.cjSpecial : ''], false));
28882      var addTop = getAddTop(item.name, item.childs);
28883      hasChilds && normalSpecial && hookMenuChilds.handlerMouseMove(e, addTop);
28884      hasChilds && !normalSpecial && hookMenusNormalChilds.handlerMouseMove(e, 0, cjSpecial);
28885      hideBodyScroll(true);
28886    },
28887    onMouseLeave: function onMouseLeave(e) {
28888      var target = e.currentTarget;
28889      leaveTimer.current = setTimeout(function () {
28890        setChildClass(SubMenu_spreadArray([], childClass.filter(function (_) {
28891          return _ !== Menu_MenuCollapsed.active;
28892        }).filter(function (_) {
28893          return _ !== Menu_MenuCollapsed.lastActive;
28894        }), true));
28895        hasChilds && normalSpecial && hookMenuChilds.handlerMouseLeave(target);
28896        hasChilds && !normalSpecial && hookMenusNormalChilds.handlerMouseLeave(target);
28897      }, 200);
28898      hideBodyScroll(false);
28899    }
28900  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28901    className: classnames_default()(Menu_MenuCollapsed.box, (_d = {}, _d[Menu_MenuCollapsed.zs] = isZesty, _d)),
28902    onClick: function onClick() {
28903      if (!hasChilds) {
28904        if (hookMyCjRoute.canUseNewMyCjRouteJump(item.route)) {
28905          return hookMyCjRoute.changeRoute(item.route);
28906        }
28907        var _href = (0,common/* getRouteHref */.hQ)(item);
28908        location.href = isCj ? _href : (0,cj_href/* cjHref */.F)(_href);
28909      }
28910    },
28911    "data-route": item.name,
28912    "data-gtag-element": (0,gtag/* toGtagElement */.l)(item.name)
28913  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
28914    type: item.iconclass,
28915    className: Menu_MenuCollapsed.icon
28916  })), !isZesty && /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28917    className: Menu_MenuCollapsed.activeLeftLine
28918  }), !hasChilds && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28919    className: Menu_MenuCollapsed.fixedTitle
28920  }, item.nameTrans(), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28921    className: Menu_MenuCollapsed.arrow
28922  }))), hasChilds && !normalSpecial && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28923    className: classnames_default()(childClass.join(' '), 'childBoxThree')
28924  }, item.special && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28925    className: Menu_MenuCollapsed.childItem,
28926    onClick: openAddStore,
28927    "data-gtag-element": "install_app"
28928  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28929    className: "".concat(Menu_MenuCollapsed.childItemBox, " ").concat(Menu_MenuCollapsed.addStoreBox)
28930  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
28931    className: Menu_MenuCollapsed.name
28932  }, 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", {
28933    className: Menu_MenuCollapsed.addIcon
28934  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
28935    type: "jiahao1"
28936  }))))), item.name === 'Service' && openServiceCenter && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28937    className: Menu_MenuCollapsed.childItem,
28938    onClick: openServiceCenter,
28939    "data-gtag-element": "subscribe_service"
28940  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28941    className: "".concat(Menu_MenuCollapsed.childItemBox, " ").concat(Menu_MenuCollapsed.addStoreBox)
28942  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
28943    className: Menu_MenuCollapsed.name
28944  }, 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", {
28945    className: Menu_MenuCollapsed.addIcon
28946  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
28947    type: "jiahao1"
28948  }))))), item.childs.map(function (childMenu) {
28949    if (childMenu.isDivider) {
28950      return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28951        key: childMenu.name,
28952        className: Menu_MenuCollapsed.menuDivider
28953      });
28954    }
28955    if (typeof childMenu.isHide === 'function' ? childMenu.isHide() : childMenu.isHide) return null;
28956    if (!siteCheck.isShow("mycj-menu-".concat(item.nameVal || item.name, "-").concat(childMenu.name))) return null;
28957    return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(MenuCollapsed_MenuItem, {
28958      key: childMenu.name,
28959      childMenu: childMenu,
28960      isActive: isActive,
28961      showAuthorizeListData: showAuthorizeListData,
28962      isSpecial: item.special
28963    });
28964  }))), hasChilds && normalSpecial && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
28965    className: classnames_default()(Menu_MenuCollapsed.specialMenuItem, 'specialMenuItem')
28966  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(MultipleMenuItem/* default */.A, {
28967    list: (_e = item.childs) === null || _e === void 0 ? void 0 : _e.map(function (item) {
28968      return {
28969        key: item.key,
28970        name: item.nameTrans(),
28971        imageUrl: oss_controller/* default */.Ay.join((0,oss_controller/* createPlatform */.Q_)(String(item.imageName || item.name).toLocaleLowerCase())),
28972        count: item.count,
28973        link: isCj ? item.route : (0,cj_href/* cjHref */.F)(item.route),
28974        isActive: isActive(item.name),
28975        isShow: useIsShowOrangeConnex(item.name) && isShowAuthorizeType(showAuthorizeListData, item.name) && useIsShowMiaoshou(item.name, siteCheck),
28976        isErpPlatform: item.businessType === EBusinessType.ERP
28977      };
28978    })
28979  }))));
28980};
28981/* harmony default export */ const MenuCollapsed_SubMenu = (SubMenu);
28982// EXTERNAL MODULE: ./src/components/Menu/assets/nav-bg.png
28983var nav_bg = __webpack_require__(79328);
28984;// ./src/components/Menu/MenuCollapsed/index.tsx
28985
28986
28987
28988
28989
28990
28991var MenuCollapsed = function MenuCollapsed(_a) {
28992  var _b;
28993  var isActive = _a.isActive,
28994    isParentActive = _a.isParentActive,
28995    showAuthorizeListData = _a.showAuthorizeListData,
28996    menus = _a.menus,
28997    openAddStore = _a.openAddStore,
28998    openServiceCenter = _a.openServiceCenter;
28999  var siteCheck = (0,use_site_check/* default */.A)();
29000  var isZesty = siteCheck.isSite('ZS');
29001  var menuCollapsedStyle = {
29002    backgroundImage: "url(".concat(siteCheck.data('menu-bg-image') || nav_bg/* default */.A, ")")
29003  };
29004  if (isZesty) {
29005    menuCollapsedStyle = {
29006      backgroundColor: '#fff'
29007    };
29008  }
29009  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
29010    className: classnames_default()(Menu_MenuCollapsed.menuCollapsed, (_b = {}, _b[Menu_MenuCollapsed.zs] = isZesty, _b)),
29011    style: menuCollapsedStyle
29012  }, menus.map(function (menu, i) {
29013    if (!siteCheck.isShow("mycj-menu-".concat(menu.nameVal || menu.name))) return null;
29014    return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(MenuCollapsed_SubMenu, {
29015      key: menu.name,
29016      item: menu,
29017      isActive: isActive,
29018      isParentActive: isParentActive,
29019      showAuthorizeListData: showAuthorizeListData,
29020      isLastMenu: i === menus.length - 1,
29021      openAddStore: openAddStore,
29022      openServiceCenter: openServiceCenter
29023    });
29024  }));
29025};
29026/* harmony default export */ const components_Menu_MenuCollapsed = (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().memo(MenuCollapsed));
29027// EXTERNAL MODULE: ./src/components/Menu/index.less
29028var Menu = __webpack_require__(65555);
29029// EXTERNAL MODULE: ../../node_modules/js-base64/base64.mjs
29030var base64 = __webpack_require__(93584);
29031;// ./src/components/Menu/bar.config.qk.ts
29032var bar_config_qk_assign = undefined && undefined.__assign || function () {
29033  bar_config_qk_assign = Object.assign || function (t) {
29034    for (var s, i = 1, n = arguments.length; i < n; i++) {
29035      s = arguments[i];
29036      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
29037    }
29038    return t;
29039  };
29040  return bar_config_qk_assign.apply(this, arguments);
29041};
29042var bar_config_qk_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
29043  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
29044    if (ar || !(i in from)) {
29045      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
29046      ar[i] = from[i];
29047    }
29048  }
29049  return to.concat(ar || Array.prototype.slice.call(from));
29050};
29051var bar_config_qk_a, bar_config_qk_b, _c;
29052
29053
29054
29055
29056
29057
29058var bar_config_qk_isFromErp = store/* default */.A.get('loginfromerp');
29059var isShowProducts = (0,common/* isSafeUser */.dn)() || bar_config_qk_isFromErp;
29060var isShowSourcingAndStoreProducts = function isShowSourcingAndStoreProducts() {
29061  var testUserIds = ['QK2522152', 'QK3056156'];
29062  var specialUserIds = bar_config_qk_spreadArray(['QK37757', 'QK3156419'], testUserIds, true);
29063  return login_info_controller/* default */.A.info('num') && specialUserIds.includes(login_info_controller/* default */.A.info('num'));
29064};
29065var menus1 = bar_config_qk_spreadArray(bar_config_qk_spreadArray(bar_config_qk_spreadArray(bar_config_qk_spreadArray([{
29066  name: 'Find Products',
29067  nameTrans: function nameTrans() {
29068    return "".concat(window.i18next.t("common-mycj-menu-find-products"));
29069  },
29070  iconclass: 'cedaohang-soupin',
29071  active: false,
29072  childs: [],
29073  route: '/home.html'
29074}, {
29075  name: 'Orders Creation',
29076  nameTrans: function nameTrans() {
29077    return "".concat(window.i18next.t("common-mycj-menu-orders-creation"));
29078  },
29079  iconclass: 'qk_chuangjiandingdan',
29080  route: '/mine/dropshipping/untreatedOrder/CreateOrder',
29081  active: false,
29082  childs: []
29083}], isShowProducts ? [{
29084  name: 'Products',
29085  nameTrans: function nameTrans() {
29086    return "".concat(window.i18next.t("common-mycj-menu-products"));
29087  },
29088  iconclass: 'zuocedaohangshangpin-QS',
29089  active: false,
29090  childs: bar_config_qk_spreadArray(bar_config_qk_spreadArray(bar_config_qk_spreadArray([], bar_config_qk_isFromErp ? [{
29091    name: 'Added Products',
29092    nameTrans: function nameTrans() {
29093      return "".concat(window.i18next.t("common-mycj-menu-added-products", 'Added Products'));
29094    },
29095    code: 'mycj_my_products',
29096    route: '/mine/products/myproducts',
29097    active: false
29098  }] : [], true), bar_config_qk_isFromErp || isShowSourcingAndStoreProducts() ? [{
29099    name: 'Store Products',
29100    nameTrans: function nameTrans() {
29101      return "".concat(window.i18next.t("common-mycj-menu-store-products"));
29102    },
29103    iconclass: 'guanlian',
29104    code: 'mycj_store_products',
29105    route: '/mine/products/connection',
29106    active: false,
29107    childs: []
29108  }] : [], true), (0,common/* isSafeUser */.dn)() ? [{
29109    name: 'My Inventory',
29110    nameTrans: function nameTrans() {
29111      return "".concat(window.i18next.t("common-mycj-menu-my-inventory"));
29112    },
29113    iconclass: 'a-qk_OrdersPicking',
29114    code: 'mycj_my_inventory',
29115    route: '/mine/myInventoryNew/productInventory',
29116    active: false,
29117    childs: []
29118  }, {
29119    name: 'Inventory Planner',
29120    nameTrans: function nameTrans() {
29121      return "".concat(window.i18next.t("common-mycj-menu-inventory-planner", 'Inventory Planner'));
29122    },
29123    code: 'mycj_inventory_planner',
29124    route: '/mine/inventoryPlanner',
29125    active: false
29126  }] : [], true)
29127}] : [], true), [{
29128  name: 'Orders',
29129  nameTrans: function nameTrans() {
29130    return "".concat(window.i18next.t("common-mycj-menu-orders"));
29131  },
29132  iconclass: 'bianzu41',
29133  active: false,
29134  code: 'mycj_orders',
29135  childs: bar_config_qk_spreadArray(bar_config_qk_spreadArray([{
29136    name: 'Store Orders',
29137    nameTrans: function nameTrans() {
29138      return "".concat(window.i18next.t("common-mycj-menu-store-orders"));
29139    },
29140    active: false,
29141    code: 'mycj_store_orders',
29142    route: '/mine/dropshipping/orderList?orderType=3&childType=1'
29143  }], (0,common/* isSafeUser */.dn)() ? [{
29144    name: 'Inventory Orders',
29145    nameTrans: function nameTrans() {
29146      return "".concat(window.i18next.t("common-mycj-menu-inventory-orders"));
29147    },
29148    active: false,
29149    code: 'mycj_inventory_orders',
29150    route: '/mine/purchase/purchaseList?orderType=2'
29151  }] : [], true), [{
29152    name: 'Undelivered Orders',
29153    nameTrans: function nameTrans() {
29154      return "".concat(window.i18next.t("common-mycj-menu-undelivered-orders"));
29155    },
29156    code: 'mycj_undelivered_orders',
29157    route: '/mine/undeliveredOrder',
29158    active: false
29159  }, {
29160    name: 'Disputes',
29161    nameTrans: function nameTrans() {
29162      return "".concat(window.i18next.t("common-mycj-menu-disputes"));
29163    },
29164    code: 'mycj_disputes',
29165    route: '/mine/dispute/list',
29166    active: false
29167  }], false)
29168}], false), (0,common/* isSafeUser */.dn)() ? [{
29169  name: 'Service',
29170  nameTrans: function nameTrans() {
29171    return "".concat(window.i18next.t("common-mycj-menu-service"));
29172  },
29173  iconclass: 'bianzu71',
29174  active: false,
29175  code: 'mycj_service',
29176  childs: bar_config_qk_spreadArray(bar_config_qk_spreadArray([], isShowSourcingAndStoreProducts() ? [{
29177    name: 'Sourcing',
29178    nameTrans: function nameTrans() {
29179      return "".concat(window.i18next.t("common-mycj-menu-sourcing"));
29180    },
29181    code: 'mycj_sourcing',
29182    route: '/mine/sourcing/list',
29183    active: false,
29184    tip: function tip() {
29185      return window.i18next.t("common-mycj-menu-sourcing-tip");
29186    }
29187  }] : [], true), [{
29188    name: 'Custom Packaging',
29189    nameTrans: function nameTrans() {
29190      return "".concat(window.i18next.t("common-mycj-menu-custom-packaging"));
29191    },
29192    code: 'mycj_custom_packaging',
29193    route: '/my.html#/regular-packaging',
29194    active: false,
29195    tip: function tip() {
29196      return window.i18next.t("common-mycj-menu-custom-packaging-tip");
29197    }
29198  }, {
29199    name: '3PL Fulfillment',
29200    nameTrans: function nameTrans() {
29201      return "".concat(window.i18next.t("common-mycj-menu-3pl"));
29202    },
29203    active: false,
29204    tip: function tip() {
29205      var _a;
29206      return window.i18next.t("common-mycj-menu-3pl-tip", {
29207        siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
29208      });
29209    },
29210    childs: [{
29211      name: 'Products',
29212      nameTrans: function nameTrans() {
29213        return "".concat(window.i18next.t("common-mycj-menu-products"));
29214      },
29215      code: 'mycj_3pl_products',
29216      route: '/my.html#/products-connection/goods',
29217      active: false
29218    }, {
29219      name: 'Shipment',
29220      nameTrans: function nameTrans() {
29221        return "".concat(window.i18next.t("common-mycj-menu-shipment"));
29222      },
29223      code: 'mycj_3pl_shipment',
29224      route: '/mine/shipment',
29225      active: false
29226    }]
29227  }], false)
29228}] : [], true), [{
29229  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'))),
29230  nameVal: "My CJ",
29231  nameTrans: function nameTrans() {
29232    var _a;
29233    return window.i18next.t("common-mycj-my-site", {
29234      siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
29235    });
29236  },
29237  iconclass: 'bianzu32',
29238  active: false,
29239  childs: bar_config_qk_spreadArray(bar_config_qk_spreadArray([{
29240    name: 'Dashboard',
29241    nameTrans: function nameTrans() {
29242      return "".concat(window.i18next.t("common-mycj-menu-dashboard"));
29243    },
29244    code: 'mycj_dashboard',
29245    route: '/my.html#/dashboard',
29246    active: false,
29247    isNew: true
29248  }, {
29249    name: 'Profile',
29250    nameTrans: function nameTrans() {
29251      return "".concat(window.i18next.t("common-mycj-menu-profile"));
29252    },
29253    code: 'mycj_profile',
29254    route: '/my.html#/profile/info',
29255    active: false
29256  }], login_info_controller/* default */.A.info('num') === 'QK3156419' ? [{
29257    name: 'Ticket',
29258    nameTrans: function nameTrans() {
29259      return "".concat(window.i18next.t("common-mycj-menu-ticket"));
29260    },
29261    code: 'mycj_ticket',
29262    route: '/mine/ticket',
29263    active: false
29264  }] : [], true), [{
29265    name: 'Wallet',
29266    nameTrans: function nameTrans() {
29267      return "".concat(window.i18next.t("common-mycj-menu-wallet"));
29268    },
29269    code: 'mycj_wallet',
29270    route: '/mine/wallet',
29271    active: false
29272  }, {
29273    name: 'Export List',
29274    nameTrans: function nameTrans() {
29275      return "".concat(window.i18next.t("common-mycj-menu-export-list"));
29276    },
29277    iconclass: 'liwuicon_',
29278    code: 'mycj_export_list',
29279    route: '/mine/exportList',
29280    active: false
29281  }, {
29282    name: 'Sub-account',
29283    nameTrans: function nameTrans() {
29284      return "".concat(window.i18next.t("common-mycj-menu-sub-account"));
29285    },
29286    code: 'mycj_sub_account',
29287    route: '/my.html#/accountManage',
29288    active: false
29289  }, {
29290    name: 'Order-video',
29291    nameTrans: function nameTrans() {
29292      return "".concat(window.i18next.t("common-mycj-menu-order-list-video"));
29293    },
29294    code: 'mycj_order-video',
29295    route: '/mine/orderVideo',
29296    active: false,
29297    isHide: bar_config/* isWarehouseOperationVideoUser */.fO
29298  }], false)
29299}], false);
29300var menus2 = [{
29301  name: 'Find Products',
29302  nameTrans: function nameTrans() {
29303    return "".concat(window.i18next.t("common-mycj-menu-find-products"));
29304  },
29305  iconclass: 'cedaohang-soupin',
29306  active: false,
29307  childs: [],
29308  route: '/home.html'
29309}, {
29310  name: 'Cart',
29311  nameTrans: function nameTrans() {
29312    return "".concat(window.i18next.t("common-mycj-menu-cart"));
29313  },
29314  iconclass: 'bianzu51',
29315  active: false,
29316  route: '/mine/purchase/purchaseCart',
29317  childs: [],
29318  code: 'mycj_cart'
29319}, {
29320  name: 'Products',
29321  nameTrans: function nameTrans() {
29322    return "".concat(window.i18next.t("common-mycj-menu-products"));
29323  },
29324  iconclass: 'bianzu62',
29325  active: false,
29326  code: 'mycj_products',
29327  childs: [{
29328    name: 'Added Products',
29329    nameTrans: function nameTrans() {
29330      return "".concat(window.i18next.t("common-mycj-menu-added-products", 'Added Products'));
29331    },
29332    code: 'mycj_my_products',
29333    route: '/mine/products/myproducts',
29334    active: false
29335  }, {
29336    name: 'Store Products',
29337    nameTrans: function nameTrans() {
29338      return "".concat(window.i18next.t("common-mycj-menu-store-products"));
29339    },
29340    code: 'mycj_store_products',
29341    route: '/mine/products/connection',
29342    active: false,
29343    tip: function tip() {
29344      return window.i18next.t("common-mycj-menu-store-products-tip");
29345    }
29346  }, {
29347    name: 'Listing Records',
29348    nameTrans: function nameTrans() {
29349      return "".concat(window.i18next.t("common-mycj-menu-listing-records"));
29350    },
29351    active: false,
29352    childs: [{
29353      name: 'Products Records',
29354      nameTrans: function nameTrans() {
29355        return "".concat(window.i18next.t("common-mycj-menu-products-records"));
29356      },
29357      route: '/my.html#/products-connection/history',
29358      code: 'mycj_products_records',
29359      active: false
29360    }, {
29361      name: 'Video Records',
29362      nameTrans: function nameTrans() {
29363        return "".concat(window.i18next.t("common-mycj-menu-video-records"));
29364      },
29365      code: 'mycj_video_list',
29366      route: '/mine/listVideos',
29367      active: false
29368    }]
29369  }, {
29370    name: 'My Inventory',
29371    nameTrans: function nameTrans() {
29372      return "".concat(window.i18next.t("common-mycj-menu-my-inventory"));
29373    },
29374    code: 'mycj_my_inventory',
29375    route: '/mine/myInventoryNew/productInventory',
29376    active: false,
29377    tip: function tip() {
29378      return window.i18next.t("common-mycj-menu-my-inventory-tip");
29379    }
29380  }, {
29381    name: 'Inventory Planner',
29382    nameTrans: function nameTrans() {
29383      return "".concat(window.i18next.t("common-mycj-menu-inventory-planner", 'Inventory Planner'));
29384    },
29385    code: 'mycj_inventory_planner',
29386    route: '/mine/inventoryPlanner',
29387    active: false
29388  }]
29389}, {
29390  name: 'Orders',
29391  nameTrans: function nameTrans() {
29392    return "".concat(window.i18next.t("common-mycj-menu-orders"));
29393  },
29394  iconclass: 'bianzu41',
29395  active: false,
29396  code: 'mycj_orders',
29397  childs: bar_config_qk_spreadArray(bar_config_qk_spreadArray([{
29398    name: 'Store Orders',
29399    nameTrans: function nameTrans() {
29400      return "".concat(window.i18next.t("common-mycj-menu-store-orders"));
29401    },
29402    active: false,
29403    code: 'mycj_store_orders',
29404    route: '/mine/dropshipping/orderList?orderType=3&childType=1'
29405  }, {
29406    name: 'Sample Orders',
29407    nameTrans: function nameTrans() {
29408      return "".concat(window.i18next.t("common-mycj-menu-sample-orders"));
29409    },
29410    active: false,
29411    code: 'mycj_sample_orders',
29412    route: '/mine/purchase/purchaseList?orderType=1'
29413  }, {
29414    name: 'Wholesale Orders',
29415    nameTrans: function nameTrans() {
29416      return "".concat(window.i18next.t("common-mycj-menu-wholesale-orders"));
29417    },
29418    active: false,
29419    code: 'mycj_wholesale_orders',
29420    route: '/mine/purchase/purchaseList?orderType=3'
29421  }, {
29422    name: 'Inventory Orders',
29423    nameTrans: function nameTrans() {
29424      return "".concat(window.i18next.t("common-mycj-menu-inventory-orders"));
29425    },
29426    active: false,
29427    code: 'mycj_inventory_orders',
29428    route: '/mine/purchase/purchaseList?orderType=2'
29429  }], (0,common/* isSafeUser */.dn)() ? [{
29430    name: 'Undelivered Orders',
29431    nameTrans: function nameTrans() {
29432      return "".concat(window.i18next.t("common-mycj-menu-undelivered-orders"));
29433    },
29434    code: 'mycj_undelivered_orders',
29435    route: '/mine/undeliveredOrder',
29436    active: false
29437  }, {
29438    name: 'Fulfillment Status',
29439    nameTrans: function nameTrans() {
29440      return "".concat(window.i18next.t("common-mycj-menu-fulfillment-status"));
29441    },
29442    code: 'mycj_orders_tracking',
29443    route: '/mine/orderTracing/list',
29444    active: false
29445  }] : [], true), [{
29446    name: 'Disputes',
29447    nameTrans: function nameTrans() {
29448      return "".concat(window.i18next.t("common-mycj-menu-disputes"));
29449    },
29450    code: 'mycj_disputes',
29451    route: '/mine/dispute/list',
29452    active: false
29453  }], false)
29454}, {
29455  name: 'Service',
29456  nameTrans: function nameTrans() {
29457    return "".concat(window.i18next.t("common-mycj-menu-service"));
29458  },
29459  iconclass: 'bianzu71',
29460  active: false,
29461  code: 'mycj_service',
29462  childs: bar_config_qk_spreadArray(bar_config_qk_spreadArray(bar_config_qk_spreadArray(bar_config_qk_spreadArray([], (0,common/* isSafeUser */.dn)() || isShowSourcingAndStoreProducts() ? [{
29463    name: 'Sourcing',
29464    nameTrans: function nameTrans() {
29465      return "".concat(window.i18next.t("common-mycj-menu-sourcing"));
29466    },
29467    code: 'mycj_sourcing',
29468    route: '/mine/sourcing/list',
29469    active: false,
29470    tip: function tip() {
29471      return window.i18next.t("common-mycj-menu-sourcing-tip");
29472    }
29473  }] : [], true), [{
29474    name: 'Custom Packaging',
29475    nameTrans: function nameTrans() {
29476      return "".concat(window.i18next.t("common-mycj-menu-custom-packaging"));
29477    },
29478    code: 'mycj_custom_packaging',
29479    route: '/my.html#/regular-packaging',
29480    active: false,
29481    tip: function tip() {
29482      return window.i18next.t("common-mycj-menu-custom-packaging-tip");
29483    }
29484  }], false), (0,common/* isSafeUser */.dn)() ? [{
29485    name: 'Customization',
29486    nameTrans: function nameTrans() {
29487      return "".concat(window.i18next.t("common-mycj-menu-customization"));
29488    },
29489    code: 'mycj_customization',
29490    route: '/mine/customization',
29491    active: false,
29492    tip: function tip() {
29493      var _a;
29494      return window.i18next.t("common-mycj-menu-customization-tip", {
29495        siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
29496      });
29497    }
29498  }, {
29499    name: 'Print on Demand',
29500    nameTrans: function nameTrans() {
29501      return "".concat(window.i18next.t("common-mycj-menu-print-on-demand"));
29502    },
29503    active: false,
29504    tip: function tip() {
29505      return window.i18next.t("common-mycj-menu-print-on-demand-tip");
29506    },
29507    childs: [{
29508      name: 'POD Products',
29509      nameTrans: function nameTrans() {
29510        return "".concat(window.i18next.t("common-mycj-menu-pod-products"));
29511      },
29512      route: '/printonDemand/home',
29513      active: false
29514    }, {
29515      name: "Buyer's Design",
29516      nameTrans: function nameTrans() {
29517        return "".concat(window.i18next.t("common-mycj-menu-buyers-design"));
29518      },
29519      iconclass: 'maijiaxinxi',
29520      code: 'mycj_buyers_design',
29521      route: '/my.html#/pod/buyer-design',
29522      active: false,
29523      tipName: 'Connected POD products in your store.'
29524    }, {
29525      name: 'Design Myself',
29526      nameTrans: function nameTrans() {
29527        return "".concat(window.i18next.t("common-mycj-menu-design-myself"));
29528      },
29529      iconclass: 'maijiazhongxin_chanpinkumingjiangku',
29530      code: 'mycj_design_myself',
29531      route: '/my.html#/pod/design-myself',
29532      active: false,
29533      tipName: 'Your designed products on CJ.'
29534    }]
29535  }] : [], true), [{
29536    name: '3PL Fulfillment',
29537    nameTrans: function nameTrans() {
29538      return "".concat(window.i18next.t("common-mycj-menu-3pl"));
29539    },
29540    active: false,
29541    tip: function tip() {
29542      var _a;
29543      return window.i18next.t("common-mycj-menu-3pl-tip", {
29544        siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
29545      });
29546    },
29547    childs: [{
29548      name: 'Products',
29549      nameTrans: function nameTrans() {
29550        return "".concat(window.i18next.t("common-mycj-menu-products"));
29551      },
29552      code: 'mycj_3pl_products',
29553      route: '/my.html#/products-connection/goods',
29554      active: false
29555    }, {
29556      name: 'Shipment',
29557      nameTrans: function nameTrans() {
29558        return "".concat(window.i18next.t("common-mycj-menu-shipment"));
29559      },
29560      code: 'mycj_3pl_shipment',
29561      route: '/mine/shipment',
29562      active: false
29563    }]
29564  }], false)
29565}, {
29566  name: 'Authorization',
29567  nameTrans: function nameTrans() {
29568    return "".concat(window.i18next.t("common-mycj-menu-authorization"));
29569  },
29570  iconclass: 'dianpushouquan',
29571  active: false,
29572  special: true,
29573  code: 'mycj_authorization',
29574  childs: [bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.shopify), {
29575    nameTrans: function nameTrans() {
29576      return "".concat(window.i18next.t("common-mycj-menu-shopify"));
29577    },
29578    version: 2,
29579    active: false
29580  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.wed2c), {
29581    nameTrans: function nameTrans() {
29582      return "".concat(window.i18next.t("common-mycj-menu-wed2c"));
29583    },
29584    version: 2,
29585    active: false
29586  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.temu), {
29587    nameTrans: function nameTrans() {
29588      return "".concat(window.i18next.t("common-mycj-menu-temu"));
29589    },
29590    version: 2,
29591    type: 'authorize',
29592    active: false
29593  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.temu_us_local), {
29594    nameTrans: function nameTrans() {
29595      return "".concat(window.i18next.t("common-mycj-menu-temu-us-local"));
29596    },
29597    version: 2,
29598    type: 'authorize',
29599    active: false
29600  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.temu_certified_overseas), {
29601    nameTrans: function nameTrans() {
29602      return "".concat(window.i18next.t("common-mycj-menu-temu-certified-overseas"));
29603    },
29604    version: 2,
29605    type: 'authorize',
29606    active: false
29607  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.shein), {
29608    nameTrans: function nameTrans() {
29609      return "".concat(window.i18next.t("common-mycj-menu-shein"));
29610    },
29611    version: 2,
29612    type: 'authorize',
29613    active: false
29614  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.tiktok), {
29615    nameTrans: function nameTrans() {
29616      return "".concat(window.i18next.t("common-mycj-menu-tiktok"));
29617    },
29618    version: 2,
29619    type: 'authorize',
29620    active: false
29621  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.tiktok_us), {
29622    nameTrans: function nameTrans() {
29623      return "".concat(window.i18next.t("common-mycj-menu-tiktok-us"));
29624    },
29625    version: 2,
29626    type: 'authorize',
29627    active: false
29628  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.tiktok_us_cross), {
29629    nameTrans: function nameTrans() {
29630      return "".concat(window.i18next.t("common-mycj-menu-tiktok-us-cross"));
29631    },
29632    version: 2,
29633    type: 'authorize',
29634    active: false
29635  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.woocommerce), {
29636    nameTrans: function nameTrans() {
29637      return "".concat(window.i18next.t("common-mycj-menu-woocommerce"));
29638    },
29639    version: 2,
29640    type: 'authorize',
29641    active: false
29642  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.ebay), {
29643    nameTrans: function nameTrans() {
29644      return "".concat(window.i18next.t("common-mycj-menu-ebay"));
29645    },
29646    version: 2,
29647    type: 'authorize',
29648    active: false
29649  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.api), {
29650    nameTrans: function nameTrans() {
29651      return "".concat(window.i18next.t("common-mycj-menu-api"));
29652    },
29653    version: 2,
29654    type: 'authorize',
29655    active: false
29656  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.etsy), {
29657    nameTrans: function nameTrans() {
29658      return "".concat(window.i18next.t("common-mycj-menu-etsy"));
29659    },
29660    version: 2,
29661    type: 'authorize',
29662    active: false
29663  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.aliexpress), {
29664    nameTrans: function nameTrans() {
29665      return "".concat(window.i18next.t("common-mycj-menu-aliexpress"));
29666    },
29667    version: 2,
29668    type: 'authorize',
29669    active: false
29670  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.wix), {
29671    nameTrans: function nameTrans() {
29672      return "".concat(window.i18next.t("common-mycj-menu-wix"));
29673    },
29674    version: 2,
29675    type: 'authorize',
29676    active: false
29677  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.lazada), {
29678    nameTrans: function nameTrans() {
29679      return "".concat(window.i18next.t("common-mycj-menu-lazada"));
29680    },
29681    version: 2,
29682    type: 'authorize',
29683    active: false
29684  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.shopee), {
29685    nameTrans: function nameTrans() {
29686      return "".concat(window.i18next.t("common-mycj-menu-shopee"));
29687    },
29688    version: 2,
29689    type: 'authorize',
29690    active: false
29691  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.squarespace), {
29692    nameTrans: function nameTrans() {
29693      return "".concat(window.i18next.t("common-mycj-menu-squarespace"));
29694    },
29695    version: 2,
29696    type: 'authorize',
29697    active: false
29698  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.shoplazza), {
29699    nameTrans: function nameTrans() {
29700      return "".concat(window.i18next.t("common-mycj-menu-shoplazza"));
29701    },
29702    version: 2,
29703    type: 'authorize',
29704    active: false
29705  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.magento), {
29706    nameTrans: function nameTrans() {
29707      return "".concat(window.i18next.t("common-mycj-menu-magento"));
29708    },
29709    version: 2,
29710    type: 'authorize',
29711    active: false
29712  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.bigcommerce), {
29713    nameTrans: function nameTrans() {
29714      return "".concat(window.i18next.t("common-mycj-menu-bigcommerce"));
29715    },
29716    version: 2,
29717    type: 'authorize',
29718    active: false
29719  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.prestashop), {
29720    nameTrans: function nameTrans() {
29721      return "".concat(window.i18next.t("common-mycj-menu-prestashop"));
29722    },
29723    version: 2,
29724    type: 'authorize',
29725    active: false
29726  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.allvalue), {
29727    nameTrans: function nameTrans() {
29728      return "".concat(window.i18next.t("common-mycj-menu-allvalue"));
29729    },
29730    version: 2,
29731    type: 'authorize',
29732    active: false
29733  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.nuvemshop), {
29734    nameTrans: function nameTrans() {
29735      return "".concat(window.i18next.t("common-mycj-menu-nuvemshop"));
29736    },
29737    version: 2,
29738    type: 'authorize',
29739    active: false
29740  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.mercado), {
29741    nameTrans: function nameTrans() {
29742      return "".concat(window.i18next.t("common-mycj-menu-mercado"));
29743    },
29744    version: 2,
29745    type: 'authorize',
29746    active: false
29747  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.shipstation), {
29748    nameTrans: function nameTrans() {
29749      return "".concat(window.i18next.t("common-mycj-menu-shipstation"));
29750    },
29751    version: 2,
29752    type: 'authorize',
29753    active: false
29754  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.orangeconnex), {
29755    nameTrans: function nameTrans() {
29756      return "".concat(window.i18next.t("common-mycj-menu-orangeconnex"));
29757    },
29758    version: 2,
29759    type: 'authorize',
29760    active: false
29761  }), bar_config_qk_assign(bar_config_qk_assign({}, platform_show/* PLATFORM */.i9.mabang), {
29762    nameTrans: function nameTrans() {
29763      return "".concat(window.i18next.t("common-mycj-menu-mabang"));
29764    },
29765    version: 2,
29766    type: 'authorize',
29767    active: false
29768  })]
29769}, {
29770  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'))),
29771  nameVal: "My CJ",
29772  nameTrans: function nameTrans() {
29773    var _a;
29774    return window.i18next.t("common-mycj-my-site", {
29775      siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
29776    });
29777  },
29778  iconclass: 'bianzu32',
29779  active: false,
29780  childs: [{
29781    name: 'Dashboard',
29782    nameTrans: function nameTrans() {
29783      return "".concat(window.i18next.t("common-mycj-menu-dashboard"));
29784    },
29785    code: 'mycj_dashboard',
29786    route: '/my.html#/dashboard',
29787    active: false,
29788    isNew: true
29789  }, {
29790    name: 'Profile',
29791    nameTrans: function nameTrans() {
29792      return "".concat(window.i18next.t("common-mycj-menu-profile"));
29793    },
29794    code: 'mycj_profile',
29795    route: '/my.html#/profile/info',
29796    active: false
29797  }, {
29798    name: 'Ticket',
29799    nameTrans: function nameTrans() {
29800      return "".concat(window.i18next.t("common-mycj-menu-ticket"));
29801    },
29802    code: 'mycj_ticket',
29803    route: '/mine/ticket',
29804    active: false
29805  }, {
29806    name: 'Wallet',
29807    nameTrans: function nameTrans() {
29808      return "".concat(window.i18next.t("common-mycj-menu-wallet"));
29809    },
29810    code: 'mycj_wallet',
29811    route: '/mine/wallet',
29812    active: false
29813  }, {
29814    name: 'Browsing History',
29815    nameTrans: function nameTrans() {
29816      return "".concat(window.i18next.t("common-mycj-menu-browsing-history"));
29817    },
29818    code: 'mycj_browsing_history',
29819    route: '/viewHistory',
29820    active: false
29821  }, {
29822    name: 'Export List',
29823    nameTrans: function nameTrans() {
29824      return "".concat(window.i18next.t("common-mycj-menu-export-list"));
29825    },
29826    iconclass: 'liwuicon_',
29827    code: 'mycj_export_list',
29828    route: '/mine/exportList',
29829    active: false
29830  }, {
29831    name: 'Sub-account',
29832    nameTrans: function nameTrans() {
29833      return "".concat(window.i18next.t("common-mycj-menu-sub-account"));
29834    },
29835    code: 'mycj_sub_account',
29836    route: '/my.html#/accountManage',
29837    active: false
29838  }, {
29839    name: 'Order-video',
29840    nameTrans: function nameTrans() {
29841      return "".concat(window.i18next.t("common-mycj-menu-order-list-video"));
29842    },
29843    code: 'mycj_order-video',
29844    route: '/mine/orderVideo',
29845    active: false,
29846    isHide: bar_config/* isWarehouseOperationVideoUser */.fO
29847  }]
29848}];
29849var omenus = [];
29850if (((_c = js_cookie/* default */.A.get('SHOWMESSAGE')) === null || _c === void 0 ? void 0 : _c.indexOf('Q')) > -1) {
29851  omenus = menus2;
29852} else {
29853  omenus = menus1;
29854}
29855var bar_config_qk_menus = omenus;
29856var bar_config_qk_menuPath = {};
29857var bar_config_qk_menuNames = {};
29858function bar_config_qk_loops(list, parent) {
29859  return (list || []).map(function (_a) {
29860    var route = _a.route,
29861      childs = _a.childs,
29862      name = _a.name,
29863      version = _a.version;
29864    var _route = route;
29865    var node = bar_config_qk_menuNames[name] = bar_config_qk_menuPath[_route] = {
29866      parent: parent,
29867      name: name,
29868      version: version,
29869      route: _route
29870    };
29871    node['childs'] = bar_config_qk_loops(childs, node);
29872    return node;
29873  });
29874}
29875function bar_config_qk_getPath(name) {
29876  var obj = bar_config_qk_menuNames[name];
29877  var arr = [];
29878  while (obj && obj.name) {
29879    if (obj.childs && obj.childs[0]) {
29880      arr.push(obj.name);
29881    } else {
29882      arr.push(obj.name);
29883    }
29884    if (!obj.parent) break;
29885    obj = obj.parent;
29886  }
29887  return arr;
29888}
29889bar_config_qk_loops(bar_config_qk_menus, null);
29890var bar_config_qk_createAuthTree = function createAuthTree() {
29891  var authMapByRoute = [];
29892  var _fun = function fun(list) {
29893    return list.map(function (l) {
29894      if (l.route && l.code) authMapByRoute.push({
29895        name: l.name,
29896        code: l.code,
29897        route: l.route
29898      });
29899      return {
29900        name: l.name,
29901        code: l.code,
29902        route: l.route,
29903        children: l.childs && _fun(l.childs)
29904      };
29905    });
29906  };
29907  return [_fun(bar_config_qk_menus), authMapByRoute];
29908};
29909/* harmony default export */ const bar_config_qk = ((/* unused pure expression or super */ null && (bar_config_qk_createAuthTree)));
29910;// ./src/components/Menu/bar.config.vp.ts
29911var bar_config_vp_assign = undefined && undefined.__assign || function () {
29912  bar_config_vp_assign = Object.assign || function (t) {
29913    for (var s, i = 1, n = arguments.length; i < n; i++) {
29914      s = arguments[i];
29915      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
29916    }
29917    return t;
29918  };
29919  return bar_config_vp_assign.apply(this, arguments);
29920};
29921var bar_config_vp_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
29922  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
29923    if (ar || !(i in from)) {
29924      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
29925      ar[i] = from[i];
29926    }
29927  }
29928  return to.concat(ar || Array.prototype.slice.call(from));
29929};
29930var bar_config_vp_a;
29931
29932
29933
29934var bar_config_vp_menus = [{
29935  name: 'Find Products',
29936  nameTrans: function nameTrans() {
29937    return "".concat(window.i18next.t("common-mycj-menu-find-products"));
29938  },
29939  iconclass: 'cedaohang-soupin',
29940  active: false,
29941  childs: [],
29942  route: '/home.html'
29943}, {
29944  name: 'Community',
29945  nameTrans: function nameTrans() {
29946    return "".concat(window.i18next.t("common-mycj-menu-community", 'Community'));
29947  },
29948  iconclass: 'Community',
29949  active: false,
29950  code: 'mycj_community',
29951  childs: [{
29952    name: 'Agents',
29953    nameTrans: function nameTrans() {
29954      return "".concat(window.i18next.t("common-mycj-menu-agent", 'Agents'));
29955    },
29956    active: false,
29957    route: '/agents'
29958  }]
29959}, {
29960  name: 'Cart',
29961  nameTrans: function nameTrans() {
29962    return "".concat(window.i18next.t("common-mycj-menu-cart"));
29963  },
29964  iconclass: 'bianzu51',
29965  active: false,
29966  route: '/mine/purchase/purchaseCart',
29967  childs: [],
29968  code: 'mycj_cart'
29969}, {
29970  name: 'Products',
29971  nameTrans: function nameTrans() {
29972    return "".concat(window.i18next.t("common-mycj-menu-products"));
29973  },
29974  iconclass: 'bianzu62',
29975  active: false,
29976  code: 'mycj_products',
29977  childs: [{
29978    name: 'My Products',
29979    nameTrans: function nameTrans() {
29980      return "".concat(window.i18next.t("common-mycj-menu-my-products"));
29981    },
29982    code: 'mycj_my_products',
29983    route: '/mine/products/myproducts',
29984    active: false
29985  }, {
29986    name: 'Store Products',
29987    nameTrans: function nameTrans() {
29988      return "".concat(window.i18next.t("common-mycj-menu-store-products"));
29989    },
29990    code: 'mycj_store_products',
29991    route: '/mine/products/connection',
29992    active: false,
29993    tip: function tip() {
29994      return window.i18next.t("common-mycj-menu-store-products-tip");
29995    }
29996  }, {
29997    name: 'Listing Records',
29998    nameTrans: function nameTrans() {
29999      return "".concat(window.i18next.t("common-mycj-menu-listing-records"));
30000    },
30001    active: false,
30002    childs: [{
30003      name: 'Products Records',
30004      nameTrans: function nameTrans() {
30005        return "".concat(window.i18next.t("common-mycj-menu-products-records"));
30006      },
30007      route: '/my.html#/products-connection/history',
30008      code: 'mycj_products_records',
30009      active: false
30010    }, {
30011      name: 'Video Records',
30012      nameTrans: function nameTrans() {
30013        return "".concat(window.i18next.t("common-mycj-menu-video-records"));
30014      },
30015      code: 'mycj_video_list',
30016      route: '/mine/listVideos',
30017      active: false
30018    }]
30019  }, {
30020    name: 'My Inventory',
30021    nameTrans: function nameTrans() {
30022      return "".concat(window.i18next.t("common-mycj-menu-my-inventory"));
30023    },
30024    code: 'mycj_my_inventory',
30025    route: '/mine/myInventoryNew/productInventory',
30026    active: false,
30027    tip: function tip() {
30028      return window.i18next.t("common-mycj-menu-my-inventory-tip");
30029    }
30030  }, {
30031    name: 'Inventory Planner',
30032    nameTrans: function nameTrans() {
30033      return "".concat(window.i18next.t("common-mycj-menu-inventory-planner", 'Inventory Planner'));
30034    },
30035    code: 'mycj_inventory_planner',
30036    route: '/mine/inventoryPlanner',
30037    active: false
30038  }]
30039}, {
30040  name: 'Orders',
30041  nameTrans: function nameTrans() {
30042    return "".concat(window.i18next.t("common-mycj-menu-orders"));
30043  },
30044  iconclass: 'bianzu41',
30045  active: false,
30046  code: 'mycj_orders',
30047  childs: bar_config_vp_spreadArray(bar_config_vp_spreadArray([{
30048    name: 'Store Orders',
30049    nameTrans: function nameTrans() {
30050      return "".concat(window.i18next.t("common-mycj-menu-store-orders"));
30051    },
30052    active: false,
30053    code: 'mycj_store_orders',
30054    route: '/mine/dropshipping/orderList?orderType=3&childType=1'
30055  }, {
30056    name: 'Sample Orders',
30057    nameTrans: function nameTrans() {
30058      return "".concat(window.i18next.t("common-mycj-menu-sample-orders"));
30059    },
30060    active: false,
30061    code: 'mycj_sample_orders',
30062    route: '/mine/purchase/purchaseList?orderType=1'
30063  }, {
30064    name: 'Wholesale Orders',
30065    nameTrans: function nameTrans() {
30066      return "".concat(window.i18next.t("common-mycj-menu-wholesale-orders"));
30067    },
30068    active: false,
30069    code: 'mycj_wholesale_orders',
30070    route: '/mine/purchase/purchaseList?orderType=3'
30071  }, {
30072    name: 'Inventory Orders',
30073    nameTrans: function nameTrans() {
30074      return "".concat(window.i18next.t("common-mycj-menu-inventory-orders"));
30075    },
30076    active: false,
30077    code: 'mycj_inventory_orders',
30078    route: '/mine/purchase/purchaseList?orderType=2'
30079  }], (0,common/* isSafeUser */.dn)() ? [{
30080    name: 'Undelivered Orders',
30081    nameTrans: function nameTrans() {
30082      return "".concat(window.i18next.t("common-mycj-menu-undelivered-orders"));
30083    },
30084    code: 'mycj_undelivered_orders',
30085    route: '/mine/undeliveredOrder',
30086    active: false
30087  }, {
30088    name: 'Fulfillment Status',
30089    nameTrans: function nameTrans() {
30090      return "".concat(window.i18next.t("common-mycj-menu-fulfillment-status"));
30091    },
30092    code: 'mycj_orders_tracking',
30093    route: '/mine/orderTracing/list',
30094    active: false
30095  }] : [], true), [{
30096    name: 'Disputes',
30097    nameTrans: function nameTrans() {
30098      return "".concat(window.i18next.t("common-mycj-menu-disputes"));
30099    },
30100    code: 'mycj_disputes',
30101    route: '/mine/dispute/list',
30102    active: false
30103  }], false)
30104}, {
30105  name: 'Service',
30106  nameTrans: function nameTrans() {
30107    return "".concat(window.i18next.t("common-mycj-menu-service"));
30108  },
30109  iconclass: 'bianzu71',
30110  active: false,
30111  code: 'mycj_service',
30112  childs: bar_config_vp_spreadArray(bar_config_vp_spreadArray(bar_config_vp_spreadArray(bar_config_vp_spreadArray([], (0,common/* isSafeUser */.dn)() ? [{
30113    name: 'Sourcing',
30114    nameTrans: function nameTrans() {
30115      return "".concat(window.i18next.t("common-mycj-menu-sourcing"));
30116    },
30117    code: 'mycj_sourcing',
30118    route: '/mine/sourcing/list',
30119    active: false,
30120    tip: function tip() {
30121      return window.i18next.t("common-mycj-menu-sourcing-tip");
30122    }
30123  }] : [], true), [{
30124    name: 'Custom Packaging',
30125    nameTrans: function nameTrans() {
30126      return "".concat(window.i18next.t("common-mycj-menu-custom-packaging"));
30127    },
30128    code: 'mycj_custom_packaging',
30129    route: '/my.html#/regular-packaging',
30130    active: false,
30131    tip: function tip() {
30132      return window.i18next.t("common-mycj-menu-custom-packaging-tip");
30133    }
30134  }], false), (0,common/* isSafeUser */.dn)() ? [{
30135    name: 'Customization',
30136    nameTrans: function nameTrans() {
30137      return "".concat(window.i18next.t("common-mycj-menu-customization"));
30138    },
30139    code: 'mycj_customization',
30140    route: '/mine/customization',
30141    active: false,
30142    tip: function tip() {
30143      var _a;
30144      return window.i18next.t("common-mycj-menu-customization-tip", {
30145        siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
30146      });
30147    }
30148  }, {
30149    name: 'Print on Demand',
30150    nameTrans: function nameTrans() {
30151      return "".concat(window.i18next.t("common-mycj-menu-print-on-demand"));
30152    },
30153    active: false,
30154    tip: function tip() {
30155      return window.i18next.t("common-mycj-menu-print-on-demand-tip");
30156    },
30157    childs: [{
30158      name: 'POD Products',
30159      nameTrans: function nameTrans() {
30160        return "".concat(window.i18next.t("common-mycj-menu-pod-products"));
30161      },
30162      route: '/printonDemand/home',
30163      active: false
30164    }, {
30165      name: "Buyer's Design",
30166      nameTrans: function nameTrans() {
30167        return "".concat(window.i18next.t("common-mycj-menu-buyers-design"));
30168      },
30169      iconclass: 'maijiaxinxi',
30170      code: 'mycj_buyers_design',
30171      route: '/my.html#/pod/buyer-design',
30172      active: false,
30173      tipName: 'Connected POD products in your store.'
30174    }, {
30175      name: 'Design Myself',
30176      nameTrans: function nameTrans() {
30177        return "".concat(window.i18next.t("common-mycj-menu-design-myself"));
30178      },
30179      iconclass: 'maijiazhongxin_chanpinkumingjiangku',
30180      code: 'mycj_design_myself',
30181      route: '/my.html#/pod/design-myself',
30182      active: false,
30183      tipName: 'Your designed products on CJ.'
30184    }]
30185  }] : [], true), [{
30186    name: '3PL Fulfillment',
30187    nameTrans: function nameTrans() {
30188      return "".concat(window.i18next.t("common-mycj-menu-3pl"));
30189    },
30190    active: false,
30191    tip: function tip() {
30192      var _a;
30193      return window.i18next.t("common-mycj-menu-3pl-tip", {
30194        siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
30195      });
30196    },
30197    childs: [{
30198      name: 'Products',
30199      nameTrans: function nameTrans() {
30200        return "".concat(window.i18next.t("common-mycj-menu-products"));
30201      },
30202      code: 'mycj_3pl_products',
30203      route: '/my.html#/products-connection/goods',
30204      active: false
30205    }, {
30206      name: 'Shipment',
30207      nameTrans: function nameTrans() {
30208        return "".concat(window.i18next.t("common-mycj-menu-shipment"));
30209      },
30210      code: 'mycj_3pl_shipment',
30211      route: '/mine/shipment',
30212      active: false
30213    }]
30214  }], false)
30215}, {
30216  name: 'Authorization',
30217  nameTrans: function nameTrans() {
30218    return "".concat(window.i18next.t("common-mycj-menu-authorization"));
30219  },
30220  iconclass: 'dianpushouquan',
30221  active: false,
30222  special: true,
30223  code: 'mycj_authorization',
30224  childs: [bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.shopify), {
30225    nameTrans: function nameTrans() {
30226      return "".concat(window.i18next.t("common-mycj-menu-shopify"));
30227    },
30228    version: 2,
30229    active: false
30230  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.wed2c), {
30231    nameTrans: function nameTrans() {
30232      return "".concat(window.i18next.t("common-mycj-menu-wed2c"));
30233    },
30234    version: 2,
30235    active: false
30236  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.temu), {
30237    nameTrans: function nameTrans() {
30238      return "".concat(window.i18next.t("common-mycj-menu-temu"));
30239    },
30240    version: 2,
30241    type: 'authorize',
30242    active: false
30243  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.temu_us_local), {
30244    nameTrans: function nameTrans() {
30245      return "".concat(window.i18next.t("common-mycj-menu-temu-us-local"));
30246    },
30247    version: 2,
30248    type: 'authorize',
30249    active: false
30250  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.temu_certified_overseas), {
30251    nameTrans: function nameTrans() {
30252      return "".concat(window.i18next.t("common-mycj-menu-temu-certified-overseas"));
30253    },
30254    version: 2,
30255    type: 'authorize',
30256    active: false
30257  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.shein), {
30258    nameTrans: function nameTrans() {
30259      return "".concat(window.i18next.t("common-mycj-menu-shein"));
30260    },
30261    version: 2,
30262    type: 'authorize',
30263    active: false
30264  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.tiktok), {
30265    nameTrans: function nameTrans() {
30266      return "".concat(window.i18next.t("common-mycj-menu-tiktok"));
30267    },
30268    version: 2,
30269    type: 'authorize',
30270    active: false
30271  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.tiktok_us), {
30272    nameTrans: function nameTrans() {
30273      return "".concat(window.i18next.t("common-mycj-menu-tiktok-us"));
30274    },
30275    version: 2,
30276    type: 'authorize',
30277    active: false
30278  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.tiktok_us_cross), {
30279    nameTrans: function nameTrans() {
30280      return "".concat(window.i18next.t("common-mycj-menu-tiktok-us-cross"));
30281    },
30282    version: 2,
30283    type: 'authorize',
30284    active: false
30285  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.woocommerce), {
30286    nameTrans: function nameTrans() {
30287      return "".concat(window.i18next.t("common-mycj-menu-woocommerce"));
30288    },
30289    version: 2,
30290    type: 'authorize',
30291    active: false
30292  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.ebay), {
30293    nameTrans: function nameTrans() {
30294      return "".concat(window.i18next.t("common-mycj-menu-ebay"));
30295    },
30296    version: 2,
30297    type: 'authorize',
30298    active: false
30299  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.api), {
30300    nameTrans: function nameTrans() {
30301      return "".concat(window.i18next.t("common-mycj-menu-api"));
30302    },
30303    version: 2,
30304    type: 'authorize',
30305    active: false
30306  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.etsy), {
30307    nameTrans: function nameTrans() {
30308      return "".concat(window.i18next.t("common-mycj-menu-etsy"));
30309    },
30310    version: 2,
30311    type: 'authorize',
30312    active: false
30313  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.aliexpress), {
30314    nameTrans: function nameTrans() {
30315      return "".concat(window.i18next.t("common-mycj-menu-aliexpress"));
30316    },
30317    version: 2,
30318    type: 'authorize',
30319    active: false
30320  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.wix), {
30321    nameTrans: function nameTrans() {
30322      return "".concat(window.i18next.t("common-mycj-menu-wix"));
30323    },
30324    version: 2,
30325    type: 'authorize',
30326    active: false
30327  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.lazada), {
30328    nameTrans: function nameTrans() {
30329      return "".concat(window.i18next.t("common-mycj-menu-lazada"));
30330    },
30331    version: 2,
30332    type: 'authorize',
30333    active: false
30334  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.shopee), {
30335    nameTrans: function nameTrans() {
30336      return "".concat(window.i18next.t("common-mycj-menu-shopee"));
30337    },
30338    version: 2,
30339    type: 'authorize',
30340    active: false
30341  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.squarespace), {
30342    nameTrans: function nameTrans() {
30343      return "".concat(window.i18next.t("common-mycj-menu-squarespace"));
30344    },
30345    version: 2,
30346    type: 'authorize',
30347    active: false
30348  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.shoplazza), {
30349    nameTrans: function nameTrans() {
30350      return "".concat(window.i18next.t("common-mycj-menu-shoplazza"));
30351    },
30352    version: 2,
30353    type: 'authorize',
30354    active: false
30355  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.magento), {
30356    nameTrans: function nameTrans() {
30357      return "".concat(window.i18next.t("common-mycj-menu-magento"));
30358    },
30359    version: 2,
30360    type: 'authorize',
30361    active: false
30362  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.bigcommerce), {
30363    nameTrans: function nameTrans() {
30364      return "".concat(window.i18next.t("common-mycj-menu-bigcommerce"));
30365    },
30366    version: 2,
30367    type: 'authorize',
30368    active: false
30369  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.prestashop), {
30370    nameTrans: function nameTrans() {
30371      return "".concat(window.i18next.t("common-mycj-menu-prestashop"));
30372    },
30373    version: 2,
30374    type: 'authorize',
30375    active: false
30376  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.allvalue), {
30377    nameTrans: function nameTrans() {
30378      return "".concat(window.i18next.t("common-mycj-menu-allvalue"));
30379    },
30380    version: 2,
30381    type: 'authorize',
30382    active: false
30383  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.nuvemshop), {
30384    nameTrans: function nameTrans() {
30385      return "".concat(window.i18next.t("common-mycj-menu-nuvemshop"));
30386    },
30387    version: 2,
30388    type: 'authorize',
30389    active: false
30390  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.mercado), {
30391    nameTrans: function nameTrans() {
30392      return "".concat(window.i18next.t("common-mycj-menu-mercado"));
30393    },
30394    version: 2,
30395    type: 'authorize',
30396    active: false
30397  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.shipstation), {
30398    nameTrans: function nameTrans() {
30399      return "".concat(window.i18next.t("common-mycj-menu-shipstation"));
30400    },
30401    version: 2,
30402    type: 'authorize',
30403    active: false
30404  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.orangeconnex), {
30405    nameTrans: function nameTrans() {
30406      return "".concat(window.i18next.t("common-mycj-menu-orangeconnex"));
30407    },
30408    version: 2,
30409    type: 'authorize',
30410    active: false
30411  }), bar_config_vp_assign(bar_config_vp_assign({}, platform_show/* PLATFORM */.i9.mabang), {
30412    nameTrans: function nameTrans() {
30413      return "".concat(window.i18next.t("common-mycj-menu-mabang"));
30414    },
30415    version: 2,
30416    type: 'authorize',
30417    active: false
30418  })]
30419}, {
30420  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'))),
30421  nameVal: "My CJ",
30422  nameTrans: function nameTrans() {
30423    var _a;
30424    return window.i18next.t("common-mycj-my-site", {
30425      siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('source-name')
30426    });
30427  },
30428  iconclass: 'bianzu32',
30429  active: false,
30430  childs: [{
30431    name: 'Dashboard',
30432    nameTrans: function nameTrans() {
30433      return "".concat(window.i18next.t("common-mycj-menu-dashboard"));
30434    },
30435    code: 'mycj_dashboard',
30436    route: '/my.html#/dashboard',
30437    active: false,
30438    isNew: true
30439  }, {
30440    name: 'Profile',
30441    nameTrans: function nameTrans() {
30442      return "".concat(window.i18next.t("common-mycj-menu-profile"));
30443    },
30444    code: 'mycj_profile',
30445    route: '/my.html#/profile/info',
30446    active: false
30447  }, {
30448    name: 'Ticket',
30449    nameTrans: function nameTrans() {
30450      return "".concat(window.i18next.t("common-mycj-menu-ticket"));
30451    },
30452    code: 'mycj_ticket',
30453    route: '/mine/ticket',
30454    active: false
30455  }, {
30456    name: 'Wallet',
30457    nameTrans: function nameTrans() {
30458      return "".concat(window.i18next.t("common-mycj-menu-wallet"));
30459    },
30460    code: 'mycj_wallet',
30461    route: '/mine/wallet',
30462    active: false
30463  }, {
30464    name: 'Browsing History',
30465    nameTrans: function nameTrans() {
30466      return "".concat(window.i18next.t("common-mycj-menu-browsing-history"));
30467    },
30468    code: 'mycj_browsing_history',
30469    route: '/viewHistory',
30470    active: false
30471  }, {
30472    name: 'Export List',
30473    nameTrans: function nameTrans() {
30474      return "".concat(window.i18next.t("common-mycj-menu-export-list"));
30475    },
30476    iconclass: 'liwuicon_',
30477    code: 'mycj_export_list',
30478    route: '/mine/exportList',
30479    active: false
30480  }, {
30481    name: 'Sub-account',
30482    nameTrans: function nameTrans() {
30483      return "".concat(window.i18next.t("common-mycj-menu-sub-account"));
30484    },
30485    code: 'mycj_sub_account',
30486    route: '/my.html#/accountManage',
30487    active: false
30488  }, {
30489    name: 'Order-video',
30490    nameTrans: function nameTrans() {
30491      return "".concat(window.i18next.t("common-mycj-menu-order-list-video"));
30492    },
30493    code: 'mycj_order-video',
30494    route: '/mine/orderVideo',
30495    active: false,
30496    isHide: bar_config/* isWarehouseOperationVideoUser */.fO
30497  }]
30498}];
30499var bar_config_vp_menuPath = {};
30500var bar_config_vp_menuNames = {};
30501function bar_config_vp_loops(list, parent) {
30502  return (list || []).map(function (_a) {
30503    var route = _a.route,
30504      childs = _a.childs,
30505      name = _a.name,
30506      version = _a.version;
30507    var _route = route;
30508    var node = bar_config_vp_menuNames[name] = bar_config_vp_menuPath[_route] = {
30509      parent: parent,
30510      name: name,
30511      version: version,
30512      route: _route
30513    };
30514    node['childs'] = bar_config_vp_loops(childs, node);
30515    return node;
30516  });
30517}
30518function bar_config_vp_getPath(name) {
30519  var obj = bar_config_vp_menuNames[name];
30520  var arr = [];
30521  while (obj && obj.name) {
30522    if (obj.childs && obj.childs[0]) {
30523      arr.push(obj.name);
30524    } else {
30525      arr.push(obj.name);
30526    }
30527    if (!obj.parent) break;
30528    obj = obj.parent;
30529  }
30530  return arr;
30531}
30532bar_config_vp_loops(bar_config_vp_menus, null);
30533var bar_config_vp_createAuthTree = function createAuthTree() {
30534  var authMapByRoute = [];
30535  var _fun = function fun(list) {
30536    return list.map(function (l) {
30537      if (l.route && l.code) authMapByRoute.push({
30538        name: l.name,
30539        code: l.code,
30540        route: l.route
30541      });
30542      return {
30543        name: l.name,
30544        code: l.code,
30545        route: l.route,
30546        children: l.childs && _fun(l.childs)
30547      };
30548    });
30549  };
30550  return [_fun(bar_config_vp_menus), authMapByRoute];
30551};
30552/* harmony default export */ const bar_config_vp = ((/* unused pure expression or super */ null && (bar_config_vp_createAuthTree)));
30553;// ./src/components/Menu/bar.config.th.ts
30554var bar_config_th_a, bar_config_th_b;
30555
30556
30557var 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');
30558var bar_config_th_menus = [{
30559  name: 'Cart',
30560  nameTrans: function nameTrans() {
30561    return "".concat(window.i18next.t("common-mycj-menu-cart"));
30562  },
30563  iconclass: 'gouwuche',
30564  active: false,
30565  route: '/mine/purchase/purchaseCart?cartType=3',
30566  childs: [],
30567  code: 'mycj_cart'
30568}, {
30569  name: 'Orders',
30570  nameTrans: function nameTrans() {
30571    return "".concat(window.i18next.t("common-mycj-menu-orders"));
30572  },
30573  iconclass: 'Orders',
30574  active: false,
30575  code: 'mycj_orders',
30576  childs: [{
30577    name: 'My Orders',
30578    nameTrans: function nameTrans() {
30579      return "".concat(window.i18next.t("common-mycj-menu-my-orders", 'My Orders'));
30580    },
30581    active: false,
30582    code: 'mycj_wholesale_orders',
30583    route: '/mine/purchase/purchaseList?orderType=3'
30584  }, {
30585    name: 'Undelivered Orders',
30586    nameTrans: function nameTrans() {
30587      return "".concat(window.i18next.t("common-mycj-menu-undelivered-orders"));
30588    },
30589    code: 'mycj_undelivered_orders',
30590    route: '/mine/undeliveredOrder',
30591    active: false
30592  }, {
30593    name: 'Disputes',
30594    nameTrans: function nameTrans() {
30595      return "".concat(window.i18next.t("common-mycj-menu-disputes"));
30596    },
30597    code: 'mycj_disputes',
30598    route: '/mine/dispute/list',
30599    active: false
30600  }]
30601}, {
30602  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'))),
30603  nameVal: "My CJ",
30604  nameTrans: function nameTrans() {
30605    var _a;
30606    return window.i18next.t("common-mycj-my-site", {
30607      siteName: (_a = window === null || window === void 0 ? void 0 : window.siteCheck) === null || _a === void 0 ? void 0 : _a.data('name')
30608    });
30609  },
30610  iconclass: 'MonTH',
30611  active: false,
30612  childs: [{
30613    name: 'Profile',
30614    nameTrans: function nameTrans() {
30615      return "".concat(window.i18next.t("common-mycj-menu-profile"));
30616    },
30617    code: 'mycj_profile',
30618    route: '/my.html#/profile/info',
30619    active: false
30620  }, {
30621    name: 'Wallet',
30622    nameTrans: function nameTrans() {
30623      return "".concat(window.i18next.t("common-mycj-menu-wallet"));
30624    },
30625    code: 'mycj_wallet',
30626    route: '/mine/wallet',
30627    active: false
30628  }, {
30629    name: 'Order-video',
30630    nameTrans: function nameTrans() {
30631      return "".concat(window.i18next.t("common-mycj-menu-order-list-video"));
30632    },
30633    code: 'mycj_order-video',
30634    route: '/mine/orderVideo',
30635    active: false,
30636    isHide: bar_config/* isWarehouseOperationVideoUser */.fO
30637  }]
30638}];
30639var bar_config_th_menuPath = {};
30640var bar_config_th_menuNames = {};
30641function bar_config_th_loops(list, parent) {
30642  return (list || []).map(function (_a) {
30643    var route = _a.route,
30644      childs = _a.childs,
30645      name = _a.name,
30646      version = _a.version,
30647      nameTrans = _a.nameTrans;
30648    var _route = route;
30649    var node = bar_config_th_menuNames[name] = bar_config_th_menuPath[_route] = {
30650      parent: parent,
30651      nameTrans: nameTrans,
30652      name: name,
30653      version: version,
30654      route: _route
30655    };
30656    node['childs'] = bar_config_th_loops(childs, node);
30657    return node;
30658  });
30659}
30660function bar_config_th_getPath(name) {
30661  var obj = bar_config_th_menuNames[name];
30662  var arr = [];
30663  while (obj && obj.name) {
30664    if (obj.childs && obj.childs[0]) {
30665      arr.push(obj.name);
30666    } else {
30667      arr.push(obj.name);
30668    }
30669    if (!obj.parent) break;
30670    obj = obj.parent;
30671  }
30672  return arr;
30673}
30674function getTransPath(name) {
30675  var obj = bar_config_th_menuNames[name];
30676  var arr = [];
30677  while (obj && obj.nameTrans) {
30678    if (obj.childs && obj.childs[0]) {
30679      arr.push(obj.nameTrans);
30680    } else {
30681      arr.push(obj.nameTrans);
30682    }
30683    if (!obj.parent) break;
30684    obj = obj.parent;
30685  }
30686  return arr;
30687}
30688bar_config_th_loops(bar_config_th_menus, null);
30689var bar_config_th_createAuthTree = function createAuthTree() {
30690  var authMapByRoute = [];
30691  var _fun = function fun(list) {
30692    return list.map(function (l) {
30693      if (l.route && l.code) authMapByRoute.push({
30694        name: l.name,
30695        code: l.code,
30696        route: l.route
30697      });
30698      return {
30699        name: l.name,
30700        code: l.code,
30701        route: l.route,
30702        children: l.childs && _fun(l.childs)
30703      };
30704    });
30705  };
30706  return [_fun(bar_config_th_menus), authMapByRoute];
30707};
30708/* harmony default export */ const bar_config_th = ((/* unused pure expression or super */ null && (bar_config_th_createAuthTree)));
30709// EXTERNAL MODULE: ./node_modules/@cckj/mf-tools/dist/index.js
30710var dist = __webpack_require__(99437);
30711;// ./src/components/Menu/hooks/useNoMenuActiveRoute.ts
30712
30713var noMenuRouteConfig = [{
30714  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],
30715  activeMenu: 'Find Products'
30716}, {
30717  routes: [/\/mine\/purchase\/purchaseConfirmation/i],
30718  activeMenu: 'Cart'
30719}, {
30720  routes: [/\/mine\/dropshipping\/orderManage\/orderDetial/i, /\/mine\/orderImport/i],
30721  activeMenu: 'Store Orders'
30722}, {
30723  routes: [/\/mine\/purchase\/detial(.*?)type=1/i, /\/mine\/dispute\/createDispute(.*?)purchaseOrderType=1/i],
30724  activeMenu: 'Sample Orders'
30725}, {
30726  routes: [/\/mine\/purchase\/detial(.*?)type=3/i, /\/mine\/dispute\/createDispute(.*?)purchaseOrderType=3/i],
30727  activeMenu: 'Wholesale Orders'
30728}, {
30729  routes: [/\/mine\/purchase\/detial(.*?)type=(2|4)/i, /\/mine\/purchase\/purchaseList(.*?)orderType=4/i],
30730  activeMenu: 'Inventory Orders'
30731}, {
30732  routes: [/\/mine\/orderTracing\/detail/i],
30733  activeMenu: 'Fulfillment Status'
30734}, {
30735  routes: [/\/mine\/sourcing\/postSourcing/i, /\/mine\/quickSourcing/i],
30736  activeMenu: 'Sourcing'
30737}, {
30738  routes: [/\/mine\/marketing\/cards/i, /\/my.html#\/all-message/i, /\/points-mall/i],
30739  activeMenu: 'Home'
30740}, {
30741  routes: [/\/viewHistory/i],
30742  activeMenu: 'Browsing History'
30743}, {
30744  routes: [/\/mine\/myInventoryNew/i, /\/mine\/myInventory\/deposit\?type=2/i, /\/mine\/myInventory\/depositBySPU\?type=2/i
30744],
30745  activeMenu: 'My Inventory'
30746}];
30747function useNoMenuActiveRoute(_a) {
30748  var setActive = _a.setActive,
30749    _b = _a.autoRun,
30750    autoRun = _b === void 0 ? true : _b;
30751  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
30752    if (!autoRun) return;
30753    noMenuRouteConfig.some(function (config) {
30754      var path = location.href;
30755      var match = config.routes.find(function (_) {
30756        return _.test(path);
30757      });
30758      if (match) {
30759        setActive(config.activeMenu);
30760      }
30761      return match;
30762    });
30763  }, []);
30764}
30765// EXTERNAL MODULE: ./src/components/CjHeader/contexts/PropsContext.ts
30766var PropsContext = __webpack_require__(44148);
30767// EXTERNAL MODULE: ./src/hook/use-is-mycj.ts
30768var use_is_mycj = __webpack_require__(71850);
30769;// ./src/components/Menu/hooks/useWindowTitle.ts
30770var useWindowTitle_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
30771  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
30772    if (ar || !(i in from)) {
30773      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
30774      ar[i] = from[i];
30775    }
30776  }
30777  return to.concat(ar || Array.prototype.slice.call(from));
30778};
30779
30780
30781
30782function useWindowTitle(_a) {
30783  var activeRoutes = _a.activeRoutes,
30784    activeTransRoutes = _a.activeTransRoutes;
30785  var siteCheck = (0,PropsContext/* useGlobalProps */.v)().siteCheck;
30786  var isMyCJPage = (0,use_is_mycj/* default */.A)().isMyCJPage;
30787  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
30788    if (activeTransRoutes && activeTransRoutes.length && isMyCJPage) {
30789      var trans = useWindowTitle_spreadArray([], activeTransRoutes, true).shift();
30790      var transTitle = trans ? trans() : '';
30791      transTitle && (document.title = transTitle);
30792      return;
30793    }
30794    if (activeRoutes.length > 0 && isMyCJPage) {
30795      var routeName = useWindowTitle_spreadArray([], activeRoutes, true).shift();
30796      if ((routeName === null || routeName === void 0 ? void 0 : routeName.toLowerCase()) === 'tiktok_us_cross') {
30797        routeName = 'TikTok Shop US (Cross Border)';
30798      } else if ((routeName === null || routeName === void 0 ? void 0 : routeName.toLowerCase()) === 'tiktok_us') {
30799        routeName = 'TikTok Shop US (Local)';
30800      } else if ((routeName === null || routeName === void 0 ? void 0 : routeName.toLowerCase()) === 'tiktok') {
30801        routeName = 'TikTok Shop (Non-US)';
30802      } else if ((routeName === null || routeName === void 0 ? void 0 : routeName.toLowerCase()) === 'temu') {
30803        routeName = 'Temu Semi-Managed';
30804      } else if ((routeName === null || routeName === void 0 ? void 0 : routeName.toLowerCase()) === 'temu_us_local') {
30805        routeName = 'Temu Local';
30806      } else if ((routeName === null || routeName === void 0 ? void 0 : routeName.toLowerCase()) === 'temu_certified_overseas') {
30807        routeName = 'Temu Cooperative Warehouse';
30808      } else if ((routeName === null || routeName === void 0 ? void 0 : routeName.toLowerCase()) === 'shein') {
30809        routeName = 'Shein Semi-Managed';
30810      }
30811      routeName && (document.title = routeName);
30812    }
30813    if (activeRoutes.length == 0 && isMyCJPage) {
30814      document.title = "My".concat(siteCheck.data('name') || 'CJ');
30815    }
30816  }, [activeRoutes]);
30817}
30818// EXTERNAL MODULE: ./src/components/Menu/hooks/useIsQk.ts
30819var useIsQk = __webpack_require__(69055);
30820// EXTERNAL MODULE: ./src/components/Menu/hooks/useIsVP.ts
30821var useIsVP = __webpack_require__(63301);
30822;// ./src/components/Menu/hooks/useActiveRoute.ts
30823function 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); }
30824var useActiveRoute_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
30825  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
30826    if (ar || !(i in from)) {
30827      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
30828      ar[i] = from[i];
30829    }
30830  }
30831  return to.concat(ar || Array.prototype.slice.call(from));
30832};
30833
30834
30835
30836
30837
30838
30839
30840
30841
30842
30843
30844
30845
30846
30847
30848
30849
30850
30851
30852
30853
30854var useActiveRoute = function useActiveRoute() {
30855  var _a = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)([]),
30856    activeRoutes = _a[0],
30857    setActiveRoutes = _a[1];
30858  var _b = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)([]),
30859    activeTransRoutes = _b[0],
30860    setActiveTransRoutes = _b[1];
30861  var _c = (0,use_parent_platform/* default */.A)(),
30862    isCj = _c.isCj,
30863    isGlobalWarehouse = _c.isGlobalWarehouse,
30864    isSupplier = _c.isSupplier;
30865  var siteCheck = (0,use_site_check/* default */.A)();
30866  var _menuPath = isQs() ? bar_config_qs_menuPath : bar_config/* menuPath */.DD;
30867  if (useIsCf()) _menuPath = menuPath;
30868  if ((0,useIsQk/* default */.A)()) _menuPath = bar_config_qk_menuPath;
30869  if ((0,useIsVP/* default */.A)()) _menuPath = bar_config_vp_menuPath;
30870  if ((0,common/* is1688 */.G3)(siteCheck)) _menuPath = bar_config_th_menuPath;
30871  if ((0,useIsZS/* default */.A)(siteCheck)) _menuPath = bar_config_zs/* menuPath */.DD;
30872  var currentMenuNames = Object.keys(_menuPath).map(function (route) {
30873    var _a;
30874    return (_a = _menuPath[route]) === null || _a === void 0 ? void 0 : _a.name;
30875  }).filter(Boolean);
30876  var pickMenuName = function pickMenuName() {
30877    var names = [];
30878    for (var _i = 0; _i < arguments.length; _i++) {
30879      names[_i] = arguments[_i];
30880    }
30881    return names.find(function (name) {
30882      return currentMenuNames.includes(name);
30883    });
30884  };
30885  var normalizeRouteName = function normalizeRouteName(routeName) {
30886    if (routeName === 'Profile' || routeName === 'Settings') {
30887      return pickMenuName(routeName, routeName === 'Profile' ? 'Settings' : 'Profile') || routeName;
30888    }
30889    if (routeName === 'Home') {
30890      return pickMenuName('Home', 'Find Products', 'Dashboard') || routeName;
30891    }
30892    if (routeName === 'Shipping Calculation') {
30893      return pickMenuName('Shipping Calculation', 'Find Products') || routeName;
30894    }
30895    return routeName;
30896  };
30897  useWindowTitle({
30898    activeRoutes: activeRoutes,
30899    activeTransRoutes: activeTransRoutes
30900  });
30901  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
30902    var token = login_info_controller/* default */.A.info('token');
30903    var pathname = location.pathname;
30904    var isMycj = pathname.indexOf('my.html') > -1 || pathname.indexOf('/mine') > -1;
30905    if (token.includes('@VP:') && !location.href.includes('fulfillvip') && isMycj) {
30906      var url = location.hostname.includes('offline.pre') ? 'http://www.fulfillvip.offline.pre.com' : 'https://www.fulfillvip.com';
30907      location.href = "".concat(url, "/toLogin.html?jumpVP=true&token=").concat(base64/* Base64 */.o4.encode(token));
30908    }
30909    var path = location.pathname || '';
30910    dist.mfEvent.$on('on-url-changed', function (data) {
30911      var _a, _b, _c;
30912      if ((path === null || path === void 0 ? void 0 : path.indexOf('my.html')) === -1) return;
30913      var name = data.name || data.names;
30914      var child = data.child || '';
30915      if (name && useActiveRoute_typeof(name) === 'object') {
30916        var path_1 = location.pathname || '';
30917        if (path_1.indexOf('my.html') > -1) {
30918          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 : '';
30919          if (url.indexOf('/authorize') > -1) name = name[url];
30920        }
30921      }
30922      if (child) name = child;
30923      if (name == 'Queue') {
30924        if (location.hash.indexOf('/products-connection/history/0') === -1) name = 'Products Records';
30925      }
30926      if (/products-connection\/.*?-connection/i.test(location.hash)) {
30927        name = 'Store Products';
30928      }
30929      if (useIsCf()) {
30930        if (name === 'Products') {
30931          name = 'My Products';
30932        }
30933      }
30934      setActive(normalizeRouteName(name));
30935    });
30936    if (!path || path === '/') {
30937      if (isCj || isGlobalWarehouse) setActive((0,useIsZS/* default */.A)(siteCheck) ? 'Store Orders' : pickMenuName('Catalog', 'Find Products', 'Home', 'Dashboard') || 'Find Products');
30938    }
30939    if (path === '/home') {
30940      setActive(normalizeRouteName('Home'));
30941    }
30942    if (path === '/home.html') {
30943      setActive(pickMenuName('Catalog', 'Find Products', 'Home', 'Dashboard') || 'Find Products');
30944    }
30945    if (path === '/calculation.html') {
30946      setActive(normalizeRouteName('Shipping Calculation'));
30947    }
30948    if (path === '/mentors') {
30949      setActive('Academy');
30950    } else if (path === '/savedFactories') {
30951      setActive('Saved Factories');
30952    } else if (path === '/factories' || path === '/factoryDetail') {
30953      setActive('Factories');
30954    }
30955    if (['/agents', '/agents/detail', '/mine/agents/serviceOrders', '/mine/agents/serviceComplaints'].includes(path) || /agents\/\d+/i.test(path)) {
30956      setActive('Agents');
30957    }
30958    if (isSupplier) {
30959      setActive('Brands');
30960    }
30961    if ((0,useIsZS/* default */.A)(siteCheck) && (path == '/list/wholesale-all-categories-l-all.html' || path.indexOf('/search/') > -1)) {
30962      setActive('Catalog');
30963    }
30964    if (/\/intelligence/i.test(path)) {
30965      setActive('Intelligence');
30966    }
30967  }, []);
30968  var path = location.pathname || '';
30969  var verifyWidthUS = function verifyWidthUS(lcPath, lcName) {
30970    var verifyTTUS = lcPath.toLowerCase().indexOf('tiktok_us') > -1 ? lcPath.toLowerCase().indexOf('tiktok_us_cross') > -1 ? lcName == 'tiktok_us_cross' : lcName == 'tiktok_us' : true;
30971    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;
30972    return verifyTTUS && verifyTemu;
30973  };
30974  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
30975    if (path.startsWith('/mine')) {
30976      var findRouteName = '';
30977      var bestRouteLen = -1;
30978      var routes = Object.keys(_menuPath);
30979      for (var _i = 0, routes_1 = routes; _i < routes_1.length; _i++) {
30980        var route = routes_1[_i];
30981        var pureRoute = route.split('?')[0];
30982        if (path.indexOf(pureRoute) > -1 || _menuPath[route].version === 2) {
30983          if (_menuPath[route].version === 2) {
30984            var lcPath = path.toLowerCase();
30985            var lcName = _menuPath[route].name.toLowerCase();
30986            if (lcPath.toLowerCase().indexOf(lcName) > -1 && verifyWidthUS(lcPath, lcName)) {
30987              findRouteName = _menuPath[route].name;
30988              break;
30989            }
30990            var lcName2 = lcName.replace(/\s+/g, '').replace('-', '_');
30991            if (lcPath.indexOf(lcName2) > -1 && verifyWidthUS(lcPath, lcName2)) {
30992              findRouteName = _menuPath[route].name;
30993              break;
30994            }
30995          } else if ((pureRoute || '').length > bestRouteLen) {
30996            bestRouteLen = (pureRoute || '').length;
30997            findRouteName = _menuPath[route].name;
30998          }
30999        }
31000      }
31001      if (path.indexOf('/mine/purchase/purchaseList') > -1) {
31002        var search = location.search;
31003        var searchObj = search.slice(1).split('&').reduce(function (obj, item) {
31004          var _a = item.split('='),
31005            key = _a[0],
31006            value = _a[1];
31007          obj[key] = value;
31008          return obj;
31009        }, {});
31010        var orderType = searchObj.orderType;
31011        if (orderType) {
31012          findRouteName = {
31013            '1': 'Sample Orders',
31014            '2': 'Inventory Orders',
31015            '3': (0,common/* is1688 */.G3)(siteCheck) ? 'My Orders' : 'Wholesale Orders'
31016          }[orderType];
31017        }
31018      }
31019      if (path.indexOf('/products/patchPack') > -1) {
31020        var search = location.search;
31021        var params = new URLSearchParams(search);
31022        var from = params.get('from');
31023        if (from === 'AddedProducts') {
31024          findRouteName = 'Added Products';
31025        } else if (from === 'StoreProducts') {
31026          findRouteName = 'Store Products';
31027        } else {
31028          findRouteName = 'Cart';
31029        }
31030      }
31031      if (findRouteName) {
31032        setActive(findRouteName);
31033      }
31034    }
31035  }, [path, location.search]);
31036  var setActive = function setActive(routeName) {
31037    var _getPath = isQs() ? bar_config_qs_getPath : bar_config/* getPath */.Yn;
31038    if ((0,useIsZS/* default */.A)(siteCheck)) _getPath = bar_config_zs/* getPath */.Yn;
31039    if ((0,useIsQk/* default */.A)()) _getPath = bar_config_qk_getPath;
31040    if ((0,useIsVP/* default */.A)()) _getPath = bar_config_vp_getPath;
31041    if (useIsCf()) _getPath = getPath;
31042    if ((0,common/* is1688 */.G3)(siteCheck)) {
31043      _getPath = bar_config_th_getPath;
31044      var transPath = getTransPath(routeName);
31045      setActiveTransRoutes(transPath);
31046    }
31047    var arr = _getPath(routeName);
31048    setActiveRoutes(useActiveRoute_spreadArray([], arr, true));
31049  };
31050  var isZesty = (0,useIsZS/* default */.A)();
31051  var autoRun = isZesty ? false : true;
31052  useNoMenuActiveRoute({
31053    setActive: setActive,
31054    autoRun: autoRun
31055  });
31056  var isActive = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (routeName) {
31057    var arr = activeRoutes.slice(0, activeRoutes.length - 1);
31058    return arr.includes(routeName);
31059  }, [activeRoutes]);
31060  var isParentActive = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (routeName) {
31061    var len = activeRoutes.length;
31062    return activeRoutes[len - 1] === routeName;
31063  }, [activeRoutes]);
31064  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
31065    if (activeRoutes.length > 0) {
31066      var routeName = useActiveRoute_spreadArray([], activeRoutes, true).pop();
31067      var curRouteDom_1 = document.querySelector("[data-route=\"".concat(routeName, "\"]"));
31068      if ((0,common/* isInViewport */.cH)(curRouteDom_1, 134)) return;
31069      setTimeout(function () {
31070        curRouteDom_1 === null || curRouteDom_1 === void 0 ? void 0 : curRouteDom_1.scrollIntoView({
31071          block: 'start',
31072          behavior: 'smooth'
31073        });
31074      }, 500);
31075    }
31076  }, [activeRoutes]);
31077  return {
31078    isActive: isActive,
31079    isParentActive: isParentActive
31080  };
31081};
31082/* harmony default export */ const hooks_useActiveRoute = (useActiveRoute);
31083;// ./src/components/Menu/hooks/useIsCollapsed.ts
31084
31085
31086
31087
31088
31089var collapsedWidth = 65;
31090var expandedWidth = 220;
31091var zestyMenuCollapsedWidth = 80;
31092var useCollapsed = function useCollapsed() {
31093  var _a;
31094  var siteCheck = (0,PropsContext/* useGlobalProps */.v)().siteCheck;
31095  var menuCollapsed = (_a = js_cookie/* default */.A.get('menuCollapsed')) !== null && _a !== void 0 ? _a : siteCheck.data('default-menu-collapsed') || 'false';
31096  var _b = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(JSON.parse(menuCollapsed)),
31097    isCollapsed = _b[0],
31098    setIsCollapsed = _b[1];
31099  var _c = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)((0,common/* is1688 */.G3)(siteCheck) ? false : true),
31100    allowSwitch = _c[0],
31101    setAllowSwitch = _c[1];
31102  var isZesty = siteCheck.isSite('ZS');
31103  var theMenuCollapsedWidth = isZesty ? zestyMenuCollapsedWidth : collapsedWidth;
31104  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
31105    if ((0,common/* is1688 */.G3)(siteCheck)) return;
31106    var handleResize = function handleResize() {
31107      if (window.innerWidth < 1440) {
31108        toggle('1');
31109        setAllowSwitch(false);
31110      } else {
31111        setAllowSwitch(true);
31112      }
31113    };
31114    window.addEventListener('resize', handleResize);
31115    handleResize();
31116    return function () {
31117      return window.removeEventListener('resize', handleResize);
31118    };
31119  }, []);
31120  var toggle = function toggle(_collapsed) {
31121    if (_collapsed === void 0) {
31122      _collapsed = '';
31123    }
31124    var flag = _collapsed ? _collapsed === '1' : !isCollapsed;
31125    var httpsOptions = (0,common/* httpsOptionsConfig */.Me)();
31126    js_cookie/* default */.A.set('menuCollapsed', JSON.stringify(flag), httpsOptions);
31127    var menu = document.getElementById('cj-menu');
31128    if (menu) {
31129      menu.style.width = (flag ? theMenuCollapsedWidth : expandedWidth) + 'px';
31130    }
31131    setIsCollapsed(flag);
31132  };
31133  return {
31134    isCollapsed: isCollapsed,
31135    allowSwitch: allowSwitch,
31136    toggle: toggle
31137  };
31138};
31139/* harmony default export */ const useIsCollapsed = (useCollapsed);
31140// EXTERNAL MODULE: ./src/components/CjHeader/hooks/use-is-login.ts
31141var use_is_login = __webpack_require__(53905);
31142;// ./src/components/Menu/MenuNormal/SubMenu.tsx
31143
31144
31145
31146
31147
31148
31149
31150
31151
31152
31153
31154
31155
31156
31157
31158
31159
31160
31161
31162var SubMenu_SubMenu = function SubMenu(_a) {
31163  var _b, _c, _d;
31164  var _e;
31165  var item = _a.item,
31166    isActive = _a.isActive,
31167    isParentActive = _a.isParentActive,
31168    showAuthorizeListData = _a.showAuthorizeListData,
31169    openAddStore = _a.openAddStore,
31170    openServiceCenter = _a.openServiceCenter,
31171    guideVisible = _a.guideVisible;
31172  var isVip = (0,useIsVip/* default */.A)();
31173  var siteCheck = (0,use_site_check/* default */.A)();
31174  var loginInfo = (0,PropsContext/* useGlobalProps */.v)().loginInfo;
31175  var isLogin = (0,use_is_login/* default */.A)(loginInfo).isLogin;
31176  var isCJSite = siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.isSite('CJ');
31177  var isCj = (0,use_parent_platform/* default */.A)().isCj;
31178  var hookMenusChilds = useMenuChilds({
31179    selector: '.specialMenuItem'
31180  });
31181  var isZesty = siteCheck.isSite('ZS');
31182  var defaultExpand = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useMemo)(function () {
31183    if (isLogin) {
31184      if (isCJSite) {
31185        return item.name === 'Source' || item.name === 'Community';
31186      }
31187      return true;
31188    }
31189    return item.name === 'Products';
31190  }, [isLogin, item.name, isCJSite]);
31191  var _f = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(defaultExpand),
31192    expand = _f[0],
31193    setExpand = _f[1];
31194  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
31195    if (isParentActive(item.name) && !expand) {
31196      setExpand(true);
31197    }
31198  }, [isParentActive, item.name]);
31199  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
31200    var _a;
31201    if (guideVisible && ((_a = item.childs) === null || _a === void 0 ? void 0 : _a.length) > 0 && !expand) {
31202      setExpand(true);
31203    }
31204  }, [guideVisible]);
31205  var hookMyCjRoute = (0,useMyCjReactRoute/* default */.A)();
31206  var i18next = window === null || window === void 0 ? void 0 : window.i18next;
31207  var handleClick = function handleClick() {
31208    if (item.childs.length > 0) {
31209      setExpand(expand ? '' : item.name);
31210    } else {
31211      if (hookMyCjRoute.canUseNewMyCjRouteJump(item.route)) {
31212        return hookMyCjRoute.changeRoute(item.route);
31213      }
31214      var _href = (0,common/* getRouteHref */.hQ)(item);
31215      location.href = isCj ? _href : (0,cj_href/* cjHref */.F)(_href);
31216    }
31217  };
31218  var hasChilds = item.childs && item.childs.length > 0;
31219  var normalSpecial = item.special && !isCJSite;
31220  var leaveTimer = external_root_React_commonjs2_react_commonjs_react_amd_react_default().useRef();
31221  var getAddTop = function getAddTop(name, childs) {
31222    var _a;
31223    if (name === void 0) {
31224      name = '';
31225    }
31226    if (childs === void 0) {
31227      childs = [];
31228    }
31229    if (name === 'Authorization' && !isCJSite) {
31230      var hasMiaoshou = ((_a = childs.filter(function (child) {
31231        return child.key === 'miaoshou';
31232      })) === null || _a === void 0 ? void 0 : _a.length) > 0;
31233      return hasMiaoshou ? -50 : 0;
31234    }
31235    return 0;
31236  };
31237  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31238    className: classnames_default()(Menu_MenuNormal.subMenu, (_b = {}, _b[Menu_MenuNormal.vip] = isVip, _b[Menu_MenuNormal.zs] = isZesty, _b)),
31239    onMouseMove: function onMouseMove(e) {
31240      leaveTimer.current && clearTimeout(leaveTimer.current);
31241      var addTop = getAddTop(item.name, item.childs);
31242      if (normalSpecial && hasChilds) hookMenusChilds.handlerMouseMove(e, addTop);
31243    },
31244    onMouseLeave: function onMouseLeave(e) {
31245      var target = e.currentTarget;
31246      leaveTimer.current = setTimeout(function () {
31247        if (normalSpecial && hasChilds) hookMenusChilds.handlerMouseLeave(target);
31248      }, 200);
31249    }
31250  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31251    className: classnames_default()(Menu_MenuNormal.box, (_c = {}, _c[Menu_MenuNormal.active] = isParentActive(item.name) ? normalSpecial || !hasChilds : false, _c[Menu_MenuNormal.zs] = isZesty, _c)),
31252    onClick: handleClick,
31253    "data-route": item.name,
31254    "data-gtag-element": (0,gtag/* toGtagElement */.l)(item.name)
31255  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31256    className: Menu_MenuNormal.left
31257  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
31258    type: item.iconclass
31259  }), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31260    className: Menu_MenuNormal.title
31261  }, item.nameTrans())), hasChilds && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31262    className: [Menu_MenuNormal.arrow, expand ? Menu_MenuNormal.expand : ''].join(' '),
31263    style: {
31264      transform: normalSpecial ? 'rotate(-90deg)' : ''
31265    }
31266  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
31267    type: "xiangxia"
31268  }))), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31269    className: Menu_MenuNormal.activeLeftLine
31270  })), hasChilds && !normalSpecial && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31271    className: classnames_default()(Menu_MenuNormal.childsBox, (_d = {}, _d[Menu_MenuNormal.expand] = expand, _d))
31272  }, item.special && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31273    className: Menu_MenuNormal.MenuItem,
31274    onClick: openAddStore,
31275    "data-gtag-element": "install_app"
31276  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31277    className: "".concat(Menu_MenuNormal.box, " ").concat(Menu_MenuNormal.addStoreBox)
31278  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
31279    className: Menu_MenuNormal.name
31280  }, 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", {
31281    className: Menu_MenuNormal.addIcon
31282  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
31283    type: "jiahao1"
31284  }))))), item.name === 'Service' && openServiceCenter && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31285    className: Menu_MenuNormal.MenuItem,
31286    onClick: openServiceCenter,
31287    "data-gtag-element": "subscribe_service"
31288  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31289    className: "".concat(Menu_MenuNormal.box, " ").concat(Menu_MenuNormal.addStoreBox)
31290  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
31291    className: Menu_MenuNormal.name
31292  }, 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", {
31293    className: Menu_MenuNormal.addIcon
31294  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
31295    type: "jiahao1"
31296  }))))), item.childs.map(function (childMenu) {
31297    if (childMenu.isDivider) {
31298      return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31299        key: childMenu.name,
31300        className: Menu_MenuNormal.menuDivider
31301      });
31302    }
31303    if (typeof childMenu.isHide === 'function' ? childMenu.isHide() : childMenu.isHide) return null;
31304    if (!siteCheck.isShow("mycj-menu-".concat(item.nameVal || item.name, "-").concat(childMenu.name))) return null;
31305    return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(MenuNormal_MenuItem, {
31306      key: childMenu.name,
31307      childMenu: childMenu,
31308      isActive: isActive,
31309      showAuthorizeListData: showAuthorizeListData,
31310      isSpecial: item.special
31311    });
31312  }))), hasChilds && normalSpecial && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31313    className: classnames_default()(Menu_MenuNormal.specialMenuItem, 'specialMenuItem')
31314  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(MultipleMenuItem/* default */.A, {
31315    list: (_e = item.childs) === null || _e === void 0 ? void 0 : _e.map(function (item) {
31316      var _a;
31317      return {
31318        key: item.key,
31319        name: (_a = item.nameTrans) === null || _a === void 0 ? void 0 : _a.call(item),
31320        imageUrl: oss_controller/* default */.Ay.join((0,oss_controller/* createPlatform */.Q_)(String(item.imageName || item.name).toLocaleLowerCase())),
31321        count: item.count,
31322        link: isCj ? item.route : (0,cj_href/* cjHref */.F)(item.route),
31323        isActive: isActive(item.name),
31324        isShow: useIsShowOrangeConnex(item.name) && isShowAuthorizeType(showAuthorizeListData, item.name) && useIsShowMiaoshou(item.name, siteCheck),
31325        isErpPlatform: item.businessType === EBusinessType.ERP
31326      };
31327    })
31328  }))));
31329};
31330/* harmony default export */ const MenuNormal_SubMenu = (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().memo(SubMenu_SubMenu));
31331;// ./src/components/Menu/MenuNormal/index.tsx
31332var MenuNormal_assign = undefined && undefined.__assign || function () {
31333  MenuNormal_assign = Object.assign || function (t) {
31334    for (var s, i = 1, n = arguments.length; i < n; i++) {
31335      s = arguments[i];
31336      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
31337    }
31338    return t;
31339  };
31340  return MenuNormal_assign.apply(this, arguments);
31341};
31342
31343
31344
31345
31346
31347var MenuNormal = function MenuNormal(_a) {
31348  var isActive = _a.isActive,
31349    isParentActive = _a.isParentActive,
31350    showAuthorizeListData = _a.showAuthorizeListData,
31351    menus = _a.menus,
31352    openAddStore = _a.openAddStore,
31353    menuContainerRef = _a.menuContainerRef,
31354    openServiceCenter = _a.openServiceCenter,
31355    disableScroll = _a.disableScroll;
31356  var siteCheck = (0,use_site_check/* default */.A)();
31357  var backgroundImage = siteCheck.data('menu-bg-image') || nav_bg/* default */.A;
31358  var menuNormalStyle = {
31359    backgroundImage: "url(".concat(backgroundImage, ")")
31360  };
31361  if (siteCheck.isSite('ZS')) {
31362    menuNormalStyle = {
31363      backgroundColor: '#fff'
31364    };
31365  }
31366  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31367    ref: menuContainerRef,
31368    className: Menu_MenuNormal.menuNormal,
31369    style: MenuNormal_assign(MenuNormal_assign({}, menuNormalStyle), {
31370      overflowY: disableScroll ? 'hidden' : undefined
31371    })
31372  }, menus.map(function (menu) {
31373    if (!siteCheck.isShow("mycj-menu-".concat(menu.nameVal || menu.name))) return null;
31374    return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(MenuNormal_SubMenu, {
31375      key: menu.name,
31376      item: menu,
31377      isActive: isActive,
31378      isParentActive: isParentActive,
31379      showAuthorizeListData: showAuthorizeListData,
31380      openAddStore: openAddStore,
31381      openServiceCenter: openServiceCenter,
31382      guideVisible: disableScroll
31383    });
31384  }));
31385};
31386/* harmony default export */ const components_Menu_MenuNormal = (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().memo(MenuNormal));
31387// EXTERNAL MODULE: ./src/hook/useAxios.ts
31388var useAxios = __webpack_require__(92513);
31389;// ./src/components/Menu/hooks/useIsTH.ts
31390
31391function useIsTH(server_siteCheck) {
31392  if (typeof window === 'undefined') return server_siteCheck ? (0,common/* is1688 */.G3)(server_siteCheck) : false;
31393  return (0,common/* is1688 */.G3)(window === null || window === void 0 ? void 0 : window.siteCheck);
31394}
31395;// ./src/components/Menu/hooks/useHideAuthorize.ts
31396var useHideAuthorize_assign = undefined && undefined.__assign || function () {
31397  useHideAuthorize_assign = Object.assign || function (t) {
31398    for (var s, i = 1, n = arguments.length; i < n; i++) {
31399      s = arguments[i];
31400      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
31401    }
31402    return t;
31403  };
31404  return useHideAuthorize_assign.apply(this, arguments);
31405};
31406var useHideAuthorize_awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
31407  function adopt(value) {
31408    return value instanceof P ? value : new P(function (resolve) {
31409      resolve(value);
31410    });
31411  }
31412  return new (P || (P = Promise))(function (resolve, reject) {
31413    function fulfilled(value) {
31414      try {
31415        step(generator.next(value));
31416      } catch (e) {
31417        reject(e);
31418      }
31419    }
31420    function rejected(value) {
31421      try {
31422        step(generator["throw"](value));
31423      } catch (e) {
31424        reject(e);
31425      }
31426    }
31427    function step(result) {
31428      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
31429    }
31430    step((generator = generator.apply(thisArg, _arguments || [])).next());
31431  });
31432};
31433var useHideAuthorize_generator = undefined && undefined.__generator || function (thisArg, body) {
31434  var _ = {
31435      label: 0,
31436      sent: function sent() {
31437        if (t[0] & 1) throw t[1];
31438        return t[1];
31439      },
31440      trys: [],
31441      ops: []
31442    },
31443    f,
31444    y,
31445    t,
31446    g;
31447  return g = {
31448    next: verb(0),
31449    "throw": verb(1),
31450    "return": verb(2)
31451  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
31452    return this;
31453  }), g;
31454  function verb(n) {
31455    return function (v) {
31456      return step([n, v]);
31457    };
31458  }
31459  function step(op) {
31460    if (f) throw new TypeError("Generator is already executing.");
31461    while (g && (g = 0, op[0] && (_ = 0)), _) try {
31462      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;
31463      if (y = 0, t) op = [op[0] & 2, t.value];
31464      switch (op[0]) {
31465        case 0:
31466        case 1:
31467          t = op;
31468          break;
31469        case 4:
31470          _.label++;
31471          return {
31472            value: op[1],
31473            done: false
31474          };
31475        case 5:
31476          _.label++;
31477          y = op[1];
31478          op = [0];
31479          continue;
31480        case 7:
31481          op = _.ops.pop();
31482          _.trys.pop();
31483          continue;
31484        default:
31485          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
31486            _ = 0;
31487            continue;
31488          }
31489          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
31490            _.label = op[1];
31491            break;
31492          }
31493          if (op[0] === 6 && _.label < t[1]) {
31494            _.label = t[1];
31495            t = op;
31496            break;
31497          }
31498          if (t && _.label < t[2]) {
31499            _.label = t[2];
31500            _.ops.push(op);
31501            break;
31502          }
31503          if (t[2]) _.ops.pop();
31504          _.trys.pop();
31505          continue;
31506      }
31507      op = body.call(thisArg, _);
31508    } catch (e) {
31509      op = [6, e];
31510      y = 0;
31511    } finally {
31512      f = t = 0;
31513    }
31514    if (op[0] & 5) throw op[1];
31515    return {
31516      value: op[0] ? op[1] : void 0,
31517      done: true
31518    };
31519  }
31520};
31521var useHideAuthorize_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
31522  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
31523    if (ar || !(i in from)) {
31524      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
31525      ar[i] = from[i];
31526    }
31527  }
31528  return to.concat(ar || Array.prototype.slice.call(from));
31529};
31530
31531
31532
31533
31534
31535
31536
31537
31538
31539
31540
31541
31542
31543
31544
31545
31546
31547/* harmony default export */ const useHideAuthorize = (function ($axios, isCj) {
31548  var _a = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(useHideAuthorize_assign({}, show_authorize_list/* default */.A)),
31549    showAuthorizeListData = _a[0],
31550    setShowAuthorizeList = _a[1];
31551  var initialMenus = isQs() ? bar_config_qs_menus : bar_config/* menus */.T_;
31552  if ((0,useIsQk/* default */.A)()) initialMenus = bar_config_qk_menus;
31553  if ((0,useIsVP/* default */.A)()) initialMenus = bar_config_vp_menus;
31554  if (useIsTH()) initialMenus = bar_config_th_menus;
31555  if (useIsCf()) initialMenus = menus;
31556  if ((0,useIsZS/* default */.A)()) initialMenus = bar_config_zs/* menus */.T_;
31557  var _b = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(useHideAuthorize_spreadArray([], initialMenus, true)),
31558    newMenus = _b[0],
31559    setNewMenus = _b[1];
31560  var platformSortAndShow = new platforms_sort_show($axios);
31561  var getAppStoreByUser = function getAppStoreByUser() {
31562    return useHideAuthorize_awaiter(void 0, void 0, void 0, function () {
31563      var _newMenus, authorizationIndex;
31564      return useHideAuthorize_generator(this, function (_a) {
31565        _newMenus = deep_clone(initialMenus);
31566        authorizationIndex = _newMenus.findIndex(function (ele) {
31567          return ele.name === 'Authorization';
31568        });
31569        if (authorizationIndex > -1) {
31570          _newMenus[authorizationIndex].childs = useHideAuthorize_spreadArray([], platformSortAndShow.allPlatforms, true).filter(function (ele) {
31571            return ele.key == 'shopify';
31572          });
31573          platformSortAndShow.showAppStore().then(function () {
31574            var authorizationIndex = _newMenus.findIndex(function (ele) {
31575              return ele.name === 'Authorization';
31576            });
31577            if (authorizationIndex > -1) {
31578              _newMenus[authorizationIndex].childs = useHideAuthorize_spreadArray([], platformSortAndShow.allPlatforms, true);
31579            }
31580            setNewMenus(useHideAuthorize_spreadArray([], _newMenus, true));
31581            setShowAuthorizeList(useHideAuthorize_assign({}, platformSortAndShow.showAuthorizeAllData));
31582          });
31583        }
31584        return [2];
31585      });
31586    });
31587  };
31588  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
31589    if (isCj) {
31590      getAppStoreByUser();
31591      return;
31592    }
31593    platformSortAndShow.handler().then(function () {
31594      var _newMenus = useHideAuthorize_spreadArray([], newMenus, true);
31595      var authorizationIndex = _newMenus.findIndex(function (ele) {
31596        return ele.name === 'Authorization';
31597      });
31598      if (authorizationIndex > -1) {
31599        _newMenus[authorizationIndex].childs = useHideAuthorize_spreadArray([], platformSortAndShow.allPlatforms, true);
31600      }
31601      setNewMenus(useHideAuthorize_spreadArray([], _newMenus, true));
31602      setShowAuthorizeList(useHideAuthorize_assign({}, platformSortAndShow.showAuthorizeAllData));
31603    });
31604  }, []);
31605  return {
31606    showAuthorizeListData: showAuthorizeListData,
31607    menus: newMenus,
31608    updateMenus: getAppStoreByUser
31609  };
31610});
31611;// ./src/lang/pull/en/common.json
31612const 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
31612p-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","
31612intelGuid-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
31612-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
31612i":"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-
31612authorization-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
31612anges 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
31612ched":"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&
31612Self-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
31612ceive 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 
31612category.","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
31612-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
31612ou 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-
31612account","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
31612ify-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
31612hance":"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
31612on 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--
31612plural":"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
31612d. 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
31612-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 
31612in 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
31612-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-
31612pasting 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
31612ing-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 
31612Shopify/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
31612ou 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
31612its 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 
31612confirmation 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
31612nsive-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
31612sidies":"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
31612oordinate 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
31612oordinate 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
31612ountries. 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
31612ch-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
31612nt 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
31612ifications, 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
31612ising 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
31612-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-
31612add-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-
31612add-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
31612d","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
31612ommend":"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
31612nsive-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
31612nsive-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"
31612:"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
31612ced 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
31612ncy, 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
31612isk 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
31612stoms-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
31612its 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
31612afety 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
31612nifits","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
31612ncy","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
31612stomers":"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--
31612plural":"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
31612nefits","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 
31612in 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"
31612:"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--
31612plural":"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--
31612plural":"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
31612ivals 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
31612seas 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 
31612synchronization 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--
31612plural":"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
31612on.","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.",
31612"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
31612ontinue 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--
31612plural":"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-
31612placeholder":"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
31612ition-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
31612-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
31612-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--
31612plural":"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
31612-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
31612ikes":"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
31612ourcing 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"
31612:"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
31612ct 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
31612-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
31612-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
31612-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
31612-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
31612ption","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
31612stments, 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
31612-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
31612ountries 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"
31612:"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--
31612plural":"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--
31612plural":"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
31612ose 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
31612ing 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--
31612plural":"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>
31612 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
31612ompatible 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--
31612plural":"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--
31612plural":"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
31612ountries 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--
31612plural":"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}}
31612 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
31612sign","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
31612ncy 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
31612h 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
31612ort 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
31612ages-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--
31612plural":"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
31612ountries 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":"
31612Verification 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
31612ose 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
31612t":"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
31612y 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--
31612plural":"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
31612h 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}}
31612 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 
31612your 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
31612-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
31612orkspace 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
31612s":"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
31612d","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. See the step list above.","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 order picking","ai-assistant-step-pick--plural":"Adding to order 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
31612-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"}');
31613// EXTERNAL MODULE: ./src/components/CjHeader/const/languages.ts
31614var languages = __webpack_require__(45163);
31615;// ./src/common/i18next-refact.ts
31616function 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); }
31617var i18next_refact_assign = undefined && undefined.__assign || function () {
31618  i18next_refact_assign = Object.assign || function (t) {
31619    for (var s, i = 1, n = arguments.length; i < n; i++) {
31620      s = arguments[i];
31621      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
31622    }
31623    return t;
31624  };
31625  return i18next_refact_assign.apply(this, arguments);
31626};
31627
31628
31629var transObj = {
31630  en: en_common_namespaceObject
31631};
31632var localeFallbackLoaders = {
31633  zh: function zh() {
31634    return __webpack_require__.e(/* import() */ 5772).then(__webpack_require__.t.bind(__webpack_require__, 15772, 19));
31635  },
31636  th: function th() {
31637    return __webpack_require__.e(/* import() */ 406).then(__webpack_require__.t.bind(__webpack_require__, 40406, 19));
31638  },
31639  de: function de() {
31640    return __webpack_require__.e(/* import() */ 4639).then(__webpack_require__.t.bind(__webpack_require__, 24639, 19));
31641  },
31642  fr: function fr() {
31643    return __webpack_require__.e(/* import() */ 9506).then(__webpack_require__.t.bind(__webpack_require__, 59506, 19));
31644  },
31645  id: function id() {
31646    return __webpack_require__.e(/* import() */ 1261).then(__webpack_require__.t.bind(__webpack_require__, 21261, 19));
31647  }
31648};
31649var fallbackLoading = {};
31650function ensureLocaleFallback(i18next, lng) {
31651  if (!lng || lng === 'en' || transObj[lng]) return Promise.resolve(transObj[lng]);
31652  if (typeof window === 'undefined' || typeof document === 'undefined') {
31653    return Promise.resolve(transObj[lng]);
31654  }
31655  var loader = localeFallbackLoaders[lng];
31656  if (!loader) return Promise.resolve(undefined);
31657  if (!fallbackLoading[lng]) {
31658    fallbackLoading[lng] = loader().then(function (mod) {
31659      var data = mod && mod["default"] || mod;
31660      if (data && i18next_refact_typeof(data) === 'object') {
31661        transObj[lng] = data;
31662        if (i18next && i18next.addResourceBundle) {
31663          var oldTrans = i18next.getResourceBundle && i18next.getResourceBundle(lng, 'translation') || {};
31664          i18next.addResourceBundle(lng, 'translation', i18next_refact_assign(i18next_refact_assign({}, data), oldTrans), true, true);
31665        }
31666      }
31667      return data;
31668    })["catch"](function (error) {
31669      console.warn('[i18n] locale fallback load failed:', lng, error && error.message);
31670      return undefined;
31671    });
31672  }
31673  return fallbackLoading[lng];
31674}
31675var run = false;
31676var customizeI18next = function customizeI18next(i18next, initialLng) {
31677  if (run) return;
31678  var lng = initialLng;
31679  if (!languages/* sixCountryLanguage */.V.includes(lng)) lng = 'en';
31680  initialCommonTranslation(i18next, lng);
31681  if (lng !== 'en') ensureLocaleFallback(i18next, lng);
31682  i18next.t = function (t) {
31683    return function () {
31684      var _a, _b;
31685      var arg = [];
31686      for (var _i = 0; _i < arguments.length; _i++) {
31687        arg[_i] = arguments[_i];
31688      }
31689      var key = arg[0];
31690      var result = t.apply(this, arg);
31691      if (!result) return arg[1] || key;
31692      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])) {
31693        result = transObj[lng][key];
31694      }
31695      if (i18next_refact_typeof(result) === 'object' && ((_b = transObj === null || transObj === void 0 ? void 0 : transObj[lng]) === null || _b === void 0 ? void 0 : _b[key])) {
31696        var text_1 = transObj[lng][key] || '';
31697        if (i18next_refact_typeof(arg[1]) === 'object') {
31698          var vars_1 = arg[1];
31699          var reg = /\{\{(.+?)\}\}/g;
31700          var arr = text_1.match(reg);
31701          if (arr) {
31702            arr.forEach(function (item) {
31703              var key = item.replace(/\{\{(.+?)\}\}/, '$1');
31704              text_1 = text_1.replace(item, vars_1[key]);
31705            });
31706          }
31707        }
31708        return text_1 || key;
31709      }
31710      if (/\{\{(.+?)\}\}/g.test(result)) {
31711        var reg = /\{\{(.+?)\}\}/g;
31712        var arr = result.match(reg);
31713        if (arr) {
31714          arr.forEach(function (item) {
31715            var key = item.replace(/\{\{(.+?)\}\}/, '$1');
31716            result = result.replace(item, arg[1][key]);
31717          });
31718        }
31719      }
31720      return result;
31721    };
31722  }(i18next.t);
31723  run = true;
31724};
31725function initialCommonTranslation(i18next, lng) {
31726  try {
31727    var pullCommon = transObj[lng];
31728    if (pullCommon && i18next_refact_typeof(pullCommon) === 'object') {
31729      var oldTrans = i18next.getResourceBundle(lng, 'translation') || {};
31730      i18next.addResourceBundle(lng, 'translation', i18next_refact_assign(i18next_refact_assign({}, pullCommon), oldTrans), true, true);
31731    }
31732  } catch (error) {
31733    console.warn('Error loading common translation:', error);
31734  }
31735}
31736/* harmony default export */ const i18next_refact = (customizeI18next);
31737;// ./src/components/CjProductDetail/hooks/use-lazy-component.ts
31738
31739function useLazyComponent(active, loader, options) {
31740  if (options === void 0) {
31741    options = {};
31742  }
31743  var _a = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(null),
31744    Component = _a[0],
31745    setComponent = _a[1];
31746  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
31747    if (!active || Component) return;
31748    var mounted = true;
31749    loader().then(function (mod) {
31750      var LazyComponent = 'default' in mod ? mod["default"] : mod;
31751      if (mounted) setComponent(function () {
31752        return LazyComponent;
31753      });
31754    })["catch"](function (error) {
31755      var _a = options.componentName,
31756        componentName = _a === void 0 ? 'unknown' : _a,
31757        _b = options.chunkName,
31758        chunkName = _b === void 0 ? 'unknown' : _b;
31759      console.error("[use-lazy-component] load failed component=".concat(componentName, " chunk=").concat(chunkName, " active=").concat(active), error);
31760    });
31761    return function () {
31762      mounted = false;
31763    };
31764  }, [active, Component, loader]);
31765  return Component;
31766}
31767// EXTERNAL MODULE: ./src/components/Menu/hooks/useIsAiChat.ts
31768var useIsAiChat = __webpack_require__(92575);
31769;// ./src/hook/use-changed.ts
31770var use_changed_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
31771  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
31772    if (ar || !(i in from)) {
31773      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
31774      ar[i] = from[i];
31775    }
31776  }
31777  return to.concat(ar || Array.prototype.slice.call(from));
31778};
31779
31780/* harmony default export */ const use_changed = (function (cb, deps) {
31781  if (cb === void 0) {
31782    cb = function cb() {};
31783  }
31784  if (deps === void 0) {
31785    deps = [];
31786  }
31787  var frist = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(true);
31788  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
31789    if (frist.current) {
31790      frist.current = false;
31791      return;
31792    }
31793    cb === null || cb === void 0 ? void 0 : cb();
31794  }, use_changed_spreadArray([], deps, true));
31795});
31796;// ./src/components/Menu/hooks/useHasMenu.ts
31797var useHasMenu_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
31798  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
31799    if (ar || !(i in from)) {
31800      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
31801      ar[i] = from[i];
31802    }
31803  }
31804  return to.concat(ar || Array.prototype.slice.call(from));
31805};
31806
31807
31808
31809
31810
31811var 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'];
31812var mobileOnlyNoMenuPages = ['/agents', '/agents/detail', '/global-warehouses', '/ready-to-ship', '/mentors'];
31813var 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) {
31814  sum.push.apply(sum, [path, "/mine".concat(path)]);
31815  return sum;
31816}, []), true);
31817var noMenu = function noMenu(routePath, siteCheck, SHOWMESSAGE, token, isM) {
31818  var pagesToCheck = isM ? noMenuPages : noMenuPages.filter(function (path) {
31819    return !mobileOnlyNoMenuPages.includes(path);
31820  });
31821  var configNoMenu = pagesToCheck.some(function (path) {
31822    var reg = new RegExp('^' + path);
31823    return reg.test(routePath);
31824  });
31825  if (/^\/mine\/calculation/i.test(routePath) && !token) {
31826    return true;
31827  }
31828  if (siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.isSite('QS')) {
31829    if (!siteCheck.isShow('show-side-menu')) {
31830      return true;
31831    }
31832    if (!(0,use_is_mycj/* isMyCjPageCheck */.h)(routePath) || /\/purchase\/purchaseCart/.test(routePath)) {
31833      return true;
31834    }
31835  } else if (siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.isSite('CJ')) {
31836    if (!siteCheck.isShow('show-side-menu')) {
31837      return true;
31838    }
31839    if (!(0,common/* isSafeUser */.dn)(SHOWMESSAGE, token) && routePath == '/') {
31840      return true;
31841    }
31842  } else if ((0,common/* is1688 */.G3)(siteCheck)) {
31843    if (!siteCheck.isShow('show-side-menu')) {
31844      return true;
31845    }
31846    if (!(0,use_is_mycj/* isMyCjPageCheck */.h)(routePath)) return true;
31847  } else if (siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.isSite('QK')) {
31848    if (!siteCheck.isShow('show-side-menu')) {
31849      return true;
31850    }
31851  }
31852  return configNoMenu;
31853};
31854function useNotMenu() {
31855  var _a = (0,PropsContext/* useGlobalProps */.v)(),
31856    routePath = _a.path,
31857    SHOWMESSAGE = _a.otherCookies.SHOWMESSAGE,
31858    token = _a.loginInfo.token,
31859    isM = _a.isM;
31860  var _b = (0,use_parent_platform/* default */.A)(),
31861    isCj = _b.isCj,
31862    isSupplierShop = _b.isSupplierShop,
31863    isBlog = _b.isBlog,
31864    isFlowVersionPage = _b.isFlowVersionPage;
31865  if (isSupplierShop || isBlog || isFlowVersionPage) return true;
31866  var siteCheck = (0,use_site_check/* default */.A)();
31867  return noMenu(routePath, siteCheck, SHOWMESSAGE, token, isM) && isCj;
31868}
31869;// ./src/components/Menu/components/THLogo/index.less
31870// extracted by mini-css-extract-plugin
31871/* harmony default export */ const THLogo = ({"logo":"logo--nt_xD","alogo":"alogo--hqIuw","logoInfo":"logoInfo--dBfZk"});
31872;// ./src/components/Menu/components/THLogo/index.tsx
31873
31874
31875
31876function THLogo_THLogo(_a) {
31877  var _b;
31878  var logo = _a.logo;
31879  var _c = (0,PropsContext/* useGlobalProps */.v)(),
31880    i18next = _c.i18n,
31881    siteCheck = _c.siteCheck;
31882  var style = {};
31883  if (!siteCheck.isSite('TH', 'CF')) {
31884    style = {
31885      width: siteCheck.data('logo-width') + 'px',
31886      height: siteCheck.data('logo-height') + 'px'
31887    };
31888  }
31889  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31890    className: THLogo.logo
31891  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("a", {
31892    href: "/",
31893    className: THLogo.alogo
31894  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("img", {
31895    src: logo,
31896    style: style
31897  }), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
31898    className: THLogo.logoInfo
31899  }, siteCheck.isSite('TH', 'CF') && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("span", {
31900    className: "notranslate"
31901  }, (_b = siteCheck.data('full-name')) !== null && _b !== void 0 ? _b : '1688.tech')))));
31902}
31903// EXTERNAL MODULE: ./src/components/message/index.tsx + 1 modules
31904var message = __webpack_require__(23126);
31905// EXTERNAL MODULE: ./src/common/add-store.ts
31906var add_store = __webpack_require__(21421);
31907// EXTERNAL MODULE: ./src/common/toast.ts
31908var toast = __webpack_require__(50937);
31909;// ./src/components/Menu/hooks/useAppStore.ts
31910var useAppStore_assign = undefined && undefined.__assign || function () {
31911  useAppStore_assign = Object.assign || function (t) {
31912    for (var s, i = 1, n = arguments.length; i < n; i++) {
31913      s = arguments[i];
31914      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
31915    }
31916    return t;
31917  };
31918  return useAppStore_assign.apply(this, arguments);
31919};
31920var useAppStore_awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
31921  function adopt(value) {
31922    return value instanceof P ? value : new P(function (resolve) {
31923      resolve(value);
31924    });
31925  }
31926  return new (P || (P = Promise))(function (resolve, reject) {
31927    function fulfilled(value) {
31928      try {
31929        step(generator.next(value));
31930      } catch (e) {
31931        reject(e);
31932      }
31933    }
31934    function rejected(value) {
31935      try {
31936        step(generator["throw"](value));
31937      } catch (e) {
31938        reject(e);
31939      }
31940    }
31941    function step(result) {
31942      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
31943    }
31944    step((generator = generator.apply(thisArg, _arguments || [])).next());
31945  });
31946};
31947var useAppStore_generator = undefined && undefined.__generator || function (thisArg, body) {
31948  var _ = {
31949      label: 0,
31950      sent: function sent() {
31951        if (t[0] & 1) throw t[1];
31952        return t[1];
31953      },
31954      trys: [],
31955      ops: []
31956    },
31957    f,
31958    y,
31959    t,
31960    g;
31961  return g = {
31962    next: verb(0),
31963    "throw": verb(1),
31964    "return": verb(2)
31965  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
31966    return this;
31967  }), g;
31968  function verb(n) {
31969    return function (v) {
31970      return step([n, v]);
31971    };
31972  }
31973  function step(op) {
31974    if (f) throw new TypeError("Generator is already executing.");
31975    while (g && (g = 0, op[0] && (_ = 0)), _) try {
31976      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;
31977      if (y = 0, t) op = [op[0] & 2, t.value];
31978      switch (op[0]) {
31979        case 0:
31980        case 1:
31981          t = op;
31982          break;
31983        case 4:
31984          _.label++;
31985          return {
31986            value: op[1],
31987            done: false
31988          };
31989        case 5:
31990          _.label++;
31991          y = op[1];
31992          op = [0];
31993          continue;
31994        case 7:
31995          op = _.ops.pop();
31996          _.trys.pop();
31997          continue;
31998        default:
31999          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
32000            _ = 0;
32001            continue;
32002          }
32003          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
32004            _.label = op[1];
32005            break;
32006          }
32007          if (op[0] === 6 && _.label < t[1]) {
32008            _.label = t[1];
32009            t = op;
32010            break;
32011          }
32012          if (t && _.label < t[2]) {
32013            _.label = t[2];
32014            _.ops.push(op);
32015            break;
32016          }
32017          if (t[2]) _.ops.pop();
32018          _.trys.pop();
32019          continue;
32020      }
32021      op = body.call(thisArg, _);
32022    } catch (e) {
32023      op = [6, e];
32024      y = 0;
32025    } finally {
32026      f = t = 0;
32027    }
32028    if (op[0] & 5) throw op[1];
32029    return {
32030      value: op[0] ? op[1] : void 0,
32031      done: true
32032    };
32033  }
32034};
32035
32036
32037
32038
32039
32040
32041var appListCache = null;
32042var appListRequest = null;
32043function useAddStore(props) {
32044  var _this = this;
32045  var axios = props.axios,
32046    updateCallBack = props.updateCallBack,
32047    _a = props.appType,
32048    appType = _a === void 0 ? 1 : _a;
32049  var businessTypeMap = {
32050    0: window.i18next.t('common-mycj-menu-smart-website-builder', 'Smart Website Builder'),
32051    1: window.i18next.t('common-mycj-menu-cross-border-ecommerce-platform', 'Cross-Border E-commerce Platform'),
32052    2: window.i18next.t('common-mycj-menu-erp-platform', 'ERP Platform'),
32053    4: window.i18next.t('common-mycj-menu-ai', 'AI'),
32054    3: window.i18next.t('common-mycj-menu-others-a', 'Others')
32055  };
32056  var BUSINESS_TYPE_ORDER = [0, 1, 2, 4, 3];
32057  var TAB_KEY = {
32058    ALL: 1,
32059    INSTALLED: 2
32060  };
32061  var tabList = [{
32062    label: window.i18next.t('common-mycj-menu-all', 'All'),
32063    value: TAB_KEY.ALL
32064  }, {
32065    label: window.i18next.t('common-mycj-menu-installed', 'Installed'),
32066    value: TAB_KEY.INSTALLED
32067  }];
32068  var _b = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(TAB_KEY.ALL),
32069    activeTab = _b[0],
32070    setActiveTab = _b[1];
32071  var _c = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
32072    isVisible = _c[0],
32073    setIsVisible = _c[1];
32074  var _d = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)([]),
32075    list = _d[0],
32076    setList = _d[1];
32077  var _e = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(null),
32078    deleteItem = _e[0],
32079    setDeleteItem = _e[1];
32080  var _f = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
32081    showDeleteModal = _f[0],
32082    setShowDeleteModal = _f[1];
32083  var _g = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
32084    loading = _g[0],
32085    setLoading = _g[1];
32086  var platformShow = new platform_show/* default */.Ay();
32087  var userAddStore = new add_store/* default */.A();
32088  var updateData = function updateData(d) {
32089    userAddStore.save(d);
32090    updateCallBack === null || updateCallBack === void 0 ? void 0 : updateCallBack();
32091  };
32092  var getList = function getList(params) {
32093    return useAppStore_awaiter(_this, void 0, void 0, function () {
32094      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;
32095      return useAppStore_generator(this, function (_c) {
32096        switch (_c.label) {
32097          case 0:
32098            useCache = !(params === null || params === void 0 ? void 0 : params.force) && appListCache;
32099            if (useCache) {
32100              d = appListCache;
32101              updateData(d);
32102              if (params === null || params === void 0 ? void 0 : params.onlyUpdate) return [2];
32103              platforms = (d === null || d === void 0 ? void 0 : d.platforms) || [];
32104              newList = [];
32105              _loop_1 = function _loop_1(key) {
32106                var obj = {};
32107                obj.title = businessTypeMap[key];
32108                obj.list = platforms.filter(function (item) {
32109                  return item.businessType === key;
32110                }).map(function (item) {
32111                  var _a;
32112                  var code = (_a = item.platformCode) === null || _a === void 0 ? void 0 : _a.toLowerCase();
32113                  if (code == 'miaoshou') {
32114                    return useAppStore_assign(useAppStore_assign({}, item), {
32115                      showPlatformName: window.i18next.t("common-mycj-menu-miaoshou", 'MiaoshouERP') || platformShow.showPlatformName(code) || item.platformName
32116                    });
32117                  }
32118                  return useAppStore_assign(useAppStore_assign({}, item), {
32119                    showPlatformName: platformShow.showPlatformName(code) || item.platformName
32120                  });
32121                });
32122                newList.push(obj);
32123              };
32124              for (_i = 0, BUSINESS_TYPE_ORDER_1 = BUSINESS_TYPE_ORDER; _i < BUSINESS_TYPE_ORDER_1.length; _i++) {
32125                key = BUSINESS_TYPE_ORDER_1[_i];
32126                _loop_1(key);
32127              }
32128              setList(newList);
32129              return [2];
32130            }
32131            if (!appListRequest) return [3, 2];
32132            return [4, appListRequest];
32133          case 1:
32134            res_1 = _c.sent();
32135            if (!(res_1 === null || res_1 === void 0 ? void 0 : res_1.success)) return [2];
32136            d = res_1 === null || res_1 === void 0 ? void 0 : res_1.data;
32137            updateData(d);
32138            if (params === null || params === void 0 ? void 0 : params.onlyUpdate) return [2];
32139            platforms = (d === null || d === void 0 ? void 0 : d.platforms) || [];
32140            newList = [];
32141            _loop_2 = function _loop_2(key) {
32142              var obj = {};
32143              obj.title = businessTypeMap[key];
32144              obj.list = platforms.filter(function (item) {
32145                return item.businessType === key;
32146              }).map(function (item) {
32147                var _a;
32148                var code = (_a = item.platformCode) === null || _a === void 0 ? void 0 : _a.toLowerCase();
32149                if (code == 'miaoshou') {
32150                  return useAppStore_assign(useAppStore_assign({}, item), {
32151                    showPlatformName: window.i18next.t("common-mycj-menu-miaoshou", 'MiaoshouERP') || platformShow.showPlatformName(code) || item.platformName
32152                  });
32153                }
32154                return useAppStore_assign(useAppStore_assign({}, item), {
32155                  showPlatformName: platformShow.showPlatformName(code) || item.platformName
32156                });
32157              });
32158              newList.push(obj);
32159            };
32160            for (_a = 0, BUSINESS_TYPE_ORDER_2 = BUSINESS_TYPE_ORDER; _a < BUSINESS_TYPE_ORDER_2.length; _a++) {
32161              key = BUSINESS_TYPE_ORDER_2[_a];
32162              _loop_2(key);
32163            }
32164            setList(newList);
32165            return [2];
32166          case 2:
32167            if (!(params === null || params === void 0 ? void 0 : params.onlyUpdate)) {
32168              setLoading(true);
32169            }
32170            appListRequest = axios({
32171              method: 'post',
32172              url: 'userCenterForeignWeb/userApp/list',
32173              data: {
32174                deviceType: 'PC',
32175                affiliateId: js_cookie/* default */.A.get('invite-token') || ''
32176              }
32177            }).then(function (_a) {
32178              var err = _a[0],
32179                res = _a[1];
32180              if (err || !res) return null;
32181              return res;
32182            });
32183            return [4, appListRequest];
32184          case 3:
32185            res = _c.sent();
32186            appListRequest = null;
32187            setLoading(false);
32188            if (!res) return [2];
32189            if (res === null || res === void 0 ? void 0 : res.success) {
32190              d = res === null || res === void 0 ? void 0 : res.data;
32191              appListCache = d;
32192              updateData(d);
32193              if (params === null || params === void 0 ? void 0 : params.onlyUpdate) return [2];
32194              platforms = (d === null || d === void 0 ? void 0 : d.platforms) || [];
32195              newList = [];
32196              _loop_3 = function _loop_3(key) {
32197                var obj = {};
32198                obj.title = businessTypeMap[key];
32199                obj.list = platforms.filter(function (item) {
32200                  return item.businessType === key;
32201                }).map(function (item) {
32202                  var _a;
32203                  var code = (_a = item.platformCode) === null || _a === void 0 ? void 0 : _a.toLowerCase();
32204                  if (code == 'miaoshou') {
32205                    return useAppStore_assign(useAppStore_assign({}, item), {
32206                      showPlatformName: window.i18next.t("common-mycj-menu-miaoshou", 'MiaoshouERP') || platformShow.showPlatformName(code) || item.platformName
32207                    });
32208                  }
32209                  return useAppStore_assign(useAppStore_assign({}, item), {
32210                    showPlatformName: platformShow.showPlatformName(code) || item.platformName
32211                  });
32212                });
32213                newList.push(obj);
32214              };
32215              for (_b = 0, BUSINESS_TYPE_ORDER_3 = BUSINESS_TYPE_ORDER; _b < BUSINESS_TYPE_ORDER_3.length; _b++) {
32216                key = BUSINESS_TYPE_ORDER_3[_b];
32217                _loop_3(key);
32218              }
32219              setList(newList);
32220            } else if (res === null || res === void 0 ? void 0 : res.message) {
32221              message["default"].error(res === null || res === void 0 ? void 0 : res.message);
32222            }
32223            return [2];
32224        }
32225      });
32226    });
32227  };
32228  var cancelDelete = function cancelDelete() {
32229    setShowDeleteModal(false);
32230    setDeleteItem(null);
32231  };
32232  var confirmDeleteApp = function confirmDeleteApp() {
32233    return useAppStore_awaiter(_this, void 0, void 0, function () {
32234      var success;
32235      return useAppStore_generator(this, function (_a) {
32236        switch (_a.label) {
32237          case 0:
32238            if (!deleteItem) return [2];
32239            return [4, uninstallApp(deleteItem)];
32240          case 1:
32241            success = _a.sent();
32242            if (success) {
32243              cancelDelete();
32244              getList({
32245                onlyUpdate: !isVisible,
32246                force: true
32247              });
32248            }
32249            return [2];
32250        }
32251      });
32252    });
32253  };
32254  var deleteStore = function deleteStore(app) {
32255    return useAppStore_awaiter(_this, void 0, void 0, function () {
32256      var _a;
32257      return useAppStore_generator(this, function (_b) {
32258        setDeleteItem(useAppStore_assign(useAppStore_assign({}, app), {
32259          showPlatformName: platformShow.showPlatformName((_a = app.platformCode) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || app.platformName
32260        }));
32261        setShowDeleteModal(true);
32262        return [2];
32263      });
32264    });
32265  };
32266  var installApp = function installApp(app, options) {
32267    return useAppStore_awaiter(_this, void 0, void 0, function () {
32268      var _a, err, res;
32269      return useAppStore_generator(this, function (_b) {
32270        switch (_b.label) {
32271          case 0:
32272            setLoading(true);
32273            return [4, axios({
32274              method: 'post',
32275              url: 'userCenterForeignWeb/userApp/install',
32276              data: {
32277                appCode: app.platformCode,
32278                type: appType
32279              }
32280            })];
32281          case 1:
32282            _a = _b.sent(), err = _a[0], res = _a[1];
32283            setLoading(false);
32284            if (err || !res) return [2, false];
32285            if (res === null || res === void 0 ? void 0 : res.success) {
32286              if (!(options === null || options === void 0 ? void 0 : options.silentToast)) {
32287                (0,toast/* default */.A)(window.i18next.t('common-mycj-menu-installed-successfully', 'Installed Successfully'));
32288              }
32289              getList({
32290                force: true
32291              });
32292              return [2, true];
32293            } else if (res === null || res === void 0 ? void 0 : res.message) {
32294              message["default"].error(res === null || res === void 0 ? void 0 : res.message);
32295            }
32296            return [2, false];
32297        }
32298      });
32299    });
32300  };
32301  var uninstallApp = function uninstallApp(app, options) {
32302    return useAppStore_awaiter(_this, void 0, void 0, function () {
32303      var _a, err, res;
32304      return useAppStore_generator(this, function (_b) {
32305        switch (_b.label) {
32306          case 0:
32307            setLoading(true);
32308            return [4, axios({
32309              method: 'post',
32310              url: 'userCenterForeignWeb/userApp/uninstall',
32311              data: {
32312                appCode: app.platformCode,
32313                type: appType
32314              }
32315            })];
32316          case 1:
32317            _a = _b.sent(), err = _a[0], res = _a[1];
32318            setLoading(false);
32319            if (err || !res) return [2, false];
32320            if (res === null || res === void 0 ? void 0 : res.success) {
32321              if (!(options === null || options === void 0 ? void 0 : options.silentToast)) {
32322                (0,toast/* default */.A)(window.i18next.t('common-mycj-menu-uninstalled-successfully', 'Uninstalled Successfully'));
32323              }
32324              return [2, true];
32325            }
32326            if (res === null || res === void 0 ? void 0 : res.message) {
32327              message["default"].error(res === null || res === void 0 ? void 0 : res.message);
32328            }
32329            return [2, false];
32330        }
32331      });
32332    });
32333  };
32334  var hideBodyScroll = function hideBodyScroll(bol) {
32335    if (bol) {
32336      document.body.style.overflow = 'hidden';
32337    } else {
32338      document.body.style.overflow = 'auto';
32339    }
32340  };
32341  var handleClose = function handleClose() {
32342    setIsVisible(false);
32343    hideBodyScroll(false);
32344  };
32345  var openAddStore = function openAddStore() {
32346    return useAppStore_awaiter(_this, void 0, void 0, function () {
32347      return useAppStore_generator(this, function (_a) {
32348        switch (_a.label) {
32349          case 0:
32350            return [4, getList()];
32351          case 1:
32352            _a.sent();
32353            setActiveTab(TAB_KEY.ALL);
32354            setIsVisible(true);
32355            hideBodyScroll(true);
32356            return [2];
32357        }
32358      });
32359    });
32360  };
32361  var changeTab = function changeTab(key) {
32362    setActiveTab(key);
32363    var appStoreContainer = document.querySelector('.appStoreContent');
32364    if (appStoreContainer) {
32365      appStoreContainer.scrollTo({
32366        top: 0,
32367        behavior: 'smooth'
32368      });
32369    }
32370  };
32371  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
32372    var handleKeyDown = function handleKeyDown(e) {
32373      if (e.key === 'Escape' && isVisible) {
32374        handleClose();
32375      }
32376    };
32377    if (isVisible) {
32378      document.addEventListener('keydown', handleKeyDown);
32379    }
32380    return function () {
32381      document.removeEventListener('keydown', handleKeyDown);
32382    };
32383  }, [isVisible, handleClose]);
32384  return {
32385    isVisible: isVisible,
32386    handleClose: handleClose,
32387    openAddStore: openAddStore,
32388    deleteStore: deleteStore,
32389    installApp: installApp,
32390    uninstallApp: uninstallApp,
32391    list: list,
32392    tabList: tabList,
32393    activeTab: activeTab,
32394    setActiveTab: setActiveTab,
32395    TAB_KEY: TAB_KEY,
32396    deleteItem: deleteItem,
32397    showDeleteModal: showDeleteModal,
32398    cancelDelete: cancelDelete,
32399    confirmDeleteApp: confirmDeleteApp,
32400    loading: loading,
32401    changeTab: changeTab
32402  };
32403}
32404;// ./src/components/Menu/hooks/useMenuUpdateGuide.ts
32405
32406
32407
32408
32409
32410var STORAGE_KEY = 'showMenuUpdateGuide_v1';
32411var LATEST_VERSION = '1.1';
32412function useMenuUpdateGuide(options) {
32413  var _a = options.isCjSiteShow,
32414    isCjSiteShow = _a === void 0 ? false : _a;
32415  var _b = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
32416    visible = _b[0],
32417    setVisible = _b[1];
32418  var _c = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)('full'),
32419    guideMode = _c[0],
32420    setGuideMode = _c[1];
32421  var changeBodyOverflow = function changeBodyOverflow(lock) {
32422    if (lock) {
32423      (0,common/* lockBodyScroll */.zI)();
32424    } else {
32425      (0,common/* unlockBodyScroll */.Wg)();
32426    }
32427  };
32428  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
32429    if (!isCjSiteShow || useIsCf()) {
32430      setVisible(false);
32431      changeBodyOverflow(false);
32432      return;
32433    }
32434    var alreadyShown = store/* default */.A.get(STORAGE_KEY);
32435    var startTime = new Date('2026-03-16 00:00:00').getTime();
32436    var endTime = new Date('2026-04-30 23:59:59').getTime();
32437    var nowTime = Date.now();
32438    var startTimeV1_1 = new Date('2026-04-07 00:00:00').getTime();
32439    var endTimeV1_1 = new Date('2026-04-30 23:59:59').getTime();
32440    if (alreadyShown === LATEST_VERSION) {
32441      setVisible(false);
32442      changeBodyOverflow(false);
32443      if (nowTime > endTime) {
32444        store/* default */.A.del(STORAGE_KEY);
32445      }
32446      return;
32447    }
32448    var isInTimeWindow = nowTime >= startTime && nowTime < endTime;
32449    var isInTimeWindowV1_1 = nowTime >= startTimeV1_1 && nowTime < endTimeV1_1;
32450    if (!isInTimeWindow && !isInTimeWindowV1_1) {
32451      setVisible(false);
32452      changeBodyOverflow(false);
32453      return;
32454    }
32455    var timer = setTimeout(function () {
32456      var SHOWMESSAGE = js_cookie/* default */.A.get('SHOWMESSAGE');
32457      if ((SHOWMESSAGE === null || SHOWMESSAGE === void 0 ? void 0 : SHOWMESSAGE.indexOf('R')) > -1) {
32458        if ((alreadyShown === true || alreadyShown === 'true') && isInTimeWindowV1_1) {
32459          setGuideMode('mini');
32460        } else if (!alreadyShown) {
32461          setGuideMode('full');
32462        }
32463        changeBodyOverflow(true);
32464        setVisible(true);
32465      }
32466    }, 1200);
32467    return function () {
32468      clearTimeout(timer);
32469      changeBodyOverflow(false);
32470    };
32471  }, [isCjSiteShow]);
32472  var onOK = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function () {
32473    store/* default */.A.set(STORAGE_KEY, LATEST_VERSION);
32474    setVisible(false);
32475    changeBodyOverflow(false);
32476  }, []);
32477  return {
32478    visible: visible,
32479    guideMode: guideMode,
32480    onOK: onOK
32481  };
32482}
32483;// ./src/components/Menu/components/zesty/CollapsedIcon/index.less
32484// extracted by mini-css-extract-plugin
32485/* harmony default export */ const CollapsedIcon = ({"collapsedIcon":"collapsedIcon--icJfc","collapsed":"collapsed--t3MfC"});
32486;// ./src/components/Menu/components/zesty/CollapsedIcon/index.tsx
32487
32488
32489
32490
32491function CollapsedIcon_CollapsedIcon(_a) {
32492  var _b;
32493  var onClick = _a.onClick,
32494    isCollapsed = _a.isCollapsed;
32495  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
32496    className: classnames_default()(CollapsedIcon.collapsedIcon, (_b = {}, _b[CollapsedIcon.collapsed] = isCollapsed, _b)),
32497    onClick: onClick
32498  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
32499    type: 'right'
32500  }));
32501}
32502;// ./src/components/Menu/components/ServiceCenter/service-config.ts
32503var SERVICE_LIST = [{
32504  key: '3pl_fulfillment',
32505  appCode: 'mycj_3pl',
32506  name: '3PL Fulfillment',
32507  menuName: '3PL Fulfillment',
32508  description: "Enjoy hassle-free order processing and lightning-fast global shipping for your own products stocked in CJ's warehouse.",
32509  detailUrl: 'https://www.cjdropshipping.com/fulfillmentservice',
32510  isPreInstalled: true
32511}, {
32512  key: 'odm',
32513  appCode: 'mycj_odm',
32514  name: 'ODM Service',
32515  menuName: 'ODM Service',
32516  description: 'Build a high-margin, unique brand with custom-tailored products, personalized logos, and premium branded packaging.',
32517  detailUrl: 'https://www.cjdropshipping.com/odm',
32518  isPreInstalled: false
32519}, {
32520  key: 'brand_packaging',
32521  appCode: 'mycj_brand_packaging',
32522  name: 'Brand Packaging',
32523  menuName: 'Brand Packaging',
32524  description: 'Turn one-time buyers into loyal customers with packaging that speaks volumes.',
32525  detailUrl: 'https://www.cjdropshipping.com/customPackaging',
32526  isPreInstalled: false
32527}, {
32528  key: 'print_on_demand',
32529  appCode: 'mycj_print_on_demand',
32530  name: 'Print on Demand',
32531  menuName: 'Print on Demand',
32532  description: 'Bring your creative visions to life with custom-printed merchandise.',
32533  detailUrl: 'https://www.cjdropshipping.com/printonDemand/home',
32534  isPreInstalled: false
32535}, {
32536  key: 'buy_sell_yourstore',
32537  appCode: 'mycj_buy_sell_yourstore',
32538  name: 'Buy/Sell Your Store',
32539  menuName: 'Buy/Sell Your Store',
32540  description: 'Selling ready & healthy stores is a smart way to turn your excess costs of online business into immediate profit.',
32541  detailUrl: 'https://blog.cjdropshipping.com/detail/Sell-Your-Shopify-Store-for-Cash-Today-',
32542  isPreInstalled: false
32543}, {
32544  key: 'payment_agency',
32545  appCode: 'mycj_payment_agency',
32546  name: 'Payment Agency',
32547  menuName: 'Payment Agency',
32548  description: 'One-stop Payment Solution for Dropshipping. The trusted choice of millions of entrepreneurs.',
32549  detailUrl: 'https://www.cjdropshipping.com/payment-agency',
32550  isPreInstalled: false
32551}, {
32552  key: 'credit_service',
32553  appCode: 'mycj_credit_service',
32554  name: 'Credit Service',
32555  menuName: 'Credit Service',
32556  description: 'Short-Term Credit Support for Company with Good Reputation.',
32557  detailUrl: 'https://www.cjdropshipping.com/loancredit',
32558  isPreInstalled: false
32559}, {
32560  key: 'fast_shipping',
32561  appCode: 'mycj_fast_shipping',
32562  name: 'Faster Shipping Service',
32563  menuName: 'Faster Shipping Service',
32564  description: 'With our comprehensive shipping service and high-quality suppliers, offer an experience-oriented shipping solution.',
32565  detailUrl: 'https://www.cjdropshipping.com/logistics',
32566  isPreInstalled: false
32567}, {
32568  key: 'advertiser_agency',
32569  appCode: 'mycj_advertiser_agency',
32570  name: 'Advertiser Agency',
32571  menuName: 'Advertiser Agency',
32572  description: 'We Set Up, You Scale. Reliable Ad Accounts, Multi-Vertical Support & Managed Ad Service.',
32573  detailUrl: 'https://www.cjdropshipping.com/advertisingservice',
32574  isPreInstalled: false
32575}, {
32576  key: 'profit_operator',
32577  appCode: 'mycj_profit_operator',
32578  name: 'Profit Operator',
32579  menuName: 'Profit Operator',
32580  description: 'We Operate, You Earn. Launch Your US/EU Local Store with Zero Investment & Risk.',
32581  detailUrl: 'https://www.cjdropshipping.com/free-temu-tiktok-stores',
32582  isPreInstalled: false
32583}, {
32584  key: 'cj_entity',
32585  appCode: 'mycj_cj_entity',
32586  name: 'CJ Entity',
32587  menuName: 'CJ Entity',
32588  description: 'Launch your Hong Kong company for e-commerce.',
32589  detailUrl: 'https://www.cjdropshipping.com/cj-entity',
32590  isPreInstalled: false
32591}];
32592var PRE_INSTALLED_KEYS = SERVICE_LIST.filter(function (s) {
32593  return s.isPreInstalled;
32594}).map(function (s) {
32595  return s.key;
32596});
32597var ALL_SERVICE_KEYS = SERVICE_LIST.map(function (s) {
32598  return s.key;
32599});
32600var MENU_NAME_TO_SERVICE_KEY = SERVICE_LIST.reduce(function (acc, item) {
32601  acc[item.menuName] = item.key;
32602  return acc;
32603}, {});
32604var SERVICE_KEY_TO_APP_CODE = SERVICE_LIST.reduce(function (acc, item) {
32605  acc[item.key] = item.appCode;
32606  return acc;
32607}, {});
32608;// ./src/common/after-lcp-scheduler.ts
32609var DEFAULT_LCP_TIMEOUT = 2500;
32610var lcpReached = false;
32611var started = false;
32612var idSeq = 0;
32613var queue = [];
32614var readyResolvers = [];
32615function after_lcp_scheduler_isBrowser() {
32616  return typeof window !== 'undefined' && typeof document !== 'undefined';
32617}
32618function runQueue() {
32619  if (!queue.length) return;
32620  var pending = queue.slice().sort(function (a, b) {
32621    return b.priority - a.priority || a.id - b.id;
32622  });
32623  queue = [];
32624  pending.forEach(function (item) {
32625    try {
32626      item.task();
32627    } catch (error) {
32628      console.error('[after-lcp-scheduler] task failed', error);
32629    }
32630  });
32631}
32632function markReached() {
32633  if (lcpReached) return;
32634  lcpReached = true;
32635  runQueue();
32636  while (readyResolvers.length) {
32637    var resolve = readyResolvers.shift();
32638    resolve && resolve();
32639  }
32640}
32641function ensureStarted(timeout) {
32642  if (started || lcpReached) return;
32643  started = true;
32644  if (!after_lcp_scheduler_isBrowser()) {
32645    markReached();
32646    return;
32647  }
32648  var settleTimer = null;
32649  var settle = function settle() {
32650    if (settleTimer) {
32651      clearTimeout(settleTimer);
32652      settleTimer = null;
32653    }
32654    markReached();
32655  };
32656  try {
32657    if ('PerformanceObserver' in window) {
32658      var observer_1 = new PerformanceObserver(function () {
32659        observer_1.disconnect();
32660        setTimeout(settle, 0);
32661      });
32662      observer_1.observe({
32663        type: 'largest-contentful-paint',
32664        buffered: true
32665      });
32666    }
32667  } catch (error) {}
32668  var onInteract = function onInteract() {
32669    return settle();
32670  };
32671  try {
32672    window.addEventListener('pointerdown', onInteract, {
32673      once: true,
32674      passive: true
32675    });
32676    window.addEventListener('keydown', onInteract, {
32677      once: true
32678    });
32679  } catch (error) {}
32680  settleTimer = setTimeout(settle, timeout > 0 ? timeout : DEFAULT_LCP_TIMEOUT);
32681}
32682function scheduleAfterLcp(task, options) {
32683  if (options === void 0) {
32684    options = {};
32685  }
32686  var _a = options.priority,
32687    priority = _a === void 0 ? 0 : _a,
32688    _b = options.timeout,
32689    timeout = _b === void 0 ? DEFAULT_LCP_TIMEOUT : _b;
32690  if (!after_lcp_scheduler_isBrowser()) {
32691    return function () {};
32692  }
32693  if (lcpReached) {
32694    setTimeout(function () {
32695      try {
32696        task();
32697      } catch (error) {
32698        console.error('[after-lcp-scheduler] task failed', error);
32699      }
32700    }, 0);
32701    return function () {};
32702  }
32703  var item = {
32704    id: ++idSeq,
32705    task: task,
32706    priority: priority
32707  };
32708  queue.push(item);
32709  ensureStarted(timeout);
32710  return function () {
32711    queue = queue.filter(function (q) {
32712      return q.id !== item.id;
32713    });
32714  };
32715}
32716function whenAfterLcp(timeout) {
32717  if (timeout === void 0) {
32718    timeout = DEFAULT_LCP_TIMEOUT;
32719  }
32720  if (lcpReached || !after_lcp_scheduler_isBrowser()) return Promise.resolve();
32721  return new Promise(function (resolve) {
32722    readyResolvers.push(resolve);
32723    ensureStarted(timeout);
32724  });
32725}
32726function isAfterLcp() {
32727  return lcpReached;
32728}
32729/* harmony default export */ const after_lcp_scheduler = ((/* unused pure expression or super */ null && (scheduleAfterLcp)));
32730;// ./src/components/Menu/hooks/useServiceSubscription.ts
32731var useServiceSubscription_assign = undefined && undefined.__assign || function () {
32732  useServiceSubscription_assign = Object.assign || function (t) {
32733    for (var s, i = 1, n = arguments.length; i < n; i++) {
32734      s = arguments[i];
32735      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
32736    }
32737    return t;
32738  };
32739  return useServiceSubscription_assign.apply(this, arguments);
32740};
32741var useServiceSubscription_awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
32742  function adopt(value) {
32743    return value instanceof P ? value : new P(function (resolve) {
32744      resolve(value);
32745    });
32746  }
32747  return new (P || (P = Promise))(function (resolve, reject) {
32748    function fulfilled(value) {
32749      try {
32750        step(generator.next(value));
32751      } catch (e) {
32752        reject(e);
32753      }
32754    }
32755    function rejected(value) {
32756      try {
32757        step(generator["throw"](value));
32758      } catch (e) {
32759        reject(e);
32760      }
32761    }
32762    function step(result) {
32763      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
32764    }
32765    step((generator = generator.apply(thisArg, _arguments || [])).next());
32766  });
32767};
32768var useServiceSubscription_generator = undefined && undefined.__generator || function (thisArg, body) {
32769  var _ = {
32770      label: 0,
32771      sent: function sent() {
32772        if (t[0] & 1) throw t[1];
32773        return t[1];
32774      },
32775      trys: [],
32776      ops: []
32777    },
32778    f,
32779    y,
32780    t,
32781    g;
32782  return g = {
32783    next: verb(0),
32784    "throw": verb(1),
32785    "return": verb(2)
32786  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
32787    return this;
32788  }), g;
32789  function verb(n) {
32790    return function (v) {
32791      return step([n, v]);
32792    };
32793  }
32794  function step(op) {
32795    if (f) throw new TypeError("Generator is already executing.");
32796    while (g && (g = 0, op[0] && (_ = 0)), _) try {
32797      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;
32798      if (y = 0, t) op = [op[0] & 2, t.value];
32799      switch (op[0]) {
32800        case 0:
32801        case 1:
32802          t = op;
32803          break;
32804        case 4:
32805          _.label++;
32806          return {
32807            value: op[1],
32808            done: false
32809          };
32810        case 5:
32811          _.label++;
32812          y = op[1];
32813          op = [0];
32814          continue;
32815        case 7:
32816          op = _.ops.pop();
32817          _.trys.pop();
32818          continue;
32819        default:
32820          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
32821            _ = 0;
32822            continue;
32823          }
32824          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
32825            _.label = op[1];
32826            break;
32827          }
32828          if (op[0] === 6 && _.label < t[1]) {
32829            _.label = t[1];
32830            t = op;
32831            break;
32832          }
32833          if (t && _.label < t[2]) {
32834            _.label = t[2];
32835            _.ops.push(op);
32836            break;
32837          }
32838          if (t[2]) _.ops.pop();
32839          _.trys.pop();
32840          continue;
32841      }
32842      op = body.call(thisArg, _);
32843    } catch (e) {
32844      op = [6, e];
32845      y = 0;
32846    } finally {
32847      f = t = 0;
32848    }
32849    if (op[0] & 5) throw op[1];
32850    return {
32851      value: op[0] ? op[1] : void 0,
32852      done: true
32853    };
32854  }
32855};
32856var useServiceSubscription_spreadArray = undefined && undefined.__spreadArray || function (to, from, pack) {
32857  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
32858    if (ar || !(i in from)) {
32859      if (!ar) ar = Array.prototype.slice.call(from, 0, i);
32860      ar[i] = from[i];
32861    }
32862  }
32863  return to.concat(ar || Array.prototype.slice.call(from));
32864};
32865
32866
32867
32868
32869
32870
32871
32872
32873var SUBSCRIBED_STATUS = 1;
32874var UNINSTALLED_STATUS = 2;
32875var mergePreInstalledKeys = function mergePreInstalledKeys(keys) {
32876  var mergedSet = PRE_INSTALLED_KEYS.concat(keys);
32877  return mergedSet.filter(function (v, i, a) {
32878    return a.indexOf(v) === i;
32879  });
32880};
32881var buildServiceListByKeys = function buildServiceListByKeys(keys) {
32882  var mergedKeys = mergePreInstalledKeys(keys);
32883  return SERVICE_LIST.map(function (item) {
32884    return useServiceSubscription_assign(useServiceSubscription_assign({}, item), {
32885      status: mergedKeys.includes(item.key) ? SUBSCRIBED_STATUS : UNINSTALLED_STATUS,
32886      installTime: undefined
32887    });
32888  });
32889};
32890var getSubscribedKeysFromInstalledAppCache = function getSubscribedKeysFromInstalledAppCache() {
32891  var _a;
32892  try {
32893    var addStore = new add_store/* default */.A();
32894    var cacheValue = (_a = addStore.get()) === null || _a === void 0 ? void 0 : _a.value;
32895    var services = cacheValue === null || cacheValue === void 0 ? void 0 : cacheValue.services;
32896    if (!Array.isArray(services)) return null;
32897    var appCodeToKeyMap_1 = Object.keys(SERVICE_KEY_TO_APP_CODE).reduce(function (acc, key) {
32898      acc[String(SERVICE_KEY_TO_APP_CODE[key]).toLowerCase()] = key;
32899      return acc;
32900    }, {});
32901    var keys = services.filter(function (item) {
32902      return Number(item === null || item === void 0 ? void 0 : item.status) === SUBSCRIBED_STATUS;
32903    }).map(function (item) {
32904      return appCodeToKeyMap_1[String((item === null || item === void 0 ? void 0 : item.appCode) || '').toLowerCase()];
32905    }).filter(Boolean);
32906    return mergePreInstalledKeys(keys);
32907  } catch (e) {
32908    return null;
32909  }
32910};
32911var initSubscriptions = function initSubscriptions() {
32912  var cachedKeys = getSubscribedKeysFromInstalledAppCache();
32913  if (cachedKeys) {
32914    return cachedKeys;
32915  }
32916  var keys;
32917  if (bar_config/* isNewUser */.mv) {
32918    keys = useServiceSubscription_spreadArray([], PRE_INSTALLED_KEYS, true);
32919  } else {
32920    keys = useServiceSubscription_spreadArray([], ALL_SERVICE_KEYS, true);
32921  }
32922  return keys;
32923};
32924function useServiceSubscription(props) {
32925  var _this = this;
32926  if (props === void 0) {
32927    props = {};
32928  }
32929  var axios = props.axios,
32930    updateCallBack = props.updateCallBack,
32931    _a = props.deferInitialFetch,
32932    deferInitialFetch = _a === void 0 ? false : _a;
32933  var appStoreActions = useAddStore({
32934    axios: axios,
32935    updateCallBack: updateCallBack,
32936    appType: 2
32937  });
32938  var _b = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(function () {
32939      return initSubscriptions();
32940    }),
32941    subscribedKeys = _b[0],
32942    setSubscribedKeys = _b[1];
32943  var _c = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(function () {
32944      return buildServiceListByKeys(initSubscriptions());
32945    }),
32946    serviceList = _c[0],
32947    setServiceList = _c[1];
32948  var _d = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
32949    loading = _d[0],
32950    setLoading = _d[1];
32951  var _e = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(false),
32952    isModalVisible = _e[0],
32953    setIsModalVisible = _e[1];
32954  var hasRefreshedServiceStatusRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(false);
32955  var syncBySubscribedKeys = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (keys) {
32956    var mergedKeys = mergePreInstalledKeys(keys);
32957    setSubscribedKeys(mergedKeys);
32958    setServiceList(buildServiceListByKeys(mergedKeys));
32959  }, []);
32960  var refreshServiceStatus = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function () {
32961    return useServiceSubscription_awaiter(_this, void 0, void 0, function () {
32962      var shouldShowLoading, _a, err, res, addStore, services, appCodeToKeyMap, statusMap, installTimeMap, nextList, nextSubscribedKeys;
32963      var _b;
32964      return useServiceSubscription_generator(this, function (_c) {
32965        switch (_c.label) {
32966          case 0:
32967            if (!axios) return [2];
32968            shouldShowLoading = hasRefreshedServiceStatusRef.current;
32969            if (shouldShowLoading) {
32970              setLoading(true);
32971            }
32972            return [4, axios({
32973              method: 'post',
32974              url: 'userCenterForeignWeb/userApp/list',
32975              data: {
32976                deviceType: 'PC',
32977                affiliateId: js_cookie/* default */.A.get('invite-token') || ''
32978              }
32979            })];
32980          case 1:
32981            _a = _c.sent(), err = _a[0], res = _a[1];
32982            hasRefreshedServiceStatusRef.current = true;
32983            if (shouldShowLoading) {
32984              setLoading(false);
32985            }
32986            if (err || !res || !(res === null || res === void 0 ? void 0 : res.success)) return [2];
32987            try {
32988              addStore = new add_store/* default */.A();
32989              addStore.save(res === null || res === void 0 ? void 0 : res.data);
32990            } catch (e) {}
32991            services = ((_b = res === null || res === void 0 ? void 0 : res.data) === null || _b === void 0 ? void 0 : _b.services) || [];
32992            appCodeToKeyMap = Object.keys(SERVICE_KEY_TO_APP_CODE).reduce(function (acc, key) {
32993              acc[String(SERVICE_KEY_TO_APP_CODE[key]).toLowerCase()] = key;
32994              return acc;
32995            }, {});
32996            statusMap = {};
32997            installTimeMap = {};
32998            services.forEach(function (item) {
32999              var serviceKey = appCodeToKeyMap[String((item === null || item === void 0 ? void 0 : item.appCode) || '').toLowerCase()];
33000              if (serviceKey) {
33001                statusMap[serviceKey] = Number(item === null || item === void 0 ? void 0 : item.status) || UNINSTALLED_STATUS;
33002                var parsedInstallTime = Number(item === null || item === void 0 ? void 0 : item.installTime);
33003                if (!Number.isNaN(parsedInstallTime)) {
33004                  installTimeMap[serviceKey] = parsedInstallTime;
33005                }
33006              }
33007            });
33008            nextList = SERVICE_LIST.map(function (item) {
33009              return useServiceSubscription_assign(useServiceSubscription_assign({}, item), {
33010                status: PRE_INSTALLED_KEYS.includes(item.key) ? SUBSCRIBED_STATUS : statusMap[item.key] || UNINSTALLED_STATUS,
33011                installTime: installTimeMap[item.key]
33012              });
33013            });
33014            nextSubscribedKeys = mergePreInstalledKeys(nextList.filter(function (item) {
33015              return Number(item.status) === SUBSCRIBED_STATUS;
33016            }).map(function (item) {
33017              return item.key;
33018            }));
33019            setServiceList(nextList);
33020            setSubscribedKeys(nextSubscribedKeys);
33021            return [2];
33022        }
33023      });
33024    });
33025  }, [axios]);
33026  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
33027    if (!axios) return;
33028    if (!deferInitialFetch) {
33029      void refreshServiceStatus();
33030      return;
33031    }
33032    var cancel = scheduleAfterLcp(function () {
33033      void refreshServiceStatus();
33034    });
33035    return cancel;
33036  }, [axios, refreshServiceStatus, deferInitialFetch]);
33037  var isSubscribed = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (key) {
33038    return subscribedKeys.includes(key);
33039  }, [subscribedKeys]);
33040  var canUnsubscribe = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (key) {
33041    return !PRE_INSTALLED_KEYS.includes(key);
33042  }, []);
33043  var subscribe = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (key) {
33044    if (!axios) {
33045      var next = useServiceSubscription_spreadArray([], subscribedKeys, true);
33046      if (!next.includes(key)) next.push(key);
33047      syncBySubscribedKeys(next);
33048      return;
33049    }
33050    var appCode = SERVICE_KEY_TO_APP_CODE[key];
33051    if (!appCode) return;
33052    void function () {
33053      return useServiceSubscription_awaiter(_this, void 0, void 0, function () {
33054        var success;
33055        return useServiceSubscription_generator(this, function (_a) {
33056          switch (_a.label) {
33057            case 0:
33058              setLoading(true);
33059              return [4, appStoreActions.installApp({
33060                platformCode: appCode,
33061                platformName: key
33062              }, {
33063                silentToast: true
33064              })];
33065            case 1:
33066              success = _a.sent();
33067              if (!success) return [3, 3];
33068              (0,toast/* toast_success */.q)('Subscribed Successfully');
33069              return [4, refreshServiceStatus()];
33070            case 2:
33071              _a.sent();
33072              _a.label = 3;
33073            case 3:
33074              setLoading(false);
33075              return [2];
33076          }
33077        });
33078      });
33079    }();
33080  }, [axios, appStoreActions, refreshServiceStatus, subscribedKeys, syncBySubscribedKeys]);
33081  var unsubscribe = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (key) {
33082    if (!canUnsubscribe(key)) return;
33083    if (!axios) {
33084      syncBySubscribedKeys(subscribedKeys.filter(function (k) {
33085        return k !== key;
33086      }));
33087      return;
33088    }
33089    var appCode = SERVICE_KEY_TO_APP_CODE[key];
33090    if (!appCode) return;
33091    void function () {
33092      return useServiceSubscription_awaiter(_this, void 0, void 0, function () {
33093        var success;
33094        return useServiceSubscription_generator(this, function (_a) {
33095          switch (_a.label) {
33096            case 0:
33097              setLoading(true);
33098              return [4, appStoreActions.uninstallApp({
33099                platformCode: appCode
33100              }, {
33101                silentToast: true
33102              })];
33103            case 1:
33104              success = _a.sent();
33105              if (!success) return [3, 3];
33106              (0,toast/* default */.A)('Unsubscribed Successfully');
33107              return [4, refreshServiceStatus()];
33108            case 2:
33109              _a.sent();
33110              _a.label = 3;
33111            case 3:
33112              setLoading(false);
33113              return [2];
33114          }
33115        });
33116      });
33117    }();
33118  }, [axios, appStoreActions, canUnsubscribe, refreshServiceStatus, subscribedKeys, syncBySubscribedKeys]);
33119  var toggleSubscription = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function (key) {
33120    if (subscribedKeys.includes(key)) {
33121      unsubscribe(key);
33122    } else {
33123      subscribe(key);
33124    }
33125  }, [subscribedKeys, subscribe, unsubscribe]);
33126  var openServiceCenter = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function () {
33127    if (!axios) {
33128      setIsModalVisible(true);
33129      return;
33130    }
33131    void function () {
33132      return useServiceSubscription_awaiter(_this, void 0, void 0, function () {
33133        return useServiceSubscription_generator(this, function (_a) {
33134          switch (_a.label) {
33135            case 0:
33136              return [4, refreshServiceStatus()];
33137            case 1:
33138              _a.sent();
33139              setIsModalVisible(true);
33140              return [2];
33141          }
33142        });
33143      });
33144    }();
33145  }, [axios, refreshServiceStatus]);
33146  var closeServiceCenter = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useCallback)(function () {
33147    setIsModalVisible(false);
33148  }, []);
33149  return {
33150    subscribedKeys: subscribedKeys,
33151    isSubscribed: isSubscribed,
33152    subscribe: subscribe,
33153    unsubscribe: unsubscribe,
33154    toggleSubscription: toggleSubscription,
33155    canUnsubscribe: canUnsubscribe,
33156    serviceList: serviceList,
33157    loading: loading,
33158    isModalVisible: isModalVisible,
33159    openServiceCenter: openServiceCenter,
33160    closeServiceCenter: closeServiceCenter
33161  };
33162}
33163;// ./src/common/hydrate-when.ts
33164
33165
33166var DEFAULT_EVENTS = ['click', 'focus', 'mouseenter', 'touchstart'];
33167function hydrate_when_isBrowser() {
33168  return typeof window !== 'undefined' && typeof document !== 'undefined';
33169}
33170function useHydrateWhen(strategy, options) {
33171  if (strategy === void 0) {
33172    strategy = 'immediate';
33173  }
33174  if (options === void 0) {
33175    options = {};
33176  }
33177  var _a = options.rootMargin,
33178    rootMargin = _a === void 0 ? '240px' : _a,
33179    _b = options.events,
33180    events = _b === void 0 ? DEFAULT_EVENTS : _b,
33181    _c = options.idleTimeout,
33182    idleTimeout = _c === void 0 ? 2000 : _c,
33183    _d = options.afterLcpTimeout,
33184    afterLcpTimeout = _d === void 0 ? 2500 : _d;
33185  var ref = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(null);
33186  var _e = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useState)(strategy === 'immediate'),
33187    active = _e[0],
33188    setActive = _e[1];
33189  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
33190    if (active) return;
33191    if (!hydrate_when_isBrowser()) {
33192      return;
33193    }
33194    var cleanup;
33195    if (strategy === 'visible') {
33196      var target = ref.current;
33197      if (!target || !('IntersectionObserver' in window)) {
33198        setActive(true);
33199        return;
33200      }
33201      var observer_1 = new IntersectionObserver(function (entries) {
33202        if (entries.some(function (entry) {
33203          return entry.isIntersecting;
33204        })) {
33205          setActive(true);
33206          observer_1.disconnect();
33207        }
33208      }, {
33209        rootMargin: rootMargin
33210      });
33211      observer_1.observe(target);
33212      cleanup = function cleanup() {
33213        return observer_1.disconnect();
33214      };
33215    } else if (strategy === 'interaction') {
33216      var target_1 = ref.current;
33217      if (!target_1) {
33218        var id = scheduleIdle(function () {
33219          return setActive(true);
33220        }, idleTimeout);
33221        cleanup = id;
33222      } else {
33223        var onTrigger_1 = function onTrigger_1() {
33224          return setActive(true);
33225        };
33226        events.forEach(function (evt) {
33227          return target_1.addEventListener(evt, onTrigger_1, {
33228            once: true,
33229            passive: true
33230          });
33231        });
33232        cleanup = function cleanup() {
33233          return events.forEach(function (evt) {
33234            return target_1.removeEventListener(evt, onTrigger_1);
33235          });
33236        };
33237      }
33238    } else if (strategy === 'idle') {
33239      cleanup = scheduleIdle(function () {
33240        return setActive(true);
33241      }, idleTimeout);
33242    } else if (strategy === 'afterLcp') {
33243      cleanup = scheduleAfterLcp(function () {
33244        return setActive(true);
33245      }, {
33246        timeout: afterLcpTimeout
33247      });
33248    }
33249    return function () {
33250      cleanup && cleanup();
33251    };
33252  }, [active, strategy, rootMargin, idleTimeout, afterLcpTimeout]);
33253  var trigger = function trigger() {
33254    return setActive(true);
33255  };
33256  return {
33257    active: active,
33258    ref: ref,
33259    trigger: trigger
33260  };
33261}
33262function scheduleIdle(cb, timeout) {
33263  if (!hydrate_when_isBrowser()) return function () {};
33264  var w = window;
33265  if (typeof w.requestIdleCallback === 'function') {
33266    var handle_1 = w.requestIdleCallback(cb, {
33267      timeout: timeout
33268    });
33269    return function () {
33270      return w.cancelIdleCallback && w.cancelIdleCallback(handle_1);
33271    };
33272  }
33273  var timer = setTimeout(cb, Math.min(timeout, 200));
33274  return function () {
33275    return clearTimeout(timer);
33276  };
33277}
33278// EXTERNAL MODULE: ./src/common/authority-utils.ts
33279var authority_utils = __webpack_require__(25435);
33280;// ./src/components/Menu/index.tsx
33281var Menu_assign = undefined && undefined.__assign || function () {
33282  Menu_assign = Object.assign || function (t) {
33283    for (var s, i = 1, n = arguments.length; i < n; i++) {
33284      s = arguments[i];
33285      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
33286    }
33287    return t;
33288  };
33289  return Menu_assign.apply(this, arguments);
33290};
33291
33292
33293
33294
33295
33296
33297
33298
33299
33300
33301
33302
33303
33304
33305
33306
33307
33308
33309var loadMenuChatBox = function loadMenuChatBox() {
33310  return Promise.all(/* import() */[__webpack_require__.e(1554), __webpack_require__.e(326)]).then(__webpack_require__.bind(__webpack_require__, 91554));
33311};
33312
33313
33314
33315
33316
33317var loadAppStore = function loadAppStore() {
33318  return __webpack_require__.e(/* import() */ 6164).then(__webpack_require__.bind(__webpack_require__, 16164));
33319};
33320
33321var loadMenuUpdateGuide = function loadMenuUpdateGuide() {
33322  return Promise.all(/* import() */[__webpack_require__.e(5503), __webpack_require__.e(2440)]).then(__webpack_require__.bind(__webpack_require__, 62440));
33323};
33324
33325
33326
33327var loadServiceCenter = function loadServiceCenter() {
33328  return __webpack_require__.e(/* import() */ 5579).then(__webpack_require__.bind(__webpack_require__, 85579));
33329};
33330
33331
33332
33333
33334var _handlerMenusAuth = function handlerMenusAuth(menus, token) {
33335  return menus.map(function (menu) {
33336    return Menu_assign(Menu_assign({}, menu), {
33337      route: !token ? (0,common/* handleAuthUrl */.gQ)((menu === null || menu === void 0 ? void 0 : menu.route) || '') : menu === null || menu === void 0 ? void 0 : menu.route,
33338      childs: _handlerMenusAuth((menu === null || menu === void 0 ? void 0 : menu.childs) || [], token)
33339    });
33340  });
33341};
33342var PureMenu = /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().memo(function () {
33343  var _a, _b, _c;
33344  var notMenu = useNotMenu();
33345  var _d = (0,PropsContext/* useGlobalProps */.v)(),
33346    otherCookies = _d.otherCookies,
33347    cjDomain = _d.cjDomain,
33348    getDomainByUrl = _d.getDomainByUrl,
33349    loginInfo = _d.loginInfo;
33350  var $axios = (0,useAxios/* useAxios */.q)(getDomainByUrl);
33351  var siteCheck = (0,use_site_check/* default */.A)();
33352  var isCJSite = siteCheck === null || siteCheck === void 0 ? void 0 : siteCheck.isSite('CJ');
33353  var useNewAiChat = (0,useIsAiChat/* default */.A)(siteCheck);
33354  var chatAfterLcp = typeof window !== 'undefined' && window.__MF_MENU_CHAT_AFTER_LCP__ === true;
33355  var chatActive = useHydrateWhen(chatAfterLcp ? 'afterLcp' : 'immediate').active;
33356  var LazyChatBox = useLazyComponent(!useNewAiChat && chatActive, loadMenuChatBox, {
33357    componentName: 'ChatBox',
33358    chunkName: 'cjheader-chatbox'
33359  });
33360  var enhancersAfterLcp = typeof window !== 'undefined' && window.__MF_MENU_ENHANCERS_AFTER_LCP__ === true;
33361  var enhancersActive = useHydrateWhen(enhancersAfterLcp ? 'afterLcp' : 'immediate').active;
33362  if (notMenu || useNewAiChat) {
33363    var dom_1 = document.getElementById('chat-icon-box');
33364    if (!dom_1) {
33365      var div_1 = document.createElement('div');
33366      div_1.setAttribute('id', "chat-icon-box");
33367      document.body.appendChild(div_1);
33368      loadMenuChatBox().then(function (m) {
33369        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"], {
33370          axios: $axios
33371        }), div_1);
33372      });
33373    }
33374    if (notMenu) {
33375      return null;
33376    }
33377  }
33378  var dom = document.getElementById('chat-icon-box');
33379  !useNewAiChat && dom && document.body.removeChild(dom);
33380  var _e = useHideAuthorize($axios, isCJSite),
33381    showAuthorizeListData = _e.showAuthorizeListData,
33382    _menus = _e.menus,
33383    updateMenus = _e.updateMenus;
33384  var hasAuthorization = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useMemo)(function () {
33385    return _menus.filter(function (item) {
33386      return item.name === 'Authorization';
33387    }).length > 0;
33388  }, [_menus]);
33389  var isZesty = siteCheck.isSite('ZS');
33390  var logoHref = isCJSite ? (0,cj_href/* cjHref */.F)('/home') : cjDomain;
33391  var _f = useIsCollapsed(),
33392    isCollapsed = _f.isCollapsed,
33393    allowSwitchToggle = _f.allowSwitch,
33394    toggleCollapsed = _f.toggle;
33395  var highlight = hooks_useActiveRoute();
33396  var isVip = (0,useIsVip/* default */.A)();
33397  var menuContainerRef = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useRef)(null);
33398  var appStoreHooks = useAddStore({
33399    axios: $axios,
33400    updateCallBack: function updateCallBack() {
33401      if (isCJSite && updateMenus) {
33402        updateMenus();
33403      }
33404    }
33405  });
33406  var menuUpdateGuideHooks = useMenuUpdateGuide({
33407    isCjSiteShow: isCJSite
33408  });
33409  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
33410    if (menuUpdateGuideHooks.visible && isCollapsed) {
33411      toggleCollapsed('0');
33412    }
33413  }, [menuUpdateGuideHooks.visible, isCollapsed, toggleCollapsed]);
33414  var menus = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useMemo)(function () {
33415    return _handlerMenusAuth(_menus, loginInfo === null || loginInfo === void 0 ? void 0 : loginInfo.token);
33416  }, [_menus, loginInfo === null || loginInfo === void 0 ? void 0 : loginInfo.token, siteCheck]);
33417  var serviceSubscription = useServiceSubscription({
33418    axios: $axios,
33419    deferInitialFetch: typeof window !== 'undefined' && window.__MF_MENU_SVC_DEFER__ === true,
33420    updateCallBack: function updateCallBack() {
33421      if (isCJSite && updateMenus) {
33422        updateMenus();
33423      }
33424    }
33425  });
33426  var LazyAppStore = useLazyComponent(isCJSite && hasAuthorization && enhancersActive, loadAppStore, {
33427    componentName: 'AppStore',
33428    chunkName: 'menu-appstore'
33429  });
33430  var LazyMenuUpdateGuide = useLazyComponent(enhancersActive, loadMenuUpdateGuide, {
33431    componentName: 'MenuUpdateGuide',
33432    chunkName: 'menu-update-guide'
33433  });
33434  var LazyServiceCenter = useLazyComponent(isCJSite && enhancersActive, loadServiceCenter, {
33435    componentName: 'ServiceCenter',
33436    chunkName: 'menu-service-center'
33437  });
33438  var filteredMenus = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useMemo)(function () {
33439    if (!isCJSite) return menus;
33440    var serviceInstallTimeMap = serviceSubscription.serviceList.reduce(function (acc, item) {
33441      acc[item.key] = Number(item.installTime) || 0;
33442      return acc;
33443    }, {});
33444    return menus.map(function (menu) {
33445      if (menu.name === 'Service') {
33446        var sourceChilds = menu.childs || [];
33447        var childsWithIndex = sourceChilds.map(function (child, index) {
33448          return {
33449            child: child,
33450            index: index
33451          };
33452        }).filter(function (_a) {
33453          var child = _a.child;
33454          var serviceKey = MENU_NAME_TO_SERVICE_KEY[child.name];
33455          if (!serviceKey) return true;
33456          if (PRE_INSTALLED_KEYS.includes(serviceKey)) return true;
33457          return serviceSubscription.isSubscribed(serviceKey);
33458        }).sort(function (a, b) {
33459          var aKey = MENU_NAME_TO_SERVICE_KEY[a.child.name];
33460          var bKey = MENU_NAME_TO_SERVICE_KEY[b.child.name];
33461          var aIsPreInstalled = aKey ? PRE_INSTALLED_KEYS.includes(aKey) : false;
33462          var bIsPreInstalled = bKey ? PRE_INSTALLED_KEYS.includes(bKey) : false;
33463          if (aIsPreInstalled !== bIsPreInstalled) {
33464            return aIsPreInstalled ? -1 : 1;
33465          }
33466          var aInstallTime = aKey ? serviceInstallTimeMap[aKey] || 0 : 0;
33467          var bInstallTime = bKey ? serviceInstallTimeMap[bKey] || 0 : 0;
33468          if (aInstallTime === bInstallTime) {
33469            return a.index - b.index;
33470          }
33471          return aInstallTime - bInstallTime;
33472        }).map(function (_a) {
33473          var child = _a.child;
33474          return child;
33475        });
33476        return Menu_assign(Menu_assign({}, menu), {
33477          childs: childsWithIndex
33478        });
33479      }
33480      return menu;
33481    });
33482  }, [menus, isCJSite, serviceSubscription.subscribedKeys, serviceSubscription.serviceList]);
33483  var isGoogleTrans = !languages/* sixCountryLanguage */.V.includes(otherCookies.lng);
33484  use_changed(function () {
33485    window.dispatchEvent(new CustomEvent('resizeMenu', {
33486      detail: {
33487        width: isCollapsed ? isZesty ? zestyMenuCollapsedWidth : collapsedWidth : expandedWidth
33488      }
33489    }));
33490  }, [isCollapsed]);
33491  var logoStyles = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useMemo)(function () {
33492    var style = {};
33493    if (isQs(siteCheck)) {
33494      style.height = 70;
33495      style.backgroundColor = '#41424c';
33496    } else if ((0,common/* is1688 */.G3)(siteCheck)) {
33497      style.height = 76;
33498    }
33499    return style;
33500  }, [siteCheck]);
33501  var NormalLogo = (0,common/* is1688 */.G3)(siteCheck) ? (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(THLogo_THLogo, {
33502    logo: siteCheck.data('logo')
33503  })) : (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("img", {
33504    key: "normalLogo",
33505    src: siteCheck.data('logo'),
33506    width: siteCheck.data('logo-width'),
33507    height: siteCheck.data('logo-height')
33508  }));
33509  var handleToggleCollapsed = function handleToggleCollapsed() {
33510    if (menuUpdateGuideHooks.visible) return;
33511    toggleCollapsed();
33512  };
33513  var collapsedKey = isZesty ? 'zs' : 'cj';
33514  var CollapsedIcon = (_a = {}, _a['cj'] = /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
33515    className: Menu/* default */.A['collapsed-icon'],
33516    onClick: handleToggleCollapsed,
33517    "data-gtag-element": "toggle"
33518  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(Iconfont/* default */.A, {
33519    type: isCollapsed ? 'lujingbeifen2' : 'zuo'
33520  })), _a['zs'] = /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(CollapsedIcon_CollapsedIcon, {
33521    onClick: handleToggleCollapsed,
33522    isCollapsed: isCollapsed
33523  }), _a)[collapsedKey];
33524  var menuWidth = isCollapsed ? isZesty ? zestyMenuCollapsedWidth : collapsedWidth : expandedWidth;
33525  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", {
33526    style: {
33527      width: menuWidth,
33528      height: '100vh',
33529      flexShrink: 0
33530    }
33531  }), /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
33532    className: classnames_default()(Menu/* default */.A['mycj-menu'], (_b = {
33533      notranslate: !isGoogleTrans
33534    }, _b[Menu/* default */.A.collapsed] = isCollapsed, _b[Menu/* default */.A.vip] = isVip, _b[Menu/* default */.A.zs] = isZesty, _b)),
33535    "data-gtag-module": "cj_menu"
33536  }, allowSwitchToggle && !menuUpdateGuideHooks.visible && CollapsedIcon, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("div", {
33537    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)),
33538    style: logoStyles
33539  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("a", {
33540    href: logoHref,
33541    "data-gtag-element": "logo"
33542  }, isCollapsed ? (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement("img", {
33543    key: "collapsedLogo",
33544    src: siteCheck.data('favicon'),
33545    width: 36,
33546    height: 36
33547  })) : NormalLogo)), isCollapsed && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(components_Menu_MenuCollapsed, {
33548    isActive: highlight.isActive,
33549    isParentActive: highlight.isParentActive,
33550    showAuthorizeListData: showAuthorizeListData,
33551    menus: filteredMenus,
33552    openAddStore: appStoreHooks.openAddStore,
33553    openServiceCenter: isCJSite ? serviceSubscription.openServiceCenter : undefined
33554  })), !isCollapsed && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(components_Menu_MenuNormal, {
33555    isActive: highlight.isActive,
33556    isParentActive: highlight.isParentActive,
33557    showAuthorizeListData: showAuthorizeListData,
33558    menus: filteredMenus,
33559    openAddStore: appStoreHooks.openAddStore,
33560    menuContainerRef: menuContainerRef,
33561    openServiceCenter: isCJSite ? serviceSubscription.openServiceCenter : undefined,
33562    disableScroll: menuUpdateGuideHooks.visible
33563  })), !useNewAiChat && chatActive && LazyChatBox ? (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(LazyChatBox, {
33564    needCollapsed: true,
33565    isCollapsed: isCollapsed,
33566    axios: $axios
33567  })) : null, isCJSite && hasAuthorization && enhancersActive && LazyAppStore && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(LazyAppStore, Menu_assign({}
33567, appStoreHooks))), enhancersActive && LazyMenuUpdateGuide && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(LazyMenuUpdateGuide, {
33568    visible: menuUpdateGuideHooks.visible && !isCollapsed,
33569    onOK: menuUpdateGuideHooks.onOK,
33570    isCollapsed: isCollapsed,
33571    menuContainerRef: menuContainerRef,
33572    guideMode: menuUpdateGuideHooks.guideMode
33573  })), isCJSite && enhancersActive && LazyServiceCenter && (/*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(LazyServiceCenter, {
33574    visible: serviceSubscription.isModalVisible,
33575    onClose: serviceSubscription.closeServiceCenter,
33576    serviceList: serviceSubscription.serviceList,
33577    loading: serviceSubscription.loading,
33578    isSubscribed: serviceSubscription.isSubscribed,
33579    canUnsubscribe: serviceSubscription.canUnsubscribe,
33580    toggleSubscription: serviceSubscription.toggleSubscription
33581  }))));
33582});
33583function Menu_Menu(_a) {
33584  var _b = _a.getDomainByUrl,
33585    getDomainByUrl = _b === void 0 ? function (url) {
33586      return url;
33587    } : _b,
33588    _c = _a.platform,
33589    platform = _c === void 0 ? 'cj' : _c;
33590  i18next_refact(window.i18next, 'en');
33591  var data = {
33592    platform: platform,
33593    getDomainByUrl: getDomainByUrl
33594  };
33595  return /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(PropsContext/* default */.A.Provider, {
33596    value: data
33597  }, /*#__PURE__*/external_root_React_commonjs2_react_commonjs_react_amd_react_default().createElement(PureMenu, null));
33598}
33599})();
33600
33601/******/ 	return __webpack_exports__;
33602/******/ })()
33603;
33604});

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.