pb-sxp-ui 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +13 -11
- package/dist/index.js +13 -11
- package/dist/index.min.cjs +3 -4
- package/dist/index.min.js +3 -4
- package/dist/pb-ui.js +13 -11
- package/dist/pb-ui.min.js +3 -4
- package/es/core/components/SxpPageRender/VideoWidget/index.js +10 -11
- package/lib/core/components/SxpPageRender/VideoWidget/index.js +10 -11
- package/package.json +1 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.min.cjs.map +0 -1
- package/dist/index.min.js.map +0 -1
- package/dist/pb-ui.js.map +0 -1
- package/dist/pb-ui.min.js.map +0 -1
package/dist/index.cjs.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../node_modules/tslib/tslib.es6.js","../src/core/utils/getDataByDS.ts","../src/core/utils/getSxpTokenInfo.ts","../src/core/utils/tool.ts","../src/core/utils/unzip.ts","../src/core/Pagebuilder/PagebuilderClass.ts","../src/core/Pagebuilder/index.tsx","../src/core/hooks/useEditor.ts","../src/core/hooks/useDataSource.ts","../src/core/utils/sessionStore.ts","../src/core/utils/localStore.ts","../src/core/components/SxpPageRender/useIconLink.ts","../src/core/utils/event.ts","../src/core/components/Consent/index.tsx","../src/core/context/SxpDataSourceProvider.tsx","../src/core/hooks/useSxpDataSource.ts","../src/core/hooks/useCurrentNode.ts","../src/core/context/DataSourceProvider.tsx","../src/core/context/EditorContext.tsx","../src/materials/sxp/popup/AppointForm/interactionRender.tsx","../src/materials/sxp/popup/AppointForm/settingRender.tsx","../src/core/hooks/useEventReport.ts","../src/materials/sxp/popup/AppointForm/Form.tsx","../src/materials/sxp/popup/AppointForm/index.tsx","../src/core/create.ts","../src/materials/sxp/popup/AppointForm/material.tsx","../src/materials/sxp/popup/CommodityDetail/settingRender.tsx","../node_modules/swiper/shared/ssr-window.esm.mjs","../node_modules/swiper/shared/utils.mjs","../node_modules/swiper/modules/mousewheel.mjs","../node_modules/swiper/shared/create-element-if-not-defined.mjs","../node_modules/swiper/shared/classes-to-selector.mjs","../node_modules/swiper/modules/pagination.mjs","../node_modules/swiper/modules/scrollbar.mjs","../node_modules/swiper/modules/autoplay.mjs","../node_modules/swiper/modules/free-mode.mjs","../node_modules/swiper/shared/swiper-core.mjs","../node_modules/swiper/shared/update-swiper.mjs","../node_modules/swiper/shared/update-on-virtual-data.mjs","../node_modules/swiper/swiper-react.mjs","../src/core/components/SxpPageRender/Modal/index.tsx","../src/core/components/SxpPageRender/ExpandableText.tsx","../src/core/components/SxpPageRender/FormatImage.tsx","../src/materials/sxp/popup/CommodityDetail/index.tsx","../src/materials/sxp/popup/CommodityDetail/material.tsx","../src/materials/sxp/popup/Prompt/interactionRender.tsx","../src/materials/sxp/popup/Prompt/settingRender.tsx","../src/materials/sxp/popup/Prompt/success.png","../src/core/utils/materials.ts","../src/materials/sxp/popup/Prompt/index.tsx","../src/materials/sxp/popup/Prompt/material.tsx","../src/materials/sxp/popup/CommodityDetailDiroNew/settingRender.tsx","../src/materials/sxp/popup/CommodityDetailDiroNew/index.tsx","../src/materials/sxp/popup/CommodityDetailDiroNew/material.tsx","../src/materials/sxp/template/components/settingRender.tsx","../src/materials/sxp/template/Commodity/interactionRender.tsx","../src/materials/sxp/template/components/EventProvider.tsx","../src/core/hooks/useOnScreen.ts","../src/materials/sxp/template/components/Img.tsx","../src/materials/sxp/template/Commodity/index.tsx","../src/materials/sxp/template/Commodity/material.tsx","../src/materials/sxp/template/Appoint/interactionRender.tsx","../src/materials/sxp/template/Appoint/index.tsx","../src/materials/sxp/template/Appoint/material.tsx","../src/materials/sxp/template/Link/settingRender.tsx","../src/materials/sxp/template/Link/index.tsx","../src/materials/sxp/template/Link/material.tsx","../src/materials/sxp/template/CommodityDiro/interactionRender.tsx","../src/materials/sxp/template/CommodityDiro/index.tsx","../src/materials/sxp/template/CommodityDiro/material.tsx","../src/materials/sxp/template/CommodityDiroNew/interactionRender.tsx","../src/materials/sxp/template/CommodityDiroNew/index.tsx","../src/materials/sxp/template/CommodityDiroNew/material.tsx","../src/materials/sxp/template/MultiCommodityDiro/interactionRender.tsx","../src/materials/sxp/template/components/Scroll.tsx","../src/materials/sxp/template/MultiCommodityDiro/index.tsx","../src/materials/sxp/template/MultiCommodityDiro/material.tsx","../src/materials/sxp/template/MultiCommodity/interactionRender.tsx","../src/materials/sxp/template/MultiCommodity/index.tsx","../src/materials/sxp/template/MultiCommodity/material.tsx","../src/materials/sxp/template/MultiCommodityDiroNew/interactionRender.tsx","../src/materials/sxp/template/MultiCommodityDiroNew/index.tsx","../src/materials/sxp/template/MultiCommodityDiroNew/material.tsx","../src/materials/sxp/HashTag/settingRender.tsx","../src/core/components/SxpPageRender/Navbar.tsx","../src/core/components/SxpPageRender/WaterFall/WaterfallList.tsx","../src/core/components/SxpPageRender/WaterFall/left.png","../src/core/components/SxpPageRender/WaterFall/List.tsx","../src/core/components/SxpPageRender/WaterFall/index.tsx","../src/materials/sxp/HashTag/index.tsx","../src/materials/sxp/HashTag/material.tsx","../src/materials/sxp/Consent/settingRender.tsx","../src/materials/sxp/Consent/index.tsx","../src/materials/sxp/Consent/material.tsx","../src/materials/index.ts","../src/core/components/SxpPageRender/LikeButton/index.tsx","../src/core/components/SxpPageRender/VideoWidget/loading.gif","../src/core/components/SxpPageRender/VideoWidget/VideoPlayer.tsx","../src/core/components/SxpPageRender/VideoWidget/index.tsx","../src/core/components/SxpPageRender/ToggleButton/index.tsx","../src/core/components/SxpPageRender/FingerSwipeTip/index.tsx","../src/core/components/SxpPageRender/PictureGroup/Picture.tsx","../src/core/components/SxpPageRender/PictureGroup/index.tsx","../src/core/components/SxpPageRender/Hashtag/index.tsx","../src/core/components/SxpPageRender/left.png","../src/core/hoc/withBindDataSource.tsx","../src/core/components/SxpPageRender/RenderCard.tsx","../src/core/components/SxpPageRender/Nudge/index.tsx","../src/core/components/SxpPageRender/Tagbar.tsx","../src/core/components/SxpPageRender/index.tsx","../src/core/components/DiyPortalPreview/PictureGroup.tsx","../src/core/components/DiyPortalPreview/VideoWidget.tsx","../src/core/components/DiyPortalPreview/index.tsx","../src/core/components/SxpPageRender/Popup/index.tsx","../src/core/components/SxpPageCore/index.tsx","../src/core/context/EditorDataProvider.tsx","../src/index.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","import { ISchema } from '../schema';\r\n\r\nconst pathParamsReg = /:\\w+/g;\r\n\r\nexport default async (apiAddr: string, configs: ISchema['dataSource']) => {\r\n const $store: Record<string, any> = {};\r\n const idMapName: Record<string, string> = {};\r\n for (let i = 0; i < configs?.length; i++) {\r\n const { id, method, url, urlParams, name, queryString, headers, body } = configs[i];\r\n let apiUrl = url;\r\n if (urlParams) {\r\n Object.entries(urlParams).forEach(([k, v]) => {\r\n apiUrl = apiUrl.replace(pathParamsReg, (p) => {\r\n if (p === k) {\r\n return v;\r\n } else {\r\n return p;\r\n }\r\n });\r\n });\r\n }\r\n // let params: any;\r\n if (queryString) {\r\n apiUrl += queryString;\r\n // params = qs.parse(queryString.slice(1));\r\n }\r\n idMapName[id] = name;\r\n try {\r\n const result = await fetch(apiUrl, {\r\n method,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n ...headers\r\n },\r\n body: JSON.stringify(body)\r\n }).then((res) => res.json());\r\n // const result = await fetch(`${apiAddr}/storefront/v1/proxy`, {\r\n // method: 'POST',\r\n // headers: {\r\n // 'Content-Type': 'application/json'\r\n // },\r\n // body: JSON.stringify({\r\n // url: apiUrl,\r\n // method,\r\n // headers,\r\n // body,\r\n // params\r\n // })\r\n // }).then((res) => res.json());\r\n $store[id] = result;\r\n } catch (error) {\r\n console.error('DataSource request error: ', error);\r\n $store[id] = {};\r\n }\r\n }\r\n return { $store, idMapName };\r\n};\r\n","import PagebuilderClass from '../Pagebuilder/PagebuilderClass';\r\n\r\nconst SXP_TOKEN_INFO_KEY = 'SXP_TOKEN_INFO';\r\n\r\nexport const getSxpTokenInfo = async (builder: PagebuilderClass, dataId: string) => {\r\n const tenantId = builder.getTenantId();\r\n const appId = builder.getAppId();\r\n const apiUrl = builder.getApiUrl();\r\n // 获取缓存token信息\r\n const tokenJson = window.localStorage.getItem(SXP_TOKEN_INFO_KEY);\r\n let tokenData = JSON.parse(tokenJson || '{}');\r\n const currentTime = Date.now();\r\n // token 过期或者不存在则重新请求\r\n if (currentTime > (tokenData?.expireTime ?? 0)) {\r\n const tokenRes = await fetch(`${apiUrl}/storefront/v1/proxy/token/${dataId}`, {\r\n method: 'POST',\r\n headers: {\r\n 'x-tenant-id': tenantId || '',\r\n 'x-app-id': appId || ''\r\n }\r\n }).then((res) => res.json());\r\n if (tokenRes.success) {\r\n // 缓存 tokenRes\r\n const data = tokenRes.data;\r\n tokenData = { ...data, expireTime: Date.now() + data.expire * 1000 };\r\n window.localStorage.setItem(SXP_TOKEN_INFO_KEY, JSON.stringify(tokenData));\r\n }\r\n }\r\n return tokenData;\r\n};\r\n","/*\r\n * @Author : haocanweng@chatlabs.cn\r\n * @Date : 2023-08-21 16:58:40\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-27 10:15:05\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\utils\\tool.ts\r\n */\r\nimport { CSSProperties } from 'react';\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\n// 生成uuid\r\nfunction uuid(len: number, radix: number) {\r\n const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');\r\n const uuid = [];\r\n let i;\r\n radix = radix || chars.length;\r\n\r\n if (len) {\r\n for (i = 0; i < len; i++) uuid[i] = chars[0 | (Math.random() * radix)];\r\n } else {\r\n let r;\r\n uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';\r\n uuid[14] = '4';\r\n\r\n for (i = 0; i < 36; i++) {\r\n if (!uuid[i]) {\r\n r = 0 | (Math.random() * 16);\r\n uuid[i] = chars[i === 19 ? (r & 0x3) | 0x8 : r];\r\n }\r\n }\r\n }\r\n\r\n return uuid.join('');\r\n}\r\n\r\nconst getIndexByblockType = (type: string, index: number) => {\r\n if (type === 'CommodityCarouselBlock' || type === 'CopyBlock') {\r\n return 'initial';\r\n } else {\r\n return index;\r\n }\r\n};\r\n\r\nexport const generateRandomString = (length: number) => {\r\n let result = '';\r\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n const charactersLength = characters.length;\r\n let counter = 0;\r\n while (counter < length) {\r\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\r\n counter += 1;\r\n }\r\n return result;\r\n};\r\n\r\nexport const getUid = () => {\r\n const originalUid = uuidv4();\r\n const uid = originalUid?.replaceAll ? originalUid.replaceAll('-', '') : generateRandomString(32);\r\n return uid; // uid为32位长度\r\n};\r\n\r\ninterface IfontType {\r\n 'fontFamily-cn': string;\r\n 'fontFamily-en': string;\r\n}\r\n\r\nexport const setFontForText = (textContent?: string | null, style?: IfontType | any) => {\r\n if (!textContent) return '';\r\n\r\n let content = '';\r\n\r\n const cn = style?.['fontFamily-cn'];\r\n const en = style?.['fontFamily-en'];\r\n\r\n if (!cn && !en) {\r\n return textContent;\r\n }\r\n\r\n let text = textContent;\r\n const chineseRegex = /[\\u4e00-\\u9fa5]/g;\r\n const englishRegex = /[^\\u4e00-\\u9fa5]/g;\r\n\r\n const cnStyle = `font-family:${cn ?? 'inherit'}`;\r\n const enStyle = `font-family:${en ?? 'inherit'}`;\r\n\r\n const fn = (str: string) => {\r\n let chineseStartIndex = str.search(chineseRegex);\r\n let englishStartIndex = str.search(englishRegex);\r\n\r\n if (chineseStartIndex !== -1 && englishStartIndex !== -1 && chineseStartIndex < englishStartIndex) {\r\n content += `<span style=\"${cnStyle}\">${str.substring(chineseStartIndex, englishStartIndex)}</span>`;\r\n text = str.substring(englishStartIndex, str?.length);\r\n }\r\n\r\n if (chineseStartIndex !== -1 && englishStartIndex !== -1 && chineseStartIndex > englishStartIndex) {\r\n content += `<span style=\"${enStyle}\">${str.substring(englishStartIndex, chineseStartIndex)}</span>`;\r\n text = str.substring(chineseStartIndex, str?.length);\r\n }\r\n\r\n if (chineseStartIndex === -1) {\r\n content += `<span style=\"${enStyle}\">${str.substring(englishStartIndex, str?.length)}</span>`;\r\n text = '';\r\n return false;\r\n }\r\n\r\n if (englishStartIndex === -1) {\r\n content += `<span style=\"${cnStyle}\">${str.substring(chineseStartIndex, str?.length)}</span>`;\r\n text = '';\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n let w = true;\r\n\r\n while (w) {\r\n w = fn(text);\r\n }\r\n\r\n return content;\r\n};\r\n\r\nexport { uuid, getIndexByblockType };\r\n","import pako from 'pako';\r\n\r\nexport function unzip(b64Data: string) {\r\n const strData = atob(b64Data);\r\n const charData = strData.split('').map(function (x) {\r\n return x.charCodeAt(0);\r\n });\r\n const binData = new Uint8Array(charData);\r\n const data = pako.inflate(binData, { to: 'string' });\r\n return JSON.parse(data);\r\n}\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-09-05 13:51:23\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-01-02 14:02:57\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\Pagebuilder\\PagebuilderClass.ts\r\n *\r\n */\r\nlet _instance: PagebuilderClass | null = null;\r\n\r\nconst API_URL = {\r\n dev: 'https://clc-pagebuilder-be-dev.chatlabs.net',\r\n staging: 'https://clc-pagebuilder-be-staging.chatlabs.net',\r\n live: 'https://clc-pagebuilder-be.chatlabs.net'\r\n};\r\n\r\nexport default class PagebuilderClass {\r\n private appId: string | undefined;\r\n private tenantId: string | undefined;\r\n private apiUrl: string | undefined;\r\n private env?: 'dev' | 'staging' | 'live' | undefined;\r\n\r\n constructor() {\r\n if (_instance) {\r\n return _instance;\r\n }\r\n _instance = this;\r\n }\r\n\r\n setApiUrl(apiUrl: string) {\r\n this.apiUrl = `https://${apiUrl}`;\r\n }\r\n\r\n getApiUrl() {\r\n if (this.apiUrl) return this.apiUrl;\r\n if (!this.env) return '';\r\n return API_URL[this.env];\r\n }\r\n\r\n getEnv(): 'dev' | 'staging' | 'live' | undefined {\r\n return this.env;\r\n }\r\n\r\n setEnv(value: 'dev' | 'staging' | 'live' | undefined) {\r\n this.env = value;\r\n }\r\n\r\n setAppId = (appId: string) => {\r\n this.appId = appId;\r\n };\r\n\r\n setTenantId = (tenantId: string) => {\r\n this.tenantId = tenantId;\r\n };\r\n\r\n getAppId = () => {\r\n return this.appId;\r\n };\r\n\r\n getTenantId = () => {\r\n return this.tenantId;\r\n };\r\n}\r\n","import { isEmpty } from 'lodash';\r\nimport getDataByDS from '../utils/getDataByDS';\r\nimport { getSxpTokenInfo } from '../utils/getSxpTokenInfo';\r\nimport { uuid } from '../utils/tool';\r\nimport { unzip } from '../utils/unzip';\r\nimport type PagebuilderProps from './type';\r\nimport PagebuilderClass from './PagebuilderClass';\r\nimport { PageData } from './type';\r\n\r\nlet builder: PagebuilderClass | null = null;\r\n\r\nconst Pagebuilder: PagebuilderProps = {\r\n init: ({ appId, tenantId, env = 'live', apiUrl }) => {\r\n if (!builder) {\r\n builder = new PagebuilderClass();\r\n }\r\n if (apiUrl) {\r\n builder.setApiUrl(apiUrl);\r\n }\r\n builder.setAppId(appId);\r\n builder.setTenantId(tenantId);\r\n builder.setEnv(env);\r\n },\r\n getDetail: (path: string) => {\r\n if (!builder) return;\r\n const tenantId = builder.getTenantId();\r\n const appId = builder.getAppId();\r\n const apiUrl = builder.getApiUrl();\r\n return fetch(`${apiUrl}/storefront/v1/page?path=` + path, {\r\n method: 'get',\r\n headers: {\r\n 'x-tenant-id': tenantId || '',\r\n 'x-app-id': appId || ''\r\n }\r\n }).then(async (res) => {\r\n const result = await res.json();\r\n const decodeData = unzip(result?.data?.data);\r\n if (decodeData) {\r\n const { $store: __STORE__ } = await getDataByDS(apiUrl, decodeData?.dataSource ?? []);\r\n result.data.data = decodeData;\r\n Object.assign(result.data.data, { __STORE__ });\r\n }\r\n return result;\r\n });\r\n },\r\n getSxpDetailByPageId: async (id: string) => {\r\n if (!builder) return;\r\n const tenantId = builder.getTenantId();\r\n const appId = builder.getAppId();\r\n const apiUrl = builder.getApiUrl();\r\n return fetch(`${apiUrl}/storefront/v1/page?id=` + id, {\r\n method: 'get',\r\n headers: {\r\n 'x-tenant-id': tenantId || '',\r\n 'x-app-id': appId || ''\r\n }\r\n }).then(async (res) => {\r\n const result = await res.json();\r\n if (!result.success) {\r\n return undefined;\r\n }\r\n const decodeData = unzip(result?.data?.data);\r\n result.data.data = decodeData;\r\n return result.data as PageData;\r\n });\r\n },\r\n getSxpRecommendVideoData: async (dataId: string) => {\r\n if (!builder) return;\r\n // 获取缓存token信息\r\n const tokenData = await getSxpTokenInfo(builder, dataId);\r\n\r\n // 获取 requestId 和 productUserId\r\n const request_id = uuid(0, 0);\r\n let fake_session_id = window.localStorage.getItem('SXP_FAKE_SESSION_ID');\r\n if (isEmpty(fake_session_id)) {\r\n fake_session_id = uuid(36, 62);\r\n window.localStorage.setItem('SXP_FAKE_SESSION_ID', fake_session_id);\r\n }\r\n\r\n // 获取推荐视频数据\r\n const recommendVideoRes = await fetch('https://dev-sxp-be.chatlabs.net/platform/open/rec/v1.2', {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n token: tokenData.token,\r\n channel: tokenData.channel,\r\n userId: tokenData.userId\r\n },\r\n body: JSON.stringify({\r\n productUserId: fake_session_id,\r\n channel: tokenData.channel,\r\n maxRecs: 10,\r\n requestId: request_id\r\n })\r\n }).then((res) => res.json());\r\n\r\n return recommendVideoRes?.data || null;\r\n }\r\n};\r\nexport { Pagebuilder };\r\n","import { useContext } from 'react';\r\nimport { EditorContext } from '../context/EditorContext';\r\n\r\nexport function useEditor() {\r\n return useContext(EditorContext);\r\n}\r\n","import { useContext } from 'react';\r\nimport { DataSourceContext } from '../context/DataSourceProvider';\r\n\r\n function useDataSource() {\r\n return useContext(DataSourceContext);\r\n}\r\n\r\nexport { useDataSource };\r\n","import { getUid } from './tool';\r\n\r\nconst feRealSessionIdKey = 'feRealSessionIdKey';\r\n\r\nconst generateFeSessionId = () => {\r\n const uid = getUid(); // 32位长度\r\n const timestamp = Date.now(); // 13位长度\r\n const result = `${timestamp}${uid}`; // 总共45位长度的唯一ID\r\n return result;\r\n};\r\n\r\n// 生成或者获取sessionID\r\nexport const storeAndLoadFeSessionId = () => {\r\n let result = getFeSessionId();\r\n if (!result) {\r\n result = generateFeSessionId();\r\n window.sessionStorage.setItem(feRealSessionIdKey, result);\r\n }\r\n return result;\r\n};\r\n\r\nexport const refreshFeSessionId = () => {\r\n const result = generateFeSessionId();\r\n window.sessionStorage.setItem(feRealSessionIdKey, result);\r\n};\r\n\r\n// 获取 sessionID\r\nconst getFeSessionId = () => {\r\n return window.sessionStorage.getItem(feRealSessionIdKey);\r\n};\r\n\r\n// 删除sessionID\r\nexport const removeFeSessionId = () => {\r\n window.sessionStorage.removeItem(feRealSessionIdKey);\r\n};\r\n","import { isEmpty } from 'lodash';\r\nimport { uuid } from './tool';\r\n\r\nexport const FAKE_USER_KEY = 'SXP_FAKE_USER_ID';\r\nexport const FAKE_USER_STATE = 'FAKE_USER_STATE';\r\nexport const AGREE_POLICY = 'AGREE_POLICY';\r\n\r\nexport const storeAndLoadFeUserId = () => {\r\n let fakeUserId = window.localStorage.getItem(FAKE_USER_KEY) as string;\r\n if (isEmpty(fakeUserId)) {\r\n fakeUserId = uuid(36, 62);\r\n window.localStorage.setItem(FAKE_USER_KEY, fakeUserId);\r\n }\r\n return fakeUserId;\r\n};\r\n\r\nexport const removeFeUserId = () => {\r\n window.localStorage.removeItem(FAKE_USER_KEY);\r\n};\r\n\r\nexport const getFeUserId = () => {\r\n const fakeUserState = window.localStorage.getItem(FAKE_USER_STATE) as string;\r\n if (isEmpty(fakeUserState)) {\r\n window.localStorage.setItem(FAKE_USER_STATE, 'true');\r\n }\r\n return isEmpty(fakeUserState);\r\n};\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-03-20 10:27:31\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-03-25 18:23:54\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageRender\\useIconLink.ts\r\n *\r\n */\r\nimport { useMemo } from 'react';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\n\r\nexport function useIconLink(path: string, domain?: string) {\r\n const { appDomain } = useSxpDataSource();\r\n return useMemo(() => {\r\n if (domain) {\r\n return `https://${domain}${path}`;\r\n } else {\r\n return appDomain ? `https://${appDomain}${path}` : `${window.location.origin}${path}`;\r\n }\r\n }, [appDomain, path, domain]);\r\n}\r\n","import EventEmitter from 'eventemitter3';\r\n\r\nconst SXP_EVENT_BUS = new EventEmitter();\r\n\r\nexport enum SXP_EVENT_TYPE {\r\n PAGE_DID_SHOW = 'pageDidShow',\r\n PAGE_DID_HIDE = 'pageDidHide',\r\n CHANGE_THEME_TAG = 'changeThemeTag'\r\n}\r\n\r\nexport default SXP_EVENT_BUS;\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-06-13 15:16:53\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-19 14:13:50\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\Consent\\index.tsx\r\n *\r\n */\r\nimport React, { FC, memo, useEffect, useMemo } from 'react';\r\nimport qs from 'qs';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\nimport { AGREE_POLICY } from '@/core/utils/localStore';\r\n\r\nexport interface IConsentProps {\r\n width?: number;\r\n height?: number;\r\n privacy_title?: string;\r\n privacy_context?: string;\r\n privacy_policy_url?: string;\r\n privacy_policy_title?: string;\r\n privacy_necessity?: boolean;\r\n}\r\n\r\nconst Consent: FC<IConsentProps> = ({\r\n width = window.innerWidth,\r\n height = window.innerHeight,\r\n privacy_title,\r\n privacy_context,\r\n privacy_policy_url,\r\n privacy_policy_title\r\n}) => {\r\n const { setIsAgreePolicy, bffEventReport } = useSxpDataSource();\r\n\r\n const channelObj = useMemo(() => {\r\n const queryString = location.search.slice(1);\r\n const params = qs.parse(queryString.replace(/\\+/g, '%2B')) as any;\r\n for (const key in params) {\r\n params[key] = params[key].replace(/%2B/g, '+');\r\n }\r\n return params;\r\n }, []);\r\n\r\n const getUtmValue = (key: string) => channelObj[key] ?? null;\r\n\r\n useEffect(() => {\r\n bffEventReport?.({\r\n eventInfo: {\r\n eventSubject: 'privacyEnter',\r\n eventDescription: 'User enter privacy page',\r\n utmSource: getUtmValue('utm_source'),\r\n utmMedium: getUtmValue('utm_medium'),\r\n utmCampaign: getUtmValue('utm_campaign'),\r\n utmId: getUtmValue('utm_id'),\r\n utmContent: getUtmValue('utm_content'),\r\n clSource: getUtmValue('cl_source'),\r\n enterTime: `${Date.now()}`,\r\n enterUrl: window.location.href,\r\n rtc: null,\r\n requestId: null,\r\n sessionID: null\r\n }\r\n });\r\n }, []);\r\n\r\n const handleAgree = () => {\r\n bffEventReport?.({\r\n eventInfo: {\r\n eventSubject: 'userConsent',\r\n eventDescription: '用户授权【操作结果】',\r\n consentResult: '0',\r\n consentTags: '[\"系统运营\"]',\r\n rtc: null,\r\n requestId: null,\r\n sessionID: null\r\n }\r\n });\r\n setIsAgreePolicy?.(true);\r\n window.localStorage.setItem(AGREE_POLICY, 'yes');\r\n };\r\n\r\n return (\r\n <div className='consent-bg'>\r\n <div className='consent'>\r\n <div className='consent-col'>\r\n <div className='consent-title'>{privacy_title ?? 'Privacy Policy'}</div>\r\n <div className='consent-content'>\r\n {privacy_context ??\r\n 'This site uses cookies to improve your online experience. By continuing to use the site please agree the policy first.'}\r\n </div>\r\n </div>\r\n <div className='consent-col'>\r\n <button aria-label='agree' className='consent-btn' onClick={handleAgree}>\r\n Agree\r\n </button>\r\n <a\r\n className='consent-policy'\r\n target='_blank'\r\n href={privacy_policy_url ? `https://${privacy_policy_url}` : undefined}\r\n >\r\n {privacy_policy_title ?? 'More information'}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default memo(Consent);\r\n","import React, { FC, ReactNode, createContext, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport qs from 'qs';\r\nimport { DataSource, PageData } from '../Pagebuilder/type';\r\nimport {\r\n ProductInfoType,\r\n RecItemType,\r\n RecommendVideoResultType,\r\n VideoInfoType\r\n} from '../components/SxpPageRender/typing';\r\nimport { storeAndLoadFeSessionId } from '../utils/sessionStore';\r\nimport { storeAndLoadFeUserId, AGREE_POLICY } from '../utils/localStore';\r\nimport { useIconLink } from '../components/SxpPageRender/useIconLink';\r\nimport SXP_EVENT_BUS, { SXP_EVENT_TYPE } from '../utils/event';\r\nimport { ISxpPageRenderProps } from '../components/SxpPageRender';\r\nimport Consent from '../components/Consent';\r\n\r\nexport interface IWaterFallDataType {\r\n hashTag: string;\r\n itemId?: string;\r\n itemType?: 'VIDEO' | 'PRODUCT' | null;\r\n rec: RecItemType;\r\n}\r\n\r\nexport interface ISxpDataSourceContext {\r\n rtcList: RecItemType[];\r\n setRtcList?: React.Dispatch<React.SetStateAction<RecItemType[]>>;\r\n submitForm?: (body: { attributes: Array<{ name: string; value: string }> }) => Promise<boolean | undefined>;\r\n mutateUnlike?: (body: { videoItemId: string }) => Promise<boolean>;\r\n mutateLike?: (body: { content: string }) => Promise<boolean>;\r\n popupDetailData?: RecItemType & { index: number };\r\n setPopupDetailData?: React.Dispatch<React.SetStateAction<any | null>>;\r\n loadVideos?: (page: number) => Promise<void>;\r\n getRecommendVideos?: (query?: {\r\n maxSize?: number;\r\n defaultSize?: number;\r\n channel?: string;\r\n hashTag?: string;\r\n 'itemFilter.itemId'?: string;\r\n 'itemFilter.itemType'?: 'VIDEO' | 'PRODUCT' | null | undefined;\r\n traceInfo?: string;\r\n themeTag?: string;\r\n }) => Promise<RecommendVideoResultType | undefined>;\r\n utmVal?: string;\r\n bffEventReport?: (body: { userInfo?: object; eventInfo: object }) => Promise<any> | undefined | boolean;\r\n isPreview?: boolean;\r\n loading?: boolean;\r\n sxpParameter?: PageData['sxp_parameter'];\r\n waterFallData?: IWaterFallDataType;\r\n setWaterFallData?: React.Dispatch<React.SetStateAction<IWaterFallDataType | undefined>>;\r\n ctaEvent?: (\r\n eventInfo: any,\r\n rec?: RecItemType,\r\n product?: ProductInfoType | VideoInfoType | null,\r\n number?: number\r\n ) => void;\r\n swiperRef?: any;\r\n openHashtag?: boolean;\r\n setOpenHashtag?: React.Dispatch<React.SetStateAction<boolean>>;\r\n cacheRtcList?: RecItemType[];\r\n setCacheRtcList?: React.Dispatch<React.SetStateAction<RecItemType[]>>;\r\n cacheActiveIndex?: number;\r\n setCacheActiveIndex?: React.Dispatch<React.SetStateAction<number>>;\r\n isFromHashtag?: boolean;\r\n setIsFromHashtag?: React.Dispatch<React.SetStateAction<boolean>>;\r\n appDomain?: string;\r\n hashTagSize?: number;\r\n loadingImage?: string;\r\n isOpenHashTag?: boolean;\r\n tagList: string[];\r\n isAgreePolicy?: boolean;\r\n setIsAgreePolicy?: React.Dispatch<React.SetStateAction<boolean>>;\r\n setLoading?: React.Dispatch<React.SetStateAction<boolean>>;\r\n videoRef?: any;\r\n setVideoRef?: React.Dispatch<React.SetStateAction<any>>;\r\n bffFbReport?: (body: {\r\n eventName: string;\r\n actionSource?: string;\r\n eventSourceUrl?: string;\r\n externalId?: string;\r\n }) => Promise<any> | undefined | boolean;\r\n curTime?: any;\r\n h5EnterLink?: () => void;\r\n themeTag?: any;\r\n isShowConsent?: boolean;\r\n selectTag?: string;\r\n setSelectTag?: React.Dispatch<React.SetStateAction<string>>;\r\n}\r\n\r\nexport const SxpDataSourceContext = createContext<ISxpDataSourceContext>({\r\n rtcList: [],\r\n tagList: []\r\n});\r\n\r\nexport interface SxpDataSourceProviderProps {\r\n dataSources?: DataSource[];\r\n render: (data: {\r\n rtcList: RecItemType[];\r\n tagList: string[];\r\n submitForm: (body: { attributes: Array<{ name: string; value: string }> }) => Promise<boolean | undefined>;\r\n mutateUnlike: (body: { videoItemId: string }) => Promise<boolean>;\r\n mutateLike: (body: { content: string }) => Promise<boolean>;\r\n }) => ReactNode;\r\n utmVal?: string;\r\n enableReportEvent?: boolean; // 是否开启事件上报,后台不需要上报事件\r\n maxSize?: number;\r\n defaultSize?: number;\r\n hashTagSize?: number;\r\n isPreview?: boolean;\r\n sxpParameter?: PageData['sxp_parameter'];\r\n appDomain?: string;\r\n loadingImage?: string;\r\n isOpenHashTag?: boolean;\r\n enabledMetaConversionApi?: boolean;\r\n isShowTag?: boolean;\r\n consentWidth?: number;\r\n consentHeight?: number;\r\n isOpenConsent?: boolean;\r\n globalConfig?: ISxpPageRenderProps['globalConfig'];\r\n isEditor?: boolean;\r\n}\r\n\r\nenum DataSourceType {\r\n BFF = 5\r\n}\r\nconst UTM_KEYS = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_id', 'utm_content', 'cl_source'];\r\n\r\nexport const DEFAULT_TAG = 'FOR U';\r\n\r\nconst SxpDataSourceProvider: FC<SxpDataSourceProviderProps> = ({\r\n render,\r\n dataSources,\r\n utmVal,\r\n enableReportEvent = true,\r\n maxSize,\r\n defaultSize,\r\n isPreview = false,\r\n sxpParameter,\r\n appDomain,\r\n hashTagSize,\r\n loadingImage,\r\n isOpenHashTag = false,\r\n enabledMetaConversionApi = false,\r\n consentHeight,\r\n consentWidth,\r\n isShowTag = true,\r\n isOpenConsent = false,\r\n globalConfig,\r\n isEditor = false\r\n}) => {\r\n const [rtcList, setRtcList] = useState<RecItemType[]>([]);\r\n const [tagList, setTagList] = useState<string[]>([]);\r\n const [loading, setLoading] = useState(false);\r\n const [curReqInfo, setCurReqInfo] = useState<{ rtc: string; requestId: string }>({ rtc: '', requestId: '' });\r\n const swiperRef = useRef<any>(null);\r\n const isInit = useRef(false);\r\n const [isAgreePolicy, setIsAgreePolicy] = useState(() => !!window.localStorage.getItem(AGREE_POLICY));\r\n\r\n // 弹窗数据\r\n const [popupDetailData, setPopupDetailData] = useState();\r\n const [waterFallData, setWaterFallData] = useState<any>();\r\n const [openHashtag, setOpenHashtag] = useState(isOpenHashTag);\r\n const [cacheRtcList, setCacheRtcList] = useState<RecItemType[]>([]);\r\n const [cacheActiveIndex, setCacheActiveIndex] = useState<number>(0);\r\n const [isFromHashtag, setIsFromHashtag] = useState(false);\r\n const [videoRef, setVideoRef] = useState(null);\r\n const themeTag = useRef<string>();\r\n const curTime = useRef<any>();\r\n const [selectTag, setSelectTag] = useState(DEFAULT_TAG);\r\n\r\n const isShowConsent = useMemo(() => {\r\n return (globalConfig?.consent?.[0]?.item?.props?.privacy_necessity && !isAgreePolicy && !isEditor) || isOpenConsent;\r\n }, [isAgreePolicy, globalConfig, isOpenConsent, isEditor]);\r\n\r\n useEffect(() => {\r\n const handleChangeThemeTag = (tag?: string) => {\r\n themeTag.current = tag;\r\n };\r\n SXP_EVENT_BUS.on(SXP_EVENT_TYPE.CHANGE_THEME_TAG, handleChangeThemeTag);\r\n return () => {\r\n SXP_EVENT_BUS.off(SXP_EVENT_TYPE.CHANGE_THEME_TAG, handleChangeThemeTag);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n setOpenHashtag(isOpenHashTag);\r\n }, [isOpenHashTag]);\r\n\r\n // BFF 数据源\r\n const bffDataSource = useMemo(() => {\r\n return dataSources?.find((d) => d.type === DataSourceType.BFF);\r\n }, [dataSources]);\r\n\r\n // bff API 请求方法\r\n const bffFetch = useCallback(\r\n (\r\n path: string,\r\n options: {\r\n method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';\r\n body?: object;\r\n query?: object;\r\n type?: 'beacon' | 'http';\r\n }\r\n ) => {\r\n if (!bffDataSource) return;\r\n const url = bffDataSource.url;\r\n const fakeUserId = storeAndLoadFeUserId();\r\n if (options?.query) {\r\n const queryString = qs.stringify(options.query);\r\n path = `${path}?${queryString}`;\r\n }\r\n\r\n // 事件上报优化\r\n // Beacon API 用于发送异步和非阻塞请求到服务器。这类请求不需要响应。\r\n if (options.type === 'beacon' && navigator.sendBeacon) {\r\n return navigator.sendBeacon(\r\n `${url}/api/v1${path}`,\r\n new Blob(\r\n [\r\n JSON.stringify({\r\n ...bffDataSource.headers,\r\n 'x-user-id': fakeUserId,\r\n ...options.body\r\n })\r\n ],\r\n { type: 'application/json;charset=UTF-8' }\r\n )\r\n );\r\n }\r\n\r\n return window\r\n .fetch(`${url}/api/v1${path}`, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-user-id': fakeUserId,\r\n ...bffDataSource.headers\r\n },\r\n method: options.method,\r\n body: JSON.stringify(options.body)\r\n })\r\n .then((res) => res.json())\r\n .catch((err) => Promise.reject(err));\r\n },\r\n [bffDataSource]\r\n );\r\n\r\n // 获取推荐视频数据\r\n const getRecommendVideos = useCallback(\r\n async (query?: {\r\n maxSize?: number;\r\n defaultSize?: number;\r\n channel?: string;\r\n hashTag?: string;\r\n 'itemFilter.itemId'?: string;\r\n 'itemFilter.itemType'?: 'VIDEO' | 'PRODUCT' | null | undefined;\r\n traceInfo?: string;\r\n themeTag?: string;\r\n }) => {\r\n query = {\r\n maxSize: query?.maxSize ?? maxSize,\r\n defaultSize: query?.defaultSize ?? defaultSize,\r\n 'itemFilter.itemId': query?.['itemFilter.itemId'],\r\n 'itemFilter.itemType': query?.['itemFilter.itemType'],\r\n hashTag: query?.hashTag,\r\n traceInfo: query?.traceInfo,\r\n themeTag: query?.themeTag\r\n };\r\n if (utmVal) {\r\n const val =\r\n utmVal\r\n ?.split('&')\r\n ?.filter((val) => {\r\n const key = val.split('=')[0];\r\n return UTM_KEYS.includes(key);\r\n })\r\n ?.join('&') ?? '';\r\n query = { ...query, channel: decodeURIComponent(val) };\r\n }\r\n const result = await bffFetch?.('/recommend/list', { method: 'GET', query });\r\n if (!result?.success) {\r\n return undefined;\r\n }\r\n if (!query?.hashTag) setCurReqInfo({ rtc: result.data.rtc, requestId: result.data.requestId });\r\n return result?.data as RecommendVideoResultType;\r\n },\r\n [bffFetch, utmVal, maxSize, defaultSize]\r\n );\r\n\r\n const loadVideos = useCallback(async () => {\r\n if (rtcList.length <= 0) {\r\n return;\r\n }\r\n const data = await getRecommendVideos({\r\n hashTag: waterFallData?.hashTag,\r\n 'itemFilter.itemId': waterFallData?.itemId,\r\n 'itemFilter.itemType': waterFallData?.itemType,\r\n themeTag: themeTag.current\r\n });\r\n setRtcList(rtcList.concat(data?.recList ?? []));\r\n setCacheRtcList(cacheRtcList.concat(data?.recList ?? []));\r\n }, [getRecommendVideos, rtcList, waterFallData, cacheRtcList]);\r\n\r\n const bffEventReport = useCallback(\r\n ({ userInfo, eventInfo }: { userInfo?: object; eventInfo: object }) => {\r\n // 关闭 BFF 事件上报\r\n if (!enableReportEvent) {\r\n return;\r\n }\r\n type DataType = Array<{ name: string; value: any }>;\r\n\r\n // 用户信息都是公共的\r\n if (!userInfo) {\r\n userInfo = {\r\n // productUserId: fakeUserId, // 后端逻辑会从请求头获取,所以不需要传\r\n // tpChannelId: 'H5' // 后端处理\r\n };\r\n }\r\n const sessionID = storeAndLoadFeSessionId();\r\n const ef: object = {\r\n ...{ sessionID, rtc: curReqInfo.rtc, requestId: curReqInfo.requestId },\r\n ...eventInfo\r\n };\r\n const realUserInfo: DataType = Object.entries(userInfo).map(([k, v]) => ({ name: k, value: v }));\r\n const realEventInfo: DataType = Object.entries(ef)\r\n .map(([k, v]) => v && { name: k, value: v })\r\n .filter(Boolean);\r\n\r\n console.log('======== 事件上报 ========');\r\n console.log('userInfo:', userInfo);\r\n console.log('eventInfo:', ef);\r\n console.log('========= 结束 =========');\r\n\r\n return bffFetch?.('/event/report', {\r\n method: 'POST',\r\n body: { userInfo: realUserInfo, eventInfo: realEventInfo },\r\n type: 'beacon'\r\n });\r\n },\r\n [bffFetch, curReqInfo, enableReportEvent]\r\n );\r\n\r\n const bffFbReport = useCallback(\r\n ({\r\n eventName,\r\n actionSource = 'website',\r\n eventSourceUrl = window?.location?.href,\r\n externalId\r\n }: {\r\n eventName: string;\r\n actionSource?: string;\r\n eventSourceUrl?: string;\r\n externalId?: string;\r\n }) => {\r\n if (!enableReportEvent || !enabledMetaConversionApi) {\r\n return;\r\n }\r\n const fakeUserId = storeAndLoadFeUserId();\r\n return bffFetch?.('/fb/events', {\r\n method: 'POST',\r\n body: {\r\n eventName,\r\n actionSource,\r\n eventSourceUrl,\r\n userData: {\r\n externalId: fakeUserId\r\n }\r\n },\r\n type: 'beacon'\r\n });\r\n },\r\n [bffFetch, enableReportEvent, enabledMetaConversionApi]\r\n );\r\n\r\n const bffMutateLike = useCallback(\r\n async (body: { content: string }) => {\r\n const res = await bffFetch?.('/recommend/like', { method: 'POST', body });\r\n return res?.success;\r\n },\r\n [bffFetch]\r\n );\r\n\r\n const bffMutateUnlike = useCallback(\r\n async (body: { videoItemId: string }) => {\r\n const res = await bffFetch?.('/recommend/unlike', { method: 'POST', body });\r\n return res?.success;\r\n },\r\n [bffFetch]\r\n );\r\n\r\n const bffSubmitForm = useCallback(\r\n async (body: { attributes: Array<{ name: string; value: string }> }) => {\r\n const res = await bffFetch?.('/customform', { method: 'POST', body });\r\n return res?.success;\r\n },\r\n [bffFetch]\r\n );\r\n\r\n // 获取 Tag\r\n const bffGetTagList = useCallback(async () => {\r\n if (!utmVal || !isShowTag) return;\r\n try {\r\n const val =\r\n utmVal\r\n ?.split('&')\r\n ?.filter((val) => {\r\n const key = val.split('=')[0];\r\n return UTM_KEYS.includes(key);\r\n })\r\n ?.join('&') ?? '';\r\n const result = await bffFetch?.('/tag/list', { method: 'GET', query: { channel: decodeURIComponent(val) } });\r\n setTagList(result?.data?.tags ?? []);\r\n } catch (e) {\r\n console.log('e', e);\r\n }\r\n }, [bffFetch, utmVal, isShowTag]);\r\n\r\n const ctaEvent = useCallback(\r\n (eventInfo: any, rec?: RecItemType, product?: ProductInfoType | VideoInfoType | null, position?: number) => {\r\n const cta = product?.bindCta;\r\n const isProd = rec?.video?.bindProduct || (rec?.video?.bindProducts && rec?.video?.bindProducts?.length > 0);\r\n let fromKName = '';\r\n if (isFromHashtag) {\r\n fromKName = 'hashTagPage';\r\n } else if (rec?.video?.url) {\r\n fromKName = 'videoPage';\r\n } else if (rec?.video?.imgUrls?.length) {\r\n fromKName = 'imagePage';\r\n }\r\n bffEventReport?.({\r\n eventInfo: {\r\n ...eventInfo,\r\n ctaId: cta?.itemId ?? '',\r\n ctaName: cta?.title ?? '',\r\n contentTags: JSON.stringify(cta?.tags),\r\n position: position + '',\r\n contentId: rec?.video?.itemId ?? '',\r\n productId: isProd ? product?.itemId : '',\r\n traceInfo: cta?.traceInfo ?? '',\r\n fromKName\r\n }\r\n });\r\n },\r\n [bffEventReport, isFromHashtag]\r\n );\r\n\r\n const h5EnterLink = useCallback(() => {\r\n const queryString = location.search.slice(1);\r\n const params = qs.parse(queryString.replace(/\\+/g, '%2B')) as any;\r\n for (const key in params) {\r\n params[key] = params[key].replace(/%2B/g, '+');\r\n }\r\n const getVal = (key: string) => params[key] ?? '';\r\n const time: any = new Date();\r\n curTime.current = time;\r\n bffEventReport?.({\r\n eventInfo: {\r\n eventSubject: 'h5LinkEnterFeed',\r\n eventDescription: 'User enter h5 link',\r\n utmSource: getVal('utm_source'),\r\n utmMedium: getVal('utm_medium'),\r\n utmCampaign: getVal('utm_campaign'),\r\n utmId: getVal('utm_id'),\r\n utmContent: getVal('utm_content'),\r\n enterTime: Math.floor(time / 1000) + '',\r\n requestId: null,\r\n enterUrl: window?.location?.href ?? '',\r\n clSource: getVal('cl_source')\r\n }\r\n });\r\n }, [bffEventReport]);\r\n\r\n useEffect(() => {\r\n if (!isShowConsent) h5EnterLink();\r\n }, [isShowConsent]);\r\n\r\n useEffect(() => {\r\n if (isShowConsent) return;\r\n setLoading(true);\r\n bffGetTagList();\r\n getRecommendVideos()\r\n .then((data) => {\r\n setRtcList(data?.recList ?? []);\r\n setCacheRtcList(data?.recList ?? []);\r\n })\r\n .finally(() => {\r\n bffEventReport({\r\n eventInfo: {\r\n eventSubject: 'apiRequest',\r\n eventDescription: 'api request succeed'\r\n }\r\n });\r\n setLoading(false);\r\n isInit.current = true;\r\n });\r\n }, [isShowConsent]);\r\n\r\n useEffect(() => {\r\n if (!isInit.current) return;\r\n setLoading(true);\r\n bffGetTagList();\r\n getRecommendVideos()\r\n .then((data) => {\r\n setRtcList(data?.recList ?? []);\r\n setCacheRtcList(data?.recList ?? []);\r\n })\r\n .finally(() => {\r\n setLoading(false);\r\n });\r\n }, [getRecommendVideos, bffGetTagList]);\r\n\r\n const defaultLoadingImage = useIconLink('/pb_static/a65d23c5893c49d7aaaa81681d3179e2.gif', appDomain);\r\n\r\n return (\r\n <SxpDataSourceContext.Provider\r\n value={{\r\n rtcList,\r\n setRtcList,\r\n mutateLike: bffMutateLike,\r\n mutateUnlike: bffMutateUnlike,\r\n submitForm: bffSubmitForm,\r\n popupDetailData,\r\n loadVideos,\r\n setPopupDetailData,\r\n getRecommendVideos,\r\n bffEventReport,\r\n utmVal,\r\n isPreview,\r\n loading,\r\n sxpParameter,\r\n waterFallData,\r\n setWaterFallData,\r\n ctaEvent,\r\n swiperRef,\r\n openHashtag,\r\n setOpenHashtag,\r\n cacheRtcList,\r\n setCacheRtcList,\r\n cacheActiveIndex,\r\n setCacheActiveIndex,\r\n isFromHashtag,\r\n setIsFromHashtag,\r\n appDomain,\r\n hashTagSize,\r\n loadingImage: loadingImage ?? defaultLoadingImage,\r\n isOpenHashTag,\r\n tagList,\r\n setLoading,\r\n videoRef,\r\n setVideoRef,\r\n bffFbReport,\r\n isAgreePolicy,\r\n setIsAgreePolicy,\r\n curTime,\r\n h5EnterLink,\r\n themeTag,\r\n isShowConsent,\r\n selectTag,\r\n setSelectTag\r\n }}\r\n >\r\n {isShowConsent ? (\r\n <Consent {...globalConfig?.consent?.[0]?.item?.props} />\r\n ) : (\r\n render({\r\n rtcList,\r\n mutateLike: bffMutateLike,\r\n mutateUnlike: bffMutateUnlike,\r\n submitForm: bffSubmitForm,\r\n tagList\r\n })\r\n )}\r\n </SxpDataSourceContext.Provider>\r\n );\r\n};\r\n\r\nexport default memo(SxpDataSourceProvider);\r\n","import { useContext } from 'react';\r\nimport { SxpDataSourceContext } from '../context/SxpDataSourceProvider';\r\n\r\nexport function useSxpDataSource() {\r\n return useContext(SxpDataSourceContext);\r\n}\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-03-20 13:56:30\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-03-20 14:57:12\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\hooks\\useCurrentNode.ts\r\n *\r\n */\r\nexport enum DATA_TYPE {\r\n STRING = 'string',\r\n NUMBER = 'number',\r\n ARRAY = 'array',\r\n OBJECT = 'object',\r\n BOOLEAN = 'boolean',\r\n ARRAY_OBJECT = 'array-object',\r\n ARRAY_STRING = 'array-string',\r\n ARRAY_NUMBER = 'array-number'\r\n}\r\n","import React, { FC, PropsWithChildren, createContext, memo, useCallback, useEffect, useState } from 'react';\r\nimport { isEqual } from 'lodash';\r\nimport { ISchema } from '../schema';\r\nimport { useEditor } from '../hooks';\r\nimport getDataByDS from '../utils/getDataByDS';\r\n\r\nexport interface IDataSourceContext {\r\n $store?: any;\r\n options: Array<{ label: string; value: string }>;\r\n configs: ISchema['dataSource'];\r\n}\r\n\r\nexport interface IDataSourceProviderProps {\r\n isSsr?: boolean;\r\n enable?: boolean;\r\n}\r\n\r\nexport const DataSourceContext = createContext<IDataSourceContext>({ $store: {}, options: [], configs: [] });\r\n\r\nconst DataSourceProvider: FC<PropsWithChildren<IDataSourceProviderProps>> = ({ children, isSsr, enable }) => {\r\n const [options, setOptions] = useState<Array<{ label: string; value: string }>>([]);\r\n const { schema } = useEditor();\r\n const [store, setStore] = useState<Record<string, any>>(schema.__STORE__ || {});\r\n const [configs, setConfigs] = useState<ISchema['dataSource']>([]);\r\n\r\n useEffect(() => {\r\n if (isSsr) return;\r\n if (!isEqual(configs, schema?.dataSource)) {\r\n setConfigs(schema?.dataSource ?? []);\r\n }\r\n }, [schema?.dataSource, isSsr]);\r\n\r\n // 获取数据源数据\r\n const getDataSource = useCallback(async () => {\r\n const { $store, idMapName } = await getDataByDS('', configs);\r\n setStore($store);\r\n getOptions($store, idMapName);\r\n }, [configs]);\r\n\r\n const getOptions = ($store: Record<string, any>, idMapName: Record<string, string>) => {\r\n const _options: Array<{ label: string; value: string }> = [];\r\n Object.entries($store).forEach(([key, value]) => {\r\n Object.keys(value).forEach((childKey) => {\r\n const item = { label: `${idMapName[key]} - ${childKey}`, value: `{{ ${key}.${childKey} }}` };\r\n _options.push(item);\r\n });\r\n });\r\n setOptions(_options);\r\n };\r\n\r\n useEffect(() => {\r\n if (!isSsr) {\r\n getDataSource();\r\n }\r\n }, [getDataSource, isSsr, schema]);\r\n\r\n if (!enable) {\r\n return children;\r\n }\r\n\r\n return (\r\n <DataSourceContext.Provider value={{ $store: schema.__STORE__ || store, options, configs }}>\r\n {children}\r\n </DataSourceContext.Provider>\r\n );\r\n};\r\n\r\nexport default memo(DataSourceProvider);\r\n","import React, {\r\n PropsWithChildren,\r\n forwardRef,\r\n useCallback,\r\n useEffect,\r\n useImperativeHandle,\r\n useState,\r\n useMemo\r\n} from 'react';\r\nimport { cloneDeep } from 'lodash';\r\nimport { MaterialComponet } from '../create';\r\nimport { ISchema } from '../schema';\r\nimport DataSourceProvider from './DataSourceProvider';\r\nimport { uuid } from '@/core/utils/tool';\r\n\r\nexport interface IPageParams {\r\n state: string;\r\n name: string;\r\n type: string;\r\n title?: string;\r\n description?: string;\r\n data: object;\r\n app_id: string;\r\n key_word?: string;\r\n share_title?: string;\r\n share_description?: string;\r\n h5_url?: string;\r\n mp_rul?: string;\r\n}\r\nexport type IPopupAniType = { name?: string; duration?: number };\r\nexport type IPopupType = { id: string } & IPopupAniType;\r\n\r\nexport interface IEditorContext {\r\n resolver: Record<string, MaterialComponet>;\r\n currentNode: any | null;\r\n schema: {\r\n pointData: any[];\r\n dataSource: ISchema['dataSource'];\r\n mobilePiontData: any[];\r\n pcPiontData: any[];\r\n type: 'PC' | 'mobile';\r\n pageInfo: ISchema['pageInfo'];\r\n pcPageConf: any;\r\n mobilePageConf: any;\r\n __STORE__?: Record<string, any>;\r\n sxpPageConf: Record<string, any>;\r\n };\r\n setSchema?: React.Dispatch<\r\n React.SetStateAction<{\r\n pointData: any[];\r\n dataSource: ISchema['dataSource'];\r\n mobilePiontData: any[];\r\n pcPiontData: any[];\r\n type: 'PC' | 'mobile';\r\n pageInfo: ISchema['pageInfo'];\r\n pcPageConf: any;\r\n mobilePageConf: any;\r\n __STORE__?: Record<string, any>;\r\n sxpPageConf: Record<string, any>;\r\n }>\r\n >;\r\n pageInfoData: any;\r\n setPageInfoData?: (pageData: IPageParams) => void;\r\n setCurrentNode?: React.Dispatch<React.SetStateAction<any | null>>;\r\n saveDataSource?: (dataSource: any[]) => void;\r\n prePiontData: any[];\r\n setPrePiontData?: React.Dispatch<React.SetStateAction<any[]>>;\r\n undoStack: any[];\r\n redoStack: any[];\r\n setUndoStack?: React.Dispatch<React.SetStateAction<any[]>>;\r\n setRedoStack?: React.Dispatch<React.SetStateAction<any[]>>;\r\n getCurPageConf?: any;\r\n popup: IPopupType;\r\n setPopup: React.Dispatch<React.SetStateAction<IPopupType>>;\r\n}\r\n\r\nexport interface IEditorCoreProps {\r\n resolver: Record<string, MaterialComponet>;\r\n isSsr?: boolean;\r\n schema?: any;\r\n enableDataSource?: boolean;\r\n utmVal?: string;\r\n}\r\n\r\nexport interface IEditorCoreRef {\r\n loadSchema: (schema: any) => void;\r\n exportSchema: () => any;\r\n getPageInfoData: () => any;\r\n initPageInfoData: (pageData: IPageParams) => void;\r\n}\r\n\r\nconst item = {\r\n id: uuid(6, 10),\r\n item: {\r\n type: 'common',\r\n h: 300,\r\n category: 'block',\r\n displayName: 'block',\r\n isFirstLayout: true,\r\n w: 1000\r\n },\r\n point: {\r\n i: 'x-0',\r\n x: -38.34375,\r\n y: 0,\r\n w: 1000,\r\n h: 300,\r\n isBounded: true,\r\n actualX: 0,\r\n actualY: 0\r\n },\r\n pathArr: [0],\r\n positionY: 0\r\n};\r\n\r\nconst popupInit = {\r\n id: '',\r\n duration: 0,\r\n name: 'none'\r\n};\r\n\r\nexport const EditorContext = React.createContext<IEditorContext>({\r\n resolver: {},\r\n currentNode: null,\r\n schema: {\r\n pointData: [],\r\n dataSource: [],\r\n mobilePiontData: [],\r\n type: 'PC',\r\n pcPiontData: [],\r\n pageInfo: {},\r\n pcPageConf: {},\r\n mobilePageConf: {},\r\n __STORE__: {},\r\n sxpPageConf: {}\r\n },\r\n pageInfoData: {},\r\n prePiontData: [],\r\n undoStack: [item],\r\n redoStack: [],\r\n popup: popupInit,\r\n setPopup: () => {}\r\n});\r\n\r\nconst EditorCore = forwardRef<IEditorCoreRef, PropsWithChildren<IEditorCoreProps>>(\r\n ({ children, resolver, isSsr, schema, enableDataSource = true, utmVal }, ref) => {\r\n const [currentNode, setCurrentNode] = useState<any | null>(null);\r\n const [_schema, setSchema] = useState<{\r\n pointData: any[];\r\n dataSource: ISchema['dataSource'];\r\n mobilePiontData: any[];\r\n pcPiontData: any[];\r\n type: 'PC' | 'mobile';\r\n pageInfo: ISchema['pageInfo'];\r\n pcPageConf: any;\r\n mobilePageConf: any;\r\n __STORE__?: Record<string, any>;\r\n sxpPageConf: Record<string, any>;\r\n }>(\r\n schema || {\r\n pointData: [item],\r\n dataSource: [],\r\n mobilePiontData: [],\r\n type: 'PC',\r\n pcPiontData: [],\r\n pageInfo: {},\r\n pcPageConf: {},\r\n mobilePageConf: {},\r\n sxpPageConf: {}\r\n }\r\n );\r\n // 拖拽前的数据位置和大小\r\n const [prePiontData, setPrePiontData] = useState([item]);\r\n\r\n /**\r\n * undo / redo\r\n * stop 事件、resize 事件、拖进画布、复制、删除 等操作,需要把数据push到队列\r\n */\r\n const [undoStack, setUndoStack] = useState<any[]>([[item]]);\r\n const [redoStack, setRedoStack] = useState<any[]>([]);\r\n const [popup, setPopup] = useState<IPopupType>(popupInit);\r\n typeof window !== 'undefined' &&\r\n (window.sxpPopup = (type: string, aniType?: IPopupAniType) => {\r\n setPopup({\r\n ...popupInit,\r\n id: type,\r\n ...aniType\r\n });\r\n });\r\n\r\n typeof window !== 'undefined' &&\r\n (window.getJointUtmLink = (url: string) => {\r\n if (url?.indexOf('?') !== -1) {\r\n return url + (utmVal ? '&' + utmVal : '');\r\n } else {\r\n return url + (utmVal ? '?' + utmVal : '');\r\n }\r\n });\r\n\r\n // 切换页面类型,清空操作栈\r\n useEffect(() => {\r\n setUndoStack([_schema.pointData]);\r\n setRedoStack([]);\r\n }, [_schema.type]);\r\n\r\n // 保存数据源配置\r\n const saveDataSource = useCallback(\r\n (dataSource: any[]) => {\r\n const schema = cloneDeep(_schema);\r\n if (!schema) return;\r\n schema.dataSource = dataSource;\r\n setSchema?.(schema);\r\n },\r\n [_schema]\r\n );\r\n\r\n const [_pageInfoData, _setPageInfoData] = useState<IPageParams>();\r\n\r\n useImperativeHandle(ref, () => ({\r\n // 加载渲染协议\r\n loadSchema(schema) {\r\n if (schema) {\r\n setUndoStack([schema.pointData]);\r\n setSchema(schema);\r\n }\r\n },\r\n\r\n // 导出渲染协议\r\n exportSchema() {\r\n return cloneDeep(_schema);\r\n },\r\n\r\n // 获取页面信息\r\n getPageInfoData() {\r\n return _pageInfoData;\r\n },\r\n\r\n // 设置页面信息\r\n initPageInfoData(pageData: IPageParams) {\r\n if (pageData) {\r\n _setPageInfoData(pageData);\r\n }\r\n }\r\n }));\r\n\r\n // 获取页面配置\r\n const getCurPageConf = useMemo(() => {\r\n if (!_schema) return;\r\n if (_schema.type === 'PC') {\r\n return _schema.pcPageConf;\r\n } else {\r\n return _schema.mobilePageConf;\r\n }\r\n }, [_schema]);\r\n\r\n return (\r\n <EditorContext.Provider\r\n value={{\r\n resolver,\r\n currentNode,\r\n schema: _schema,\r\n setCurrentNode,\r\n setSchema,\r\n saveDataSource,\r\n prePiontData,\r\n setPrePiontData,\r\n pageInfoData: _pageInfoData,\r\n setPageInfoData: (params: IPageParams) => _setPageInfoData({ ..._pageInfoData, ...params }),\r\n undoStack,\r\n redoStack,\r\n setRedoStack,\r\n setUndoStack,\r\n getCurPageConf,\r\n popup,\r\n setPopup\r\n }}\r\n >\r\n <DataSourceProvider isSsr={isSsr} enable={enableDataSource}>\r\n {children}\r\n </DataSourceProvider>\r\n </EditorContext.Provider>\r\n );\r\n }\r\n);\r\n\r\nexport { EditorCore };\r\n","export default [\r\n {\r\n title: '点击事件',\r\n child: [\r\n {\r\n type: 'link',\r\n name: 'onClick'\r\n }\r\n ]\r\n }\r\n];\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-07-02 10:01:21\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\popup\\AppointForm\\settingRender.tsx\r\n *\r\n */\r\n\r\nexport default [\r\n {\r\n type: 'Text',\r\n label: '组件名称',\r\n name: 'name'\r\n },\r\n {\r\n title: '表单信息',\r\n child: [\r\n {\r\n type: 'Text',\r\n label: '标题',\r\n name: ['props', 'title']\r\n },\r\n {\r\n type: 'Group',\r\n label: '标题字体',\r\n child: [\r\n {\r\n type: 'Select',\r\n name: ['textStyle', 'fontFamily-cn'],\r\n bottomText: '中文字体'\r\n },\r\n {\r\n type: 'Select',\r\n name: ['textStyle', 'fontFamily-en'],\r\n bottomText: '英文/其他字体'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Group',\r\n label: '',\r\n child: [\r\n {\r\n type: 'Color',\r\n name: ['textStyle', 'color']\r\n },\r\n\r\n {\r\n type: 'Number',\r\n name: ['textStyle', 'fontSize'],\r\n addonAfter: 'px'\r\n }\r\n ]\r\n },\r\n {\r\n label: '标题样式',\r\n type: 'TextStyle',\r\n name: ['textStyle']\r\n },\r\n {\r\n label: '标题对齐',\r\n type: 'TextAlign',\r\n name: ['textStyle']\r\n },\r\n {\r\n label: '表单布局',\r\n type: 'Radius',\r\n options: [\r\n {\r\n label: '左右',\r\n value: 'horizontal'\r\n },\r\n {\r\n label: '上下',\r\n value: 'vertical'\r\n },\r\n {\r\n label: '提示',\r\n value: undefined\r\n }\r\n ],\r\n name: ['props', 'layoutType']\r\n },\r\n {\r\n label: '提交按钮文本',\r\n type: 'Text',\r\n name: ['props', 'submitText']\r\n },\r\n {\r\n type: 'Group',\r\n label: '提交按钮字体',\r\n child: [\r\n {\r\n type: 'Select',\r\n name: ['props', 'submitButtonStyle', 'fontFamily-cn'],\r\n bottomText: '中文字体'\r\n },\r\n {\r\n type: 'Select',\r\n name: ['props', 'submitButtonStyle', 'fontFamily-en'],\r\n bottomText: '英文/其他字体'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Group',\r\n label: '',\r\n child: [\r\n {\r\n type: 'Color',\r\n name: ['props', 'submitButtonStyle', 'color'],\r\n initialValue: '#fff'\r\n },\r\n\r\n {\r\n type: 'Number',\r\n name: ['props', 'submitButtonStyle', 'fontSize'],\r\n addonAfter: 'px',\r\n initialValue: 12\r\n }\r\n ]\r\n },\r\n {\r\n type: 'TextStyle',\r\n name: ['props', 'submitButtonStyle']\r\n },\r\n {\r\n type: 'TextAlign',\r\n name: ['props', 'submitButtonStyle']\r\n },\r\n {\r\n label: '提交按钮颜色',\r\n type: 'Color',\r\n name: ['props', 'submitBgColor']\r\n }\r\n // {\r\n // label: '接收内容接口地址',\r\n // type: 'TextArea',\r\n // name: ['props', 'submitApiUrl'],\r\n // labelCol: {\r\n // span: 24\r\n // }\r\n // },\r\n // {\r\n // label: '接收表单结果邮箱',\r\n // type: 'TextArea',\r\n // name: ['props', 'submitEmail'],\r\n // labelCol: {\r\n // span: 24\r\n // }\r\n // }\r\n ]\r\n },\r\n {\r\n title: '表单项',\r\n child: [\r\n {\r\n type: 'AddFormItems',\r\n name: ['props', 'columns']\r\n }\r\n ]\r\n }\r\n];\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-03-12 10:59:06\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-20 13:39:07\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\hooks\\useEventReport.ts\r\n *\r\n */\r\nimport { useCallback } from 'react';\r\nimport { RecItemType } from '../components/SxpPageRender/typing';\r\nimport { useSxpDataSource } from './useSxpDataSource';\r\nimport { DEFAULT_TAG } from '../context/SxpDataSourceProvider';\r\n\r\nexport function useEventReport() {\r\n const { bffEventReport, popupDetailData, waterFallData, isFromHashtag } = useSxpDataSource();\r\n\r\n const jumpToWeb = useCallback(\r\n (data?: RecItemType, product?: RecItemType['product'], cta?: RecItemType['cta'], position?: number) => {\r\n let fromKName = '';\r\n if (popupDetailData && (data?.video?.bindProducts?.length || data?.video?.bindProduct)) {\r\n fromKName = 'pdpPage';\r\n } else if (isFromHashtag) {\r\n fromKName = 'hashTagPage';\r\n } else if (data?.video?.url) {\r\n fromKName = 'videoPage';\r\n } else if (data?.video?.imgUrls && data?.video?.imgUrls?.length) {\r\n fromKName = 'imagePage';\r\n } else if (data?.product) {\r\n fromKName = 'productPage';\r\n }\r\n bffEventReport?.({\r\n eventInfo: {\r\n eventSubject: 'jumpToWeb',\r\n eventDescription: 'User jumped to website',\r\n productId: product?.itemId ?? '',\r\n productName: product?.title ?? '',\r\n price: product?.price ? product?.price + '' : '0',\r\n productCollection: product?.collection ?? '',\r\n fromKName,\r\n fromKPage: location?.href,\r\n contentTags: product?.tags ? JSON.stringify(product?.tags) : '',\r\n position: position + '',\r\n contentId: data?.video?.itemId ?? '',\r\n ctatId: cta?.itemId ?? '',\r\n traceInfo: product?.traceInfo ?? ''\r\n }\r\n });\r\n },\r\n [bffEventReport, popupDetailData, isFromHashtag]\r\n );\r\n\r\n const productView = useCallback(\r\n (\r\n data?: RecItemType,\r\n product?: RecItemType['product'],\r\n cta?: RecItemType['cta'],\r\n viewTime?: any,\r\n position?: number\r\n ) => {\r\n let fromKName = '';\r\n if (popupDetailData && (data?.video?.bindProducts?.length || data?.video?.bindProduct)) {\r\n fromKName = 'pdpPage';\r\n } else if (data?.product) {\r\n fromKName = 'productPage';\r\n }\r\n bffEventReport?.({\r\n eventInfo: {\r\n productId: product?.itemId,\r\n productName: product?.title,\r\n price: product?.price ? product?.price + '' : '0',\r\n productCollection: product?.collection,\r\n fromKName,\r\n fromKPage: location?.href,\r\n contentTags: JSON.stringify(product?.tags),\r\n position: position + '',\r\n contentId: data?.video?.itemId,\r\n ctatId: cta?.itemId,\r\n traceInfo: product?.traceInfo,\r\n timeOnSite: Math.floor(((new Date() as any) - viewTime) / 1000) + '',\r\n eventSubject: 'productView',\r\n eventDescription: 'User browsed the product'\r\n }\r\n });\r\n },\r\n [bffEventReport, popupDetailData]\r\n );\r\n\r\n const backMainFeed = useCallback(\r\n (lastFeed: 'theme' | 'branch' | 'external', selectTag?: string, themeTag?: string, hashTag?: string) => {\r\n if (selectTag && selectTag === DEFAULT_TAG) {\r\n bffEventReport?.({\r\n eventInfo: {\r\n lastFeed,\r\n themeTags: themeTag ? `['${themeTag}']` : '',\r\n hashTags: hashTag ? `['${hashTag}']` : '',\r\n eventSubject: 'backMainFeed',\r\n eventDescription: 'back Main Feed'\r\n }\r\n });\r\n }\r\n },\r\n [bffEventReport]\r\n );\r\n\r\n return {\r\n jumpToWeb,\r\n productView,\r\n backMainFeed\r\n };\r\n}\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-06-27 16:22:34\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-07-02 10:34:34\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\popup\\AppointForm\\Form.tsx\r\n *\r\n */\r\nimport { FC, memo, useCallback } from 'react';\r\nimport { IAppointFormProps } from '.';\r\nimport React from 'react';\r\n\r\ninterface IFormProps {\r\n columns?: {\r\n title?: string;\r\n dataIndex?: string;\r\n valueType?: string;\r\n key?: string;\r\n }[];\r\n layout?: IAppointFormProps['layoutType'];\r\n onChange?: (data: Record<string, any>) => void;\r\n}\r\n\r\nconst Form: FC<IFormProps> = ({ layout, columns, onChange }) => {\r\n return (\r\n <>\r\n {columns?.map((item, index) => (\r\n <div\r\n key={index}\r\n className='pb-appoint-form-container-item'\r\n style={{ flexDirection: layout === 'horizontal' ? 'row' : 'column' }}\r\n >\r\n {layout !== 'inline' && <label className='pb-appoint-form-container-label'>{item?.title}</label>}\r\n {item?.valueType === 'text' && (\r\n <input\r\n className='pb-appoint-form-container-input'\r\n type='text'\r\n placeholder={layout === 'inline' ? item?.title : '请输入'}\r\n name={item?.dataIndex}\r\n onChange={onChange}\r\n />\r\n )}\r\n </div>\r\n ))}\r\n </>\r\n );\r\n};\r\nexport default memo(Form);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-27 18:33:11\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\popup\\AppointForm\\index.tsx\r\n *\r\n */\r\nimport { css } from '@emotion/css';\r\nimport React, { CSSProperties, FC, memo, useCallback, useMemo, useRef, useState } from 'react';\r\nimport { cloneDeep, debounce } from 'lodash';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\nimport './index.less';\r\nimport { useEventReport } from '@/core/hooks/useEventReport';\r\nimport { RecItemType } from '@/core/components/SxpPageRender/typing';\r\nimport { setFontForText } from '@/core/utils/tool';\r\nimport Form from './Form';\r\n\r\nexport interface IAppointFormProps {\r\n columns?: any[];\r\n title: string;\r\n style?: Record<string, any>;\r\n textStyle?: Record<string, any>;\r\n bgImg?: Record<string, any> | string;\r\n submitBgColor?: string;\r\n submitColor?: string;\r\n submitText?: string;\r\n submitApiUrl?: string;\r\n submitEmail?: string;\r\n layoutType?: 'horizontal' | 'vertical' | 'inline';\r\n isExternalLink?: boolean;\r\n isPopup?: boolean;\r\n submitButtonStyle?: CSSProperties;\r\n onClick?: () => void;\r\n onClose?: () => void;\r\n}\r\n\r\ntype DataItem = {\r\n name: string;\r\n state: string;\r\n};\r\n\r\nconst AppointForm: FC<IAppointFormProps> = ({\r\n columns,\r\n style,\r\n title,\r\n textStyle,\r\n submitBgColor,\r\n submitColor,\r\n submitText,\r\n layoutType = 'inline',\r\n isExternalLink,\r\n isPopup,\r\n onClick,\r\n onClose,\r\n submitButtonStyle,\r\n ...props\r\n}) => {\r\n const { submitForm, popupDetailData } = useSxpDataSource();\r\n const { jumpToWeb } = useEventReport();\r\n const [loading, setLoading] = useState(false);\r\n const defaultColumns = useMemo(\r\n () => [\r\n {\r\n title: '',\r\n dataIndex: 'field',\r\n valueType: 'text',\r\n key: '1'\r\n },\r\n {\r\n title: '',\r\n dataIndex: 'field',\r\n valueType: 'text',\r\n key: '2'\r\n },\r\n {\r\n title: '',\r\n dataIndex: 'field',\r\n valueType: 'text',\r\n key: '3'\r\n },\r\n {\r\n title: '',\r\n dataIndex: 'field',\r\n valueType: 'text',\r\n key: '4'\r\n }\r\n ],\r\n []\r\n );\r\n\r\n const [formData, setFormData] = useState<Record<string, any>>({});\r\n\r\n const columnsData = useMemo(() => {\r\n return cloneDeep(columns) || defaultColumns;\r\n }, [columns, defaultColumns]);\r\n\r\n const handleChange = useCallback(\r\n (e: any) => {\r\n const { name, value } = e.target;\r\n setFormData({\r\n ...formData,\r\n [name]: value\r\n });\r\n },\r\n [formData]\r\n );\r\n\r\n const handleSubmit = debounce(async () => {\r\n const vals = formData;\r\n if (!vals) return;\r\n const arr = Object.keys(vals)\r\n ?.map((key) => ({\r\n name: key,\r\n value: vals[key] ?? ''\r\n }))\r\n ?.filter((item: any) => item?.value);\r\n if (!arr || !arr?.length) return;\r\n setLoading(true);\r\n const res = (await submitForm?.({ attributes: arr })) as any;\r\n setLoading(false);\r\n if (res) {\r\n if (isExternalLink) {\r\n const data = popupDetailData as RecItemType;\r\n const product = data?.video?.bindProduct;\r\n const cta = data?.video?.bindProduct?.bindCta;\r\n const position = popupDetailData?.index as number;\r\n jumpToWeb(data, product, cta, position);\r\n }\r\n if (!isPopup) {\r\n onClose?.();\r\n }\r\n onClick?.();\r\n }\r\n }, 1000);\r\n\r\n return (\r\n <div className='pb-appoint-form'>\r\n <div\r\n className={`pb-appoint-form-title ${css({\r\n ...textStyle\r\n })}`}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(title, textStyle)\r\n }}\r\n ></div>\r\n <div className={css({ ...style })} {...props}>\r\n <div className='pb-appoint-form-container'>\r\n <Form columns={columnsData} layout={layoutType} onChange={handleChange}></Form>\r\n </div>\r\n </div>\r\n <div className='pb-appoint-form-btn-wrapper'>\r\n <button\r\n aria-label={submitText}\r\n onClick={handleSubmit}\r\n className='pb-appoint-form-btn'\r\n style={{\r\n color: submitColor,\r\n background: submitBgColor,\r\n ...submitButtonStyle\r\n }}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(loading ? 'loading...' : submitText, submitButtonStyle)\r\n }}\r\n ></button>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default memo(AppointForm);\r\n","import { DATA_TYPE } from './hooks';\r\nexport interface IMaterialOptions<T> {\r\n displayName: string; // 组件名\r\n icon: React.ReactNode; // 组件显示图标\r\n category: string; // 组件类别\r\n type: string; // 组件类型\r\n related?: {\r\n settingRender?: Record<string, any>; // 属性渲染协议\r\n bindableProps?: Array<{ label: string; value: keyof T; dataType: Array<DATA_TYPE> }>; // 可数据绑定的组件属性\r\n [key: string]: any;\r\n }; // 组件相关属性\r\n h?: number; // 组件高度\r\n w?: number; // 组件宽度\r\n disableDragging?: boolean; // 是否可以拖拽\r\n isFirstLayout?: boolean; // 是否为第一层级布局组件\r\n defaulSetting?: defaulSettingProps<T>; // 默认参数\r\n defaulMobileSetting?: defaulSettingProps<T>; // 手机端默认参数,没有则取defaulSetting\r\n mobileH?: number; // 组件手机端高度,没有则取h\r\n mobileW?: number; // 组件手机端宽度,没有则取w\r\n sort: number; // 排序编号,越小排越前\r\n}\r\n\r\ntype defaulSettingProps<T> = {\r\n style?: React.CSSProperties;\r\n props?: T;\r\n textStyle?: React.CSSProperties;\r\n name?: string;\r\n};\r\n\r\nexport type MaterialComponet<T = any> = React.ComponentType<T> & { extend?: IMaterialOptions<T> };\r\n\r\nexport function createMaterial<T>(component: MaterialComponet<T>, options: IMaterialOptions<T>) {\r\n component.extend = options;\r\n return component;\r\n}\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-04-12 17:35:22\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\popup\\AppointForm\\material.tsx\r\n *\r\n */\r\nimport interactionRender from './interactionRender';\r\nimport settingRender from './settingRender';\r\nimport AppointFormComponent from '.';\r\nimport { createMaterial } from '@/core/create';\r\n\r\nconst AppointForm = createMaterial(AppointFormComponent, {\r\n displayName: '预约表单',\r\n icon: '',\r\n category: 'popup',\r\n type: 'AppointForm',\r\n related: {\r\n settingRender,\r\n bindableProps: [],\r\n interactionRender\r\n },\r\n defaulSetting: {\r\n name: '表单',\r\n props: {\r\n title: 'Appointment Booking',\r\n submitColor: '#fff',\r\n submitBgColor: '#000',\r\n submitText: 'Submit',\r\n layoutType: undefined\r\n },\r\n style: {},\r\n textStyle: {\r\n fontSize: 14,\r\n color: '#000',\r\n textAlign: 'center'\r\n }\r\n },\r\n w: 100,\r\n h: 40,\r\n sort: 2\r\n});\r\n\r\nexport { AppointForm };\r\n","export default [\r\n {\r\n title: '商品图片',\r\n child: [\r\n {\r\n type: 'Radius',\r\n label: '轮播指示器',\r\n options: [\r\n {\r\n label: '居左',\r\n value: 'left'\r\n },\r\n {\r\n label: '居中',\r\n value: 'center'\r\n }\r\n ],\r\n name: ['props', 'swiper', 'dotsAlign']\r\n },\r\n {\r\n type: 'Number',\r\n name: ['props', 'swiper', 'delay'],\r\n addonAfter: 's'\r\n },\r\n {\r\n type: 'Group',\r\n child: [\r\n {\r\n label: '居中垂直偏移',\r\n type: 'Number',\r\n name: ['props', 'swiper', 'translateY'],\r\n min: -1000,\r\n addonAfter: '%',\r\n initialValue: 0\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n title: '商品文本',\r\n child: [\r\n {\r\n name: ['props', 'commodityStyles'],\r\n type: 'SelectLinkage',\r\n child: [\r\n {\r\n label: '字段',\r\n type: 'Select',\r\n options: [\r\n {\r\n label: '商品名称',\r\n value: 'title'\r\n },\r\n {\r\n label: '系列名称',\r\n value: 'collection'\r\n },\r\n {\r\n label: '价格',\r\n value: 'price'\r\n },\r\n {\r\n label: '商品描述',\r\n value: 'info'\r\n }\r\n ],\r\n name: ['props', 'commodityStyles', 'field'],\r\n initialValue: 'title'\r\n },\r\n {\r\n type: 'Group',\r\n child: [\r\n {\r\n label: '上边距',\r\n type: 'Number',\r\n addonAfter: 'px',\r\n name: ['marginTop']\r\n },\r\n {\r\n label: '下边距',\r\n type: 'Number',\r\n addonAfter: 'px',\r\n name: ['marginBottom']\r\n }\r\n ]\r\n },\r\n\r\n {\r\n type: 'Group',\r\n label: '标题字体',\r\n child: [\r\n {\r\n type: 'Select',\r\n name: ['fontFamily-cn'],\r\n bottomText: '中文字体'\r\n },\r\n {\r\n type: 'Select',\r\n name: ['fontFamily-en'],\r\n bottomText: '英文/其他字体'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Group',\r\n label: '',\r\n child: [\r\n {\r\n type: 'Color',\r\n name: ['color']\r\n },\r\n {\r\n type: 'Number',\r\n addonAfter: 'px',\r\n name: ['fontSize']\r\n }\r\n ]\r\n },\r\n {\r\n label: '标题样式',\r\n type: 'TextStyle'\r\n },\r\n {\r\n label: '标题对齐',\r\n type: 'TextAlign'\r\n },\r\n {\r\n label: '默认行数',\r\n type: 'Number',\r\n name: ['lineClamp']\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n title: '购买按钮样式',\r\n child: [\r\n {\r\n type: 'Color',\r\n label: '背景色',\r\n name: ['props', 'buttonStyle', 'backgroundColor'],\r\n initialValue: '#000'\r\n },\r\n {\r\n type: 'Group',\r\n label: '尺寸',\r\n child: [\r\n {\r\n type: 'Number',\r\n name: ['props', 'buttonStyle', 'height'],\r\n addonAfter: 'H'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Group',\r\n label: '圆角',\r\n child: [\r\n {\r\n type: 'Slider',\r\n name: ['props', 'buttonStyle', 'borderRadius'],\r\n max: 100\r\n },\r\n {\r\n type: 'Number',\r\n name: ['props', 'buttonStyle', 'borderRadius'],\r\n addonAfter: 'px',\r\n max: 100\r\n }\r\n ]\r\n },\r\n {\r\n type: 'TextMargin',\r\n name: ['props', 'buttonStyle']\r\n },\r\n {\r\n type: 'Group',\r\n label: '字体',\r\n child: [\r\n {\r\n type: 'Select',\r\n name: ['props', 'buttonStyle', 'fontFamily-cn'],\r\n bottomText: '中文字体'\r\n },\r\n {\r\n type: 'Select',\r\n name: ['props', 'buttonStyle', 'fontFamily-en'],\r\n bottomText: '英文/其他字体'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Group',\r\n label: '',\r\n child: [\r\n {\r\n type: 'Color',\r\n name: ['props', 'buttonStyle', 'color'],\r\n initialValue: '#fff'\r\n },\r\n\r\n {\r\n type: 'Number',\r\n name: ['props', 'buttonStyle', 'fontSize'],\r\n addonAfter: 'px'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'TextStyle',\r\n name: ['props', 'buttonStyle']\r\n },\r\n {\r\n type: 'TextAlign',\r\n name: ['props', 'buttonStyle']\r\n }\r\n ]\r\n }\r\n];\r\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nconst ssrDocument = {\n body: {},\n addEventListener() {},\n removeEventListener() {},\n activeElement: {\n blur() {},\n nodeName: ''\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() {}\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() {},\n getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState() {},\n pushState() {},\n go() {},\n back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() {},\n removeEventListener() {},\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n }\n };\n },\n Image() {},\n Date() {},\n screen: {},\n setTimeout() {},\n clearTimeout() {},\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { getWindow as a, getDocument as g };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction classesToTokens(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return classes.trim().split(' ').filter(c => !!c.trim());\n}\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n return [...element.children].filter(el => el.matches(selector));\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nfunction makeElementsArray(el) {\n return (Array.isArray(el) ? el : [el]).filter(e => !!e);\n}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, getSlideTransformEl as g, elementIndex as h, classesToTokens as i, getTranslate as j, elementTransitionEnd as k, isObject as l, makeElementsArray as m, nextTick as n, elementStyle as o, elementNextAll as p, elementPrevAll as q, animateCSSModeScroll as r, setCSSProperty as s, showWarning as t, extend as u, deleteProps as v };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { n as nextTick, d as now } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Mousewheel(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null,\n noMousewheelClass: 'swiper-no-mousewheel'\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n }\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n\n // Ignore event if the target or its parents have the swiper-no-mousewheel class\n if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n };\n\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.loop) {\n swiper.loopFix({\n direction: newEvent.direction < 0 ? 'next' : 'prev',\n byMousewheel: true\n });\n }\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {\n return true;\n }\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n targetEl[method]('mouseenter', handleMouseEnter);\n targetEl[method]('mouseleave', handleMouseLeave);\n targetEl[method]('wheel', handle);\n }\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events('addEventListener');\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events('removeEventListener');\n swiper.mousewheel.enabled = false;\n return true;\n }\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}\n\nexport { Mousewheel as default };\n","import { e as elementChildren, c as createElement } from './utils.mjs';\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n\nexport { createElementIfNotDefined as c };\n","function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}\n\nexport { classesToSelector as c };\n","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray, f as elementOuterSize, h as elementIndex, a as elementParents } from '../shared/utils.mjs';\n\nfunction Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\"></${params.bulletElement}>`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `<span class=\"${params.currentClass}\"></span>` + ' / ' + `<span class=\"${params.totalClass}\"></span>`;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = `<span class=\"${params.progressbarFillClass}\"></span>`;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\nexport { Pagination as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { m as makeElementsArray, i as classesToTokens, c as createElement, n as nextTick, b as elementOffset } from '../shared/utils.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { c as classesToSelector } from '../shared/classes-to-selector.mjs';\n\nfunction Scrollbar(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null\n };\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;\n dragEl.style.width = `${newSize}px`;\n } else {\n dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;\n dragEl.style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(timeout);\n el.style.opacity = 1;\n timeout = setTimeout(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n }\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;\n }\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n dragEl.style.width = '';\n dragEl.style.height = '';\n trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n dragEl.style.width = `${dragSize}px`;\n } else {\n dragEl.style.height = `${dragSize}px`;\n }\n if (divider >= 1) {\n el.style.display = 'none';\n } else {\n el.style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n el.style.opacity = 0;\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);\n }\n }\n function getPointerPosition(e) {\n return swiper.isHorizontal() ? e.clientX : e.clientY;\n }\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n wrapperEl.style.transitionDuration = '100ms';\n dragEl.style.transitionDuration = '100ms';\n setDragPosition(e);\n clearTimeout(dragTimeout);\n el.style.transitionDuration = '0ms';\n if (params.hide) {\n el.style.opacity = 1;\n }\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = 'none';\n }\n emit('scrollbarDragStart', e);\n }\n function onDragMove(e) {\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault && e.cancelable) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n wrapperEl.style.transitionDuration = '0ms';\n el.style.transitionDuration = '0ms';\n dragEl.style.transitionDuration = '0ms';\n emit('scrollbarDragMove', e);\n }\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = '';\n wrapperEl.style.transitionDuration = '';\n }\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n function events(method) {\n const {\n scrollbar,\n params\n } = swiper;\n const el = scrollbar.el;\n if (!el) return;\n const target = el;\n const activeListener = params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n target[eventMethod]('pointerdown', onDragStart, activeListener);\n document[eventMethod]('pointermove', onDragMove, activeListener);\n document[eventMethod]('pointerup', onDragEnd, passiveListener);\n }\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n function init() {\n const {\n scrollbar,\n el: swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = document.querySelectorAll(params.el);\n if (!el.length) return;\n } else if (!el) {\n el = params.el;\n }\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {\n el = swiperEl.querySelector(params.el);\n }\n if (el.length > 0) el = el[0];\n el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let dragEl;\n if (el) {\n dragEl = el.querySelector(classesToSelector(swiper.params.scrollbar.dragClass));\n if (!dragEl) {\n dragEl = createElement('div', swiper.params.scrollbar.dragClass);\n el.append(dragEl);\n }\n }\n Object.assign(scrollbar, {\n el,\n dragEl\n });\n if (params.draggable) {\n enableDraggable();\n }\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));\n }\n }\n function destroy() {\n const params = swiper.params.scrollbar;\n const el = swiper.scrollbar.el;\n if (el) {\n el.classList.remove(...classesToTokens(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass));\n }\n disableDraggable();\n }\n on('changeDirection', () => {\n if (!swiper.scrollbar || !swiper.scrollbar.el) return;\n const params = swiper.params.scrollbar;\n let {\n el\n } = swiper.scrollbar;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock changeDirection', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n el\n } = swiper.scrollbar;\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));\n }\n });\n on('destroy', () => {\n destroy();\n });\n const enable = () => {\n swiper.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n }\n init();\n updateSize();\n setTranslate();\n };\n const disable = () => {\n swiper.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}\n\nexport { Scrollbar as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit,\n params\n } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: false,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime();\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n let pausedByPointerEnter;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {\n return;\n }\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n autoplayStartTime = new Date().getTime();\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pausedByPointerEnter = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByPointerEnter = false;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n }\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('_freeModeStaticRelease', () => {\n if (pausedByTouch || pausedByInteraction) {\n resume();\n }\n });\n on('_freeModeNoMomentumRelease', () => {\n if (!swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\nexport { Autoplay as default };\n","import { d as now, k as elementTransitionEnd } from '../shared/utils.mjs';\n\nfunction freeMode(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n once\n } = _ref;\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart() {\n if (swiper.params.cssMode) return;\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove() {\n if (swiper.params.cssMode) return;\n const {\n touchEventsData: data,\n touches\n } = swiper;\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n function onTouchEnd(_ref2) {\n let {\n currentPos\n } = _ref2;\n if (swiper.params.cssMode) return;\n const {\n params,\n wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper;\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n emit('_freeModeStaticRelease');\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}\n\nexport { freeMode as default };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, o as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, p as elementNextAll, q as elementPrevAll, j as getTranslate, r as animateCSSModeScroll, n as nextTick, t as showWarning, c as createElement, d as now, u as extend, h as elementIndex, v as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nlet deviceCached;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n const device = getDevice();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);\n const isSafariBrowser = isSafari();\n const need3dFix = isSafariBrowser || isWebView && device.ios;\n return {\n isSafari: needPerspectiveFix || isSafariBrowser,\n needPerspectiveFix,\n need3dFix,\n isWebView\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);\n if (allSlidesSize + offsetSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n swiper.emit('slidesUpdated');\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\n\nconst toggleSlideClasses$1 = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n }\n toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nconst toggleSlideClasses = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0];\n nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];\n prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0];\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n if (!gridEnabled) {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n }\n }\n slides.forEach(slideEl => {\n toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n });\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0];\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n swiper.animating = false;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n if (swiper.destroyed) return;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n } else if (gridEnabled && params.grid.fill === 'row') {\n showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n }\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n slides.forEach((slide, slideIndex) => {\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n } else {\n appendSlidesIndexes.push(index);\n }\n }\n }\n swiper.__preventObserver__ = true;\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n swiper.slides.forEach((slide, slideIndex) => {\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n if (setTranslate) {\n const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true,\n detail: {\n bySwiperTouchMove: true\n }\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n if (!el || typeof el === 'string') return;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasGrabCursor = swiper.params.grabCursor;\n const isGrabCursor = breakpointParams.grabCursor;\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n if (wasGrabCursor && !isGrabCursor) {\n swiper.unsetGrabCursor();\n } else if (!wasGrabCursor && isGrabCursor) {\n swiper.setGrabCursor();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n if (!el || typeof el === 'string') return;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n swiperElementNodeName: 'SWIPER-CONTAINER',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n eventsPrefix: 'swiper',\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += Math.ceil(slides[i].swiperSlideSize);\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n if (el && typeof el !== 'string') {\n el.removeAttribute('style');\n }\n if (wrapperEl) {\n wrapperEl.removeAttribute('style');\n }\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.swiper = null;\n }\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n","/* underscore in name -> watch for changes */\nconst paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'swiperElementNodeName', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', 'breakpointsBase', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopAdditionalSlides', 'loopAddBlankSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideFullyVisibleClass', 'slideNextClass', 'slidePrevClass', 'slideBlankClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control'];\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object' && !o.__swiper__;\n}\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\nfunction attrToProp(attrName) {\n if (attrName === void 0) {\n attrName = '';\n }\n return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', ''));\n}\nfunction wrapperClass(className) {\n if (className === void 0) {\n className = '';\n }\n if (!className) return 'swiper-wrapper';\n if (!className.includes('swiper-wrapper')) return `swiper-wrapper ${className}`;\n return className;\n}\n\nfunction updateSwiper(_ref) {\n let {\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n } = _ref;\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction' && key !== 'wrapperClass');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n let loopNeedDestroy;\n let loopNeedEnable;\n let loopNeedReloop;\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n if (mod === 'navigation') {\n if (swiper.isElement) {\n swiper[mod].prevEl.remove();\n swiper[mod].nextEl.remove();\n }\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n if (swiper.isElement) {\n swiper[mod].el.remove();\n }\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n if (changedParams.includes('loop') && swiper.isElement) {\n if (currentParams.loop && !passedParams.loop) {\n loopNeedDestroy = true;\n } else if (!currentParams.loop && passedParams.loop) {\n loopNeedEnable = true;\n } else {\n loopNeedReloop = true;\n }\n }\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n Object.assign(currentParams[key], passedParams[key]);\n if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) {\n destroyModule(key);\n }\n } else {\n const newValue = passedParams[key];\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('virtual') && virtual && currentParams.virtual.enabled) {\n if (slides) virtual.slides = slides;\n virtual.update(true);\n }\n if (changedParams.includes('children') && slides && currentParams.loop) {\n loopNeedReloop = true;\n }\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (needPaginationInit) {\n if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) {\n paginationEl = document.createElement('div');\n paginationEl.classList.add('swiper-pagination');\n paginationEl.part.add('pagination');\n swiper.el.appendChild(paginationEl);\n }\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n if (needScrollbarInit) {\n if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) {\n scrollbarEl = document.createElement('div');\n scrollbarEl.classList.add('swiper-scrollbar');\n scrollbarEl.part.add('scrollbar');\n swiper.el.appendChild(scrollbarEl);\n }\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n if (needNavigationInit) {\n if (swiper.isElement) {\n if (!nextEl || typeof nextEl === 'string') {\n nextEl = document.createElement('div');\n nextEl.classList.add('swiper-button-next');\n nextEl.innerHTML = swiper.hostEl.constructor.nextButtonSvg;\n nextEl.part.add('button-next');\n swiper.el.appendChild(nextEl);\n }\n if (!prevEl || typeof prevEl === 'string') {\n prevEl = document.createElement('div');\n prevEl.classList.add('swiper-button-prev');\n prevEl.innerHTML = swiper.hostEl.constructor.prevButtonSvg;\n prevEl.part.add('button-prev');\n swiper.el.appendChild(prevEl);\n }\n }\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n if (loopNeedDestroy || loopNeedReloop) {\n swiper.loopDestroy();\n }\n if (loopNeedEnable || loopNeedReloop) {\n swiper.loopCreate();\n }\n swiper.update();\n}\n\nexport { needsPagination as a, needsScrollbar as b, attrToProp as c, uniqueClasses as d, extend as e, isObject as i, needsNavigation as n, paramsList as p, updateSwiper as u, wrapperClass as w };\n","import { e as extend, p as paramsList, i as isObject, n as needsNavigation, a as needsPagination, b as needsScrollbar } from './update-swiper.mjs';\nimport { d as defaults } from './swiper-core.mjs';\n\nfunction getParams(obj, splitEvents) {\n if (obj === void 0) {\n obj = {};\n }\n if (splitEvents === void 0) {\n splitEvents = true;\n }\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, defaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n const plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(key => {\n if (typeof obj[key] === 'undefined') return;\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n if (splitEvents) {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n }\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\n\nfunction mountSwiper(_ref, swiperParams) {\n let {\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n } = _ref;\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n swiper.init(el);\n}\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n const keys = [];\n if (!oldParams) return keys;\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n if (children && oldChildren) {\n const oldChildrenKeys = oldChildren.map(getKey);\n const childrenKeys = children.map(getKey);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n }\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nconst updateOnVirtualData = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n};\n\nexport { getChangedParams as a, getParams as g, mountSwiper as m, updateOnVirtualData as u };\n","/**\n * Swiper React 11.1.4\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2024 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: May 30, 2024\n */\n\nimport React, { useEffect, useLayoutEffect, useContext, createContext, forwardRef, useState, useRef } from 'react';\nimport { S as Swiper$1 } from './shared/swiper-core.mjs';\nimport { g as getParams, m as mountSwiper, a as getChangedParams, u as updateOnVirtualData } from './shared/update-on-virtual-data.mjs';\nimport { d as uniqueClasses, w as wrapperClass, n as needsNavigation, b as needsScrollbar, a as needsPagination, e as extend, u as updateSwiper } from './shared/update-swiper.mjs';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction isChildSwiperSlide(child) {\n return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n const {\n from,\n to\n } = virtualData;\n const loopFrom = swiper.params.loop ? -slides.length : 0;\n const loopTo = swiper.params.loop ? slides.length * 2 : slides.length;\n const slidesToRender = [];\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n slidesToRender.push(slides[getSlideIndex(i)]);\n }\n }\n return slidesToRender.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style,\n key: child.props.virtualIndex || child.key || `slide-${index}`\n });\n });\n}\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nconst SwiperSlideContext = /*#__PURE__*/createContext(null);\nconst useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nconst SwiperContext = /*#__PURE__*/createContext(null);\nconst useSwiper = () => {\n return useContext(SwiperContext);\n};\n\nconst Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n let {\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n const passParams = {\n ...swiperParams\n };\n delete passParams.wrapperClass;\n swiperRef.current = new Swiper$1(passParams);\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n if (!swiperElRef.current) {\n initSwiper();\n }\n\n // Listen for breakpoints change\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n });\n\n // set initialized flag\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n });\n\n // mount swiper\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n if (!swiperElRef.current) return;\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper && !swiperRef.current.destroyed) onSwiper(swiperRef.current);\n // eslint-disable-next-line\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []);\n\n // watch for params change\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n return () => {\n detachEvents();\n };\n });\n\n // update on virtual update\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]);\n\n // bypass swiper instance to slides\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n return slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current,\n swiperSlideIndex: index\n });\n });\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {\n className: wrapperClass(swiperParams.wrapperClass)\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\n\nconst SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n let {\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n lazy,\n virtualIndex,\n swiperSlideIndex,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n const [lazyLoaded, setLazyLoaded] = useState(false);\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n useIsomorphicLayoutEffect(() => {\n if (typeof swiperSlideIndex !== 'undefined') {\n slideElRef.current.swiperSlideIndex = swiperSlideIndex;\n }\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n if (!slideElRef.current || !swiper) {\n return;\n }\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n return;\n }\n swiper.on('_slideClass', updateClasses);\n // eslint-disable-next-line\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0\n };\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n const onLoad = () => {\n setLazyLoaded(true);\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex,\n onLoad: onLoad\n }, rest), zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n }))), !zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n })));\n});\nSwiperSlide.displayName = 'SwiperSlide';\n\nexport { Swiper, SwiperSlide, useSwiper, useSwiperSlide };\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-11-02 18:34:34\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-04-12 11:23:00\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageRender\\Modal\\index.tsx\r\n *\r\n */\r\nimport { debounce } from 'lodash';\r\nimport React, { CSSProperties, FC, PropsWithChildren, memo, useEffect, useMemo, useRef, useState } from 'react';\r\nimport * as ReactDOM from 'react-dom';\r\nimport { IPopupType } from '@/core/context/EditorContext';\r\n\r\nconst closeIcon =\r\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAjhJREFUWEfFlztOw0AQhmeWiJ4CCmpQ5DiRQsIJyAWg5A0lR0AIChDiCJS8ER0cADgBeRSxt4CCDgkaKiq8i+zYeWx2413HEWmiJJv9v535Z2aN8M8vFPT9z3zETD0aAUChUJjwvPFHAJhBhB3Hqd6OAsK2yyucwykAvP38eJX398Z3AJDLlVYR8ToU9Rhj25TWr9KEsKy5dULIGQCMtfZly45TvwsAstm56UwG6wA4FUFwzrdctxZBDcWSy5XWEPG8I84/GcMipdWPtgcsaz5PCHtKG0IuTiqUvjT9U/WYMG2IOPE+AP+LtCB0xKUAAyA2Xbd2o2OG0NQXvTnvhL17D7EPtH9TRCIWwkRcGYGIQgYBABuqPuHXOQBc6pw80lBGwBQiiXhsBHQhkoprA6iM6acjhDQKu5YJZW6XeOI3XJdpvfsdTu52VfXEekD8owQiXGIubpSCbhDbLu8DwKEAd+A41SOdPpE4BS0viFOtvV2iKWqUgn5x/tmS70xR01GuDSCKc86/OCcLgTyyZ0ScDGNhFAktAJV4NFJ9YyaFiAWIE+9uVkkgBgLoig8DMWAa9ro9ynkUdlW5maZDCmB6clmz0k1HH4Cs1Ezbq2p2yEpUuBOKTSZZex00RUWIrltxuuK6EOGDSbGIOPZicpMx6fny650377qNRgBgWeVFQuA+6UjVgREhGIMlSqsPUQqIbZdOOIdZQmCv2axRnU1N1+TzJYsxOEaEV8ep7frPZ7Gd0FTEdP0ft0/kMNdg0eoAAAAASUVORK5CYII=';\r\n\r\ninterface IModalProps {\r\n visible?: boolean;\r\n popup?: IPopupType;\r\n padding?: number | string;\r\n modalStyle?: CSSProperties;\r\n onClose?: () => void;\r\n}\r\n\r\nconst Modal: FC<PropsWithChildren<IModalProps>> = ({ visible, onClose, children, modalStyle, padding, popup }) => {\r\n const [isShow, setIsShow] = useState(false);\r\n const modalEleRef = useRef<HTMLElement | null>(null);\r\n\r\n useEffect(() => {\r\n const parentNode = document.getElementById('sxp-render');\r\n const node = document.getElementById('pb-modal');\r\n if (node) {\r\n modalEleRef.current = node;\r\n } else {\r\n modalEleRef.current = document.createElement('div');\r\n modalEleRef.current.setAttribute('id', 'pb-modal');\r\n parentNode?.appendChild(modalEleRef.current);\r\n }\r\n }, []);\r\n\r\n const isOpen = useMemo(() => {\r\n return (popup?.id && popup?.id !== '') || visible;\r\n }, [visible, popup]);\r\n\r\n useEffect(() => {\r\n if (isOpen) {\r\n setIsShow(true);\r\n } else {\r\n setTimeout(() => {\r\n setIsShow(false);\r\n }, popup?.duration);\r\n }\r\n }, [isOpen, popup]);\r\n\r\n if (!modalEleRef.current) return null;\r\n\r\n const handleClose = debounce(() => {\r\n onClose?.();\r\n }, 300);\r\n\r\n return ReactDOM.createPortal(\r\n <>\r\n {isShow && (\r\n <div\r\n className='modal-bg'\r\n style={{\r\n display: 'flex',\r\n backgroundColor: isOpen ? 'rgba(0, 0, 0, 0.7)' : 'rgba(0, 0, 0, 0)',\r\n ...modalStyle\r\n }}\r\n onClick={handleClose}\r\n >\r\n <div\r\n className={`modal-container ${isOpen ? 'modal-popIn' : 'modal-popOut'}`}\r\n style={{ padding, animationDuration: (popup?.duration ?? 0) / 1000 + 's' }}\r\n onClick={(e: any) => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }}\r\n >\r\n <div onClick={onClose} className='modal-icon-wrapper'>\r\n <img src={closeIcon} alt='close' className='modal-icon' />\r\n </div>\r\n {children}\r\n </div>\r\n </div>\r\n )}\r\n </>,\r\n modalEleRef.current\r\n );\r\n};\r\n\r\nexport default memo(Modal);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-12-26 16:11:34\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-28 15:17:10\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageRender\\ExpandableText.tsx\r\n *\r\n */\r\nimport { setFontForText } from '@/core/utils/tool';\r\nimport React, { memo, FC, CSSProperties, useMemo, useState, useCallback, useRef, useEffect } from 'react';\r\n\r\ninterface IExpandableTextProps {\r\n maxStr?: number;\r\n text: string;\r\n style?: CSSProperties;\r\n className?: React.HTMLAttributes<HTMLParagraphElement>['className'];\r\n onClick?: () => void;\r\n foldText?: string;\r\n unfoldText?: string;\r\n isPost?: boolean;\r\n onChange?: (bool: boolean) => void;\r\n}\r\n\r\nconst limitTextLastWholeWord = (originalText: string = '', limit: number) => {\r\n // 匹配到中文\r\n const chineseRegex = /[\\u4e00-\\u9fa5]+/;\r\n if (chineseRegex.test(originalText)) {\r\n return originalText.slice(0, 54);\r\n }\r\n\r\n const words = originalText.split(' ');\r\n const newWords: string[] = [];\r\n for (let i = 0; i < words.length; i++) {\r\n newWords.push(words[i]);\r\n const tempText = newWords.join(' ');\r\n if (tempText.length >= limit) break;\r\n }\r\n // const _words = newWords.length === words.length ? newWords : newWords.slice(0, newWords.length - 1);\r\n const _words =\r\n newWords.length > 1 && newWords.length < words.length ? newWords.slice(0, newWords.length - 1) : newWords;\r\n return _words.join(' ') + ' ';\r\n};\r\n\r\nconst ExpandableText: FC<IExpandableTextProps> = ({\r\n text,\r\n maxStr = 108,\r\n style,\r\n className,\r\n onClick,\r\n foldText,\r\n unfoldText,\r\n isPost,\r\n onChange\r\n}) => {\r\n const [isShowMore, setIsShowMore] = useState(false);\r\n const [isShow, setIsShow] = useState(false);\r\n const lineClamp = Number(style?.lineClamp || 2);\r\n const multiRow = useRef<any>(null);\r\n const multiRowCopy = useRef<any>(null);\r\n\r\n const handleClick = useCallback(() => {\r\n setIsShowMore(!isShowMore);\r\n // onChange?.(!isShowMore);\r\n }, [isShowMore, onChange]);\r\n\r\n const renderText = useMemo(() => {\r\n return !isShowMore && text.length > maxStr ? limitTextLastWholeWord(text, maxStr) + '...' : text;\r\n }, [text, maxStr, isShowMore]);\r\n\r\n useEffect(() => {\r\n if (multiRowCopy?.current?.offsetHeight > multiRow?.current?.offsetHeight && isPost) {\r\n setIsShow(true);\r\n } else {\r\n setIsShow(false);\r\n }\r\n multiRowCopy.current.style.display = 'none';\r\n }, [isPost]);\r\n\r\n return (\r\n <div\r\n className={className}\r\n style={{\r\n ...style,\r\n transform: 'translate3d(0px, 0px, 0px)'\r\n }}\r\n hidden={!text || text === ''}\r\n >\r\n <div\r\n ref={multiRow}\r\n style={{\r\n overflow: 'hidden',\r\n WebkitLineClamp: !isPost || isShowMore ? '' : lineClamp,\r\n textOverflow: 'ellipsis',\r\n display: '-webkit-box',\r\n WebkitBoxOrient: 'vertical',\r\n wordBreak: 'break-word'\r\n }}\r\n dangerouslySetInnerHTML={{ __html: setFontForText(text?.replace(/\\n/g, '</br>'), style) }}\r\n ></div>\r\n <div\r\n ref={multiRowCopy}\r\n dangerouslySetInnerHTML={{ __html: setFontForText(text?.replace(/\\n/g, '</br>'), style) }}\r\n ></div>\r\n {text && isPost && isShow && (\r\n <span\r\n style={{ textDecoration: 'underline', cursor: 'pointer' }}\r\n onClick={onClick ?? handleClick}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(isShowMore ? unfoldText || 'show less' : foldText || 'show more', style)\r\n }}\r\n ></span>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default memo(ExpandableText);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-03-20 10:27:31\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-20 18:56:52\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageRender\\FormatImage.tsx\r\n *\r\n */\r\nimport React, {\r\n CSSProperties,\r\n ForwardedRef,\r\n forwardRef,\r\n memo,\r\n useEffect,\r\n useImperativeHandle,\r\n useRef,\r\n useState\r\n} from 'react';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\n\r\ninterface IFormatImageProps {\r\n src?: string;\r\n onLoad?: (e: any) => void;\r\n style?: CSSProperties;\r\n className?: any;\r\n loading?: 'eager' | 'lazy';\r\n}\r\ninterface IFormatImageRefProps {\r\n setSrc: (v: string) => void;\r\n}\r\nconst FormatImage = forwardRef((props: IFormatImageProps, ref: ForwardedRef<IFormatImageRefProps>) => {\r\n const { src, onLoad, style, className, loading } = props;\r\n const [imgSrc, setImgSrc] = useState<any>();\r\n useImperativeHandle(ref, () => ({\r\n setSrc: (v: string) => {\r\n setImgSrc(v);\r\n }\r\n }));\r\n\r\n useEffect(() => {\r\n setImgSrc(src);\r\n }, [src]);\r\n\r\n const imgRef = useRef(null);\r\n\r\n // useEffect(() => {\r\n // let observer: any = null;\r\n // const { current } = imgRef;\r\n // if (current) {\r\n // observer = new IntersectionObserver(\r\n // (entries) => {\r\n // entries.forEach((entry) => {\r\n // if (entry.isIntersecting) {\r\n // setImgSrc(src);\r\n // observer.unobserve(current);\r\n // }\r\n // });\r\n // },\r\n // { threshold: 0.1 } // 触发阈值,可根据需要调整\r\n // );\r\n // observer.observe(current);\r\n // }\r\n // return () => {\r\n // if (observer && current) {\r\n // observer.unobserve(current);\r\n // }\r\n // };\r\n // }, [src]);\r\n\r\n return (\r\n <>\r\n {imgSrc?.includes('.avif') ? (\r\n <picture>\r\n <source type='image/avif' srcSet={imgSrc} />\r\n <source type='image/webp' srcSet={`${imgSrc}?imageMogr2/format/webp`} />\r\n <source type='image/jpeg' srcSet={`${imgSrc}?imageMogr2/format/jpg`} />\r\n <img\r\n className={className}\r\n src={imgSrc}\r\n style={style}\r\n loading={loading}\r\n onLoad={(e) => {\r\n onLoad?.(e.target);\r\n }}\r\n alt='image'\r\n />\r\n </picture>\r\n ) : (\r\n <img\r\n className={className}\r\n src={imgSrc}\r\n style={style}\r\n loading={loading}\r\n onLoad={(e) => {\r\n onLoad?.(e.target);\r\n }}\r\n alt='image'\r\n />\r\n )}\r\n </>\r\n );\r\n});\r\nexport default memo(FormatImage);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-07-04 18:15:28\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\popup\\CommodityDetail\\index.tsx\r\n *\r\n */\r\nimport { css } from '@emotion/css';\r\nimport React, { CSSProperties, FC, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport { IEditorContext } from '@/core/context/EditorContext';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\nimport { RecItemType } from '@/core/components/SxpPageRender/typing';\r\nimport './index.less';\r\nimport { Autoplay, Pagination } from 'swiper/modules';\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport { useEventReport } from '@/core/hooks/useEventReport';\r\nimport Modal from '@/core/components/SxpPageRender/Modal';\r\nimport ExpandableText from '@/core/components/SxpPageRender/ExpandableText';\r\nimport FormatImage from '@/core/components/SxpPageRender/FormatImage';\r\nimport { setFontForText } from '@/core/utils/tool';\r\n\r\nexport interface ICommodityDetailProps {\r\n content?: string;\r\n style?: Record<string, any>;\r\n bgImg?: Record<string, any> | string;\r\n onClick?: () => void;\r\n schema?: IEditorContext['schema'];\r\n isDefault?: boolean;\r\n bottom_image?: string;\r\n tipText?: {\r\n foldText?: string;\r\n unfoldText?: string;\r\n };\r\n isPost?: boolean;\r\n viewTime?: any;\r\n rec?: RecItemType;\r\n swiper: {\r\n dotsAlign: 'left' | 'center';\r\n delay: number;\r\n translateY?: number;\r\n };\r\n commodityStyles?: {\r\n title: CSSProperties;\r\n collection: CSSProperties;\r\n price: CSSProperties;\r\n info: CSSProperties;\r\n };\r\n buttonStyle?: CSSProperties;\r\n index?: number;\r\n}\r\n\r\nconst CommodityDetail: FC<ICommodityDetailProps> = ({\r\n content,\r\n style,\r\n bgImg,\r\n onClick,\r\n schema,\r\n isDefault,\r\n bottom_image,\r\n tipText,\r\n isPost,\r\n viewTime,\r\n rec,\r\n swiper,\r\n commodityStyles,\r\n buttonStyle,\r\n index,\r\n ...props\r\n}) => {\r\n const { sxpParameter } = useSxpDataSource();\r\n const { popupDetailData, bffEventReport, isPreview, bffFbReport } = useSxpDataSource();\r\n const { jumpToWeb, productView } = useEventReport();\r\n const curTimeRef = useRef<any>(null);\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n const data = isPost ? rec : (popupDetailData as RecItemType);\r\n const product = isPost ? data?.product : data?.video?.bindProduct;\r\n const cta = isPost ? data?.product?.bindCta : data?.video?.bindProduct?.bindCta;\r\n const position = isPost ? index : (popupDetailData?.index as number);\r\n\r\n const handleLink = () => {\r\n if (product?.link) {\r\n jumpToWeb(data, product, cta, position);\r\n if (!isPost) {\r\n productView(data, product, cta, viewTime || curTimeRef.current, position);\r\n }\r\n window.location.href = window.getJointUtmLink(product.link);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!isPost) {\r\n bffFbReport?.({\r\n eventName: 'ProductView'\r\n });\r\n }\r\n }, [isPost, bffFbReport]);\r\n\r\n useEffect(() => {\r\n const initTime = () => {\r\n curTimeRef.current = new Date();\r\n };\r\n initTime();\r\n window.addEventListener('pageshow', initTime);\r\n return () => {\r\n window.removeEventListener('pageshow', initTime);\r\n };\r\n }, []);\r\n\r\n const priceText = useMemo(() => {\r\n if (product?.currency && product?.price) {\r\n return `${product?.currency?.split('-')[1]?.toUpperCase() ?? ''}${\r\n product?.price?.toLocaleString('zh', {\r\n minimumFractionDigits: 0\r\n }) ?? ''\r\n }`;\r\n } else {\r\n return '$7,000';\r\n }\r\n }, [product?.price, product?.currency]);\r\n\r\n const width = isPreview ? 375 : style?.width ?? window.innerWidth;\r\n\r\n const renderContent = ({ isPost }: any) => {\r\n return (\r\n <div>\r\n <div\r\n className={'pb-commondity-content-collection'}\r\n style={getStyle(commodityStyles?.collection)}\r\n hidden={!!product && (!product?.collection || product?.collection === '')}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(product?.collection ?? 'Tiffany Lock', commodityStyles?.collection)\r\n }}\r\n ></div>\r\n <div\r\n className={'pb-commondity-content-title'}\r\n style={getStyle(commodityStyles?.title)}\r\n hidden={!!product && !product?.title}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(\r\n product?.title ?? 'Pendant in Yellow Gold with Diamonds, Medium',\r\n commodityStyles?.title\r\n )\r\n }}\r\n ></div>\r\n <div\r\n className={'pb-commondity-content-price'}\r\n style={getStyle(commodityStyles?.price)}\r\n hidden={!!product && !product?.price}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(priceText, commodityStyles?.price)\r\n }}\r\n ></div>\r\n <div hidden={!!product && (!product?.info || product?.info === '')}>\r\n <ExpandableText\r\n foldText={tipText?.foldText}\r\n unfoldText={tipText?.unfoldText}\r\n onClick={() => setShowModal(true)}\r\n isPost={isPost}\r\n text={\r\n product?.info ??\r\n `The design inspiration of Tiffany Lock series comes from the power of connection and inclusiveness, and the\r\n bold and avant-garde visual design interprets the emotional bond connecting my heart. The Tiffany Lock\r\n collection is unisex and is inspired by the padlock pattern found in the Tiffany Antique Collection. This\r\n necklace features a stylish and eye-catching oval clasp chain decorated with a lock pattern. Crafted from\r\n 18-karat gold, this necklace is embellished with hand-set diamonds.`\r\n }\r\n maxStr={79}\r\n className={'pb-commondity-content-info'}\r\n style={commodityStyles?.info}\r\n />\r\n </div>\r\n </div>\r\n );\r\n };\r\n\r\n const renderBtn = () => {\r\n return (\r\n <>\r\n {(isDefault || product?.link) && (\r\n <button\r\n aria-label={cta?.enTitle ?? 'Purchase on Website'}\r\n onClick={handleLink}\r\n className='pb-commondity-btn'\r\n style={buttonStyle}\r\n >\r\n <span\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(cta?.enTitle ?? 'Purchase on Website', buttonStyle)\r\n }}\r\n ></span>\r\n </button>\r\n )}\r\n </>\r\n );\r\n };\r\n\r\n const getStyle = useCallback((style?: CSSProperties) => {\r\n if (style?.lineClamp) {\r\n return {\r\n ...style,\r\n overflow: 'hidden',\r\n WebkitLineClamp: style?.lineClamp,\r\n textOverflow: 'ellipsis',\r\n display: '-webkit-box',\r\n webkitBoxOrient: 'vertical'\r\n };\r\n }\r\n return style;\r\n }, []);\r\n\r\n return (\r\n <div className={'pb-commondity'}>\r\n <div\r\n className={css({\r\n ...style\r\n })}\r\n {...props}\r\n >\r\n {product && product?.homePage?.length > 0 && (\r\n <Swiper\r\n height={width}\r\n modules={[Pagination, Autoplay]}\r\n pagination={{\r\n clickable: true,\r\n bulletActiveClass: 'swipe-item-active-bullet',\r\n clickableClass:\r\n swiper?.dotsAlign === 'left'\r\n ? 'commondityDetail-swiper-clickable-left'\r\n : 'commondityDetail-swiper-clickable-center'\r\n }}\r\n loop\r\n autoplay={{\r\n delay: swiper?.delay * 1000\r\n }}\r\n >\r\n {product?.homePage?.map((src) => {\r\n return (\r\n <SwiperSlide key={src}>\r\n <div\r\n style={{\r\n overflow: 'hidden',\r\n width,\r\n height: width\r\n }}\r\n >\r\n <FormatImage\r\n style={{\r\n height: '100%',\r\n width: '100%',\r\n objectFit: 'cover',\r\n display: 'block',\r\n objectPosition: `50% ${swiper?.translateY ? swiper?.translateY + 50 : 50}%`\r\n }}\r\n src={src}\r\n />\r\n </div>\r\n </SwiperSlide>\r\n );\r\n })}\r\n </Swiper>\r\n )}\r\n {!product?.homePage?.length && (\r\n <div\r\n className={css({\r\n position: 'relative',\r\n height: 0,\r\n width: '100%',\r\n paddingBottom: '100%',\r\n overflow: 'hidden'\r\n })}\r\n >\r\n <img\r\n className={css({\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n objectFit: 'cover',\r\n width: '100%'\r\n })}\r\n src={sxpParameter?.bottom_image ?? bottom_image}\r\n alt='pdp image'\r\n />\r\n </div>\r\n )}\r\n <div className={'pb-commondity-content'}>{renderContent({ isPost })}</div>\r\n </div>\r\n {renderBtn()}\r\n <Modal visible={showModal} onClose={() => setShowModal(false)}>\r\n <div style={{ paddingBottom: '80px' }}>{renderContent({ isPost: false })}</div>\r\n {renderBtn()}\r\n </Modal>\r\n </div>\r\n );\r\n};\r\n\r\nexport default memo(CommodityDetail);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-04-02 18:13:10\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\popup\\CommodityDetail\\material.tsx\r\n *\r\n */\r\nimport settingRender from './settingRender';\r\nimport CommodityDetailComponent from '.';\r\nimport { createMaterial } from '@/core/create';\r\n\r\nconst CommodityDetail = createMaterial(CommodityDetailComponent, {\r\n displayName: '商品详情',\r\n icon: '',\r\n category: 'popup',\r\n type: 'CommodityDetail',\r\n related: {\r\n settingRender\r\n },\r\n defaulSetting: {\r\n props: {\r\n swiper: {\r\n dotsAlign: 'center',\r\n delay: 3\r\n },\r\n commodityStyles: {\r\n price: {\r\n color: '#000',\r\n fontSize: 18,\r\n marginTop: 24,\r\n marginBottom: 10\r\n },\r\n title: {\r\n color: '#000',\r\n fontSize: 23\r\n },\r\n collection: {\r\n fontSize: 12,\r\n color: '#000',\r\n marginBottom: 14\r\n },\r\n info: {\r\n color: 'gray',\r\n fontSize: 12\r\n }\r\n },\r\n buttonStyle: {\r\n backgroundColor: '#000',\r\n fontSize: 12,\r\n height: 45,\r\n fontWeight: 'bold',\r\n textAlign: 'center',\r\n color: 'rgba(255, 255, 255, 0.9)'\r\n }\r\n },\r\n style: {}\r\n },\r\n w: 100,\r\n h: 40,\r\n sort: 1\r\n});\r\n\r\nexport { CommodityDetail };\r\n","export default [\r\n {\r\n title: '点击事件',\r\n child: [\r\n {\r\n type: 'link',\r\n name: 'onClick'\r\n }\r\n ]\r\n }\r\n];\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-10-27 14:06:35\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-07-02 09:58:06\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\popup\\Prompt\\settingRender.tsx\r\n *\r\n */\r\n\r\nexport default [\r\n {\r\n title: '',\r\n child: [\r\n {\r\n type: 'Media',\r\n label: '图标',\r\n name: ['props', 'icon'],\r\n mediaType: 'Image'\r\n },\r\n {\r\n type: 'TextArea',\r\n label: '内容',\r\n name: ['props', 'content']\r\n },\r\n {\r\n type: 'Group',\r\n label: '内容字体',\r\n child: [\r\n {\r\n type: 'Select',\r\n name: ['props', 'contentStyle', 'fontFamily-cn'],\r\n bottomText: '中文字体'\r\n },\r\n {\r\n type: 'Select',\r\n name: ['props', 'contentStyle', 'fontFamily-en'],\r\n bottomText: '英文/其他字体'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Group',\r\n label: '',\r\n child: [\r\n {\r\n type: 'Color',\r\n name: ['props', 'contentStyle', 'color'],\r\n initialValue: '#000'\r\n },\r\n {\r\n type: 'Number',\r\n name: ['props', 'contentStyle', 'fontSize'],\r\n addonAfter: 'px',\r\n initialValue: 14\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Group',\r\n label: '提交按钮字体',\r\n child: [\r\n {\r\n type: 'Select',\r\n name: ['props', 'submitButtonStyle', 'fontFamily-cn'],\r\n bottomText: '中文字体'\r\n },\r\n {\r\n type: 'Select',\r\n name: ['props', 'submitButtonStyle', 'fontFamily-en'],\r\n bottomText: '英文/其他字体'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Group',\r\n label: '',\r\n child: [\r\n {\r\n type: 'Color',\r\n name: ['props', 'submitButtonStyle', 'color'],\r\n initialValue: '#fff'\r\n },\r\n {\r\n type: 'Number',\r\n name: ['props', 'submitButtonStyle', 'fontSize'],\r\n addonAfter: 'px',\r\n initialValue: 12\r\n }\r\n ]\r\n },\r\n {\r\n type: 'TextStyle',\r\n name: ['props', 'submitButtonStyle']\r\n },\r\n {\r\n type: 'TextAlign',\r\n name: ['props', 'submitButtonStyle']\r\n },\r\n {\r\n label: '提交按钮颜色',\r\n type: 'Color',\r\n name: ['props', 'submitButtonStyle', 'backgroundColor'],\r\n initialValue: '#000'\r\n }\r\n ]\r\n }\r\n];\r\n","var img = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAABHBJREFUeF7lmzuoFkcYhp/TihdIl0JBESubSCCCih4NXgJeUphCjyKmEEVtLRSjooWtShILRRJtgpCoeLzgLUZBQbTwAoooqLWoCWIXeZdd3bP++8/st7OX33+ac2Dn8r3Pvzv7zcy7A9RT5gDjgQnx3/T/iuA58Cz+m/7/StXhDVQ0gATOBhYCi4GxxnHeAKeAs8DfMSBjV52bhQTwBbApFj4YNMqPnV0GrgL7gJchxggFQMI3A5NDBOXRx+MYwn6Pul2rlAWwMv7VvykbiLH9TUAQjhnbYwUwA9gKLLIOHLjdGWAPcL1ovxYAG4G9wKiig1Vc/y2wBThQZJyiAA4Ba4sM0EDdw8CPvuMWAXAb+Mq344br3QGm+cTgC+B/n85aWMepz1kBOBknMy3U5wxJSdSSbrVcAPR+V9LRy0X5SW6+0A3AMuDPXlaeiv174K9OWvIAfA1cAMZ9JgBeA98Ct7J68gAMtyjJCfUbKFn6zgeA0tujoUZtWT9D2bS50x1wA2gqt6+al9YO09ODZAF8DrO+C+KIt0IagNbzIlTXktYVaKfr9+PNkSklchMtpXWHR/sJaQA7gJ8sUdXURuJ/AB7E4/0BLDeOvROQ3hEA/gFmGjusullWfDKeFcI1YFYawETgSdUqjP3niS8LYRLwNHkE1gM/GwOssplLfBkIG4BfEgBKE5dWqcTQt694da1td22YFikngGUJgH+B0UVaV1y3iHiFYpnA/wPGCICFXpX66xCfxD8oAKuA3wIpegToHW0tdYpXjKsFQLu7u60Rx+3exSCPG29HdVO3eI25TQB+BdaVAKCMSneRVpBJKfpMNiFesR4UgNOdlomeQF4AWj3quCpbfCE0JV7xDgvAXWCqp+B0tYfACkC7xXnFBaFJ8Yr5ngC8Mu78KHnS4+MqeRCaFq+4X5cB8MnmQoE7oQ3iPwCwPgJWEdZ2rjvNcj16BMpMghYxWsElS1pX0K45xNXedT2aBMu+BotCcAVlfZX69puuF70GQyRCoSFU/csnEKJEKFQqHApCXeIFIUqFQy6GykKoU7wARIuh6HVQwsmVffasEOoWLwfauASADkKU0oYqRSHULV465SsaSgAoqfk9lPq4H18ITYhXiJr7jiYAZGyUUzN0cUFoSrx0yrX6PH0ucEmTQmgCXdb5TYrX/uFcaa3rYCR7JzQpXro1vg5HRgCo+mhMEOT3/RKQYaGpkns0poD6+nA0+UX6+nhcEPreICEIfW2REQCZoc+30A9snTjlI57fyUzdzSYnU3RpP7414sDtNLl3NFG7jJK9YI52sepqnnYBUOe9ZJLOwnCapn0AqNO+NksnVHvJNO00SSeifO+ApH4vZIpdzdHZZ6QoALWXifqI8TTJNWGVua5drTV5pui8ji0A1JfM1Lta5CeWD3h7JzO0i6gVQNJv3342lwXbtx9OpkFoP0ET0LwKDZcyOF5s46ez2TtCxkt9OL0gBmJ1oMnJJcHnYo/wU9czXfR62TnAd7zWfj7/HrAAAKDnDZ8VAAAAAElFTkSuQmCC\";\n export default img;","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-03-20 14:56:16\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-03-20 14:56:22\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\utils\\materials.ts\r\n *\r\n */\r\n/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-08-03 16:37:37\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2023-08-04 11:02:50\r\n * @FilePath: \\page-builder-admin\\src\\libs\\core\\utils\\materials.ts\r\n *\r\n */\r\nexport const getMediaValueByMode = (obj?: Record<string, any>) => {\r\n if (!obj || typeof obj !== 'object') {\r\n return null;\r\n }\r\n\r\n const { mode, link, file, src } = obj;\r\n\r\n switch (mode) {\r\n case 2:\r\n return link || null;\r\n case 3:\r\n return src || null;\r\n default:\r\n return file && file.length > 0 ? file[0]?.url : null;\r\n }\r\n};\r\n\r\nexport const getBgStyle = (imgSrc: string) => {\r\n return imgSrc\r\n ? {\r\n backgroundImage: `url(${imgSrc})`,\r\n backgroundRepeat: 'no-repeat',\r\n backgroundSize: 'cover'\r\n }\r\n : '';\r\n};\r\n\r\nexport const getBgStyleByImg = (data: any) => {\r\n const curPageProps = data?.props ?? null;\r\n const bgImg = curPageProps?.bgImg;\r\n const imgSrc = typeof bgImg === 'string' ? bgImg : getMediaValueByMode(bgImg);\r\n return getBgStyle(imgSrc);\r\n};\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-07-02 09:55:44\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\popup\\Prompt\\index.tsx\r\n *\r\n */\r\nimport { css } from '@emotion/css';\r\nimport React, { CSSProperties, FC, memo } from 'react';\r\nimport success from './success.png';\r\nimport { getMediaValueByMode } from '@/core/utils/materials';\r\nimport './index.less';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\nimport { useEventReport } from '@/core/hooks/useEventReport';\r\nimport { RecItemType } from '@/core/components/SxpPageRender/typing';\r\nimport { setFontForText } from '@/core/utils/tool';\r\n\r\nexport interface IPromptProps {\r\n content?: string;\r\n btnText?: string;\r\n style?: Record<string, any>;\r\n icon?: Record<string, any> | string;\r\n isExternalLink?: boolean;\r\n isPopup?: boolean;\r\n onClose?: () => void;\r\n onClick?: () => void;\r\n submitButtonStyle?: CSSProperties;\r\n contentStyle?: CSSProperties;\r\n}\r\n\r\nconst Prompt: FC<IPromptProps> = ({\r\n content,\r\n btnText,\r\n style,\r\n icon,\r\n isPopup,\r\n isExternalLink,\r\n onClose,\r\n onClick,\r\n submitButtonStyle,\r\n contentStyle,\r\n ...props\r\n}) => {\r\n const { popupDetailData } = useSxpDataSource();\r\n const { jumpToWeb } = useEventReport();\r\n const iconSrc = typeof icon === 'string' ? icon : getMediaValueByMode(icon);\r\n\r\n const handleOk = () => {\r\n if (isExternalLink) {\r\n const data = popupDetailData as RecItemType;\r\n const product = data?.video?.bindProduct;\r\n const cta = data?.video?.bindProduct?.bindCta;\r\n const position = popupDetailData?.index as number;\r\n jumpToWeb(data, product, cta, position);\r\n }\r\n if (!isPopup) {\r\n onClose?.();\r\n }\r\n onClick?.();\r\n };\r\n\r\n return (\r\n <div\r\n className={`pb-prompt ${css({\r\n ...style\r\n })}`}\r\n {...props}\r\n >\r\n <div className={'pb-prompt-icon'}>\r\n <img width='100%' src={iconSrc ?? success} alt='success image' />\r\n </div>\r\n <div\r\n className={'pb-prompt-content'}\r\n style={contentStyle}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(content, contentStyle)\r\n }}\r\n ></div>\r\n <button\r\n aria-label={btnText}\r\n className={'pb-prompt-btn'}\r\n style={submitButtonStyle}\r\n onClick={handleOk}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(btnText, submitButtonStyle)\r\n }}\r\n ></button>\r\n </div>\r\n );\r\n};\r\n\r\nexport default memo(Prompt);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-03-20 15:53:10\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\popup\\Prompt\\material.tsx\r\n *\r\n */\r\nimport React from 'react';\r\nimport interactionRender from './interactionRender';\r\nimport settingRender from './settingRender';\r\nimport success from './success.png';\r\nimport PromptComponent from '.';\r\nimport { createMaterial } from '@/core/create';\r\n\r\nconst Prompt = createMaterial(PromptComponent, {\r\n displayName: '提交成功',\r\n icon: '',\r\n category: 'popup',\r\n type: 'Prompt',\r\n related: {\r\n settingRender,\r\n bindableProps: [],\r\n interactionRender\r\n },\r\n defaulSetting: {\r\n props: {\r\n icon: success,\r\n content: 'You have successfully completed the appointment!',\r\n btnText: 'OK'\r\n },\r\n style: {}\r\n },\r\n w: 100,\r\n h: 40,\r\n sort: 3\r\n});\r\n\r\nexport { Prompt };\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-03-26 16:50:25\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-27 09:54:23\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\popup\\CommodityDetailDiroNew\\settingRender.tsx\r\n *\r\n */\r\nexport default [\r\n {\r\n title: '商品图片',\r\n child: [\r\n {\r\n type: 'Radius',\r\n label: '轮播指示器',\r\n options: [\r\n {\r\n label: '居左',\r\n value: 'left'\r\n },\r\n {\r\n label: '居中',\r\n value: 'center'\r\n }\r\n ],\r\n name: ['props', 'swiper', 'dotsAlign']\r\n },\r\n {\r\n type: 'Number',\r\n name: ['props', 'swiper', 'delay'],\r\n addonAfter: 's'\r\n },\r\n {\r\n type: 'Group',\r\n child: [\r\n {\r\n label: '居中垂直偏移',\r\n type: 'Number',\r\n name: ['props', 'swiper', 'translateY'],\r\n min: -1000,\r\n addonAfter: '%',\r\n initialValue: 0\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n title: '商品文本',\r\n child: [\r\n {\r\n name: ['props', 'commodityStyles'],\r\n type: 'SelectLinkage',\r\n child: [\r\n {\r\n label: '字段',\r\n type: 'Select',\r\n options: [\r\n {\r\n label: '商品名称',\r\n value: 'title'\r\n },\r\n {\r\n label: '系列名称',\r\n value: 'collection'\r\n },\r\n {\r\n label: '价格',\r\n value: 'price'\r\n },\r\n {\r\n label: '税费说明',\r\n value: 'taxInfo'\r\n },\r\n {\r\n label: '商品描述',\r\n value: 'info'\r\n }\r\n ],\r\n name: ['props', 'commodityStyles', 'field'],\r\n initialValue: 'title'\r\n },\r\n {\r\n type: 'Group',\r\n label: '标题字体',\r\n child: [\r\n {\r\n type: 'Select',\r\n name: ['fontFamily-cn'],\r\n bottomText: '中文字体'\r\n },\r\n {\r\n type: 'Select',\r\n name: ['fontFamily-en'],\r\n bottomText: '英文/其他字体'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Group',\r\n label: '',\r\n child: [\r\n {\r\n type: 'Color',\r\n name: ['color']\r\n },\r\n\r\n {\r\n type: 'Number',\r\n addonAfter: 'px',\r\n name: ['fontSize']\r\n }\r\n ]\r\n },\r\n {\r\n label: '标题样式',\r\n type: 'TextStyle'\r\n },\r\n {\r\n label: '标题对齐',\r\n type: 'TextAlign'\r\n },\r\n {\r\n label: '默认行数',\r\n type: 'Number',\r\n name: ['lineClamp']\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n title: '购买按钮样式',\r\n child: [\r\n {\r\n type: 'Color',\r\n label: '背景色',\r\n name: ['props', 'buttonStyle', 'backgroundColor'],\r\n initialValue: '#000'\r\n },\r\n {\r\n type: 'Group',\r\n label: '尺寸',\r\n child: [\r\n {\r\n type: 'Number',\r\n name: ['props', 'buttonStyle', 'height'],\r\n addonAfter: 'H'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Group',\r\n label: '圆角',\r\n child: [\r\n {\r\n type: 'Slider',\r\n name: ['props', 'buttonStyle', 'borderRadius'],\r\n max: 100\r\n },\r\n {\r\n type: 'Number',\r\n name: ['props', 'buttonStyle', 'borderRadius'],\r\n addonAfter: 'px',\r\n max: 100\r\n }\r\n ]\r\n },\r\n {\r\n type: 'TextMargin',\r\n name: ['props', 'buttonStyle']\r\n },\r\n {\r\n type: 'Group',\r\n label: '字体',\r\n child: [\r\n {\r\n type: 'Select',\r\n name: ['props', 'buttonStyle', 'fontFamily-cn'],\r\n bottomText: '中文字体'\r\n },\r\n {\r\n type: 'Select',\r\n name: ['props', 'buttonStyle', 'fontFamily-en'],\r\n bottomText: '英文/其他字体'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Group',\r\n label: '',\r\n child: [\r\n {\r\n type: 'Color',\r\n name: ['props', 'buttonStyle', 'color'],\r\n initialValue: '#fff'\r\n },\r\n {\r\n type: 'Number',\r\n name: ['props', 'buttonStyle', 'fontSize'],\r\n addonAfter: 'px'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'TextStyle',\r\n name: ['props', 'buttonStyle']\r\n },\r\n {\r\n type: 'TextAlign',\r\n name: ['props', 'buttonStyle']\r\n }\r\n ]\r\n }\r\n];\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-03-20 10:27:31\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-07-04 18:15:50\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\popup\\CommodityDetailDiroNew\\index.tsx\r\n *\r\n */\r\n/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-03-28 15:30:03\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\popup\\CommodityDetailDiroNew\\index.tsx\r\n *\r\n */\r\nimport { css } from '@emotion/css';\r\nimport React, { CSSProperties, FC, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport { IEditorContext } from '@/core/context/EditorContext';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\nimport { RecItemType } from '@/core/components/SxpPageRender/typing';\r\nimport './index.less';\r\nimport { Autoplay, Pagination } from 'swiper/modules';\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport Modal from '@/core/components/SxpPageRender/Modal';\r\nimport ExpandableText from '@/core/components/SxpPageRender/ExpandableText';\r\nimport { useEventReport } from '@/core/hooks/useEventReport';\r\nimport FormatImage from '@/core/components/SxpPageRender/FormatImage';\r\nimport { setFontForText } from '@/core/utils/tool';\r\n\r\nexport interface ICommodityDetailDiroNewProps {\r\n content?: string;\r\n style?: Record<string, any>;\r\n bgImg?: Record<string, any> | string;\r\n onClick?: () => void;\r\n schema?: IEditorContext['schema'];\r\n isDefault?: boolean;\r\n rec?: RecItemType;\r\n viewTime?: any;\r\n isPost?: boolean;\r\n bottom_image?: string;\r\n tipText?: {\r\n foldText?: string;\r\n unfoldText?: string;\r\n };\r\n swiper: {\r\n dotsAlign: 'left' | 'center';\r\n delay: number;\r\n translateY?: number;\r\n };\r\n commodityStyles?: {\r\n title: CSSProperties;\r\n collection: CSSProperties;\r\n price: CSSProperties;\r\n taxInfo: CSSProperties;\r\n info: CSSProperties;\r\n };\r\n buttonStyle?: CSSProperties;\r\n index?: number;\r\n}\r\n\r\nconst CommodityDetailDiroNew: FC<ICommodityDetailDiroNewProps> = ({\r\n style,\r\n isDefault,\r\n rec,\r\n viewTime,\r\n isPost,\r\n bottom_image,\r\n tipText,\r\n swiper,\r\n commodityStyles,\r\n buttonStyle,\r\n index,\r\n ...props\r\n}) => {\r\n const [spread, setSpread] = useState(true);\r\n const { sxpParameter } = useSxpDataSource();\r\n const { popupDetailData, bffEventReport, isPreview, swiperRef, bffFbReport } = useSxpDataSource();\r\n const { jumpToWeb, productView } = useEventReport();\r\n const scrollRef = useRef<any>(null);\r\n const touchRef = useRef<any>(null);\r\n const touchMoveRef = useRef<any>(null);\r\n const [stopSlide, setStopSlide] = useState(false);\r\n const [isBottom, setIsBottom] = useState(false);\r\n const [isTop, setIsTop] = useState(true);\r\n const [showModal, setShowModal] = useState(false);\r\n const curTimeRef = useRef<any>(null);\r\n const data = isPost ? rec : (popupDetailData as RecItemType);\r\n const product = isPost ? data?.product : data?.video?.bindProduct;\r\n const cta = isPost ? data?.product?.bindCta : data?.video?.bindProduct?.bindCta;\r\n const position = isPost ? index : (popupDetailData?.index as number);\r\n\r\n const handleLink = () => {\r\n if (product?.link) {\r\n jumpToWeb(data, product, cta, position);\r\n if (!isPost) {\r\n productView(data, product, cta, viewTime || curTimeRef.current, position);\r\n }\r\n window.location.href = window.getJointUtmLink(product.link);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (!isPost) {\r\n bffFbReport?.({\r\n eventName: 'ProductView'\r\n });\r\n }\r\n }, [isPost, bffFbReport]);\r\n\r\n useEffect(() => {\r\n const initTime = () => {\r\n curTimeRef.current = new Date();\r\n };\r\n initTime();\r\n window.addEventListener('pageshow', initTime);\r\n return () => {\r\n window.removeEventListener('pageshow', initTime);\r\n };\r\n }, []);\r\n\r\n const priceText = useMemo(() => {\r\n if (product?.currency && product?.price) {\r\n return `${product?.currency?.split('-')[1]?.toUpperCase() ?? ''}${\r\n product?.price?.toLocaleString('zh', {\r\n minimumFractionDigits: 0\r\n }) ?? ''\r\n }`;\r\n } else {\r\n return '£102,300.00';\r\n }\r\n }, [product?.price, product?.currency]);\r\n\r\n const width = isPreview ? 375 : style?.width ?? window.innerWidth;\r\n\r\n const handleClickCollapse = () => {\r\n setSpread(!spread);\r\n };\r\n\r\n // useEffect(() => {\r\n // console.log(scrollRef?.current?.scrollHeight, window.innerHeight);\r\n // if (scrollRef?.current && scrollRef?.current?.scrollHeight > window.innerHeight) {\r\n // setStopSlide(true);\r\n // }\r\n // }, [scrollRef]);\r\n\r\n // useEffect(() => {\r\n // const handleScroll = () => {\r\n // if (scrollRef?.current) {\r\n // const { scrollTop, scrollHeight, clientHeight } = scrollRef.current;\r\n // const isBottom = scrollTop + clientHeight === scrollHeight;\r\n // if (isBottom) {\r\n // setIsBottom(true);\r\n // } else {\r\n // setIsBottom(false);\r\n // }\r\n // if (scrollTop === 0) {\r\n // setIsTop(true);\r\n // } else {\r\n // setIsTop(false);\r\n // }\r\n // }\r\n // };\r\n\r\n // if (scrollRef.current) {\r\n // scrollRef.current.addEventListener('scroll', handleScroll);\r\n // }\r\n\r\n // return () => {\r\n // if (scrollRef.current) {\r\n // scrollRef.current.removeEventListener('scroll', handleScroll);\r\n // }\r\n // };\r\n // }, [scrollRef]);\r\n\r\n const handleTouchStart = (event: any) => {\r\n event.stopPropagation();\r\n touchRef.current = event.touches[0].clientY;\r\n touchMoveRef.current = true;\r\n };\r\n\r\n const handleTouchMove = (event: any) => {\r\n if (touchMoveRef.current) {\r\n touchMoveRef.current = false;\r\n const currentY = event.touches[0].clientY;\r\n const diff = touchRef.current - currentY;\r\n if (diff > 0 && (isBottom || !stopSlide)) {\r\n swiperRef?.current?.swiper?.slideNext();\r\n } else if (diff < 0 && (isTop || !stopSlide)) {\r\n swiperRef?.current?.swiper?.slidePrev();\r\n }\r\n }\r\n };\r\n\r\n const productInfoText = ({ isPost }: any) => {\r\n return (\r\n <div hidden={!!product && (!product?.info || product?.info === '')}>\r\n <ExpandableText\r\n isPost={isPost}\r\n onClick={() => setShowModal(true)}\r\n className='pb-commondityDiroNew-info'\r\n style={commodityStyles?.info}\r\n foldText={tipText?.foldText}\r\n unfoldText={tipText?.unfoldText}\r\n text={\r\n product?.info ||\r\n `Unveiled at the Spring-Summer 2023 fashion show, the Dior Toujours bag is distinguished by a casual and practical design. Crafted in black calfskin with Macrocannage topstitching, it showcases a spacious interior compartment with a matching pouch to organize essentials. Its leather strap closure keeps items secure while the D of the CD Lock closure twists to adjust the sides and enhance the bag's silhouette. The leather handles can be adjusted using the small notches in order to be able to carry the large bag by hand or wear it over the shoulder. CD Lock and strap closures D.I.O.R. charms Removable interior pouch Adjustable leather handles Dust bag included\r\nMade in Italy`\r\n }\r\n />\r\n </div>\r\n );\r\n };\r\n\r\n const getStyle = useCallback((style?: CSSProperties) => {\r\n if (style?.lineClamp) {\r\n return {\r\n ...style,\r\n overflow: 'hidden',\r\n WebkitLineClamp: style?.lineClamp,\r\n textOverflow: 'ellipsis',\r\n display: '-webkit-box',\r\n webkitBoxOrient: 'vertical'\r\n };\r\n }\r\n return style;\r\n }, []);\r\n\r\n return (\r\n <div className={'pb-commondityDiroNew'}>\r\n <div\r\n ref={scrollRef}\r\n className={css({\r\n ...style\r\n })}\r\n {...props}\r\n // onTouchStart={handleTouchStart}\r\n // onTouchMove={(e: any) => {\r\n // e.stopPropagation();\r\n // handleTouchMove(e);\r\n // }}\r\n >\r\n {product && product?.homePage?.length > 0 && (\r\n <Swiper\r\n height={width}\r\n modules={[Pagination, Autoplay]}\r\n pagination={{\r\n clickable: true,\r\n bulletActiveClass: 'commondityDiroNew-swipe-item-active-bullet',\r\n clickableClass:\r\n swiper?.dotsAlign === 'left'\r\n ? 'commondityDiroNew-swiper-clickable-left'\r\n : 'commondityDiroNew-swiper-clickable-center'\r\n }}\r\n loop\r\n autoplay={{\r\n delay: swiper?.delay * 1000\r\n }}\r\n >\r\n {product?.homePage?.map((src) => {\r\n return (\r\n <SwiperSlide key={src}>\r\n <div\r\n style={{\r\n overflow: 'hidden',\r\n width,\r\n height: width\r\n }}\r\n >\r\n <FormatImage\r\n style={{\r\n height: '100%',\r\n width: '100%',\r\n objectFit: 'cover',\r\n display: 'block',\r\n objectPosition: `50% ${swiper?.translateY ? swiper?.translateY + 50 : 50}%`\r\n }}\r\n src={src}\r\n />\r\n </div>\r\n </SwiperSlide>\r\n );\r\n })}\r\n </Swiper>\r\n )}\r\n {!product?.homePage?.length && (\r\n <div\r\n className={css({\r\n position: 'relative',\r\n height: 0,\r\n width: '100%',\r\n paddingBottom: '100%',\r\n overflow: 'hidden'\r\n })}\r\n >\r\n <img\r\n className={css({\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n objectFit: 'cover',\r\n width: '100%'\r\n })}\r\n src={sxpParameter?.bottom_image ?? bottom_image}\r\n alt='pdp image'\r\n />\r\n </div>\r\n )}\r\n\r\n <div className={'pb-commondityDiroNew-content'}>\r\n <div className={'pb-commondityDiroNew-content-top'}>\r\n <div className={'pb-commondityDiroNew-content-top-left'}>\r\n <div\r\n className={'pb-commondityDiroNew-content-top-left-title'}\r\n style={getStyle(commodityStyles?.title)}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(product?.title ?? 'Large Dior Toujours BagLarge', commodityStyles?.title)\r\n }}\r\n ></div>\r\n <div\r\n className={'pb-commondityDiroNew-content-collection'}\r\n hidden={!!product && (!product?.collection || product?.collection === '')}\r\n style={getStyle(commodityStyles?.collection)}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(\r\n product?.collection || 'Black Macrocannage CalfskinLarge',\r\n commodityStyles?.collection\r\n )\r\n }}\r\n ></div>\r\n </div>\r\n <div className={'pb-commondityDiroNew-content-top-right'}>\r\n <div\r\n className={'pb-commondityDiroNew-content-top-right-price'}\r\n hidden={!!product && !product?.price}\r\n style={getStyle(commodityStyles?.price)}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(priceText, commodityStyles?.price)\r\n }}\r\n ></div>\r\n <div\r\n className={'pb-commondityDiroNew-content-top-right-price'}\r\n hidden={!!product && !product?.taxInfo}\r\n style={getStyle(commodityStyles?.taxInfo)}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(product?.taxInfo ?? '税费', commodityStyles?.taxInfo)\r\n }}\r\n ></div>\r\n </div>\r\n </div>\r\n\r\n {(!product || product?.link) && (\r\n <button\r\n aria-label={cta?.enTitle ?? 'Shop now'}\r\n onClick={handleLink}\r\n className='pb-commondityDiroNew-btn'\r\n style={buttonStyle}\r\n >\r\n <span\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(cta?.enTitle ?? 'Shop now', buttonStyle)\r\n }}\r\n ></span>\r\n </button>\r\n )}\r\n {productInfoText({ isPost })}\r\n </div>\r\n </div>\r\n <Modal visible={showModal} onClose={() => setShowModal(false)}>\r\n {productInfoText({ isPost: false })}\r\n </Modal>\r\n </div>\r\n );\r\n};\r\n\r\nexport default memo(CommodityDetailDiroNew);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-03-20 10:27:31\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-04-09 16:25:44\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\popup\\CommodityDetailDiroNew\\material.tsx\r\n *\r\n */\r\nimport settingRender from './settingRender';\r\nimport CommodityDetailDiroNewComponent from '.';\r\nimport { createMaterial } from '@/core/create';\r\n\r\nconst CommodityDetailDiroNew = createMaterial(CommodityDetailDiroNewComponent, {\r\n displayName: '商品详情',\r\n icon: '',\r\n category: 'popup',\r\n type: 'CommodityDetailDiroNew',\r\n related: {\r\n settingRender\r\n },\r\n defaulSetting: {\r\n props: {\r\n swiper: {\r\n dotsAlign: 'left',\r\n delay: 3\r\n },\r\n commodityStyles: {\r\n price: {\r\n color: '#000',\r\n fontWeight: 'bold',\r\n fontSize: 13\r\n },\r\n title: {\r\n color: '#000',\r\n fontSize: 13\r\n },\r\n collection: {\r\n color: '#757575',\r\n fontSize: 13\r\n },\r\n info: {\r\n color: '#757575',\r\n fontSize: 13\r\n },\r\n taxInfo: {\r\n color: '#000',\r\n fontWeight: 'bold',\r\n fontSize: 13,\r\n textAlign: 'right'\r\n }\r\n },\r\n buttonStyle: {\r\n backgroundColor: '#000',\r\n fontSize: 12,\r\n height: 52,\r\n fontWeight: 'bold',\r\n textAlign: 'center',\r\n color: '#fff',\r\n borderRadius: 25,\r\n marginTop: 16,\r\n marginBottom: 16\r\n }\r\n },\r\n style: {}\r\n },\r\n w: 100,\r\n h: 40,\r\n sort: 1\r\n});\r\n\r\nexport { CommodityDetailDiroNew };\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-03-26 16:50:25\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-07-04 17:47:52\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\components\\settingRender.tsx\r\n *\r\n */\r\nexport default [\r\n {\r\n title: '主题样式',\r\n child: [\r\n {\r\n type: 'Group',\r\n label: '尺寸',\r\n child: [\r\n {\r\n type: 'Number',\r\n name: ['style', 'width'],\r\n addonAfter: 'W'\r\n },\r\n {\r\n type: 'Number',\r\n name: ['style', 'height'],\r\n addonAfter: 'H'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Group',\r\n label: '圆角',\r\n child: [\r\n {\r\n type: 'Slider',\r\n name: ['style', 'borderRadius'],\r\n max: 100\r\n },\r\n {\r\n type: 'Number',\r\n name: ['style', 'borderRadius'],\r\n addonAfter: 'px',\r\n max: 100\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Color',\r\n label: '背景色',\r\n name: ['style', 'backgroundColor']\r\n },\r\n {\r\n label: '内边距',\r\n type: 'Number',\r\n name: ['style', 'padding'],\r\n addonAfter: 'px'\r\n },\r\n {\r\n label: '与Post描述边距',\r\n type: 'Number',\r\n name: ['style', 'marginBottom'],\r\n addonAfter: 'px'\r\n }\r\n ]\r\n },\r\n {\r\n title: '商品图片',\r\n child: [\r\n {\r\n type: 'Group',\r\n label: '尺寸',\r\n child: [\r\n {\r\n type: 'Number',\r\n name: ['props', 'ctaTempStyles', 'img', 'width'],\r\n addonAfter: 'W'\r\n },\r\n {\r\n type: 'Number',\r\n name: ['props', 'ctaTempStyles', 'img', 'height'],\r\n addonAfter: 'H'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Group',\r\n label: '圆角',\r\n child: [\r\n {\r\n type: 'Slider',\r\n name: ['props', 'ctaTempStyles', 'img', 'borderRadius'],\r\n max: 100\r\n },\r\n {\r\n type: 'Number',\r\n name: ['props', 'ctaTempStyles', 'img', 'borderRadius'],\r\n addonAfter: 'px',\r\n max: 100\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Number',\r\n label: '与右侧边距',\r\n addonAfter: 'px',\r\n name: ['props', 'ctaTempStyles', 'img', 'marginRight']\r\n },\r\n {\r\n label: '居中垂直偏移',\r\n type: 'Number',\r\n name: ['props', 'translateY'],\r\n min: -1000,\r\n addonAfter: '%',\r\n initialValue: 0\r\n }\r\n ]\r\n },\r\n {\r\n title: '商品标题文本',\r\n type: 'commodityTitle',\r\n child: [\r\n {\r\n type: 'Group',\r\n label: '字体',\r\n child: [\r\n {\r\n type: 'Select',\r\n name: ['props', 'ctaTempStyles', 'title', 'fontFamily-cn'],\r\n bottomText: '中文字体'\r\n },\r\n {\r\n type: 'Select',\r\n name: ['props', 'ctaTempStyles', 'title', 'fontFamily-en'],\r\n bottomText: '英文/其他字体'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Group',\r\n label: '',\r\n child: [\r\n {\r\n type: 'Color',\r\n name: ['props', 'ctaTempStyles', 'title', 'color']\r\n },\r\n {\r\n type: 'Number',\r\n addonAfter: 'px',\r\n name: ['props', 'ctaTempStyles', 'title', 'fontSize']\r\n }\r\n ]\r\n },\r\n {\r\n label: '样式',\r\n type: 'TextStyle',\r\n name: ['props', 'ctaTempStyles', 'title']\r\n },\r\n {\r\n label: '对齐',\r\n type: 'TextAlign',\r\n name: ['props', 'ctaTempStyles', 'title']\r\n },\r\n {\r\n label: '间距',\r\n type: 'TextSpace',\r\n name: ['props', 'ctaTempStyles', 'title']\r\n }\r\n ]\r\n },\r\n {\r\n title: 'CTA标题',\r\n child: [\r\n {\r\n type: 'Group',\r\n label: '尺寸',\r\n child: [\r\n {\r\n type: 'Number',\r\n name: ['props', 'ctaTempStyles', 'ctaTitle', 'width'],\r\n addonAfter: 'W'\r\n },\r\n {\r\n type: 'Number',\r\n name: ['props', 'ctaTempStyles', 'ctaTitle', 'height'],\r\n addonAfter: 'H'\r\n }\r\n ]\r\n },\r\n\r\n {\r\n type: 'Group',\r\n label: '圆角',\r\n child: [\r\n {\r\n type: 'Slider',\r\n name: ['props', 'ctaTempStyles', 'ctaTitle', 'borderRadius'],\r\n max: 100\r\n },\r\n {\r\n type: 'Number',\r\n name: ['props', 'ctaTempStyles', 'ctaTitle', 'borderRadius'],\r\n addonAfter: 'px',\r\n max: 100\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Color',\r\n label: '背景色',\r\n name: ['props', 'ctaTempStyles', 'ctaTitle', 'backgroundColor']\r\n },\r\n {\r\n type: 'Group',\r\n label: '字体',\r\n child: [\r\n {\r\n type: 'Select',\r\n name: ['props', 'ctaTempStyles', 'ctaTitle', 'fontFamily-cn'],\r\n bottomText: '中文字体'\r\n },\r\n {\r\n type: 'Select',\r\n name: ['props', 'ctaTempStyles', 'ctaTitle', 'fontFamily-en'],\r\n bottomText: '英文/其他字体'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Group',\r\n label: '',\r\n child: [\r\n {\r\n type: 'Color',\r\n name: ['props', 'ctaTempStyles', 'ctaTitle', 'color']\r\n },\r\n {\r\n type: 'Number',\r\n addonAfter: 'px',\r\n name: ['props', 'ctaTempStyles', 'ctaTitle', 'fontSize']\r\n }\r\n ]\r\n },\r\n {\r\n label: '样式',\r\n type: 'TextStyle',\r\n name: ['props', 'ctaTempStyles', 'ctaTitle']\r\n },\r\n {\r\n label: '对齐',\r\n type: 'TextAlign',\r\n name: ['props', 'ctaTempStyles', 'ctaTitle']\r\n },\r\n {\r\n label: '间距',\r\n type: 'TextSpace',\r\n name: ['props', 'ctaTempStyles', 'ctaTitle']\r\n }\r\n ]\r\n }\r\n];\r\n","export default [\r\n {\r\n title: '点击事件',\r\n child: [\r\n {\r\n type: 'link',\r\n name: 'onClick'\r\n }\r\n ]\r\n }\r\n];\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-02-22 22:21:28\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-21 11:39:56\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\components\\EventProvider.tsx\r\n *\r\n */\r\nimport React, { CSSProperties, FC, memo, useEffect, useRef } from 'react';\r\nimport { throttle } from 'lodash';\r\nimport useOnScreen from '@/core/hooks/useOnScreen';\r\nimport { useEditor, useSxpDataSource } from '@/core/hooks';\r\nimport { RecItemType } from '@/core/components/SxpPageRender/typing';\r\nimport { useEventReport } from '@/core/hooks/useEventReport';\r\nexport interface IImgProps {\r\n rec?: RecItemType;\r\n children: any;\r\n className?: any;\r\n onClick?: any;\r\n style?: CSSProperties;\r\n isExternalLink?: boolean;\r\n index?: number;\r\n}\r\n\r\nconst EventProvider: FC<IImgProps> = ({\r\n rec,\r\n children,\r\n className,\r\n onClick,\r\n style,\r\n isExternalLink = false,\r\n index,\r\n ...props\r\n}) => {\r\n const ref = useRef(null);\r\n const { popup } = useEditor();\r\n const { setPopupDetailData, ctaEvent } = useSxpDataSource();\r\n const { jumpToWeb } = useEventReport();\r\n\r\n const handleClick = throttle(() => {\r\n const item = rec?.video?.bindProduct ?? rec?.video;\r\n ctaEvent?.(\r\n {\r\n eventSubject: 'clickCta',\r\n eventDescription: 'User clicked the CTA'\r\n },\r\n rec,\r\n item,\r\n index\r\n );\r\n setPopupDetailData?.({ ...rec, index });\r\n if (isExternalLink) {\r\n if (rec?.video?.bindProduct?.link) {\r\n const cta = rec?.video?.bindCta;\r\n const product = rec?.video?.bindProduct;\r\n jumpToWeb(rec, product, cta, index);\r\n window.location.href = window.getJointUtmLink(rec?.video?.bindProduct?.link);\r\n }\r\n } else {\r\n onClick?.();\r\n }\r\n }, popup?.duration);\r\n return (\r\n <div ref={ref} className={className} style={style} onClick={handleClick}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\nexport default memo(EventProvider);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-04-12 09:58:58\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-01-16 14:01:20\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\hooks\\useOnScreen.ts\r\n *\r\n */\r\nimport { useEffect, useState, useRef, RefObject } from 'react';\r\n\r\nexport default function useOnScreen(ref: RefObject<HTMLElement>) {\r\n const observerRef = useRef<IntersectionObserver | null>(null);\r\n const [isOnScreen, setIsOnScreen] = useState(false);\r\n\r\n useEffect(() => {\r\n observerRef.current = new IntersectionObserver(([entry]) => {\r\n setIsOnScreen(entry.isIntersecting);\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n ref?.current && observerRef?.current?.observe(ref?.current);\r\n return () => {\r\n observerRef?.current?.disconnect();\r\n };\r\n }, [ref]);\r\n\r\n return isOnScreen;\r\n}\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-01-16 14:50:13\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-07-04 18:13:23\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\components\\Img.tsx\r\n *\r\n */\r\nimport { css } from '@emotion/css';\r\nimport React, { CSSProperties, FC, memo, useEffect, useMemo, useRef } from 'react';\r\nimport useOnScreen from '@/core/hooks/useOnScreen';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\nimport { ProductInfoType, RecItemType, VideoInfoType } from '@/core/components/SxpPageRender/typing';\r\nimport FormatImage from '@/core/components/SxpPageRender/FormatImage';\r\nexport interface IImgProps {\r\n src?: string;\r\n rec?: RecItemType;\r\n item?: ProductInfoType | VideoInfoType | null;\r\n index?: number;\r\n style?: CSSProperties;\r\n translateY?: number;\r\n imgStyle?: CSSProperties;\r\n}\r\n\r\nconst Img: FC<IImgProps> = ({ src, rec, item, index, style, translateY, imgStyle }) => {\r\n const ref = useRef(null);\r\n const isOnScreen = useOnScreen(ref);\r\n const { ctaEvent } = useSxpDataSource();\r\n useEffect(() => {\r\n if (isOnScreen && src && ref?.current) {\r\n ctaEvent?.(\r\n {\r\n eventSubject: 'ctaExposure',\r\n eventDescription: 'The cta was shown to the user'\r\n },\r\n rec,\r\n item,\r\n index\r\n );\r\n }\r\n }, [isOnScreen, src, ref, rec, ctaEvent, item, index]);\r\n\r\n const imgSrc = useMemo(() => {\r\n return src?.includes('.avif') ? src : `${src}?imrquality/rquality/20`;\r\n }, [src]);\r\n\r\n return (\r\n <div\r\n className={css({\r\n overflow: 'hidden',\r\n flexShrink: 0,\r\n backgroundColor: '#f2f2f2',\r\n ...imgStyle\r\n })}\r\n >\r\n <div ref={ref} hidden={!src} className={css({ width: '100%', height: '100%' })}>\r\n <FormatImage\r\n className={css({\r\n width: '100%',\r\n objectFit: 'cover',\r\n height: '100%',\r\n display: 'block',\r\n objectPosition: `50% ${translateY ? translateY + 50 : 50}%`,\r\n ...style\r\n })}\r\n src={src}\r\n />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default memo(Img);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-03-20 10:27:32\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-27 11:07:38\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\Commodity\\index.tsx\r\n *\r\n */\r\n/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-05-21 17:06:55\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\Commodity\\index.tsx\r\n *\r\n */\r\nimport { css } from '@emotion/css';\r\nimport React, { FC, memo } from 'react';\r\nimport EventProvider from '../components/EventProvider';\r\nimport { ICtaTempStylesType } from '../components/typing';\r\nimport styles from './index.module.less';\r\nimport { RecItemType } from '@/core/components/SxpPageRender/typing';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\nimport FormatImage from '@/core/components/SxpPageRender/FormatImage';\r\nimport Img from '../components/Img';\r\nimport { setFontForText } from '@/core/utils/tool';\r\nexport interface ICommodityProps {\r\n content?: string;\r\n style?: Record<string, any>;\r\n bgImg?: Record<string, any> | string;\r\n recData?: RecItemType;\r\n bottom_image?: string;\r\n ctaTempStyles?: ICtaTempStylesType;\r\n isExternalLink?: boolean;\r\n index?: number;\r\n translateY?: number;\r\n}\r\n\r\nconst Commodity: FC<ICommodityProps> = ({\r\n content,\r\n style,\r\n bgImg,\r\n recData,\r\n bottom_image,\r\n ctaTempStyles,\r\n isExternalLink,\r\n translateY = 0,\r\n index,\r\n ...props\r\n}) => {\r\n const { sxpParameter } = useSxpDataSource();\r\n const product = recData?.video?.bindProduct;\r\n const src = product?.cover ?? product?.homePage?.[0] ?? sxpParameter?.bottom_image ?? bottom_image;\r\n\r\n return (\r\n <EventProvider\r\n isExternalLink={isExternalLink}\r\n rec={recData}\r\n className={css({ ...style })}\r\n style={{ display: 'flex' }}\r\n index={index}\r\n {...props}\r\n >\r\n <Img\r\n src={src}\r\n rec={recData}\r\n item={recData?.video?.bindProduct ?? recData?.video}\r\n index={index}\r\n translateY={translateY}\r\n imgStyle={ctaTempStyles?.img}\r\n />\r\n <div\r\n className={css({\r\n color: '#fff',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'space-between',\r\n width: '100%',\r\n overflow: 'hidden'\r\n })}\r\n >\r\n <div\r\n className={styles['tow-line-ellipsis']}\r\n style={ctaTempStyles?.title}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(product?.title ?? 'Product Name', ctaTempStyles?.title)\r\n }}\r\n ></div>\r\n <div\r\n className={css({\r\n padding: '0 7px',\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n lineHeight: ctaTempStyles?.ctaTitle?.height + 'px',\r\n ...ctaTempStyles?.ctaTitle\r\n })}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(product?.bindCta?.enTitle ?? 'Shop Now', ctaTempStyles?.ctaTitle)\r\n }}\r\n ></div>\r\n </div>\r\n </EventProvider>\r\n );\r\n};\r\n\r\nexport default memo(Commodity);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-03-29 16:39:54\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\Commodity\\material.tsx\r\n *\r\n */\r\nimport settingRender from '../components/settingRender';\r\nimport interactionRender from './interactionRender';\r\nimport CommodityComponent from '.';\r\nimport { createMaterial } from '@/core/create';\r\n\r\nconst Commodity = createMaterial(CommodityComponent, {\r\n displayName: '推荐单商品-透明底',\r\n icon: '',\r\n category: 'template',\r\n type: 'Commodity',\r\n related: {\r\n interactionRender,\r\n bindableProps: [],\r\n settingRender\r\n },\r\n defaulSetting: {\r\n props: {\r\n ctaTempStyles: {\r\n img: {\r\n borderRadius: 3,\r\n width: 60,\r\n height: 60,\r\n marginRight: 8\r\n },\r\n title: {\r\n fontSize: 12,\r\n color: '#fff',\r\n textAlign: 'left'\r\n },\r\n ctaTitle: {\r\n fontSize: 10,\r\n color: '#fff',\r\n textAlign: 'center',\r\n width: 130,\r\n height: 20,\r\n backgroundColor: 'rgba(0,0,0,.5)'\r\n }\r\n }\r\n },\r\n style: {\r\n padding: 7,\r\n width: 236,\r\n height: 74,\r\n borderRadius: 3,\r\n backgroundColor: 'rgba(0,0,0,.3)',\r\n marginBottom: 8\r\n }\r\n },\r\n w: 100,\r\n h: 40,\r\n sort: 1\r\n});\r\n\r\nexport { Commodity };\r\n","export default [\r\n {\r\n title: '点击事件',\r\n child: [\r\n {\r\n type: 'link',\r\n name: 'onClick'\r\n }\r\n ]\r\n }\r\n];\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-27 11:06:24\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\Appoint\\index.tsx\r\n *\r\n */\r\nimport { css } from '@emotion/css';\r\nimport React, { FC, memo } from 'react';\r\nimport EventProvider from '../components/EventProvider';\r\nimport { ICtaTempStylesType } from '../components/typing';\r\nimport { RecItemType } from '@/core/components/SxpPageRender/typing';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\nimport Img from '../components/Img';\r\nimport { setFontForText } from '@/core/utils/tool';\r\nexport interface IAppointProps {\r\n content?: string;\r\n style?: Record<string, any>;\r\n bgImg?: Record<string, any> | string;\r\n recData?: RecItemType;\r\n bottom_image?: string;\r\n ctaTempStyles?: ICtaTempStylesType;\r\n isExternalLink?: boolean;\r\n index?: number;\r\n}\r\n\r\nconst Appoint: FC<IAppointProps> = ({\r\n content,\r\n style,\r\n bgImg,\r\n recData,\r\n bottom_image,\r\n ctaTempStyles,\r\n isExternalLink,\r\n index,\r\n ...props\r\n}) => {\r\n const { sxpParameter } = useSxpDataSource();\r\n\r\n const cta = recData?.video?.bindCta;\r\n const src = cta?.icon ?? sxpParameter?.bottom_image ?? bottom_image;\r\n return (\r\n <EventProvider\r\n isExternalLink={isExternalLink}\r\n rec={recData}\r\n className={css({ alignItems: 'center', ...style })}\r\n style={{ display: 'flex' }}\r\n index={index}\r\n {...props}\r\n >\r\n <Img\r\n src={src}\r\n rec={recData}\r\n item={recData?.video?.bindProduct ?? recData?.video}\r\n index={index}\r\n imgStyle={ctaTempStyles?.img}\r\n />\r\n <div\r\n className={css({\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n ...ctaTempStyles?.ctaTitle\r\n })}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(cta?.enTitle ?? 'Product Name', ctaTempStyles?.ctaTitle)\r\n }}\r\n ></div>\r\n </EventProvider>\r\n );\r\n};\r\n\r\nexport default memo(Appoint);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-04-09 21:42:21\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\Appoint\\material.tsx\r\n *\r\n */\r\nimport settingRender from '../components/settingRender';\r\nimport interactionRender from './interactionRender';\r\nimport AppointComponent from '.';\r\nimport { createMaterial } from '@/core/create';\r\n\r\nconst Appoint = createMaterial(AppointComponent, {\r\n displayName: '预约表单',\r\n icon: '',\r\n category: 'template',\r\n type: 'Appoint',\r\n related: {\r\n interactionRender,\r\n settingRender: settingRender?.filter((i: any) => i.type !== 'commodityTitle'),\r\n bindableProps: []\r\n },\r\n defaulSetting: {\r\n props: {\r\n ctaTempStyles: {\r\n img: {\r\n borderRadius: 3,\r\n width: 30,\r\n height: 30,\r\n marginRight: 8\r\n },\r\n ctaTitle: {\r\n fontSize: 12,\r\n color: '#fff',\r\n textAlign: 'left',\r\n width: 130,\r\n height: 20\r\n }\r\n }\r\n },\r\n style: {\r\n padding: 7,\r\n width: 236,\r\n height: 44,\r\n borderRadius: 3,\r\n backgroundColor: 'rgba(0,0,0,.3)',\r\n marginBottom: 8\r\n }\r\n },\r\n w: 100,\r\n h: 40,\r\n sort: 6\r\n});\r\n\r\nexport { Appoint };\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-07-02 14:51:32\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-07-02 16:44:34\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\Link\\settingRender.tsx\r\n *\r\n */\r\nexport default [\r\n {\r\n title: '自定义标题',\r\n child: [\r\n {\r\n type: 'Switch',\r\n label: '自定义标题开关',\r\n name: ['props', 'customTitle', 'display']\r\n },\r\n {\r\n type: 'Text',\r\n label: '标题文案',\r\n name: ['props', 'customTitle', 'text']\r\n },\r\n {\r\n type: 'Group',\r\n label: '尺寸',\r\n child: [\r\n {\r\n type: 'Number',\r\n name: ['props', 'customTitle', 'style', 'width'],\r\n addonAfter: 'W'\r\n },\r\n {\r\n type: 'Number',\r\n name: ['props', 'customTitle', 'style', 'height'],\r\n addonAfter: 'H'\r\n }\r\n ]\r\n },\r\n\r\n {\r\n type: 'Group',\r\n label: '圆角',\r\n child: [\r\n {\r\n type: 'Slider',\r\n name: ['props', 'customTitle', 'style', 'borderRadius'],\r\n max: 100\r\n },\r\n {\r\n type: 'Number',\r\n name: ['props', 'customTitle', 'style', 'borderRadius'],\r\n addonAfter: 'px',\r\n max: 100\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Color',\r\n label: '背景色',\r\n name: ['props', 'customTitle', 'style', 'backgroundColor']\r\n },\r\n {\r\n type: 'Group',\r\n label: '字体',\r\n child: [\r\n {\r\n type: 'Select',\r\n name: ['props', 'customTitle', 'style', 'fontFamily-cn'],\r\n bottomText: '中文字体'\r\n },\r\n {\r\n type: 'Select',\r\n name: ['props', 'customTitle', 'style', 'fontFamily-en'],\r\n bottomText: '英文/其他字体'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Group',\r\n label: '',\r\n child: [\r\n {\r\n type: 'Color',\r\n name: ['props', 'customTitle', 'style', 'color']\r\n },\r\n {\r\n type: 'Number',\r\n addonAfter: 'px',\r\n name: ['props', 'customTitle', 'style', 'fontSize']\r\n }\r\n ]\r\n },\r\n {\r\n label: '样式',\r\n type: 'TextStyle',\r\n name: ['props', 'customTitle', 'style']\r\n },\r\n {\r\n label: '对齐',\r\n type: 'TextAlign',\r\n name: ['props', 'customTitle', 'style']\r\n },\r\n {\r\n label: '上边距',\r\n type: 'Number',\r\n name: ['props', 'customTitle', 'style', 'marginTop'],\r\n addonAfter: 'px'\r\n }\r\n ]\r\n }\r\n];\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-07-05 14:00:51\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\Link\\index.tsx\r\n *\r\n */\r\nimport { css } from '@emotion/css';\r\nimport React, { CSSProperties, FC, memo } from 'react';\r\nimport EventProvider from '../components/EventProvider';\r\nimport { ICtaTempStylesType } from '../components/typing';\r\nimport { RecItemType } from '@/core/components/SxpPageRender/typing';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\nimport { useEventReport } from '@/core/hooks/useEventReport';\r\nimport Img from '../components/Img';\r\nimport { setFontForText } from '@/core/utils/tool';\r\nimport styles from './index.module.less';\r\nexport interface ILinkProps {\r\n content?: string;\r\n style?: Record<string, any>;\r\n bgImg?: Record<string, any> | string;\r\n recData?: RecItemType;\r\n bottom_image?: string;\r\n ctaTempStyles?: ICtaTempStylesType;\r\n index?: number;\r\n customTitle?: {\r\n style?: CSSProperties;\r\n display?: boolean;\r\n text?: string;\r\n };\r\n}\r\n\r\nconst Link: FC<ILinkProps> = ({\r\n content,\r\n style,\r\n bgImg,\r\n recData,\r\n bottom_image,\r\n ctaTempStyles,\r\n index,\r\n customTitle,\r\n ...props\r\n}) => {\r\n const { sxpParameter, bffEventReport } = useSxpDataSource();\r\n const { jumpToWeb } = useEventReport();\r\n const cta = recData?.video?.bindCta;\r\n const product = recData?.video?.bindProduct;\r\n\r\n const handleTo = () => {\r\n if (cta?.link) {\r\n jumpToWeb(recData, product, cta, index);\r\n\r\n window.location.href = window.getJointUtmLink(cta.link);\r\n }\r\n };\r\n const src = cta?.icon ?? sxpParameter?.bottom_image ?? bottom_image;\r\n return (\r\n <EventProvider\r\n index={index}\r\n rec={recData}\r\n className={css({ alignItems: 'center', ...style })}\r\n style={{ display: 'flex' }}\r\n {...props}\r\n onClick={handleTo}\r\n >\r\n <Img\r\n src={src}\r\n rec={recData}\r\n item={recData?.video?.bindProduct ?? recData?.video}\r\n index={index}\r\n imgStyle={ctaTempStyles?.img}\r\n />\r\n <div\r\n className={css({\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: '100%',\r\n overflow: 'hidden'\r\n })}\r\n >\r\n <div>\r\n <div\r\n className={styles['tow-line-ellipsis']}\r\n style={ctaTempStyles?.ctaTitle}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(cta?.enTitle ?? 'Product Name', ctaTempStyles?.ctaTitle)\r\n }}\r\n ></div>\r\n {customTitle?.display && (\r\n <div\r\n style={{\r\n ...customTitle?.style,\r\n lineHeight: customTitle?.style?.height + 'px'\r\n }}\r\n className={styles['one-line-ellipsis']}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(customTitle?.text, customTitle?.style)\r\n }}\r\n ></div>\r\n )}\r\n </div>\r\n </div>\r\n </EventProvider>\r\n );\r\n};\r\n\r\nexport default memo(Link);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-07-02 16:48:17\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\Link\\material.tsx\r\n *\r\n */\r\nimport settingRender from '../components/settingRender';\r\nimport linkSettingRender from './settingRender';\r\n\r\nimport LinkComponent from '.';\r\nimport { createMaterial } from '@/core/create';\r\n\r\nconst Link = createMaterial(LinkComponent, {\r\n displayName: '跳转指引',\r\n icon: '',\r\n category: 'template',\r\n type: 'Link',\r\n related: {\r\n settingRender: settingRender?.filter((i: any) => i.type !== 'commodityTitle')?.concat(linkSettingRender),\r\n bindableProps: []\r\n },\r\n defaulSetting: {\r\n props: {\r\n ctaTempStyles: {\r\n img: {\r\n borderRadius: 3,\r\n width: 60,\r\n height: 60,\r\n marginRight: 8\r\n },\r\n ctaTitle: {\r\n fontSize: 12,\r\n color: '#fff',\r\n textAlign: 'left',\r\n width: 130,\r\n height: 20\r\n }\r\n },\r\n customTitle: {\r\n style: {\r\n textAlign: 'left',\r\n textDecoration: 'underline',\r\n fontWeight: 'bold',\r\n width: 130,\r\n height: 20,\r\n fontSize: 12,\r\n color: '#000'\r\n },\r\n text: '探索更多'\r\n }\r\n },\r\n style: {\r\n padding: 7,\r\n width: 236,\r\n height: 74,\r\n borderRadius: 3,\r\n backgroundColor: 'rgba(0,0,0,.3)',\r\n marginBottom: 8\r\n }\r\n },\r\n w: 100,\r\n h: 40,\r\n sort: 5\r\n});\r\n\r\nexport { Link };\r\n","export default [\r\n {\r\n title: '点击事件',\r\n child: [\r\n {\r\n type: 'link',\r\n name: 'onClick'\r\n }\r\n ]\r\n }\r\n];\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-27 14:31:22\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\CommodityDiro\\index.tsx\r\n *\r\n */\r\nimport { css } from '@emotion/css';\r\nimport React, { FC, memo } from 'react';\r\nimport EventProvider from '../components/EventProvider';\r\nimport { ICtaTempStylesType } from '../components/typing';\r\nimport styles from './index.module.less';\r\nimport { RecItemType } from '@/core/components/SxpPageRender/typing';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\nimport FormatImage from '@/core/components/SxpPageRender/FormatImage';\r\nimport Img from '../components/Img';\r\nimport { setFontForText } from '@/core/utils/tool';\r\nexport interface ICommodityDiroProps {\r\n content?: string;\r\n style?: Record<string, any>;\r\n bgImg?: Record<string, any> | string;\r\n recData?: RecItemType;\r\n bottom_image?: string;\r\n ctaTempStyles?: ICtaTempStylesType;\r\n isExternalLink?: boolean;\r\n index?: number;\r\n translateY?: number;\r\n}\r\n\r\nconst CommodityDiro: FC<ICommodityDiroProps> = ({\r\n content,\r\n style,\r\n bgImg,\r\n recData,\r\n bottom_image,\r\n ctaTempStyles,\r\n isExternalLink,\r\n translateY = 0,\r\n index,\r\n ...props\r\n}) => {\r\n const { sxpParameter } = useSxpDataSource();\r\n const product = recData?.video?.bindProduct;\r\n const src = product?.cover ?? product?.homePage?.[0] ?? sxpParameter?.bottom_image ?? bottom_image;\r\n return (\r\n <EventProvider\r\n isExternalLink={isExternalLink}\r\n rec={recData}\r\n className={css({\r\n ...style\r\n })}\r\n style={{ display: 'flex' }}\r\n index={index}\r\n {...props}\r\n >\r\n <Img\r\n src={src}\r\n rec={recData}\r\n item={recData?.video?.bindProduct ?? recData?.video}\r\n index={index}\r\n translateY={translateY}\r\n imgStyle={ctaTempStyles?.img}\r\n />\r\n <div\r\n className={css({\r\n color: '#fff',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'space-between',\r\n width: '100%',\r\n overflow: 'hidden'\r\n })}\r\n >\r\n <div\r\n className={styles['tow-line-ellipsis']}\r\n style={ctaTempStyles?.title}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(product?.title ?? 'Product Name', ctaTempStyles?.title)\r\n }}\r\n ></div>\r\n <div\r\n className={css({\r\n padding: '0 7px',\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n borderRadius: '25px',\r\n whiteSpace: 'nowrap',\r\n lineHeight: ctaTempStyles?.ctaTitle?.height + 'px',\r\n ...ctaTempStyles?.ctaTitle\r\n })}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(product?.bindCta?.enTitle ?? 'Shop Now', ctaTempStyles?.ctaTitle)\r\n }}\r\n ></div>\r\n </div>\r\n </EventProvider>\r\n );\r\n};\r\n\r\nexport default memo(CommodityDiro);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-03-29 16:07:28\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\CommodityDiro\\material.tsx\r\n *\r\n */\r\nimport settingRender from '../components/settingRender';\r\nimport interactionRender from './interactionRender';\r\nimport CommodityDiroComponent from '.';\r\nimport { createMaterial } from '@/core/create';\r\n\r\nconst CommodityDiro = createMaterial(CommodityDiroComponent, {\r\n displayName: '推荐单商品-白底圆角按钮',\r\n icon: '',\r\n category: 'template',\r\n type: 'CommodityDiro',\r\n related: {\r\n interactionRender,\r\n settingRender,\r\n bindableProps: []\r\n },\r\n defaulSetting: {\r\n props: {\r\n ctaTempStyles: {\r\n img: {\r\n borderRadius: 3,\r\n width: 60,\r\n height: 60,\r\n marginRight: 8\r\n },\r\n title: {\r\n fontSize: 12,\r\n color: '#000',\r\n textAlign: 'left'\r\n },\r\n ctaTitle: {\r\n fontSize: 10,\r\n color: '#fff',\r\n textAlign: 'center',\r\n width: 80,\r\n height: 20,\r\n backgroundColor: 'rgba(0,0,0,1)'\r\n }\r\n }\r\n },\r\n style: {\r\n padding: 7,\r\n width: 236,\r\n height: 74,\r\n borderRadius: 3,\r\n backgroundColor: '#fff',\r\n marginBottom: 8\r\n }\r\n },\r\n w: 100,\r\n h: 40,\r\n sort: 2\r\n});\r\n\r\nexport { CommodityDiro };\r\n","export default [\r\n {\r\n title: '点击事件',\r\n child: [\r\n {\r\n type: 'link',\r\n name: 'onClick'\r\n }\r\n ]\r\n }\r\n];\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-03-20 10:27:32\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-27 11:10:39\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\CommodityDiroNew\\index.tsx\r\n *\r\n */\r\n/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-03-29 10:17:53\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\CommodityDiroNew\\index.tsx\r\n *\r\n */\r\nimport { css } from '@emotion/css';\r\nimport React, { FC, memo } from 'react';\r\nimport EventProvider from '../components/EventProvider';\r\nimport { ICtaTempStylesType } from '../components/typing';\r\nimport styles from './index.module.less';\r\nimport { RecItemType } from '@/core/components/SxpPageRender/typing';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\nimport FormatImage from '@/core/components/SxpPageRender/FormatImage';\r\nimport Img from '../components/Img';\r\nimport { setFontForText } from '@/core/utils/tool';\r\nexport interface ICommodityDiroNewProps {\r\n content?: string;\r\n style?: Record<string, any>;\r\n bgImg?: Record<string, any> | string;\r\n recData?: RecItemType;\r\n bottom_image?: string;\r\n ctaTempStyles?: ICtaTempStylesType;\r\n isExternalLink?: boolean;\r\n index?: number;\r\n translateY?: number;\r\n}\r\n\r\nconst CommodityDiroNew: FC<ICommodityDiroNewProps> = ({\r\n content,\r\n style,\r\n bgImg,\r\n recData,\r\n bottom_image,\r\n ctaTempStyles,\r\n isExternalLink,\r\n translateY = 0,\r\n index,\r\n ...props\r\n}) => {\r\n const { sxpParameter } = useSxpDataSource();\r\n const product = recData?.video?.bindProduct;\r\n const src = product?.cover ?? product?.homePage?.[0] ?? sxpParameter?.bottom_image ?? bottom_image;\r\n return (\r\n <EventProvider\r\n isExternalLink={isExternalLink}\r\n rec={recData}\r\n className={css({\r\n ...style\r\n })}\r\n style={{ display: 'flex' }}\r\n index={index}\r\n {...props}\r\n >\r\n <Img\r\n src={src}\r\n rec={recData}\r\n item={recData?.video?.bindProduct ?? recData?.video}\r\n index={index}\r\n translateY={translateY}\r\n imgStyle={ctaTempStyles?.img}\r\n />\r\n <div\r\n className={css({\r\n color: '#fff',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n width: '100%',\r\n overflow: 'hidden'\r\n })}\r\n >\r\n <div\r\n className={styles['tow-line-ellipsis']}\r\n style={ctaTempStyles?.title}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(product?.title ?? 'Product Name', ctaTempStyles?.title)\r\n }}\r\n ></div>\r\n <div\r\n className={css({\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n ...ctaTempStyles?.ctaTitle\r\n })}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(product?.bindCta?.enTitle ?? 'Shop Now', ctaTempStyles?.ctaTitle)\r\n }}\r\n ></div>\r\n </div>\r\n </EventProvider>\r\n );\r\n};\r\n\r\nexport default memo(CommodityDiroNew);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-04-09 11:54:27\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\CommodityDiroNew\\material.tsx\r\n *\r\n */\r\nimport settingRender from '../components/settingRender';\r\nimport interactionRender from './interactionRender';\r\nimport CommodityDiroNewComponent from '.';\r\nimport { createMaterial } from '@/core/create';\r\n\r\nconst CommodityDiroNew = createMaterial(CommodityDiroNewComponent, {\r\n displayName: '推荐单商品-白底下划线按钮',\r\n icon: '',\r\n category: 'template',\r\n type: 'CommodityDiroNew',\r\n related: {\r\n interactionRender,\r\n bindableProps: [],\r\n settingRender\r\n },\r\n defaulSetting: {\r\n props: {\r\n ctaTempStyles: {\r\n img: {\r\n borderRadius: 8,\r\n width: 78,\r\n height: 78,\r\n marginRight: 16\r\n },\r\n title: {\r\n fontSize: 13,\r\n color: '#000',\r\n textAlign: 'left'\r\n },\r\n ctaTitle: {\r\n textDecoration: 'underline',\r\n fontSize: 14,\r\n fontWeight: 'bold',\r\n color: '#000',\r\n textAlign: 'left',\r\n width: 150,\r\n height: 20\r\n }\r\n }\r\n },\r\n style: {\r\n borderRadius: 4,\r\n width: 260,\r\n height: 86,\r\n padding: 4,\r\n backgroundColor: 'rgba(255,255,255,0.75)',\r\n marginBottom: 8\r\n }\r\n },\r\n w: 100,\r\n h: 40,\r\n sort: 2\r\n});\r\n\r\nexport { CommodityDiroNew };\r\n","export default [\r\n {\r\n title: '点击事件',\r\n child: [\r\n {\r\n type: 'link',\r\n name: 'onClick'\r\n }\r\n ]\r\n }\r\n];\r\n","import React, { memo, FC } from 'react';\r\n// Import Swiper React components\r\nimport { Swiper } from 'swiper/react';\r\n\r\n// Import Swiper styles\r\nimport 'swiper/css';\r\nimport 'swiper/css/free-mode';\r\nimport 'swiper/css/scrollbar';\r\n\r\n// import required modules\r\nimport { FreeMode, Scrollbar, Mousewheel } from 'swiper/modules';\r\n\r\ninterface IScrollProps {\r\n children: any;\r\n isPadding?: boolean;\r\n}\r\n\r\nconst Scroll: FC<IScrollProps> = ({ children, isPadding = true }) => {\r\n return (\r\n <Swiper\r\n direction={'horizontal'}\r\n slidesPerView={'auto'}\r\n freeMode={true}\r\n mousewheel={true}\r\n modules={[FreeMode, Scrollbar, Mousewheel]}\r\n style={{ padding: isPadding ? '0 12px 0 20px' : 0 }}\r\n >\r\n {children}\r\n </Swiper>\r\n );\r\n};\r\n\r\nexport default memo(Scroll);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-05-23 09:59:50\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\MultiCommodityDiro\\index.tsx\r\n *\r\n */\r\nimport { css } from '@emotion/css';\r\nimport React, { FC, memo, useState } from 'react';\r\nimport { SwiperSlide } from 'swiper/react';\r\nimport { throttle } from 'lodash';\r\nimport Scroll from '../components/Scroll';\r\nimport Img from '../components/Img';\r\nimport { ICtaTempStylesType } from '../components/typing';\r\nimport styles from './index.module.less';\r\nimport { RecItemType } from '@/core/components/SxpPageRender/typing';\r\nimport { useEditor, useSxpDataSource } from '@/core/hooks';\r\nimport { useEventReport } from '@/core/hooks/useEventReport';\r\nimport { setFontForText } from '@/core/utils/tool';\r\nexport interface IMultiCommodityDiroProps {\r\n content?: string;\r\n style?: Record<string, any>;\r\n bgImg?: Record<string, any> | string;\r\n recData?: RecItemType;\r\n onClick?: () => void;\r\n bottom_image?: string;\r\n ctaTempStyles?: ICtaTempStylesType;\r\n isExternalLink?: boolean;\r\n index?: number;\r\n translateY?: number;\r\n}\r\n\r\nconst MultiCommodityDiro: FC<IMultiCommodityDiroProps> = ({\r\n content,\r\n style,\r\n bgImg,\r\n recData,\r\n onClick,\r\n bottom_image,\r\n ctaTempStyles,\r\n isExternalLink,\r\n index,\r\n translateY = 0,\r\n ...props\r\n}) => {\r\n const { ctaEvent, setPopupDetailData, sxpParameter } = useSxpDataSource();\r\n const { popup } = useEditor();\r\n const { jumpToWeb } = useEventReport();\r\n\r\n const [products, setProducts] = useState(recData?.video?.bindProducts ?? [1, 2]);\r\n const handleClick = throttle((item: any) => {\r\n ctaEvent?.(\r\n {\r\n eventSubject: 'clickCta',\r\n eventDescription: 'User clicked the CTA'\r\n },\r\n recData,\r\n item,\r\n index\r\n );\r\n setPopupDetailData?.({ ...recData, video: { ...recData?.video, bindProduct: item }, index });\r\n if (isExternalLink) {\r\n if (item?.link) {\r\n jumpToWeb(recData, item, item.bindCta, index);\r\n window.location.href = window.getJointUtmLink(item.link);\r\n }\r\n } else {\r\n onClick?.();\r\n }\r\n }, popup?.duration);\r\n return (\r\n <Scroll isPadding={!!recData}>\r\n {products?.map((item: any) => {\r\n return (\r\n <>\r\n {recData && !item?.bindCta ? null : (\r\n <SwiperSlide\r\n key={item?.itemId}\r\n className={css({\r\n ...style,\r\n display: 'flex',\r\n flexShrink: 0,\r\n marginLeft: 0,\r\n marginRight: '8px'\r\n })}\r\n {...props}\r\n onClick={() => handleClick(item)}\r\n >\r\n <Img\r\n src={item?.cover ?? item?.homePage?.[0] ?? sxpParameter?.bottom_image ?? bottom_image}\r\n rec={recData}\r\n item={item}\r\n index={index}\r\n translateY={translateY}\r\n imgStyle={ctaTempStyles?.img}\r\n />\r\n <div\r\n className={css({\r\n color: '#000',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'space-between',\r\n width: '100%',\r\n overflow: 'hidden'\r\n })}\r\n >\r\n <div\r\n className={styles['two-line-ellipsis']}\r\n style={ctaTempStyles?.title}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(item?.title ?? 'Product Name', ctaTempStyles?.title)\r\n }}\r\n ></div>\r\n <div\r\n className={css({\r\n padding: '0 7px',\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n borderRadius: '25px',\r\n whiteSpace: 'nowrap',\r\n lineHeight: ctaTempStyles?.ctaTitle?.height + 'px',\r\n ...ctaTempStyles?.ctaTitle\r\n })}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(item?.bindCta?.enTitle ?? 'Shop Now', ctaTempStyles?.ctaTitle)\r\n }}\r\n ></div>\r\n </div>\r\n </SwiperSlide>\r\n )}\r\n </>\r\n );\r\n })}\r\n </Scroll>\r\n );\r\n};\r\n\r\nexport default memo(MultiCommodityDiro);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-03-29 16:27:22\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\MultiCommodityDiro\\material.tsx\r\n *\r\n */\r\nimport settingRender from '../components/settingRender';\r\nimport interactionRender from './interactionRender';\r\nimport MultiCommodityDiroComponent from '.';\r\nimport { createMaterial } from '@/core/create';\r\n\r\nconst MultiCommodityDiro = createMaterial(MultiCommodityDiroComponent, {\r\n displayName: '推荐多商品-白底圆角按钮',\r\n icon: '',\r\n category: 'template',\r\n type: 'MultiCommodityDiro',\r\n related: {\r\n interactionRender,\r\n bindableProps: [],\r\n settingRender\r\n },\r\n defaulSetting: {\r\n props: {\r\n ctaTempStyles: {\r\n img: {\r\n borderRadius: 3,\r\n width: 60,\r\n height: 60,\r\n marginRight: 8\r\n },\r\n title: {\r\n fontSize: 12,\r\n color: '#000',\r\n textAlign: 'left'\r\n },\r\n ctaTitle: {\r\n fontSize: 10,\r\n color: '#fff',\r\n textAlign: 'center',\r\n width: 80,\r\n height: 20,\r\n backgroundColor: 'rgba(0,0,0,1)'\r\n }\r\n }\r\n },\r\n style: {\r\n padding: 7,\r\n width: 236,\r\n height: 74,\r\n borderRadius: 3,\r\n backgroundColor: '#fff',\r\n marginBottom: 8\r\n }\r\n },\r\n w: 100,\r\n h: 40,\r\n sort: 4\r\n});\r\n\r\nexport { MultiCommodityDiro };\r\n","export default [\r\n {\r\n title: '点击事件',\r\n child: [\r\n {\r\n type: 'link',\r\n name: 'onClick'\r\n }\r\n ]\r\n }\r\n];\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-27 11:17:59\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\MultiCommodity\\index.tsx\r\n *\r\n */\r\nimport { css } from '@emotion/css';\r\nimport React, { FC, memo, useState } from 'react';\r\nimport { SwiperSlide } from 'swiper/react';\r\nimport { throttle } from 'lodash';\r\nimport Img from '../components/Img';\r\nimport Scroll from '../components/Scroll';\r\nimport { ICtaTempStylesType } from '../components/typing';\r\nimport styles from './index.module.less';\r\nimport { RecItemType } from '@/core/components/SxpPageRender/typing';\r\nimport { useEditor, useSxpDataSource } from '@/core/hooks';\r\nimport { useEventReport } from '@/core/hooks/useEventReport';\r\nimport { setFontForText } from '@/core/utils/tool';\r\nexport interface IMultiCommodityProps {\r\n content?: string;\r\n style?: Record<string, any>;\r\n bgImg?: Record<string, any> | string;\r\n recData?: RecItemType;\r\n onClick?: () => void;\r\n bottom_image?: string;\r\n ctaTempStyles?: ICtaTempStylesType;\r\n isExternalLink?: boolean;\r\n index?: number;\r\n translateY?: number;\r\n}\r\n\r\nconst MultiCommodity: FC<IMultiCommodityProps> = ({\r\n content,\r\n style,\r\n bgImg,\r\n recData,\r\n onClick,\r\n bottom_image,\r\n ctaTempStyles,\r\n isExternalLink,\r\n index,\r\n translateY = 0,\r\n ...props\r\n}) => {\r\n const { sxpParameter } = useSxpDataSource();\r\n const { ctaEvent, setPopupDetailData } = useSxpDataSource();\r\n const { popup } = useEditor();\r\n const [products, setProducts] = useState(recData?.video?.bindProducts ?? [1, 2]);\r\n const { jumpToWeb } = useEventReport();\r\n\r\n const handleClick = throttle((item: any) => {\r\n ctaEvent?.(\r\n {\r\n eventSubject: 'clickCta',\r\n eventDescription: 'User clicked the CTA'\r\n },\r\n recData,\r\n item,\r\n index\r\n );\r\n setPopupDetailData?.({ ...recData, video: { ...recData?.video, bindProduct: item }, index });\r\n if (isExternalLink) {\r\n if (item?.link) {\r\n jumpToWeb(recData, item, item.bindCta, index);\r\n window.location.href = window.getJointUtmLink(item.link);\r\n }\r\n } else {\r\n onClick?.();\r\n }\r\n }, popup?.duration);\r\n return (\r\n <Scroll isPadding={!!recData}>\r\n {products?.map((item: any) => {\r\n return (\r\n <>\r\n {recData && !item?.bindCta ? null : (\r\n <SwiperSlide\r\n key={item.itemId}\r\n className={css({\r\n ...style,\r\n display: 'flex',\r\n flexShrink: 0,\r\n marginLeft: 0,\r\n marginRight: '8px'\r\n })}\r\n {...props}\r\n onClick={() => handleClick(item)}\r\n >\r\n <Img\r\n src={item?.cover ?? item?.homePage?.[0] ?? sxpParameter?.bottom_image ?? bottom_image}\r\n rec={recData}\r\n item={item}\r\n index={index}\r\n translateY={translateY}\r\n imgStyle={ctaTempStyles?.img}\r\n />\r\n <div\r\n className={css({\r\n color: '#fff',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'space-between',\r\n width: '100%',\r\n overflow: 'hidden'\r\n })}\r\n >\r\n <div\r\n className={styles['two-line-ellipsis']}\r\n style={ctaTempStyles?.title}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(item?.title ?? 'Product Name', ctaTempStyles?.title)\r\n }}\r\n ></div>\r\n <div\r\n className={css({\r\n padding: '0 7px',\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n lineHeight: ctaTempStyles?.ctaTitle?.height + 'px',\r\n ...ctaTempStyles?.ctaTitle\r\n })}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(item?.bindCta?.enTitle ?? 'Shop Now', ctaTempStyles?.ctaTitle)\r\n }}\r\n ></div>\r\n </div>\r\n </SwiperSlide>\r\n )}\r\n </>\r\n );\r\n })}\r\n </Scroll>\r\n );\r\n};\r\n\r\nexport default memo(MultiCommodity);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-03-29 16:43:35\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\MultiCommodity\\material.tsx\r\n *\r\n */\r\nimport settingRender from '../components/settingRender';\r\nimport interactionRender from './interactionRender';\r\nimport MultiCommodityComponent from '.';\r\nimport { createMaterial } from '@/core/create';\r\n\r\nconst MultiCommodity = createMaterial(MultiCommodityComponent, {\r\n displayName: '推荐多商品-透明底',\r\n icon: '',\r\n category: 'template',\r\n type: 'MultiCommodity',\r\n related: {\r\n interactionRender,\r\n settingRender,\r\n bindableProps: []\r\n },\r\n defaulSetting: {\r\n props: {\r\n ctaTempStyles: {\r\n img: {\r\n borderRadius: 3,\r\n width: 60,\r\n height: 60,\r\n marginRight: 8\r\n },\r\n title: {\r\n fontSize: 12,\r\n color: '#fff',\r\n textAlign: 'left'\r\n },\r\n ctaTitle: {\r\n fontSize: 10,\r\n color: '#fff',\r\n textAlign: 'center',\r\n width: 130,\r\n height: 20,\r\n backgroundColor: 'rgba(0,0,0,.5)'\r\n }\r\n }\r\n },\r\n style: {\r\n padding: 7,\r\n width: 236,\r\n height: 74,\r\n borderRadius: 3,\r\n backgroundColor: 'rgba(0,0,0,.3)',\r\n marginBottom: 8\r\n }\r\n },\r\n w: 100,\r\n h: 40,\r\n sort: 3\r\n});\r\n\r\nexport { MultiCommodity };\r\n","export default [\r\n {\r\n title: '点击事件',\r\n child: [\r\n {\r\n type: 'link',\r\n name: 'onClick'\r\n }\r\n ]\r\n }\r\n];\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-27 11:18:31\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\MultiCommodityDiroNew\\index.tsx\r\n *\r\n */\r\nimport { css } from '@emotion/css';\r\nimport React, { FC, memo, useState } from 'react';\r\nimport { SwiperSlide } from 'swiper/react';\r\nimport { throttle } from 'lodash';\r\nimport Scroll from '../components/Scroll';\r\nimport Img from '../components/Img';\r\nimport { ICtaTempStylesType } from '../components/typing';\r\nimport styles from './index.module.less';\r\nimport { RecItemType } from '@/core/components/SxpPageRender/typing';\r\nimport { useEditor, useSxpDataSource } from '@/core/hooks';\r\nimport { useEventReport } from '@/core/hooks/useEventReport';\r\nimport { setFontForText } from '@/core/utils/tool';\r\nexport interface IMultiCommodityDiroNewProps {\r\n content?: string;\r\n style?: Record<string, any>;\r\n bgImg?: Record<string, any> | string;\r\n recData?: RecItemType;\r\n onClick?: () => void;\r\n bottom_image?: string;\r\n ctaTempStyles?: ICtaTempStylesType;\r\n isExternalLink?: boolean;\r\n index?: number;\r\n translateY?: number;\r\n}\r\n\r\nconst MultiCommodityDiroNew: FC<IMultiCommodityDiroNewProps> = ({\r\n content,\r\n style,\r\n bgImg,\r\n recData,\r\n onClick,\r\n bottom_image,\r\n ctaTempStyles,\r\n isExternalLink,\r\n index,\r\n translateY = 0,\r\n ...props\r\n}) => {\r\n const { ctaEvent, setPopupDetailData, sxpParameter } = useSxpDataSource();\r\n const { popup } = useEditor();\r\n const { jumpToWeb } = useEventReport();\r\n\r\n const [products, setProducts] = useState(recData?.video?.bindProducts ?? [1, 2]);\r\n\r\n const handleClick = throttle((item: any) => {\r\n ctaEvent?.(\r\n {\r\n eventSubject: 'clickCta',\r\n eventDescription: 'User clicked the CTA'\r\n },\r\n recData,\r\n item,\r\n index\r\n );\r\n setPopupDetailData?.({ ...recData, video: { ...recData?.video, bindProduct: item }, index });\r\n if (isExternalLink) {\r\n if (item?.link) {\r\n jumpToWeb(recData, item, item.bindCta, index);\r\n window.location.href = window.getJointUtmLink(item.link);\r\n }\r\n } else {\r\n onClick?.();\r\n }\r\n }, popup?.duration);\r\n\r\n return (\r\n <Scroll isPadding={!!recData}>\r\n {products?.map((item: any) => {\r\n return (\r\n <>\r\n {recData && !item?.bindCta ? null : (\r\n <SwiperSlide\r\n key={item?.itemId}\r\n className={css({\r\n ...style,\r\n display: 'flex',\r\n flexShrink: 0,\r\n marginLeft: 0,\r\n marginRight: '8px'\r\n })}\r\n {...props}\r\n onClick={() => handleClick(item)}\r\n >\r\n <Img\r\n src={item?.cover ?? item?.homePage?.[0] ?? sxpParameter?.bottom_image ?? bottom_image}\r\n rec={recData}\r\n item={item}\r\n index={index}\r\n translateY={translateY}\r\n imgStyle={ctaTempStyles?.img}\r\n />\r\n <div\r\n className={css({\r\n color: '#fff',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n width: '100%',\r\n overflow: 'hidden',\r\n lineHeight: '20px'\r\n })}\r\n >\r\n <div\r\n className={styles['tow-line-ellipsis']}\r\n style={ctaTempStyles?.title}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(item?.title ?? 'Product Name', ctaTempStyles?.title)\r\n }}\r\n ></div>\r\n <div\r\n className={css({\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n ...ctaTempStyles?.ctaTitle\r\n })}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(item?.bindCta?.enTitle ?? 'Shop Now', ctaTempStyles?.ctaTitle)\r\n }}\r\n ></div>\r\n </div>\r\n </SwiperSlide>\r\n )}\r\n </>\r\n );\r\n })}\r\n </Scroll>\r\n );\r\n};\r\n\r\nexport default memo(MultiCommodityDiroNew);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-05-21 16:44:00\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\template\\MultiCommodityDiroNew\\material.tsx\r\n *\r\n */\r\nimport settingRender from '../components/settingRender';\r\nimport interactionRender from './interactionRender';\r\nimport MultiCommodityDiroNewComponent from '.';\r\nimport { createMaterial } from '@/core/create';\r\n\r\nconst MultiCommodityDiroNew = createMaterial(MultiCommodityDiroNewComponent, {\r\n displayName: '推荐多商品-白底下划线按钮',\r\n icon: '',\r\n category: 'template',\r\n type: 'MultiCommodityDiroNew',\r\n related: {\r\n interactionRender,\r\n bindableProps: [],\r\n settingRender\r\n },\r\n defaulSetting: {\r\n props: {\r\n ctaTempStyles: {\r\n img: {\r\n borderRadius: 8,\r\n width: 78,\r\n height: 78,\r\n marginRight: 16\r\n },\r\n title: {\r\n fontSize: 12,\r\n color: '#000',\r\n textAlign: 'left'\r\n },\r\n ctaTitle: {\r\n textDecoration: 'underline',\r\n fontSize: 12,\r\n fontWeight: 'bold',\r\n color: '#000',\r\n textAlign: 'left',\r\n width: 150,\r\n height: 20\r\n }\r\n }\r\n },\r\n style: {\r\n borderRadius: 4,\r\n width: 260,\r\n height: 86,\r\n padding: 4,\r\n backgroundColor: 'rgba(255,255,255,0.75)',\r\n marginBottom: 8\r\n }\r\n },\r\n w: 100,\r\n h: 40,\r\n sort: 4\r\n});\r\n\r\nexport { MultiCommodityDiroNew };\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-04-07 14:07:12\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-27 09:49:19\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\HashTag\\settingRender.tsx\r\n *\r\n */\r\nexport default [\r\n {\r\n title: 'Banner',\r\n child: [\r\n {\r\n type: 'Switch',\r\n label: 'Banner图开关',\r\n name: ['props', 'showBanner']\r\n }\r\n ]\r\n },\r\n {\r\n title: '卡片样式',\r\n child: [\r\n {\r\n type: 'Number',\r\n label: '上下边距',\r\n name: ['props', 'space'],\r\n addonAfter: 'px'\r\n },\r\n {\r\n type: 'Switch',\r\n label: '固定宽高',\r\n name: ['props', 'openFixedSize'],\r\n initialValue: true\r\n }\r\n ]\r\n },\r\n {\r\n title: '文本设置',\r\n child: [\r\n {\r\n name: ['props', 'textStyles'],\r\n type: 'SelectLinkage',\r\n child: [\r\n {\r\n label: '字段',\r\n type: 'Select',\r\n options: [\r\n {\r\n label: 'hashtag标题',\r\n value: 'hashTagTitle'\r\n },\r\n {\r\n label: 'hashtag描述',\r\n value: 'hashTagDesc'\r\n },\r\n {\r\n label: 'hashtag描述超链',\r\n value: 'hashTagLink'\r\n },\r\n {\r\n label: '标题',\r\n value: 'title'\r\n },\r\n {\r\n label: '价格',\r\n value: 'price'\r\n }\r\n ],\r\n name: ['props', 'textStyles', 'field'],\r\n initialValue: 'title'\r\n },\r\n {\r\n type: 'Group',\r\n label: '标题字体',\r\n child: [\r\n {\r\n type: 'Select',\r\n name: ['fontFamily-cn'],\r\n bottomText: '中文字体'\r\n },\r\n {\r\n type: 'Select',\r\n name: ['fontFamily-en'],\r\n bottomText: '英文/其他字体'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Group',\r\n label: '',\r\n child: [\r\n {\r\n type: 'Color',\r\n name: ['color']\r\n },\r\n {\r\n type: 'Number',\r\n addonAfter: 'px',\r\n name: ['fontSize']\r\n }\r\n ]\r\n },\r\n {\r\n label: '标题样式',\r\n type: 'TextStyle'\r\n },\r\n {\r\n label: '标题对齐',\r\n type: 'TextAlign'\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n title: '按钮样式',\r\n child: [\r\n {\r\n type: 'Color',\r\n label: '背景色',\r\n name: ['props', 'buttonStyle', 'backgroundColor'],\r\n initialValue: '#000'\r\n },\r\n {\r\n type: 'Group',\r\n label: '尺寸',\r\n child: [\r\n {\r\n type: 'Number',\r\n name: ['props', 'buttonStyle', 'height'],\r\n addonAfter: 'H'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Group',\r\n label: '圆角',\r\n child: [\r\n {\r\n type: 'Slider',\r\n name: ['props', 'buttonStyle', 'borderRadius'],\r\n max: 100\r\n },\r\n {\r\n type: 'Number',\r\n name: ['props', 'buttonStyle', 'borderRadius'],\r\n addonAfter: 'px',\r\n max: 100\r\n }\r\n ]\r\n },\r\n {\r\n type: 'TextPadding',\r\n name: ['props', 'buttonBgStyle']\r\n },\r\n {\r\n type: 'Group',\r\n label: '字体',\r\n child: [\r\n {\r\n type: 'Select',\r\n name: ['props', 'buttonStyle', 'fontFamily-cn'],\r\n bottomText: '中文字体'\r\n },\r\n {\r\n type: 'Select',\r\n name: ['props', 'buttonStyle', 'fontFamily-en'],\r\n bottomText: '英文/其他字体'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'Group',\r\n label: '',\r\n child: [\r\n {\r\n type: 'Color',\r\n name: ['props', 'buttonStyle', 'color'],\r\n initialValue: '#fff'\r\n },\r\n\r\n {\r\n type: 'Number',\r\n name: ['props', 'buttonStyle', 'fontSize'],\r\n addonAfter: 'px'\r\n }\r\n ]\r\n },\r\n {\r\n type: 'TextStyle',\r\n name: ['props', 'buttonStyle']\r\n },\r\n {\r\n type: 'TextAlign',\r\n name: ['props', 'buttonStyle']\r\n }\r\n ]\r\n },\r\n {\r\n title: '按钮背景样式',\r\n child: [\r\n {\r\n type: 'Color',\r\n label: '背景色',\r\n name: ['props', 'buttonBgStyle', 'backgroundColor'],\r\n initialValue: '#fff'\r\n },\r\n {\r\n type: 'Group',\r\n label: '尺寸',\r\n child: [\r\n {\r\n type: 'Number',\r\n name: ['props', 'buttonBgStyle', 'height'],\r\n addonAfter: 'H'\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n];\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-12-26 16:11:34\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-07-04 18:34:18\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageRender\\Navbar.tsx\r\n *\r\n */\r\nimport React, { memo, FC, CSSProperties } from 'react';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\nimport { setFontForText } from '@/core/utils/tool';\r\n\r\ninterface INavbarProps {\r\n icon?: string;\r\n styles?: CSSProperties;\r\n textStyle?: CSSProperties;\r\n onClose?: () => void;\r\n}\r\n\r\nconst Navbar: FC<INavbarProps> = ({ icon, styles, textStyle, onClose }) => {\r\n const { waterFallData, setOpenHashtag } = useSxpDataSource();\r\n\r\n return (\r\n <div className='clc-sxp-nav' style={styles}>\r\n <img className='clc-sxp-nav-left' src={icon} alt='back button' onClick={onClose} />\r\n <div\r\n className='clc-sxp-nav-title'\r\n style={{ ...textStyle, paddingLeft: textStyle?.textAlign === 'left' ? '35px' : 0 }}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(`#${waterFallData?.hashTag ?? '标题'}`, textStyle)\r\n }}\r\n ></div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default memo(Navbar);\r\n","// 瀑布流\r\nimport React, { useState, useEffect, useRef, useMemo, useCallback } from 'react';\r\nimport { RecItemType, RecommendVideoResultType } from '../typing';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\nimport './WaterfallList.less';\r\nimport previewData from './preview.json';\r\nimport { IHashTagProps } from '@/materials/sxp/HashTag';\r\nimport FormatImage from '../FormatImage';\r\nimport { css } from '@emotion/css';\r\nimport { setFontForText } from '@/core/utils/tool';\r\n\r\ninterface WaterfallFlowItemProps {\r\n /** 显示边界 */\r\n showBorder: number;\r\n style: React.CSSProperties;\r\n unitWidth: number;\r\n index: number;\r\n rec: RecItemType;\r\n sizeChange?: (height: number, index: number) => void;\r\n list: RecItemType[];\r\n reportTagsView: () => void;\r\n}\r\nconst WaterfallFlowItem = (props: WaterfallFlowItemProps & IHashTagProps) => {\r\n const {\r\n rec,\r\n style = {},\r\n sizeChange = () => {},\r\n unitWidth,\r\n index,\r\n showBorder,\r\n list,\r\n reportTagsView,\r\n textStyles,\r\n space\r\n } = props;\r\n const { swiperRef, setRtcList, setOpenHashtag, sxpParameter } = useSxpDataSource();\r\n\r\n const [showVideo, setShowVideo] = useState(false);\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [imgInfo, setImgInfo] = useState<{\r\n height: number;\r\n width: number;\r\n }>({\r\n height: 1,\r\n width: 1\r\n });\r\n const imgDom = useRef<any>(null);\r\n const ref = useRef<any>(null);\r\n const videoDom = useRef<any>(null);\r\n const canvasRef = useRef(null);\r\n const [firstFrameSrc, setFirstFrameSrc] = useState('');\r\n\r\n const src = useMemo(() => {\r\n if (rec?.video?.cover) {\r\n return rec?.video?.cover;\r\n } else if (rec?.video?.imgUrls?.length) {\r\n return rec?.video?.imgUrls?.[0];\r\n } else if (rec?.product?.homePage?.length) {\r\n return rec?.product?.homePage?.[0];\r\n } else {\r\n return sxpParameter?.bottom_image || '';\r\n }\r\n }, [rec, sxpParameter?.bottom_image]);\r\n\r\n const title = useMemo(() => {\r\n return rec?.product?.title || rec?.video?.title || null;\r\n }, [rec]);\r\n\r\n /** 离父亲上边框的距离 */\r\n const top = useMemo(() => {\r\n const y = style.transform\r\n ? Number(style.transform?.substring(style.transform.indexOf(',', 0) + 1, style.transform.length - 3))\r\n : undefined;\r\n return y;\r\n }, [style]);\r\n\r\n /** 是否加载图片 */\r\n const isImgShow = useMemo(() => {\r\n if (top === undefined) {\r\n return false;\r\n }\r\n if (top <= showBorder) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }, [top, showBorder]);\r\n\r\n const priceText = useMemo(() => {\r\n if (rec?.product?.currency && rec?.product?.price) {\r\n return `${rec?.product?.currency?.split('-')[1]?.toUpperCase() ?? ''}${\r\n rec?.product?.price?.toLocaleString('zh', {\r\n minimumFractionDigits: 0\r\n }) ?? ''\r\n }`;\r\n } else {\r\n return null;\r\n }\r\n }, [rec]);\r\n\r\n useEffect(() => {\r\n if (imgDom.current === null || src === '') {\r\n return;\r\n }\r\n let imgSrc = null;\r\n if (showVideo && firstFrameSrc) {\r\n imgSrc = firstFrameSrc;\r\n } else {\r\n imgSrc = src;\r\n }\r\n if (imgSrc) imgDom.current.setSrc(imgSrc);\r\n }, [src, showVideo, firstFrameSrc]);\r\n\r\n const pictRef = useRef<any>();\r\n\r\n const imgLoad = useCallback(\r\n (img: any) => {\r\n setTimeout(() => {\r\n const height = pictRef?.current?.offsetHeight;\r\n // 加56是因为下方文字部分高度为56,可以自己设置\r\n sizeChange(height + 56 + space, index);\r\n }, 0);\r\n },\r\n [space, sizeChange, index, unitWidth, pictRef]\r\n );\r\n\r\n const handleClickToDetail = () => {\r\n reportTagsView();\r\n setRtcList?.(list);\r\n setTimeout(() => {\r\n swiperRef?.current?.swiper.slideTo(index, 0, false);\r\n setOpenHashtag?.(false);\r\n }, 0);\r\n };\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n style={{\r\n ...style\r\n }}\r\n className={'waterFallList-content-listItem'}\r\n key={index}\r\n onClick={handleClickToDetail}\r\n >\r\n <div className={'waterFallList-content-listItem-picture'} ref={pictRef}>\r\n <FormatImage\r\n loading='lazy'\r\n className='waterFallList-content-listItem-picture-img'\r\n onLoad={imgLoad}\r\n ref={imgDom}\r\n />\r\n </div>\r\n <div className={'waterFallList-content-listItem-info'}>\r\n <div\r\n className={`${'waterFallList-content-listItem-info-title'} ${\r\n priceText ? 'waterFallList-content-listItem-info-nowrap' : ''\r\n }`}\r\n style={{\r\n ...textStyles?.title\r\n }}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(title, textStyles?.title)\r\n }}\r\n ></div>\r\n <div\r\n className={'waterFallList-content-listItem-info-price'}\r\n hidden={!priceText}\r\n style={textStyles.price}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(priceText, textStyles?.price)\r\n }}\r\n ></div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default function WaterfallList({ reportTagsView, showBanner, ...props }: any & IHashTagProps) {\r\n const { waterFallData, getRecommendVideos, hashTagSize, loadingImage, isOpenHashTag } = useSxpDataSource();\r\n\r\n /** 滚动的父元素 */\r\n const scrollParent = useRef(null);\r\n /** 向上滚动的距离 */\r\n const [scrollTop, setScrollTop] = useState(0);\r\n /** 数据列表 */\r\n const [data, setData] = useState<RecommendVideoResultType>();\r\n const waterfallFlowDom = useRef(null);\r\n /** 样式列表 */\r\n const [styleList, setStyleList] = useState<React.CSSProperties[]>([]);\r\n const styleListRef = useRef<any>();\r\n /** 自定义骨架屏高度 */\r\n const heightList = [170, 230, 300];\r\n /** 到达底部 */\r\n const [isLoadingData, setIsLoadingData] = useState(false);\r\n const [list, setList] = useState<RecItemType[]>([]);\r\n const buttonRef = useRef<any>();\r\n /** 生成随机数 */\r\n const createRandomNum = useCallback((min: number, max: number): number => {\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n }, []);\r\n\r\n const waterfallFlowListInfo = useRef<\r\n {\r\n left: number;\r\n top: number;\r\n height: number;\r\n }[]\r\n >([]);\r\n\r\n /** 当前容器信息 */\r\n const [frameInfo, setFrameInfoInfo] = useState<{\r\n width: number;\r\n }>({ width: 0 });\r\n\r\n /** 每行个数 */\r\n const rowsNum = useMemo(() => {\r\n const width = frameInfo.width || 0;\r\n if (width >= 1200) {\r\n return 6;\r\n } else if (width >= 768 && width <= 1199) {\r\n return 4;\r\n } else {\r\n return 2;\r\n }\r\n }, [frameInfo]);\r\n\r\n /** 每一个的宽度 */\r\n const unitWidth = useMemo(() => {\r\n return frameInfo.width / rowsNum - 2;\r\n }, [rowsNum, frameInfo]);\r\n\r\n /** 获取位置 */\r\n const getStyleList = useCallback(() => {\r\n const temporaryStyleList: React.CSSProperties[] = styleListRef.current ?? [];\r\n /** 目前最下一行的index */\r\n const bottomItemIndex = [];\r\n for (let i = 0; i < list?.length; i++) {\r\n // 原本应对应的行数\r\n const currentRow = Math.floor(i / rowsNum);\r\n const remainder = (i % rowsNum) + 1;\r\n\r\n // 最低item下标\r\n let minHeightInd = 0;\r\n // 最低高度\r\n let minHeight = 9999999999;\r\n // 寻找最低高度的下标\r\n if (currentRow === 0) {\r\n bottomItemIndex[i] = i;\r\n } else {\r\n for (let j = 0; j < bottomItemIndex.length; j++) {\r\n if (\r\n waterfallFlowListInfo.current[bottomItemIndex[j]].top +\r\n waterfallFlowListInfo.current[bottomItemIndex[j]].height <\r\n minHeight\r\n ) {\r\n minHeightInd = j;\r\n minHeight =\r\n waterfallFlowListInfo.current[bottomItemIndex[j]].top +\r\n waterfallFlowListInfo.current[bottomItemIndex[j]].height;\r\n }\r\n }\r\n bottomItemIndex[minHeightInd] = i;\r\n }\r\n\r\n if (waterfallFlowListInfo.current[i] === undefined) {\r\n waterfallFlowListInfo.current[i] = {} as any;\r\n }\r\n\r\n // 第一行特殊处理,一定是从左到右铺的\r\n if (currentRow === 0) {\r\n if (remainder === 1) {\r\n waterfallFlowListInfo.current[i].left = 0;\r\n } else {\r\n waterfallFlowListInfo.current[i].left = waterfallFlowListInfo.current[i - 1].left + unitWidth + 4;\r\n }\r\n waterfallFlowListInfo.current[i].top = 0;\r\n }\r\n // 剩下的行数,铺在当前最低高度下面\r\n else {\r\n waterfallFlowListInfo.current[i].left = waterfallFlowListInfo.current[minHeightInd].left;\r\n waterfallFlowListInfo.current[i].top = minHeight;\r\n }\r\n\r\n // 是否已经有高度,有高度使用已有高度,否则随机生成\r\n waterfallFlowListInfo.current[i].height =\r\n waterfallFlowListInfo.current[i].height || heightList[createRandomNum(0, 2)];\r\n temporaryStyleList[i] = {\r\n transform: `translate(${waterfallFlowListInfo.current[i].left}px,${waterfallFlowListInfo.current[i].top}px)`,\r\n width: `${unitWidth}px`,\r\n height: waterfallFlowListInfo.current[i].height\r\n };\r\n }\r\n setStyleList([...temporaryStyleList]);\r\n return [...temporaryStyleList];\r\n }, [unitWidth, rowsNum, heightList, createRandomNum, list]);\r\n\r\n /** 图片加载完更新高度 */\r\n const onSizeChange = useCallback(\r\n (height: number, index: number) => {\r\n if (waterfallFlowListInfo.current[index] === undefined) {\r\n waterfallFlowListInfo.current[index] = {} as any;\r\n }\r\n waterfallFlowListInfo.current[index].height = height;\r\n styleListRef.current = getStyleList();\r\n },\r\n [getStyleList]\r\n );\r\n\r\n /** 大小、数量发生变化时触发 */\r\n useEffect(() => {\r\n styleListRef.current = getStyleList();\r\n }, [unitWidth, rowsNum, list]); /* 增加getStyleList依赖项会导致在admin预览编辑时无限刷新 */\r\n\r\n /** 初始化请求数据 */\r\n useEffect(() => {\r\n setIsLoadingData(true);\r\n waterFallData &&\r\n getRecommendVideos?.({\r\n hashTag: waterFallData?.hashTag,\r\n 'itemFilter.itemId': waterFallData?.itemId,\r\n 'itemFilter.itemType': waterFallData?.itemType,\r\n defaultSize: hashTagSize,\r\n maxSize: hashTagSize\r\n }).then((res) => {\r\n setData(res);\r\n setList(res?.recList?.filter((item) => item?.video !== null || item?.product !== null) ?? []);\r\n setIsLoadingData(false);\r\n });\r\n if (isOpenHashTag) {\r\n const res = previewData as any;\r\n setData(res);\r\n setList(res?.recList?.filter((item: any) => item?.video !== null || item?.product !== null) ?? []);\r\n setIsLoadingData(false);\r\n }\r\n }, [waterFallData, getRecommendVideos, hashTagSize, isOpenHashTag]);\r\n\r\n const onResize = useCallback(() => {\r\n if (waterfallFlowDom.current === null) {\r\n return;\r\n }\r\n setFrameInfoInfo({\r\n width: (waterfallFlowDom.current as HTMLDivElement).getBoundingClientRect().width\r\n });\r\n }, []);\r\n\r\n /** 监听列表容器大小变化 */\r\n useEffect(() => {\r\n if (waterfallFlowDom.current === null) {\r\n return;\r\n }\r\n const resizeObserver = new ResizeObserver((entries) => {\r\n onResize();\r\n });\r\n resizeObserver.observe(waterfallFlowDom.current);\r\n return () => {\r\n resizeObserver.disconnect();\r\n };\r\n }, [onResize]);\r\n\r\n const loadMoreData = useCallback(() => {\r\n setIsLoadingData(true);\r\n\r\n waterFallData &&\r\n getRecommendVideos?.({\r\n hashTag: waterFallData?.hashTag,\r\n 'itemFilter.itemId': waterFallData?.itemId,\r\n 'itemFilter.itemType': waterFallData?.itemType\r\n }).then((res) => {\r\n setList(list?.concat(res?.recList?.filter((item) => !item?.video) ?? []));\r\n setIsLoadingData(false);\r\n });\r\n }, [waterFallData, getRecommendVideos, list]);\r\n\r\n const onScroll = useCallback(() => {\r\n // 记录滚动值\r\n setScrollTop((scrollParent.current as any).scrollTop);\r\n // const top = (scrollParent.current as any).scrollTop;\r\n // const clientHeight = (scrollParent.current as any).clientHeight;\r\n // const scrollHeight = (scrollParent.current as any).scrollHeight;\r\n\r\n // // 做底部加载\r\n // if (scrollHeight <= top + clientHeight && !isLoadingData) {\r\n // loadMoreData();\r\n // }\r\n }, []);\r\n\r\n /** 监听滚动 */\r\n useEffect(() => {\r\n (scrollParent?.current as any)?.addEventListener('scroll', onScroll);\r\n return () => {\r\n (scrollParent?.current as any)?.removeEventListener('scroll', onScroll);\r\n };\r\n }, [onScroll, scrollParent]);\r\n\r\n const handleClickLink = () => {\r\n if (data?.tag?.link) {\r\n reportTagsView();\r\n window.location.href = window.getJointUtmLink(data?.tag?.link);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {isLoadingData ? (\r\n <div style={{ height: '100%', width: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center' }}>\r\n <img width={64} height={64} src={loadingImage} alt='loading...' style={{ objectFit: 'contain' }} />\r\n </div>\r\n ) : (\r\n <div className={'waterFallList'} ref={waterfallFlowDom}>\r\n <div className={'waterFallList-scroll'} ref={scrollParent}>\r\n {showBanner && data?.tag?.picture && (\r\n <div onClick={handleClickLink}>\r\n <FormatImage\r\n className={css({\r\n width: '100%',\r\n objectFit: 'cover',\r\n marginBottom: '20px'\r\n })}\r\n src={data?.tag?.picture}\r\n />\r\n </div>\r\n )}\r\n <div\r\n className={'waterFallList-info'}\r\n style={props?.textStyles?.hashTagDesc}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(data?.tag?.info, props?.textStyles?.hashTagDesc)\r\n }}\r\n ></div>\r\n <div\r\n hidden={!data?.tag?.link}\r\n className={'waterFallList-collection'}\r\n style={{ ...props?.textStyles?.hashTagLink }}\r\n onClick={handleClickLink}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(data?.tag?.linkTitle || 'Shop the collection', props?.textStyles?.hashTagLink)\r\n }}\r\n ></div>\r\n <div className={'waterFallList-content'}>\r\n {list?.map((item, ind) => {\r\n return (\r\n <WaterfallFlowItem\r\n key={ind}\r\n index={ind}\r\n rec={item}\r\n list={list}\r\n showBorder={scrollTop + (scrollParent?.current as any)?.clientHeight}\r\n style={styleList[ind]}\r\n sizeChange={onSizeChange}\r\n unitWidth={unitWidth}\r\n reportTagsView={reportTagsView}\r\n {...props}\r\n />\r\n );\r\n })}\r\n <div\r\n hidden={!data?.tag?.link}\r\n style={{\r\n position: 'absolute',\r\n width: '100%',\r\n transform: `translate(0px,${\r\n waterfallFlowListInfo?.current[waterfallFlowListInfo?.current?.length - 1]?.top +\r\n waterfallFlowListInfo?.current[waterfallFlowListInfo?.current?.length - 1]?.height ?? 0\r\n }px)`,\r\n height: data?.tag?.link\r\n ? buttonRef?.current?.offsetHeight || props?.buttonBgStyle?.height || '100px'\r\n : 0\r\n }}\r\n ></div>\r\n </div>\r\n </div>\r\n <div className={'waterFallList-bottom'} hidden={!data?.tag?.link} style={props?.buttonBgStyle}></div>\r\n <div\r\n ref={buttonRef}\r\n hidden={!data?.tag?.link}\r\n className='waterFallList-btn-wrap'\r\n style={{ ...props?.buttonBgStyle, height: 'auto', backgroundColor: 'transparent' }}\r\n >\r\n <button\r\n aria-label={data?.tag?.linkTitle || 'Shop the collection'}\r\n className={'waterFallList-btn'}\r\n style={props?.buttonStyle}\r\n onClick={handleClickLink}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(data?.tag?.linkTitle || 'Shop the collection', props?.buttonStyle)\r\n }}\r\n ></button>\r\n </div>\r\n </div>\r\n )}\r\n </>\r\n );\r\n}\r\n","var img = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAaZJREFUeF7t2jFKBEEQRuG3mSJeQTARURDMTL2EqXfwAnoKD6FHMDEzNVIw2tzQC2gFggyDrExX1V92T7wz9PumFnqbXdH5teq8nwEwJqBzgfEVKDYAW8Ae8NZq3ZUm4Aa4AnaBR+C8BUIVAIu/ngSfAs9LESoAWLgB/LzWwP7SeLtfHWAu3tZ9Adz/dwD3eOUJCIlXBQiLVwQIjVcDCI9XAkiJVwFIi1cASI3PBpjb3jbd5GyyUcraCUrEZ02ATHwGgFR8NIBcfCSAZHwUgGx8BIB0vDeAfLwnQIl4L4Ay8R4ApeJbA2wD78DOZA/e7ABzk739Xz/T8rfAIfA6WYCd3BqA7NUSwCKfgLNKCK0BjoC7rzP74yoIrQGsuxSCB0ApBC+AMgieACUQvAHkESIApBGiAGQRIgEkEaIB5BAyAKQQsgBkEDIBJBCyAdIRFABSEVQA0hCUAFIQ1ADCERQBQhFUAcIQlAFCENQBfkOwg9eXpeftFQDmEOzv8ifARy8A3wiXwAHwANwujbf7q0xAi9bZZwwAN9oiDx4TUORFuS2z+wn4BAiAaEHnKChjAAAAAElFTkSuQmCC\";\n export default img;","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-03-20 10:27:31\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-07-04 18:48:12\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageRender\\WaterFall\\List.tsx\r\n *\r\n */\r\nimport React, { useState, useEffect, useMemo, useRef, useCallback } from 'react';\r\nimport { RecItemType, RecommendVideoResultType } from '../typing';\r\nimport './List.less';\r\nimport FormatImage from '../FormatImage';\r\nimport previewData from './preview.json';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\nimport { IHashTagProps } from '@/materials/sxp/HashTag';\r\nimport { css } from '@emotion/css';\r\nimport { setFontForText } from '@/core/utils/tool';\r\ninterface WaterfallFlowItemProps {\r\n index: number;\r\n rec: RecItemType;\r\n list: RecItemType[];\r\n reportTagsView: () => void;\r\n}\r\nconst WaterfallFlowItem = (props: WaterfallFlowItemProps & IHashTagProps) => {\r\n const { rec, index, list, reportTagsView, textStyles, space } = props;\r\n const { swiperRef, setRtcList, setOpenHashtag, bffEventReport, sxpParameter } = useSxpDataSource();\r\n const [showVideo, setShowVideo] = useState(false);\r\n const imgDom = useRef<any>(null);\r\n const ref = useRef<any>(null);\r\n\r\n const videoDom = useRef<any>(null);\r\n const canvasRef = useRef(null);\r\n const [firstFrameSrc, setFirstFrameSrc] = useState('');\r\n const src = useMemo(() => {\r\n if (rec?.video?.cover) {\r\n return rec?.video?.cover;\r\n } else if (rec?.video?.imgUrls?.length) {\r\n return rec?.video?.imgUrls?.[0];\r\n } else if (rec?.product?.homePage?.length) {\r\n return rec?.product?.homePage?.[0];\r\n } else {\r\n return sxpParameter?.bottom_image || '';\r\n }\r\n }, [rec, sxpParameter?.bottom_image]);\r\n\r\n const title = useMemo(() => {\r\n return rec?.product?.title || rec?.video?.title || null;\r\n }, [rec]);\r\n\r\n const priceText = useMemo(() => {\r\n if (rec?.product?.currency && rec?.product?.price) {\r\n return `${rec?.product?.currency?.split('-')[1]?.toUpperCase() ?? ''}${\r\n rec?.product?.price?.toLocaleString('zh', {\r\n minimumFractionDigits: 0\r\n }) ?? ''\r\n }`;\r\n } else {\r\n return null;\r\n }\r\n }, [rec]);\r\n\r\n // useEffect(() => {\r\n // if (imgDom.current === null || src === '') {\r\n // return;\r\n // }\r\n // const img = new Image();\r\n // if (showVideo && firstFrameSrc) {\r\n // img.src = firstFrameSrc;\r\n // } else {\r\n // img.src = src;\r\n // }\r\n // // img.onload = () => {\r\n // // setIsLoading(true);\r\n // // };\r\n // imgDom.current.src = img.src;\r\n // }, [src, showVideo, firstFrameSrc]);\r\n\r\n useEffect(() => {\r\n const observer = new IntersectionObserver((entries) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting) {\r\n if (ref.current === null || src === '') {\r\n return;\r\n }\r\n if (showVideo && firstFrameSrc) {\r\n imgDom.current.setSrc(firstFrameSrc);\r\n } else {\r\n imgDom.current.setSrc(src);\r\n }\r\n observer.unobserve(ref.current);\r\n }\r\n });\r\n });\r\n\r\n observer.observe(ref.current);\r\n\r\n return () => {\r\n observer.disconnect();\r\n };\r\n }, [src, showVideo, firstFrameSrc]);\r\n\r\n const calculateHeightForWidth = (videoWidth: any, videoHeight: any, targetWidth: any) => {\r\n const aspectRatio = videoWidth / videoHeight;\r\n const targetHeight = targetWidth / aspectRatio;\r\n return targetHeight;\r\n };\r\n\r\n useEffect(() => {\r\n const video = videoDom?.current;\r\n if (video === null || src === '' || !showVideo) {\r\n return;\r\n }\r\n video.src = src;\r\n video.currentTime = 1;\r\n video.crossOrigin = 'anonymous';\r\n video.onloadeddata = () => {\r\n const canvas = canvasRef?.current as any;\r\n if (!canvas) return;\r\n const ctx = canvas.getContext('2d');\r\n const targetWidth = window?.innerWidth / 2;\r\n const targetHeight = calculateHeightForWidth(video.videoWidth, video.videoHeight, targetWidth);\r\n canvas.height = targetHeight;\r\n canvas.width = targetWidth;\r\n ctx?.drawImage(video, 0, 0, canvas.width, canvas.height);\r\n setFirstFrameSrc(canvas.toDataURL());\r\n video.remove();\r\n canvas.remove();\r\n };\r\n }, [src, showVideo]);\r\n\r\n const handleClickToDetail = () => {\r\n reportTagsView();\r\n setRtcList?.(list);\r\n setTimeout(() => {\r\n swiperRef?.current?.swiper.slideTo(index, 0, false);\r\n setOpenHashtag?.(false);\r\n }, 0);\r\n };\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={'list-content-listItem'}\r\n key={index}\r\n onClick={handleClickToDetail}\r\n style={{ marginBottom: space }}\r\n >\r\n <div className={'list-content-listItem-picture'}>\r\n {showVideo && (\r\n <div style={{ display: 'none' }}>\r\n <video ref={videoDom} crossOrigin='anonymous' className='list-content-listItem-picture-img' />\r\n <canvas ref={canvasRef} />\r\n </div>\r\n )}\r\n <FormatImage loading='lazy' className='list-content-listItem-picture-img' ref={imgDom} />\r\n </div>\r\n <div className={'list-content-listItem-info'}>\r\n <div\r\n className={`${'list-content-listItem-info-title'} ${priceText ? 'list-content-listItem-info-nowrap' : ''}`}\r\n style={textStyles?.title}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(title, textStyles?.title)\r\n }}\r\n ></div>\r\n <div\r\n className={'list-content-listItem-info-price'}\r\n style={textStyles?.price}\r\n hidden={!priceText}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(priceText, textStyles?.price)\r\n }}\r\n ></div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default function WaterfallList({ reportTagsView, showBanner, ...props }: any & IHashTagProps) {\r\n const { waterFallData, getRecommendVideos, hashTagSize, loadingImage, isOpenHashTag } = useSxpDataSource();\r\n const [list, setList] = useState<RecItemType[]>();\r\n const [data, setData] = useState<RecommendVideoResultType>();\r\n const [isLoadingData, setIsLoadingData] = useState(false);\r\n const containerRef = useRef<any>(null);\r\n const [isLoadMore, setIsLoadMore] = useState(false);\r\n\r\n const loadMoreData = useCallback(() => {\r\n if (isLoadMore) return;\r\n setIsLoadMore(true);\r\n waterFallData &&\r\n getRecommendVideos?.({\r\n hashTag: waterFallData?.hashTag,\r\n 'itemFilter.itemId': waterFallData?.itemId,\r\n 'itemFilter.itemType': waterFallData?.itemType\r\n }).then((res) => {\r\n setList(list?.concat(res?.recList ?? []));\r\n setIsLoadMore(false);\r\n });\r\n }, [waterFallData, getRecommendVideos, list, isLoadMore]);\r\n\r\n useEffect(() => {\r\n setIsLoadingData(true);\r\n waterFallData &&\r\n getRecommendVideos?.({\r\n hashTag: waterFallData?.hashTag,\r\n 'itemFilter.itemId': waterFallData?.itemId,\r\n 'itemFilter.itemType': waterFallData?.itemType,\r\n defaultSize: hashTagSize,\r\n maxSize: hashTagSize\r\n }).then((res) => {\r\n setData(res);\r\n setList(res?.recList?.filter((item) => item?.video !== null || item?.product !== null) ?? []);\r\n setIsLoadingData(false);\r\n });\r\n if (isOpenHashTag) {\r\n const res = previewData as any;\r\n setData(res);\r\n setList(res?.recList?.filter((item: any) => item?.video !== null || item?.product !== null) ?? []);\r\n setIsLoadingData(false);\r\n }\r\n }, [waterFallData, getRecommendVideos, hashTagSize, isOpenHashTag]);\r\n\r\n // useEffect(() => {\r\n // const container = containerRef?.current;\r\n // if (!container) return;\r\n // const handleScroll = () => {\r\n // const top = (container as any)?.scrollTop;\r\n // const clientHeight = (container as any)?.clientHeight;\r\n // const scrollHeight = (container as any)?.scrollHeight;\r\n // if (scrollHeight <= top + clientHeight && !isLoadingData) {\r\n // loadMoreData();\r\n // }\r\n // };\r\n // container?.addEventListener('scroll', handleScroll);\r\n // return () => {\r\n // container?.removeEventListener('scroll', handleScroll); // 在组件卸载时移除事件监听器\r\n // };\r\n // }, [isLoadingData, containerRef, loadMoreData]);\r\n\r\n const handleClickLink = () => {\r\n if (data?.tag?.link) {\r\n reportTagsView();\r\n window.location.href = window.getJointUtmLink(data?.tag?.link);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {isLoadingData ? (\r\n <div style={{ height: '100%', width: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center' }}>\r\n <img width={64} height={64} src={loadingImage} alt='loading...' style={{ objectFit: 'contain' }} />\r\n </div>\r\n ) : (\r\n <div className={'list'}>\r\n <div className={'list-scroll'} ref={containerRef}>\r\n {showBanner && data?.tag?.picture && (\r\n <div onClick={handleClickLink}>\r\n <FormatImage\r\n className={css({\r\n width: '100%',\r\n objectFit: 'cover',\r\n marginBottom: '20px'\r\n })}\r\n src={data?.tag?.picture}\r\n />\r\n </div>\r\n )}\r\n <div\r\n className={'list-info'}\r\n style={props?.textStyles?.hashTagDesc}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(data?.tag?.info, props?.textStyles?.hashTagDesc)\r\n }}\r\n ></div>\r\n <div\r\n hidden={!data?.tag?.link}\r\n className={'list-collection'}\r\n onClick={handleClickLink}\r\n style={{ ...props?.textStyles?.hashTagLink, marginBottom: props?.space }}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(data?.tag?.linkTitle || 'Shop the collection', props?.textStyles?.hashTagLink)\r\n }}\r\n ></div>\r\n <div className={'list-content'}>\r\n {list?.map((item, ind) => {\r\n return (\r\n <WaterfallFlowItem\r\n key={ind}\r\n index={ind}\r\n rec={item}\r\n list={list}\r\n reportTagsView={reportTagsView}\r\n {...props}\r\n />\r\n );\r\n })}\r\n </div>\r\n <div hidden={!isLoadMore} style={{ textAlign: 'center' }}>\r\n loading...\r\n </div>\r\n <div\r\n hidden={!data?.tag?.link}\r\n style={{\r\n height: data?.tag?.link ? props?.buttonBgStyle?.height || props?.buttonStyle?.height || '100px' : 0\r\n }}\r\n ></div>\r\n </div>\r\n <div className={'list-bottom'} hidden={!data?.tag?.link} style={props?.buttonBgStyle}></div>\r\n <div\r\n hidden={!data?.tag?.link}\r\n className='list-btn-wrap'\r\n style={{ ...props?.buttonBgStyle, height: 'auto', backgroundColor: 'transparent' }}\r\n >\r\n <button\r\n aria-label={data?.tag?.linkTitle || 'Shop the collection'}\r\n className={'list-btn'}\r\n style={props?.buttonStyle}\r\n onClick={handleClickLink}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(data?.tag?.linkTitle || 'Shop the collection', props?.buttonStyle)\r\n }}\r\n ></button>\r\n </div>\r\n </div>\r\n )}\r\n </>\r\n );\r\n}\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-01-10 10:58:24\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-20 12:45:26\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageRender\\WaterFall\\index.tsx\r\n *\r\n */\r\nimport React, { FC, memo, useCallback, useEffect, useRef, useState } from 'react';\r\nimport * as ReactDOM from 'react-dom';\r\nimport './index.less';\r\nimport { isEqual } from 'lodash';\r\nimport Navbar from '../Navbar';\r\nimport WaterfallList from './WaterfallList';\r\nimport left from './left.png';\r\nimport List from './List';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\nimport { IWaterFallDataType } from '@/core/context/SxpDataSourceProvider';\r\nimport { IHashTagProps } from '@/materials/sxp/HashTag';\r\nimport { useEventReport } from '@/core/hooks/useEventReport';\r\ninterface IWaterFallProps {}\r\n\r\nconst WaterFall: FC<IWaterFallProps & IHashTagProps> = (props) => {\r\n const {\r\n waterFallData,\r\n setOpenHashtag,\r\n openHashtag,\r\n swiperRef,\r\n setWaterFallData,\r\n cacheRtcList,\r\n setRtcList,\r\n cacheActiveIndex,\r\n rtcList,\r\n setCacheRtcList,\r\n setIsFromHashtag,\r\n isFromHashtag,\r\n bffEventReport,\r\n themeTag,\r\n selectTag\r\n } = useSxpDataSource();\r\n const { backMainFeed } = useEventReport();\r\n const ref = useRef<HTMLElement | null>(null);\r\n const modalEleRef = useRef<HTMLElement | null>(null);\r\n const [viewTime, setViewTime] = useState<any>();\r\n\r\n useEffect(() => {\r\n const parentNode = document.getElementById('sxp-render');\r\n const node = document.getElementById('water-fall');\r\n if (node) {\r\n modalEleRef.current = node;\r\n } else {\r\n modalEleRef.current = document.createElement('div');\r\n modalEleRef.current.setAttribute('id', 'water-fall');\r\n parentNode?.appendChild(modalEleRef.current);\r\n }\r\n }, []);\r\n\r\n const handleClose = () => {\r\n const isEq = isEqual(rtcList, cacheRtcList);\r\n if (!isEq && cacheRtcList && cacheRtcList?.length) {\r\n setRtcList?.(cacheRtcList);\r\n }\r\n backMainFeed('branch', selectTag, undefined, waterFallData?.hashTag);\r\n reportTagsView();\r\n setWaterFallData?.(undefined);\r\n setIsFromHashtag?.(false);\r\n setTimeout(() => {\r\n if (!isEq) {\r\n swiperRef?.current?.swiper?.slideTo(cacheActiveIndex, 0, false);\r\n }\r\n setOpenHashtag?.(false);\r\n }, 0);\r\n };\r\n\r\n const [recData, setRecData] = useState<IWaterFallDataType>();\r\n\r\n useEffect(() => {\r\n if (waterFallData) {\r\n setRecData(waterFallData);\r\n }\r\n }, [waterFallData]);\r\n\r\n const reportTagsView = useCallback(() => {\r\n const rec = recData?.rec;\r\n if (!rec) return;\r\n let fromKName = '';\r\n if (isFromHashtag) {\r\n fromKName = 'hashTagPage';\r\n } else if (rec?.video?.url) {\r\n fromKName = 'videoPage';\r\n } else if (rec?.video?.imgUrls?.length) {\r\n fromKName = 'imagePage';\r\n }\r\n bffEventReport?.({\r\n eventInfo: {\r\n contentId: rec?.video?.itemId,\r\n position: cacheActiveIndex + '',\r\n contentTags: JSON.stringify(rec?.video?.tags),\r\n traceInfo: rec?.video?.traceInfo,\r\n hashTags: JSON.stringify([recData?.hashTag]),\r\n fromKName,\r\n fromKPage: location?.href,\r\n timeOnSite: Math.floor(((new Date() as any) - viewTime) / 1000) + '',\r\n eventSubject: 'clickTagsViewContents',\r\n eventDescription: 'User click tags view contents'\r\n }\r\n });\r\n }, [recData, bffEventReport, viewTime, isFromHashtag, cacheActiveIndex]);\r\n\r\n useEffect(() => {\r\n if (openHashtag) {\r\n setViewTime(new Date());\r\n }\r\n }, [openHashtag]);\r\n\r\n useEffect(() => {\r\n const initTime = () => {\r\n setViewTime(new Date());\r\n };\r\n window.addEventListener('pageshow', initTime);\r\n return () => {\r\n window.removeEventListener('pageshow', initTime);\r\n };\r\n }, []);\r\n\r\n if (!modalEleRef.current) return null;\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className='waterfall'\r\n style={{\r\n display: openHashtag ? 'block' : 'none'\r\n }}\r\n >\r\n <Navbar icon={left} styles={{ top: '32px' }} textStyle={props?.textStyles?.hashTagTitle} onClose={handleClose} />\r\n {props?.openFixedSize === true || props?.openFixedSize === undefined ? (\r\n <List reportTagsView={reportTagsView} {...props} />\r\n ) : (\r\n <WaterfallList reportTagsView={reportTagsView} {...props} />\r\n )}\r\n </div>,\r\n modalEleRef.current\r\n );\r\n};\r\nexport default memo(WaterFall);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-01-15 19:03:09\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-04-29 19:08:34\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\HashTag\\index.tsx\r\n *\r\n */\r\nimport React, { CSSProperties, FC, memo } from 'react';\r\nimport WaterFall from '@/core/components/SxpPageRender/WaterFall';\r\n\r\nexport interface IHashTagProps {\r\n lineClamp: number;\r\n space: number;\r\n buttonStyle: CSSProperties;\r\n textStyles: {\r\n hashTagTitle: CSSProperties;\r\n hashTagDesc: CSSProperties;\r\n hashTagLink: CSSProperties;\r\n title: CSSProperties;\r\n price: CSSProperties;\r\n };\r\n buttonBgStyle: CSSProperties;\r\n showBanner?: boolean;\r\n openFixedSize?: boolean;\r\n}\r\n\r\nconst HashTag: FC<IHashTagProps> = (props) => {\r\n return <WaterFall {...props} />;\r\n};\r\n\r\nexport default memo(HashTag);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-07-04 18:38:10\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\HashTag\\material.tsx\r\n *\r\n */\r\nimport settingRender from './settingRender';\r\nimport HashTagComponent from '.';\r\nimport { createMaterial } from '@/core/create';\r\n\r\nconst HashTag = createMaterial(HashTagComponent, {\r\n displayName: '',\r\n icon: '',\r\n category: 'base',\r\n type: 'HashTag',\r\n related: {\r\n settingRender,\r\n bindableProps: []\r\n },\r\n defaulSetting: {\r\n props: {\r\n lineClamp: 1,\r\n space: 40,\r\n textStyles: {\r\n hashTagTitle: {\r\n fontSize: 16,\r\n color: '#000',\r\n textAlign: 'center'\r\n },\r\n hashTagDesc: {\r\n fontSize: 12,\r\n textAlign: 'center',\r\n color: '#000'\r\n },\r\n hashTagLink: {\r\n textAlign: 'center',\r\n color: '#757575',\r\n fontSize: 12,\r\n textDecoration: 'underline'\r\n },\r\n title: {\r\n fontSize: 12,\r\n color: '#000'\r\n },\r\n price: {\r\n fontSize: 12,\r\n fontWeight: 'bold',\r\n color: '#000'\r\n }\r\n },\r\n buttonStyle: {\r\n backgroundColor: '#000',\r\n fontSize: 12,\r\n height: 52,\r\n fontWeight: 'bold',\r\n textAlign: 'center',\r\n color: '#fff',\r\n borderRadius: 25\r\n },\r\n buttonBgStyle: {\r\n backgroundColor: '#fff',\r\n height: 52,\r\n paddingTop: 20,\r\n paddingLeft: 20,\r\n paddingRight: 20,\r\n paddingBottom: 20\r\n }\r\n }\r\n },\r\n w: 100,\r\n h: 40,\r\n sort: 2\r\n});\r\n\r\nexport { HashTag };\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-06-13 10:08:32\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-13 17:42:50\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\Consent\\settingRender.tsx\r\n *\r\n */\r\nexport default [\r\n {\r\n title: '协议详情',\r\n child: [\r\n {\r\n type: 'Switch',\r\n label: '必须同意用户协议',\r\n name: ['props', 'privacy_necessity'],\r\n extra: '当新用户进入页面时,会出现用户协议弹窗,用户需要先同意协议后才能访问内容。'\r\n },\r\n {\r\n type: 'Text',\r\n label: '弹窗标题',\r\n name: ['props', 'privacy_title']\r\n },\r\n {\r\n type: 'TextArea',\r\n label: '用户协议弹窗内容',\r\n name: ['props', 'privacy_context']\r\n },\r\n {\r\n type: 'Group',\r\n label: '隐私政策',\r\n child: [\r\n {\r\n type: 'Text',\r\n name: ['props', 'privacy_policy_title']\r\n },\r\n {\r\n type: 'Text',\r\n name: ['props', 'privacy_policy_url'],\r\n addonBefore: 'https://'\r\n }\r\n ],\r\n extra: '当用户点击更多信息按钮时,将会跳转至设置的链接查看政策内容'\r\n }\r\n ]\r\n }\r\n];\r\n","import React, { FC, memo } from 'react';\r\n\r\nexport interface IConsentProps {\r\n width?: number;\r\n height?: number;\r\n privacy_title?: string;\r\n privacy_context?: string;\r\n privacy_policy_url?: string;\r\n privacy_policy_title?: string;\r\n privacy_necessity?: boolean;\r\n}\r\n\r\nconst Consent: FC<IConsentProps> = (props) => {\r\n return <Consent {...props}></Consent>;\r\n};\r\n\r\nexport default memo(Consent);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-28 18:29:57\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-13 17:32:17\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\sxp\\Consent\\material.tsx\r\n *\r\n */\r\nimport settingRender from './settingRender';\r\nimport ConsentComponent from '.';\r\nimport { createMaterial } from '@/core/create';\r\n\r\nconst Consent = createMaterial(ConsentComponent, {\r\n displayName: 'Consent',\r\n icon: '',\r\n category: 'base',\r\n type: 'Consent',\r\n related: {\r\n settingRender\r\n },\r\n defaulSetting: {\r\n props: {},\r\n style: {}\r\n },\r\n w: 100,\r\n h: 40,\r\n sort: 1\r\n});\r\n\r\nexport { Consent };\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-07-25 14:56:49\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-03-20 13:46:06\r\n * @FilePath: \\pb-sxp-ui\\src\\materials\\index.ts\r\n *\r\n */\r\nexport * from './sxp';\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-12-27 19:02:59\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-05-23 14:49:42\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageRender\\LikeButton\\index.tsx\r\n *\r\n */\r\nimport React, { FC, memo, useState } from 'react';\r\nimport { debounce } from 'lodash';\r\nimport { RecItemType } from '../typing';\r\nimport { useIconLink } from '../useIconLink';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\n\r\nconst defaultUnLikeIconPath = '/pb_static/f71266d2c64446c5ae6a5a7f5489cc0a.png';\r\nconst defaultLikeIconPath = '/pb_static/f07900fe3f0f4ae188ea1611d4801a44.png';\r\n\r\ninterface ILikeProps extends React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement> {\r\n activeIcon?: string;\r\n unActicveIcon?: string;\r\n active?: boolean;\r\n recData: RecItemType;\r\n position: number;\r\n}\r\n\r\nconst LikeButton: FC<ILikeProps> = ({ active, activeIcon, unActicveIcon, recData, position, ...props }) => {\r\n const { mutateLike, mutateUnlike, bffEventReport } = useSxpDataSource();\r\n const [state, setState] = useState(active);\r\n\r\n const likeIcon = useIconLink(defaultLikeIconPath);\r\n const unlikeIcon = useIconLink(defaultUnLikeIconPath);\r\n\r\n const handleClick = debounce(async () => {\r\n if (state) {\r\n // 先设置状态\r\n setState(false);\r\n const result = (await mutateUnlike?.({ videoItemId: recData?.video?.itemId ?? '' })) ?? false;\r\n bffEventReport?.({\r\n eventInfo: {\r\n eventSubject: 'favoriteContentCanceled',\r\n eventDescription: 'This content was unfavorite by the user',\r\n contentId: recData?.video?.itemId ?? '',\r\n contentName: recData?.video?.title ?? '',\r\n contentTags: JSON.stringify(recData?.video?.tags ?? []),\r\n position: position + '',\r\n contentFormat: recData?.video?.url ? 'video' : 'image',\r\n traceInfo: recData?.video?.traceInfo\r\n }\r\n });\r\n // 如果接口调用失败,则回滚状态\r\n if (!result) {\r\n setState(true);\r\n }\r\n } else {\r\n setState(true);\r\n const result = (await mutateLike?.({ content: JSON.stringify(recData) })) ?? false;\r\n bffEventReport?.({\r\n eventInfo: {\r\n eventSubject: 'favoriteContent',\r\n eventDescription: 'This content was favorite by the user',\r\n contentId: recData?.video?.itemId ?? '',\r\n contentName: recData?.video?.title ?? '',\r\n contentTags: JSON.stringify(recData?.video?.tags ?? []),\r\n position: position + '',\r\n contentFormat: recData?.video?.url ? 'video' : 'image',\r\n traceInfo: recData?.video?.traceInfo\r\n }\r\n });\r\n if (!result) {\r\n setState(false);\r\n }\r\n }\r\n }, 200);\r\n\r\n return (\r\n <button {...props} aria-label='like' onClick={handleClick}>\r\n <img\r\n style={{ width: '100%', height: '100%', objectFit: 'contain' }}\r\n src={state ? activeIcon || likeIcon : unActicveIcon || unlikeIcon}\r\n alt='icon'\r\n />\r\n </button>\r\n );\r\n};\r\n\r\nexport default memo(LikeButton);\r\n","var img = \"data:image/gif;base64,R0lGODlhlgCWAPf/AAAAAICAgMzMzMzMzNXV1dXV1dXV1dfX19jOztjY2NvOztvb29zc3N/Pz9/V1d/f3+Pj4+bm5ubm5ujR0ejg4Ojo6Onp6erj4+rj4+rl5evr6+vr6+3k5O3t7e3t7e7u7u7u7u/v7/Dw8PDw8PHx8fHx8fHx8fLs7PLu7vLu7vLy8vPu7vPz8/Tp6fTx8fTx8fT09PT09PT09PXw8Pbx8fbz8/b29vb29vb29vb29vb29vf09Pf39/f39/f39/f39/f39/f39/f39/f39/f39/j09Pj09Pj19fj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pn29vn39/n5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fr09Pr4+Pr6+vr6+vr6+vr6+vr6+vr6+vr6+vr6+vr6+vr6+vr6+vv39/v39/v4+Pv5+fv5+fv6+vv7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/z4+Pz5+fz5+fz5+fz6+vz6+vz6+vz6+vz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/P36+v36+v36+v37+/37+/37+/37+/38/P38/P38/P38/P39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f78/P78/P78/P78/P7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/V1f/39//4+P/6+v/7+//8/P/8/P/9/f/9/f/9/f/9/f/+/v/+/v/+/v/+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wD/ACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAwBLACxFABcADwAMAIYAAACAgIDMzMzV1dXX19fYzs7Y2Njbzs7b29vc3Nzfz8/f1dXf39/j4+Pm5ubo0dHo4ODo6Ojp6enq4+Pq5eXr6+vt5OTt7e3u7u7v7+/w8PDx8fHy7Ozy7u7y8vLz7u7z8/P06en08fH09PT18PD28fH28/P29vb39PT39/f49PT49fX4+Pj59vb59/f5+fn69PT6+Pj6+vr79/f7+Pj7+fn7+vr7+/v8+Pj8+fn8+vr8/Pz9+vr9+/v9/Pz9/f3+/Pz+/v7/1dX/9/f/+Pj/+vr/+/v//Pz//f3//v7///8A/wD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8IUgCXCNzxI8gOJQV3CFy4RIkMJTccQnQYZCGShAgNZiS45MfDiB8lglzSQyPGk0FCqpwY8iBKlyZFyly5xKRNmAJrzGQJcWFJmDB1MBQ4MwnDgAAAIfkECQQA/wAsRwAXAA8ADAAACFMA/wkslAhcqWKJsLkRyPAfODfgujyM+LAYQ4QGMR4sWGrhRIkQQVJcyFGjyYJrRqoU2aXYxowlS7L8SBNiIZg4XwqcGfIjw5g5G/6zUROcDYYBAQAh+QQJAwD/ACxIABcAEAAMAAAIWwD/CfzXqVSxRNgSlRrIEAm4LuDcPIz4sBNDcAYTYTy4MVEigRMlQhRJsYvAjB1TGuxio6RLkhJDaURJk+PCkDhHTvxXc6bNgzxh5ow40E3Pjm4Y/lszNKnAgAAAIfkECQMA/wAsSgAXABEADQAACGUA/wn856YLtkSlBioceAScG3BdHEJ0uLBLsUTgSl3MuLFUooESIz4UOfHhvzYYNabs2PFflJIwSUZcU0olx5U4SyEJyXNkyH84bwotFepfzJ4TB7IMqrGLwlIyeUZZuNAjR4UBAQAh+QQJBAD/ACxMABcAEgAOAAAIaAD/CRTYpdTAgwgFgusCzs1CcGvAJfwXBVypYoksYtSYqNjBhw4Zhmy4kJvAUhczpuTIEds/kSBjwiy4caXNmhhH6pRJEiVOlT8t/iM5kyhRk0NvAgX6cWfRKBNLLdXYZiLCiEhCHQwIACH5BAkDAP8ALE4AGAATAA4AAAhkAP8JBOcGXBeCxQQqXCiwWCJwpRxClMhwYMGDFwka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\";\n export default img;","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nexport const mountVideoPlayerAtNode = (() => {\r\n if (typeof document === 'undefined') return;\r\n const playerContainer = document.createElement('div');\r\n const dom = ReactDOM.render(\r\n <video\r\n id='player-container-id'\r\n playsInline\r\n crossOrigin='anonymous'\r\n preload='auto'\r\n controls={false}\r\n muted\r\n style={{\r\n backgroundColor: 'transparent',\r\n width: '100%',\r\n height: '100%',\r\n objectFit: 'cover',\r\n pointerEvents: 'none'\r\n }}\r\n />,\r\n playerContainer\r\n );\r\n\r\n // 播放器的挂载节点\r\n return (domNode: any) => {\r\n if (!domNode) return;\r\n domNode.innerHTML = '';\r\n domNode.appendChild(dom);\r\n const videoPlayerWrapperNode = document.querySelector(`#player-container-id`);\r\n return videoPlayerWrapperNode;\r\n };\r\n})();\r\n","import React, { CSSProperties, FC, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport { useSwiperSlide } from 'swiper/react';\r\nimport { RecItemType } from '../typing';\r\nimport { useIconLink } from '../useIconLink';\r\nimport { postConfigType } from '..';\r\nimport FormatImage from '../FormatImage';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\nimport SXP_EVENT_BUS, { SXP_EVENT_TYPE } from '@/core/utils/event';\r\nimport loading_gif from './loading.gif';\r\nimport { transform } from 'lodash';\r\nimport { mountVideoPlayerAtNode } from './VideoPlayer';\r\n\r\ninterface IVideoWidgetProps {\r\n rec: RecItemType;\r\n index: number;\r\n height: number;\r\n data: RecItemType[];\r\n muted: boolean;\r\n activeIndex?: number;\r\n videoPostConfig?: postConfigType;\r\n videoPlayIcon?: string;\r\n}\r\n\r\nconst VideoWidget: FC<IVideoWidgetProps> = ({\r\n rec,\r\n index,\r\n height,\r\n data,\r\n muted,\r\n activeIndex,\r\n videoPostConfig,\r\n videoPlayIcon\r\n}) => {\r\n const [isPauseVideo, setIsPauseVideo] = useState(false);\r\n const { bffEventReport, sxpParameter, waterFallData, openHashtag, bffFbReport } = useSxpDataSource();\r\n const videoStartTime = useRef(0);\r\n const [isLoadFinish, setIsLoadFinish] = useState(false);\r\n const [isFirstPlay, setIsFirstPlay] = useState(true);\r\n const { isActive } = useSwiperSlide();\r\n const canvasRef = useRef(null);\r\n const [firstFrameSrc, setFirstFrameSrc] = useState('');\r\n const [waiting, setWaiting] = useState(false);\r\n const videoRef = useRef<any>();\r\n const videoId = `pb-cache-video-${index}`;\r\n const videoEleRef = useRef(null);\r\n\r\n const blur = useMemo(() => {\r\n return videoPostConfig?.mode === '2';\r\n }, [videoPostConfig]);\r\n\r\n const translateY = useMemo(() => {\r\n return videoPostConfig?.mode === '2'\r\n ? `translateY(-${50 + (videoPostConfig?.offsetTop ?? 0)}%) translate3d(0px, 0px, 0px)`\r\n : 'translateY(-50%)';\r\n }, [videoPostConfig]);\r\n\r\n const blurBgSrc = useMemo(() => {\r\n return rec?.video?.cover || firstFrameSrc;\r\n }, [firstFrameSrc, rec]);\r\n\r\n const blurStyle = useMemo(() => {\r\n return blur\r\n ? {\r\n filter: 'blur(10px)',\r\n transform: 'translate3d(0px, 0px, 0px) scale(1.2)'\r\n }\r\n : {};\r\n }, [blur]) as CSSProperties;\r\n\r\n const isBgColor = useMemo(() => {\r\n return videoPostConfig?.bgWay === '1';\r\n }, [videoPostConfig]);\r\n\r\n const bgStyle = useMemo(() => {\r\n return isBgColor && videoPostConfig?.bgColor ? { backgroundColor: videoPostConfig?.bgColor } : {};\r\n }, [videoPostConfig, isBgColor]) as CSSProperties;\r\n\r\n useEffect(() => {\r\n if (!videoRef?.current) return;\r\n videoRef.current.muted = muted;\r\n }, [muted, videoRef?.current]);\r\n\r\n const handlePlay = useCallback(() => {\r\n if (!videoRef?.current) return;\r\n videoRef?.current?.play();\r\n }, [videoRef?.current]);\r\n\r\n const PAUSE_ICON = useIconLink('/pb_static/06f28a2025c74c1cb49be6767316d827.png');\r\n\r\n const handlePlaying = useCallback(() => {\r\n if (!videoRef?.current) return;\r\n setWaiting(false);\r\n setIsLoadFinish(true);\r\n }, []);\r\n\r\n const handleStartPlay = useCallback(() => {\r\n if (!videoRef?.current) return;\r\n setIsPauseVideo(false);\r\n const item = data[index];\r\n if (item && videoRef?.current?.duration) {\r\n videoStartTime.current = videoRef?.current?.currentTime || 0;\r\n const videoDuration = (videoRef?.current?.duration ?? 0).toFixed(2);\r\n const videoCurrentTime = (videoRef?.current?.currentTime ?? 0).toFixed(2);\r\n const playType = isFirstPlay ? '0' : '1';\r\n bffEventReport?.({\r\n eventInfo: {\r\n eventSubject: 'playVideo',\r\n eventDescription: 'User played the video',\r\n contentId: item?.video?.itemId ?? '',\r\n contentName: item?.video?.title ?? '',\r\n playType,\r\n startTime: videoCurrentTime,\r\n videoDuration,\r\n contentTags: JSON.stringify(item?.video?.tags ?? []),\r\n position: index + '',\r\n contentFormat: 'video',\r\n traceInfo: item?.video?.traceInfo\r\n }\r\n });\r\n setIsFirstPlay(false);\r\n }\r\n }, [bffEventReport, data, index, isFirstPlay, videoRef?.current]);\r\n\r\n const handLoadeddata = useCallback(() => {\r\n if (!videoRef?.current || firstFrameSrc || !blur) return;\r\n videoRef.current.style.objectFit = 'contain';\r\n if (rec?.video?.cover || !canvasRef || !canvasRef.current || isBgColor) return;\r\n const setFrameImg = () => {\r\n const canvas = canvasRef?.current as any;\r\n const ctx = canvas.getContext('2d');\r\n const targetWidth = window?.innerWidth;\r\n const targetHeight = window?.innerHeight;\r\n canvas.height = targetHeight;\r\n canvas.width = targetWidth;\r\n ctx?.drawImage(videoRef.current, 0, 0, canvas.width, canvas.height);\r\n setFirstFrameSrc(canvas.toDataURL());\r\n };\r\n setFrameImg();\r\n setTimeout(() => {\r\n setFrameImg();\r\n }, 500);\r\n }, [videoRef.current, isBgColor, rec, firstFrameSrc, blur]);\r\n\r\n const handleLoadedmetadata = useCallback(() => {\r\n if (!videoRef.current) return;\r\n handleStartPlay();\r\n handLoadeddata();\r\n }, [videoRef.current, handLoadeddata, handleStartPlay]);\r\n\r\n const handleClickVideo = useCallback(\r\n (type?: 'pause' | 'start') => () => {\r\n if (!videoRef.current) return;\r\n\r\n if (!isLoadFinish) return;\r\n const isPause = videoRef?.current?.paused;\r\n switch (type) {\r\n case 'start':\r\n if (!isPause) return;\r\n videoRef?.current?.play();\r\n setIsPauseVideo(false);\r\n break;\r\n case 'pause':\r\n if (isPause) return;\r\n videoRef?.current?.pause();\r\n setIsPauseVideo(true);\r\n break;\r\n default:\r\n if (isPause) {\r\n videoRef?.current?.play();\r\n } else {\r\n videoRef?.current?.pause();\r\n }\r\n setIsPauseVideo(!isPause);\r\n break;\r\n }\r\n },\r\n [isLoadFinish, videoRef?.current]\r\n );\r\n\r\n const handlePause = useCallback(() => {\r\n if (!videoRef?.current) return;\r\n if (activeIndex !== index) return;\r\n const item = data[index];\r\n const videoDuration = (videoRef?.current?.duration ?? 0).toFixed(2);\r\n const videoCurrentTime = (videoRef?.current?.currentTime ?? 0).toFixed(2);\r\n if (videoRef?.current?.duration) {\r\n const playDuration = (videoRef?.current?.currentTime - videoStartTime.current).toFixed(2);\r\n bffEventReport?.({\r\n eventInfo: {\r\n eventSubject: 'playOverVideo',\r\n eventDescription: 'User finished playing the video',\r\n contentId: item?.video?.itemId ?? '',\r\n contentName: item?.video?.title ?? '',\r\n endTime: videoCurrentTime,\r\n videoDuration,\r\n playDuration,\r\n contentTags: JSON.stringify(item?.video?.tags ?? []),\r\n position: index + '',\r\n contentFormat: 'video',\r\n traceInfo: item?.video?.traceInfo\r\n }\r\n });\r\n }\r\n }, [data, index, bffEventReport, videoRef?.current, activeIndex]);\r\n\r\n const handleWaiting = useCallback(() => {\r\n setWaiting(true);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!isActive) return;\r\n const videoSrc = rec?.video!.url;\r\n if (!videoSrc) return;\r\n const videoPlayerWrapperNode = document.querySelector(`#${videoId}`);\r\n if (!videoPlayerWrapperNode) return;\r\n videoRef.current = mountVideoPlayerAtNode?.(videoPlayerWrapperNode);\r\n if (!videoRef?.current) return;\r\n const Hls = window?.Hls as any;\r\n let hls = null;\r\n if (videoSrc.includes('.m3u8') && Hls && Hls.isSupported()) {\r\n hls = new Hls();\r\n hls.loadSource(videoSrc);\r\n hls.attachMedia(videoRef?.current);\r\n hls.on(Hls.Events.MANIFEST_PARSED, function () {\r\n videoRef?.current?.play();\r\n });\r\n } else {\r\n videoRef.current.src = videoSrc;\r\n }\r\n\r\n videoRef?.current?.setAttribute('x5-playsinline', 'true');\r\n videoRef?.current?.setAttribute('webkit-playsinline', 'true');\r\n videoRef?.current?.addEventListener('loadedmetadata', handleLoadedmetadata);\r\n videoRef?.current?.addEventListener('loadeddata', handLoadeddata);\r\n videoRef?.current?.addEventListener('play', handleStartPlay);\r\n videoRef?.current?.addEventListener('playing', handlePlaying);\r\n videoRef?.current?.addEventListener('pause', handlePause);\r\n videoRef?.current?.addEventListener('ended', handlePlay);\r\n videoRef?.current?.addEventListener('canplay', handlePlay);\r\n videoRef?.current?.addEventListener('waiting', handleWaiting);\r\n\r\n return () => {\r\n if (hls) hls?.destroy();\r\n setIsLoadFinish(false);\r\n videoRef?.current?.removeEventListener('loadedmetadata', handleLoadedmetadata);\r\n videoRef?.current?.removeEventListener('loadeddata', handLoadeddata);\r\n videoRef?.current?.removeEventListener('play', handleStartPlay);\r\n videoRef?.current?.removeEventListener('playing', handlePlaying);\r\n videoRef?.current?.removeEventListener('pause', handlePause);\r\n videoRef?.current?.removeEventListener('ended', handlePlay);\r\n videoRef?.current?.removeEventListener('canplay', handlePlay);\r\n videoRef?.current?.removeEventListener('waiting', handleWaiting);\r\n };\r\n }, [isActive, videoId, rec]);\r\n\r\n useEffect(() => {\r\n if (!videoRef?.current || !isLoadFinish) return;\r\n if (isActive) {\r\n bffFbReport?.({\r\n eventName: 'ViewContent'\r\n });\r\n videoRef?.current?.play();\r\n } else {\r\n videoRef?.current?.pause();\r\n }\r\n }, [isActive, isLoadFinish, videoRef?.current]);\r\n\r\n /*\r\n 打开/关闭hashtag暂停/播放视频\r\n */\r\n useEffect(() => {\r\n if (!isActive || !videoRef?.current) return;\r\n const isPause = videoRef?.current?.paused;\r\n if (!isPause && openHashtag) {\r\n videoRef?.current?.pause();\r\n } else if (!openHashtag) {\r\n videoRef?.current?.play();\r\n }\r\n }, [openHashtag, isActive, videoRef?.current]);\r\n\r\n useEffect(() => {\r\n if (!isActive) return;\r\n const onShow = () => {\r\n handleClickVideo('start')();\r\n bffFbReport?.({\r\n eventName: 'ViewContent'\r\n });\r\n };\r\n const onHide = handleClickVideo('pause');\r\n SXP_EVENT_BUS.on(SXP_EVENT_TYPE.PAGE_DID_SHOW, onShow);\r\n SXP_EVENT_BUS.on(SXP_EVENT_TYPE.PAGE_DID_HIDE, onHide);\r\n return () => {\r\n SXP_EVENT_BUS.off(SXP_EVENT_TYPE.PAGE_DID_SHOW, onShow);\r\n SXP_EVENT_BUS.off(SXP_EVENT_TYPE.PAGE_DID_HIDE, onHide);\r\n };\r\n }, [handleClickVideo, isActive]);\r\n\r\n const renderPoster = useMemo(() => {\r\n if (!sxpParameter?.placeholder_image || isLoadFinish) {\r\n return null;\r\n }\r\n\r\n return (\r\n <img\r\n style={{\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n width: '100%',\r\n height: '100%',\r\n objectFit: 'cover'\r\n }}\r\n src={sxpParameter?.placeholder_image}\r\n alt='placeholder image'\r\n />\r\n );\r\n }, [isLoadFinish, sxpParameter?.placeholder_image]);\r\n\r\n const renderLoading = useMemo(() => {\r\n if (!waiting || !isLoadFinish) return;\r\n return (\r\n <img\r\n style={{\r\n position: 'absolute',\r\n top: '50%',\r\n left: 0,\r\n right: 0,\r\n transform: 'translateY(-100%)',\r\n margin: 'auto',\r\n width: '50px',\r\n height: '50px',\r\n objectFit: 'contain'\r\n }}\r\n src={loading_gif}\r\n alt='placeholder image'\r\n />\r\n );\r\n }, [waiting, isLoadFinish]);\r\n\r\n useEffect(() => {\r\n if (!videoRef?.current) return;\r\n\r\n const handleBeforeUnload = () => {\r\n if (activeIndex === index && rec?.video?.url && videoRef?.current && !isPauseVideo) {\r\n handleClickVideo('pause')();\r\n }\r\n };\r\n\r\n window.addEventListener('beforeunload', handleBeforeUnload);\r\n\r\n return () => {\r\n window.removeEventListener('beforeunload', handleBeforeUnload);\r\n };\r\n }, [activeIndex, index, rec, videoRef?.current, handleClickVideo, isPauseVideo]);\r\n\r\n if (!rec?.video) {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n {blur ? (\r\n <div\r\n className='video-container'\r\n key={rec?.video.itemId}\r\n onClick={handleClickVideo()}\r\n style={{\r\n position: 'relative',\r\n width: '100%',\r\n height,\r\n overflow: 'hidden',\r\n ...bgStyle\r\n }}\r\n >\r\n {!isBgColor && isLoadFinish && blurBgSrc && (\r\n <FormatImage\r\n src={blurBgSrc}\r\n style={{\r\n height: '100%',\r\n width: '100%',\r\n objectFit: 'cover',\r\n ...blurStyle\r\n }}\r\n />\r\n )}\r\n\r\n <canvas ref={canvasRef} style={{ display: 'none' }} />\r\n <div\r\n style={{\r\n position: 'absolute',\r\n width: '100%',\r\n height: '100%',\r\n top: '50%',\r\n transform: translateY,\r\n left: 0,\r\n right: 0\r\n }}\r\n >\r\n <div style={{ position: 'relative', width: '100%', height: '100%' }}>\r\n <div\r\n className='n-full-screen'\r\n ref={videoEleRef}\r\n id={videoId}\r\n style={{ width: '100%', height: '100%' }}\r\n ></div>\r\n\r\n <img\r\n hidden={!isPauseVideo}\r\n className='clc-pb-video-pause'\r\n alt='pause'\r\n src={videoPlayIcon ?? PAUSE_ICON}\r\n />\r\n </div>\r\n </div>\r\n {renderPoster}\r\n {renderLoading}\r\n </div>\r\n ) : (\r\n <div\r\n className='video-container'\r\n key={rec?.video.itemId}\r\n style={{\r\n position: 'relative',\r\n width: '100%',\r\n height,\r\n overflow: 'hidden'\r\n }}\r\n onClick={handleClickVideo()}\r\n >\r\n <div className='n-full-screen' ref={videoEleRef} id={videoId} style={{ width: '100%', height: '100%' }}></div>\r\n {renderPoster}\r\n {renderLoading}\r\n <img hidden={!isPauseVideo} className='clc-pb-video-pause' src={videoPlayIcon ?? PAUSE_ICON} alt='pause' />\r\n </div>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default memo(VideoWidget);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-12-27 19:02:59\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-01-24 10:30:13\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageRender\\ToggleButton\\index.tsx\r\n *\r\n */\r\nimport React, { CSSProperties, FC, MouseEventHandler, memo, useState } from 'react';\r\n\r\ninterface IToggleButtonProps {\r\n activeIcon?: string;\r\n unactiveIcon?: string;\r\n onChange?: (result: boolean) => void;\r\n defaultValue?: boolean;\r\n style?: CSSProperties;\r\n}\r\n\r\nconst ToggleButton: FC<IToggleButtonProps> = ({ defaultValue, activeIcon, unactiveIcon, onChange, style }) => {\r\n const [isTrue, setIsTure] = useState(defaultValue);\r\n\r\n const handleClick: MouseEventHandler<HTMLButtonElement> = (e) => {\r\n e.stopPropagation();\r\n const result = !isTrue;\r\n setIsTure(result);\r\n onChange?.(result);\r\n };\r\n\r\n return (\r\n <button style={style} aria-label='toggle button' className={'pb-toggle-button'} onClick={handleClick}>\r\n <img className={'pb-toggle-button-icon'} alt='toggle image' src={isTrue ? activeIcon : unactiveIcon} />\r\n </button>\r\n );\r\n};\r\n\r\nexport default memo(ToggleButton);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-01-15 19:03:09\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-03-13 10:53:56\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageRender\\FingerSwipeTip\\index.tsx\r\n *\r\n */\r\nimport React, { CSSProperties, FC, useEffect, useMemo, useState } from 'react';\r\nimport { useIconLink } from '../useIconLink';\r\nimport { useEditor } from '@/core/hooks';\r\n\r\ninterface IProps {\r\n imageUrl?: string;\r\n style?: CSSProperties;\r\n}\r\n\r\nconst FingerSwipeTip: FC<IProps> = ({ imageUrl, style }) => {\r\n const [show, setShow] = useState(true);\r\n const {\r\n schema: { sxpPageConf }\r\n } = useEditor();\r\n useEffect(() => {\r\n setTimeout(() => {\r\n setShow(false);\r\n }, 2000);\r\n }, []);\r\n\r\n const FINGER_SWIPE_ICON = useIconLink('/pb_static/finger-swipe-tip.29dc3a48a3c746c906ea..png');\r\n\r\n const animationCls = useMemo(() => {\r\n return show ? 'pb-fadeIn' : 'pb-fadeOut';\r\n }, [show]);\r\n\r\n return (\r\n <div hidden={!show} className={`pb-finger-wrap ${animationCls}`} style={style}>\r\n <img src={imageUrl || FINGER_SWIPE_ICON} alt='finger swiper' />\r\n </div>\r\n );\r\n};\r\n\r\nexport default FingerSwipeTip;\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-03-20 10:27:31\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-24 10:37:19\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageRender\\PictureGroup\\Picture.tsx\r\n *\r\n */\r\nimport React, { CSSProperties, useMemo } from 'react';\r\nimport FormatImage from '../FormatImage';\r\nimport { postConfigType } from '..';\r\n\r\ninterface IPictureProps {\r\n src: string;\r\n height?: number;\r\n imgUrlsPostConfig?: postConfigType;\r\n onShowFirstImage?: () => void;\r\n}\r\nconst Picture = (props: IPictureProps) => {\r\n const { src, height, imgUrlsPostConfig, onShowFirstImage } = props;\r\n\r\n const blur = useMemo(() => {\r\n return imgUrlsPostConfig?.mode === '2';\r\n }, [imgUrlsPostConfig]);\r\n\r\n const translateY = useMemo(() => {\r\n return imgUrlsPostConfig?.mode === '2'\r\n ? `translateY(-${50 + (imgUrlsPostConfig?.offsetTop ?? 0)}%) translate3d(0px, 0px, 0px)`\r\n : 'translateY(-50%)';\r\n }, [imgUrlsPostConfig]);\r\n\r\n const blurStyle = useMemo(() => {\r\n return blur\r\n ? {\r\n filter: 'blur(10px)',\r\n transform: 'translate3d(0px, 0px, 0px) scale(1.2)'\r\n }\r\n : {};\r\n }, [blur]) as CSSProperties;\r\n\r\n const isBgColor = useMemo(() => {\r\n return imgUrlsPostConfig?.bgWay === '1';\r\n }, [imgUrlsPostConfig]);\r\n\r\n const bgStyle = useMemo(() => {\r\n return isBgColor && imgUrlsPostConfig?.bgColor ? { backgroundColor: imgUrlsPostConfig?.bgColor } : {};\r\n }, [imgUrlsPostConfig, isBgColor]) as CSSProperties;\r\n\r\n return (\r\n <div\r\n style={{\r\n overflow: 'hidden',\r\n height,\r\n width: '100%',\r\n position: 'relative',\r\n ...bgStyle\r\n }}\r\n >\r\n {(!blur || !isBgColor) && (\r\n <FormatImage\r\n src={src}\r\n style={{\r\n height: '100%',\r\n width: '100%',\r\n objectFit: 'cover',\r\n ...blurStyle\r\n }}\r\n onLoad={onShowFirstImage}\r\n />\r\n )}\r\n\r\n {blur && (\r\n <FormatImage\r\n src={src}\r\n style={{\r\n width: '100%',\r\n height: '100%',\r\n objectFit: 'contain',\r\n position: 'absolute',\r\n top: '50%',\r\n transform: translateY,\r\n left: 0,\r\n right: 0\r\n }}\r\n onLoad={onShowFirstImage}\r\n />\r\n )}\r\n </div>\r\n );\r\n};\r\nexport default Picture;\r\n","/*\r\n * @Author: lewinlu@chatlabs.com\r\n * @Date: 2024-01-03 14:39:09\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-07-02 18:25:17\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageRender\\PictureGroup\\index.tsx\r\n */\r\nimport React, { FC, memo, useCallback, useEffect, useRef, useState } from 'react';\r\nimport { Autoplay, Pagination } from 'swiper/modules';\r\nimport { Swiper, SwiperSlide, useSwiperSlide } from 'swiper/react';\r\nimport { RecItemType } from '../typing';\r\nimport { postConfigType } from '..';\r\nimport Picture from './Picture';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\nimport { css } from '@emotion/css';\r\n\r\ninterface IPictureGroupProps {\r\n imgUrls?: string[];\r\n width: number;\r\n height: number;\r\n rec: RecItemType;\r\n index: number;\r\n onReportViewImageEnd: (rec: RecItemType) => void;\r\n onViewImageStartEvent: (index: number) => void;\r\n imgUrlsPostConfig?: postConfigType;\r\n}\r\n\r\nconst PictureGroup: FC<IPictureGroupProps> = ({\r\n imgUrls,\r\n width,\r\n height,\r\n rec,\r\n index,\r\n onReportViewImageEnd,\r\n onViewImageStartEvent,\r\n imgUrlsPostConfig\r\n}) => {\r\n const ref = useRef<any>();\r\n const { isActive } = useSwiperSlide();\r\n const { sxpParameter, openHashtag } = useSxpDataSource();\r\n const [isLoad, setIsLoad] = useState(false);\r\n useEffect(() => {\r\n if (isLoad && isActive) {\r\n ref?.current && ref.current.swiper.autoplay.start();\r\n if (openHashtag) {\r\n onReportViewImageEnd(rec);\r\n } else {\r\n onViewImageStartEvent(index);\r\n }\r\n } else {\r\n ref?.current && ref.current.swiper.autoplay.stop();\r\n }\r\n }, [rec, isActive, onReportViewImageEnd, openHashtag, index, onViewImageStartEvent, isLoad]);\r\n\r\n const showFirstImageFn = useCallback(() => {\r\n if (!isLoad) {\r\n setIsLoad(true);\r\n }\r\n }, [isLoad]);\r\n\r\n // if (!isActive) {\r\n // return <img src={sxpParameter?.placeholder_image} style={{ width, height, objectFit: 'cover' }} />;\r\n // }\r\n\r\n return (\r\n <Swiper\r\n ref={ref}\r\n defaultValue={0}\r\n direction={'horizontal'}\r\n modules={[Pagination, Autoplay]}\r\n pagination={{\r\n clickable: true,\r\n bulletActiveClass: 'swipe-item-active-bullet'\r\n }}\r\n className={css({\r\n ...(imgUrlsPostConfig?.marginBottom && {\r\n '.swiper-pagination': {\r\n bottom: imgUrlsPostConfig?.marginBottom ?? 0\r\n }\r\n })\r\n })}\r\n height={height}\r\n loop\r\n autoplay={{ delay: (imgUrlsPostConfig?.delay ?? 3) * 1000 }}\r\n >\r\n {imgUrls?.map((url, index) => {\r\n return (\r\n <SwiperSlide key={index}>\r\n <Picture\r\n src={!isLoad && index > 0 ? '' : url}\r\n height={height}\r\n imgUrlsPostConfig={imgUrlsPostConfig}\r\n onShowFirstImage={showFirstImageFn}\r\n />\r\n </SwiperSlide>\r\n );\r\n })}\r\n </Swiper>\r\n );\r\n};\r\n\r\nexport default memo(PictureGroup);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-01-15 19:03:09\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-07-09 18:47:05\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageRender\\Hashtag\\index.tsx\r\n *\r\n */\r\nimport React, { CSSProperties, FC, memo, useMemo, useState } from 'react';\r\nimport { SwiperSlide } from 'swiper/react';\r\nimport { RecItemType } from '../typing';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\nimport Scroll from '@/materials/sxp/template/components/Scroll';\r\nimport { setFontForText } from '@/core/utils/tool';\r\n\r\ninterface IHashtagProps {\r\n tags: string[];\r\n itemId: string;\r\n itemType: 'VIDEO' | 'PRODUCT' | null;\r\n index: number;\r\n rec: RecItemType;\r\n hashTagStyle?: CSSProperties;\r\n}\r\n\r\nconst Hashtag: FC<IHashtagProps> = ({ tags, itemId, itemType, index, rec, hashTagStyle }) => {\r\n const [isShowMore, setIsShowMore] = useState(false);\r\n const { setWaterFallData, setOpenHashtag, setCacheActiveIndex, waterFallData, setIsFromHashtag } = useSxpDataSource();\r\n const handleClickTag = (data: string) => {\r\n if (!waterFallData) {\r\n setCacheActiveIndex?.(index);\r\n } else {\r\n setIsFromHashtag?.(true);\r\n }\r\n if (itemType) {\r\n setWaterFallData?.({\r\n hashTag: data,\r\n itemId,\r\n itemType,\r\n rec\r\n });\r\n } else {\r\n setWaterFallData?.({\r\n hashTag: data,\r\n rec\r\n });\r\n }\r\n\r\n setOpenHashtag?.(true);\r\n };\r\n\r\n const renderExpandButton = useMemo(() => {\r\n if (tags.length <= 6) {\r\n return null;\r\n }\r\n return (\r\n <span\r\n style={{ textDecoration: 'underline', cursor: 'pointer', color: '#fff' }}\r\n onClick={() => setIsShowMore(!isShowMore)}\r\n >\r\n {isShowMore ? 'show less' : 'show more'}\r\n </span>\r\n );\r\n }, [isShowMore, tags]);\r\n console.log(hashTagStyle, '111');\r\n return (\r\n <div className='clc-sxp-bottom-hashtag' style={{ marginTop: `${hashTagStyle?.marginTop ?? 16}px` }}>\r\n <Scroll>\r\n {tags?.map((item: any, index: any) => (\r\n <SwiperSlide\r\n key={index}\r\n hidden={!isShowMore ? index >= 6 : false}\r\n className='clc-sxp-bottom-hashtag-item'\r\n style={hashTagStyle}\r\n onClick={() => handleClickTag(item)}\r\n >\r\n <div dangerouslySetInnerHTML={{ __html: setFontForText(`#${item}`, hashTagStyle) }}></div>\r\n </SwiperSlide>\r\n ))}\r\n </Scroll>\r\n </div>\r\n );\r\n};\r\nexport default memo(Hashtag);\r\n","var img = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAbtJREFUeF7t2DFKxFAQxvHv6xTxCoKNiAuCna2X2NY7eAE9hYdwj2BjZ2ulYLW9pQcYDWyxBIK7ZN7MNyapk/D+v8zC20dM/OLE+zEDzBMwcYH5J1BpAMzsAMAJyU+vdZeZADN7AHAH4BjAC8kbD4QSAJv4+17wFcm3sQjyAGbWhXdff/takzwdG989Lw0wEN+te0ly9a8BIuJlJyAqXhIgMl4OIDpeCiAjXgYgK14CIDM+HSA7PhVgYHvrusnZZaOUshNUiU+ZAKX4cAC1+FAAxfgwANX4EADl+OYA6vFNASrENwOoEt8EoFK8O0C1eFcAMzsE8AXgqLcHdzvA3GVvv+89bv8FzOwcwEdvASuSy30XFXm/G0C3aDN7BXBdCcEb4ALAE4BFFQRXgM0UlEJwB6iG0ASgEkIzgCoITQEqIDQHUEcIAVBGCANQRQgFUEQIB1BDSAFQQkgDUEFIBVBASAfIRpAAyESQAchCkALIQJADiEaQBIhEkAWIQpAG+ANh8Xvk/j72CF0eYABhDeCS5PckALYQbgGcAXgm+Tg2vnu+xAR4hA69YwZoqVvh3fMEVPhKLdc4+Qn4AXwYBFBN2dYpAAAAAElFTkSuQmCC\";\n export default img;","import { get, cloneDeep } from 'lodash';\r\nimport React, { memo, useMemo } from 'react';\r\nimport { useDataSource } from '../hooks';\r\nimport { IMaterialOptions } from '../create';\r\n\r\nfunction withBindDataSource(Component: any): React.NamedExoticComponent<any> & { extend?: IMaterialOptions<any> } {\r\n // 处理函数事件中的数据源\r\n\r\n return memo(function (props: any) {\r\n const { $store } = useDataSource();\r\n const handleDataSourceByEvent = (value: string) => {\r\n let res = value;\r\n const dataArr = value.match(/{{.*?}}/g);\r\n\r\n if (dataArr?.length) {\r\n dataArr.forEach((item) => {\r\n item.replace(/{{\\s*([\\w.]+)\\s*}}/g, (match, p) => {\r\n if (p) {\r\n const v = get($store, p);\r\n res = res.replace(item, v);\r\n return v;\r\n }\r\n });\r\n });\r\n }\r\n return res;\r\n };\r\n const clonedProps = useMemo(() => {\r\n const { bindDatas, ...cloneProps } = props;\r\n bindDatas?.forEach?.((d: { propKey?: string; dataPath?: string }) => {\r\n if (d?.propKey && d?.dataPath) {\r\n const { propKey, dataPath } = d;\r\n dataPath.replace(/{{\\s*([\\w.]+)\\s*}}/g, (match, p) => {\r\n if (p) {\r\n const v = get($store, p) ?? props[propKey] ?? '';\r\n cloneProps[propKey] = v;\r\n return v;\r\n }\r\n });\r\n }\r\n });\r\n if (cloneProps) {\r\n cloneProps.eventMap = {};\r\n const eventObj = cloneDeep(cloneProps.event) || {};\r\n for (const key in eventObj) {\r\n if (Object.prototype.hasOwnProperty.call(eventObj, key)) {\r\n try {\r\n eventObj[key].value = handleDataSourceByEvent(eventObj[key].value);\r\n cloneProps.eventMap[key] = new Function(eventObj[key].value);\r\n } catch (error) {}\r\n }\r\n }\r\n }\r\n if (cloneProps?.event?.onClick?.linkType) {\r\n cloneProps.style.cursor = 'pointer';\r\n }\r\n return cloneProps;\r\n }, [$store, props]);\r\n\r\n return <Component {...clonedProps} {...clonedProps.eventMap} />;\r\n });\r\n}\r\n\r\nexport default withBindDataSource;\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-12-26 16:11:34\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-04-18 14:36:53\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageRender\\RenderCard.tsx\r\n *\r\n */\r\nimport React, { memo, FC, useMemo } from 'react';\r\nimport './index.less';\r\nimport { RecItemType } from './typing';\r\nimport withBindDataSource from '@/core/hoc/withBindDataSource';\r\nimport { useEditor } from '@/core/hooks';\r\n\r\ninterface IRenderCardProps {\r\n index: number;\r\n rec: RecItemType;\r\n tempMap?: Record<string, any>;\r\n resolver: any;\r\n}\r\n\r\nconst RenderCard: FC<IRenderCardProps> = ({ rec, index, tempMap, resolver }) => {\r\n const { schema } = useEditor();\r\n const renderComp = useMemo(() => {\r\n if (!rec?.video) return null;\r\n let cta = null;\r\n if (rec?.video?.bindProducts?.length) {\r\n cta = '多商品CTA';\r\n } else if (rec?.video?.bindProduct) {\r\n cta = '商品CTA';\r\n } else {\r\n cta = rec?.video?.bindCta?.itemId;\r\n }\r\n const value = tempMap?.[cta];\r\n if (\r\n (value?.item?.type === 'CommodityDiro' && !rec?.video?.bindProduct) ||\r\n (value?.item?.type === 'Commodity' && !rec?.video?.bindProduct) ||\r\n (value?.item?.type === 'CommodityDiroNew' && !rec?.video?.bindProduct) ||\r\n (value?.item?.type === 'MultiCommodity' && !rec?.video?.bindProducts?.length) ||\r\n (value?.item?.type === 'MultiCommodityDiro' && !rec?.video?.bindProducts?.length) ||\r\n (value?.item?.type === 'MultiCommodityDiroNew' && !rec?.video?.bindProducts?.length)\r\n ) {\r\n return null;\r\n }\r\n if (value && resolver) {\r\n const t = resolver[value?.item?.type];\r\n const Component = withBindDataSource(t);\r\n const defaulSetting = t?.extend?.defaulSetting;\r\n const isExternalLink = value?.item?.event?.onClick?.linkType === 'externalLink';\r\n return (\r\n <Component\r\n style={{\r\n ...defaulSetting?.style,\r\n ...value?.item?.style,\r\n zIndex: 50,\r\n marginLeft: '20px',\r\n boxSizing: 'border-box',\r\n transform: 'translate3d(0px, 0px, 0px)'\r\n }}\r\n textStyle={{ ...defaulSetting?.textStyle, ...value?.item?.textStyle }}\r\n bindDatas={value?.item?.bindDatas ?? []}\r\n {...defaulSetting?.props}\r\n {...value?.item?.props}\r\n event={value?.item?.event || {}}\r\n schema={schema}\r\n id={value?.id}\r\n key={value?.id}\r\n recData={rec}\r\n isExternalLink={isExternalLink}\r\n index={index}\r\n />\r\n );\r\n } else {\r\n return null;\r\n }\r\n }, [rec, resolver, tempMap, schema]);\r\n return <>{renderComp}</>;\r\n};\r\n\r\nexport default memo(RenderCard);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-03-26 10:07:41\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-07-03 10:07:29\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageRender\\Nudge\\index.tsx\r\n *\r\n */\r\nimport { setFontForText } from '@/core/utils/tool';\r\nimport React, { CSSProperties, FC } from 'react';\r\n\r\ninterface IProps {\r\n nudge?: {\r\n isOpen: boolean;\r\n icon?: string;\r\n backgroundColor: string;\r\n content?: string;\r\n marginBottom: number;\r\n borderRadius: number;\r\n size: {\r\n height: number;\r\n width: number;\r\n };\r\n textStyle: {\r\n color: string;\r\n fontFamily: string;\r\n fontSize: number;\r\n fontStyle: string;\r\n textAlign: string;\r\n ['fontFamily-cn']?: string;\r\n ['fontFamily-en']?: string;\r\n };\r\n };\r\n}\r\n\r\nconst Nudge: FC<IProps> = ({ nudge }) => {\r\n return (\r\n <>\r\n {nudge?.isOpen && (\r\n <div\r\n className='clc-sxp-bottom-nudge'\r\n style={{\r\n marginBottom: nudge?.marginBottom ?? 5,\r\n width: nudge?.size?.width ?? 212,\r\n height: nudge?.size?.height ?? 38,\r\n backgroundColor: nudge?.backgroundColor,\r\n borderRadius: nudge?.borderRadius ?? 4\r\n }}\r\n >\r\n {nudge?.icon ? (\r\n <img src={nudge.icon} alt='nudge icon' style={{ height: '100%', objectFit: 'cover', flexShrink: 0 }} />\r\n ) : null}\r\n <p\r\n style={{\r\n ...(nudge?.textStyle as CSSProperties),\r\n textWrap: 'nowrap',\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n flex: 1,\r\n marginBottom: 0,\r\n marginTop: 0\r\n }}\r\n dangerouslySetInnerHTML={{\r\n __html: setFontForText(nudge?.content, nudge?.textStyle)\r\n }}\r\n ></p>\r\n </div>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default Nudge;\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-04-29 16:32:21\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-28 18:03:50\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageRender\\Tagbar.tsx\r\n *\r\n */\r\nimport React, { FC, memo, useMemo, useState } from 'react';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\nimport SXP_EVENT_BUS, { SXP_EVENT_TYPE } from '@/core/utils/event';\r\nimport { useEventReport } from '@/core/hooks/useEventReport';\r\nimport { DEFAULT_TAG } from '@/core/context/SxpDataSourceProvider';\r\n\r\ninterface IProps {\r\n tagList?: string[];\r\n setActiveIndex?: React.Dispatch<React.SetStateAction<number>>;\r\n style?: any;\r\n}\r\n\r\nconst Tagbar: FC<IProps> = ({ tagList = [], setActiveIndex, style }) => {\r\n const {\r\n getRecommendVideos,\r\n setRtcList,\r\n setCacheRtcList,\r\n setCacheActiveIndex,\r\n setLoading,\r\n swiperRef,\r\n waterFallData,\r\n bffEventReport,\r\n selectTag,\r\n setSelectTag\r\n } = useSxpDataSource();\r\n const { backMainFeed } = useEventReport();\r\n const realTagList = useMemo(() => {\r\n return [DEFAULT_TAG, ...tagList];\r\n }, [tagList]);\r\n\r\n const handleSelectTag = (tag: string) => () => {\r\n if (tag === selectTag) return;\r\n if (tag !== 'FOR U') {\r\n bffEventReport?.({\r\n eventInfo: {\r\n eventSubject: 'clickThemeTagsViewContents',\r\n eventDescription: 'click Theme Tags View Contents',\r\n themeTags: `['${tag}']`\r\n }\r\n });\r\n } else {\r\n backMainFeed('theme', tag, selectTag);\r\n }\r\n let themeTag: string | undefined;\r\n if (tag !== DEFAULT_TAG) {\r\n themeTag = tag;\r\n }\r\n setLoading?.(true);\r\n getRecommendVideos?.({ themeTag })\r\n .then((res) => {\r\n SXP_EVENT_BUS.emit(SXP_EVENT_TYPE.CHANGE_THEME_TAG, themeTag);\r\n setRtcList?.(res?.recList ?? []);\r\n setCacheRtcList?.(res?.recList ?? []);\r\n setActiveIndex?.(0);\r\n setCacheActiveIndex?.(0);\r\n swiperRef?.current?.swiper?.slideTo(0);\r\n })\r\n .finally(() => {\r\n setLoading?.(false);\r\n });\r\n\r\n setSelectTag?.(tag);\r\n };\r\n\r\n if (waterFallData || tagList.length <= 0) return null;\r\n\r\n return (\r\n <div className='clc-sxp-tagbar' style={style}>\r\n <ul className='clc-sxp-tagbar-list' style={{ margin: 'auto', gap: 24 }}>\r\n {realTagList.map((tag) => {\r\n return (\r\n <li\r\n className={`clc-sxp-tagbar-list-item ${tag === selectTag ? 'clc-sxp-tagbar-list-item-active' : ''}`}\r\n key={tag}\r\n onClick={handleSelectTag(tag)}\r\n >\r\n {tag}\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </div>\r\n );\r\n};\r\n\r\nexport default memo(Tagbar);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-01-15 19:03:09\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-07-09 18:11:21\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageRender\\index.tsx\r\n *\r\n */\r\nimport React, { CSSProperties, useMemo, useEffect, useState, FC, useRef, useCallback } from 'react';\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport ExpandableText from './ExpandableText';\r\nimport LikeButton from './LikeButton';\r\nimport { RecItemType } from './typing';\r\nimport VideoWidget from './VideoWidget';\r\nimport ToggleButton from './ToggleButton';\r\nimport FingerSwipeTip from './FingerSwipeTip';\r\nimport PictureGroup from './PictureGroup';\r\nimport Hashtag from './Hashtag';\r\nimport Navbar from './Navbar';\r\nimport left from './left.png';\r\nimport RenderCard from './RenderCard';\r\nimport { useIconLink } from './useIconLink';\r\nimport WaterFall from './WaterFall';\r\nimport Nudge from './Nudge';\r\nimport SXP_EVENT_BUS, { SXP_EVENT_TYPE } from '@/core/utils/event';\r\nimport { useEditor, useSxpDataSource } from '@/core/hooks';\r\nimport { refreshFeSessionId } from '@/core/utils/sessionStore';\r\nimport './index.less';\r\nimport { useEventReport } from '@/core/hooks/useEventReport';\r\nimport withBindDataSource from '@/core/hoc/withBindDataSource';\r\nimport Tagbar from './Tagbar';\r\nimport { getFeUserId } from '@/core/utils/localStore';\r\nimport Consent from '../Consent';\r\n\r\nexport type postConfigType = {\r\n mode?: '1' | '2';\r\n offsetTop?: number;\r\n delay?: number;\r\n bgWay?: '1' | '2';\r\n bgColor?: string;\r\n marginBottom?: number;\r\n};\r\n\r\nexport interface ISxpPageRenderProps {\r\n globalConfig?: {\r\n isShowLogo?: boolean;\r\n isShowCTA?: boolean;\r\n logoUrl?: string;\r\n muteIcon?: string;\r\n unMuteIcon?: string;\r\n likeIcon?: string;\r\n unlikeIcon?: string;\r\n color?: string;\r\n productPost?: any[];\r\n muteIconX?: number;\r\n muteIconY?: number;\r\n likeIconX?: number;\r\n likeIconY?: number;\r\n isShowLike?: boolean;\r\n swipeTipIcon?: string;\r\n hashTag?: any[];\r\n isOpenTextShadow?: boolean;\r\n videoPost?: postConfigType;\r\n imgUrlsPost?: postConfigType;\r\n muteIconXPosit?: string;\r\n muteIconYPosit?: string;\r\n likeIconYPosit?: string;\r\n likeIconXPosit?: string;\r\n swipeTipOffset?: number;\r\n consent?: any[];\r\n videoPlayIcon?: string;\r\n isShowMute?: boolean;\r\n bottomInfoDist?: number;\r\n };\r\n descStyle?: CSSProperties;\r\n tipText?: {\r\n foldText: string;\r\n unfoldText: string;\r\n };\r\n nudge?: {\r\n isOpen: boolean;\r\n icon?: string;\r\n backgroundColor: string;\r\n content?: string;\r\n marginBottom: number;\r\n borderRadius: number;\r\n size: {\r\n height: number;\r\n width: number;\r\n };\r\n textStyle: {\r\n color: string;\r\n fontFamily: string;\r\n fontSize: number;\r\n fontStyle: string;\r\n textAlign: string;\r\n };\r\n };\r\n containerHeight?: number;\r\n containerWidth?: number;\r\n tempMap?: Record<string, any>;\r\n data?: RecItemType[];\r\n tagList?: string[];\r\n resolver: any;\r\n ctaType?: string;\r\n _schema?: any;\r\n hashTagStyle?: CSSProperties;\r\n licenseUrl?: string;\r\n}\r\n\r\nconst SxpPageRender: FC<ISxpPageRenderProps> = ({\r\n globalConfig,\r\n descStyle,\r\n containerHeight = window.innerHeight,\r\n containerWidth = window.innerWidth,\r\n tempMap,\r\n resolver,\r\n data = [],\r\n ctaType,\r\n tipText,\r\n nudge,\r\n _schema,\r\n hashTagStyle,\r\n tagList = [],\r\n licenseUrl\r\n}) => {\r\n const { schema } = useEditor();\r\n const [activeIndex, setActiveIndex] = useState(0);\r\n const viewImageStartTime = useRef(0);\r\n const [isMuted, setIsMuted] = useState(true);\r\n const viewTime = useRef<any>();\r\n const [isLoadMore, setIsLoadMore] = useState(false);\r\n const [isShowMore, setIsShowMore] = useState(false);\r\n const {\r\n loadVideos,\r\n bffEventReport,\r\n loading,\r\n setPopupDetailData,\r\n ctaEvent,\r\n swiperRef,\r\n waterFallData,\r\n setOpenHashtag,\r\n appDomain,\r\n openHashtag,\r\n loadingImage,\r\n isFromHashtag,\r\n popupDetailData,\r\n bffFbReport,\r\n curTime,\r\n h5EnterLink,\r\n isShowConsent,\r\n selectTag\r\n } = useSxpDataSource();\r\n const { backMainFeed } = useEventReport();\r\n const { productView } = useEventReport();\r\n const isShowFingerTip = useMemo(() => {\r\n return data.length > 0 && !loading && getFeUserId();\r\n }, [data, loading]);\r\n\r\n useEffect(() => {\r\n refreshFeSessionId();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (data?.length > 0) {\r\n const now = new Date();\r\n viewTime.current = now;\r\n bffFbReport?.({\r\n eventName: 'PageView'\r\n });\r\n }\r\n }, [data?.length]);\r\n\r\n const handleH5EnterLink = useCallback(() => {\r\n refreshFeSessionId();\r\n h5EnterLink?.();\r\n if (data.length > 0) {\r\n const now = new Date();\r\n viewTime.current = now;\r\n bffFbReport?.({\r\n eventName: 'PageView'\r\n });\r\n }\r\n }, [data.length, bffFbReport, h5EnterLink]);\r\n\r\n useEffect(() => {\r\n const index =\r\n data?.findIndex((item: RecItemType) => {\r\n if (ctaType === '多商品CTA') {\r\n return item?.video?.bindProducts && item?.video?.bindProducts?.length > 0;\r\n } else if (ctaType === '商品CTA') {\r\n return item?.video?.bindProduct;\r\n } else {\r\n return item?.video?.bindCta?.itemId === ctaType && (item?.video?.url || item?.video?.imgUrls?.length);\r\n }\r\n }) || 0;\r\n swiperRef?.current?.swiper.slideTo(index);\r\n }, [ctaType, swiperRef]);\r\n\r\n useEffect(() => {\r\n const item = data?.[activeIndex];\r\n const visibleChange = () => {\r\n const repCond = !openHashtag && !isShowConsent;\r\n if (document.visibilityState === 'hidden') {\r\n // 当用户导航到新页面、切换标签页、关闭标签页、最小化或关闭浏览器、刷新原页面(即离开原页面时),或者在移动设备上从浏览器切换到不同的应用程序时\r\n // 移动端h5直接杀掉浏览器或宿主app时不会触发,pc端直接杀掉标签页时能触发\r\n if (repCond) {\r\n SXP_EVENT_BUS.emit(SXP_EVENT_TYPE.PAGE_DID_HIDE, item);\r\n handleReportViewImageEnd(item);\r\n handleReportProductView(item);\r\n }\r\n let fromKName = '';\r\n if (popupDetailData && (item?.video?.bindProducts?.length || item?.video?.bindProduct)) {\r\n fromKName = 'pdpPage';\r\n } else if (popupDetailData && tempMap?.[item?.video?.bindCta?.itemId ?? ''].item?.type === 'Appoint') {\r\n fromKName = 'formPage';\r\n } else if (isFromHashtag) {\r\n fromKName = 'hashTagPage';\r\n } else if (item?.video?.url) {\r\n fromKName = 'videoPage';\r\n } else if (item?.video?.imgUrls && item?.video?.imgUrls?.length) {\r\n fromKName = 'imagePage';\r\n } else if (item?.product) {\r\n fromKName = 'productPage';\r\n }\r\n bffEventReport?.({\r\n eventInfo: {\r\n sessionDuration: Math.floor(((new Date() as any) - curTime.current) / 1000) + '',\r\n eventSubject: 'sessionCompleted',\r\n eventDescription: 'Session completed',\r\n contentId: item?.video?.itemId,\r\n productId: item?.product?.itemId,\r\n position: activeIndex + '',\r\n fromKName,\r\n fromKPage: location?.href,\r\n ctatId: item?.video?.bindCta?.itemId ?? ''\r\n }\r\n });\r\n } else if (document.visibilityState === 'visible') {\r\n // 页面可见时触发,注意页面初始化时不会触发\r\n handleH5EnterLink();\r\n if (repCond) {\r\n handleViewImageStartEvent(activeIndex);\r\n SXP_EVENT_BUS.emit(SXP_EVENT_TYPE.PAGE_DID_SHOW, item);\r\n backMainFeed('external', selectTag);\r\n }\r\n }\r\n };\r\n\r\n document.addEventListener('visibilitychange', visibleChange);\r\n return () => {\r\n document.removeEventListener('visibilitychange', visibleChange);\r\n };\r\n }, [\r\n activeIndex,\r\n bffEventReport,\r\n data,\r\n handleH5EnterLink,\r\n popupDetailData,\r\n isFromHashtag,\r\n tempMap,\r\n curTime,\r\n backMainFeed,\r\n openHashtag,\r\n isShowConsent,\r\n selectTag\r\n ]);\r\n\r\n const tagHeight = useMemo(() => {\r\n let h = 0;\r\n if (tagList.length > 0) {\r\n h += 45;\r\n if (waterFallData) {\r\n h -= 45;\r\n }\r\n }\r\n return h;\r\n }, [tagList, waterFallData]);\r\n\r\n const minusHeight = useMemo(() => {\r\n let minusHeight = 0;\r\n if (globalConfig?.logoUrl && globalConfig?.isShowLogo) {\r\n minusHeight += 45;\r\n }\r\n return minusHeight;\r\n }, []);\r\n\r\n const height = useMemo(() => {\r\n return containerHeight - minusHeight - tagHeight;\r\n }, [globalConfig, containerHeight, tagHeight]);\r\n\r\n const renderLogo = useMemo(() => {\r\n if (globalConfig?.logoUrl && globalConfig?.isShowLogo) {\r\n return (\r\n <div className='clc-sxp-logo-banner' style={{ backgroundColor: globalConfig?.color }}>\r\n <img src={globalConfig?.logoUrl} alt='logo' />\r\n </div>\r\n );\r\n }\r\n return null;\r\n }, [globalConfig]);\r\n\r\n const renderContent = useCallback(\r\n (rec: RecItemType, index: number) => {\r\n if (rec?.video?.url) {\r\n return (\r\n <VideoWidget\r\n rec={rec}\r\n index={index}\r\n muted={isMuted}\r\n data={data}\r\n height={height}\r\n activeIndex={activeIndex}\r\n videoPostConfig={globalConfig?.videoPost}\r\n videoPlayIcon={globalConfig?.videoPlayIcon}\r\n />\r\n );\r\n }\r\n if (rec?.video?.imgUrls) {\r\n return (\r\n <PictureGroup\r\n key={rec?.video.itemId}\r\n imgUrls={rec?.video.imgUrls}\r\n width={containerWidth}\r\n height={height}\r\n rec={rec}\r\n index={index}\r\n onReportViewImageEnd={handleReportViewImageEnd}\r\n onViewImageStartEvent={handleViewImageStartEvent}\r\n imgUrlsPostConfig={globalConfig?.imgUrlsPost}\r\n />\r\n );\r\n }\r\n\r\n if (rec.product && Array.isArray(globalConfig?.productPost) && globalConfig?.productPost?.length > 0) {\r\n return globalConfig?.productPost?.map((value: any, idx: any) => {\r\n const t = resolver[value?.item?.type];\r\n const Component = withBindDataSource(t);\r\n const defaulSetting = t?.extend?.defaulSetting;\r\n return (\r\n <Component\r\n key={`${index}${idx}`}\r\n textStyle={{ ...defaulSetting?.textStyle, ...value?.item?.textStyle }}\r\n bindDatas={value?.item?.bindDatas ?? []}\r\n {...defaulSetting?.props}\r\n {...value?.item?.props}\r\n event={value?.item?.event || {}}\r\n schema={schema}\r\n id={value?.id}\r\n viewTime={viewTime.current}\r\n rec={rec}\r\n isPost={true}\r\n tipText={tipText}\r\n style={{ ...defaulSetting?.style, ...value?.item?.style, height: '100%', overflow: 'auto' }}\r\n index={index}\r\n />\r\n );\r\n });\r\n }\r\n\r\n return null;\r\n },\r\n [\r\n containerWidth,\r\n data,\r\n height,\r\n isMuted,\r\n activeIndex,\r\n globalConfig?.productPost,\r\n globalConfig?.videoPlayIcon,\r\n viewTime,\r\n tipText,\r\n resolver,\r\n schema\r\n ]\r\n );\r\n\r\n const onExpandableChange = useCallback((v: boolean) => {\r\n setIsShowMore(v);\r\n }, []);\r\n\r\n const lineGradStyle = useMemo(() => {\r\n return !isShowMore\r\n ? {\r\n padding: '20px 0'\r\n }\r\n : {\r\n background: 'linear-gradient( 180deg, rgba(129,129,129,0) 0%, rgba(121,121,121,0.5) 5%, #616161 100%)',\r\n paddingTop: 20,\r\n paddingBottom: 20\r\n };\r\n }, [isShowMore]);\r\n\r\n const renderBottom = useCallback(\r\n (rec: RecItemType, index: number) => {\r\n if (rec?.video) {\r\n return (\r\n <>\r\n {rec?.video?.title && !isShowMore && <div className='clc-sxp-bottom-shadow' />}\r\n <div className='clc-sxp-bottom' style={{ paddingBottom: `${globalConfig?.bottomInfoDist ?? 40}px` }}>\r\n <Nudge nudge={nudge} />\r\n {globalConfig?.isShowCTA === undefined || globalConfig?.isShowCTA ? (\r\n <div className='clc-sxp-bottom-card'>\r\n <RenderCard rec={rec} index={index} tempMap={tempMap} resolver={resolver} />\r\n </div>\r\n ) : null}\r\n <div>\r\n <ExpandableText\r\n className='clc-sxp-bottom-text'\r\n isPost={true}\r\n foldText={tipText?.foldText}\r\n unfoldText={tipText?.unfoldText}\r\n text={rec?.video?.title ?? ''}\r\n style={{\r\n ...descStyle,\r\n textShadow: globalConfig?.isOpenTextShadow ? '2px 2px 4px rgba(0, 0, 0, 0.5)' : 'none'\r\n }}\r\n onChange={onExpandableChange}\r\n />\r\n <Hashtag\r\n index={activeIndex}\r\n tags={rec?.video?.hashTags ?? []}\r\n itemId={rec?.video?.itemId}\r\n itemType={rec?.video?.itemId ? 'VIDEO' : null}\r\n rec={rec}\r\n hashTagStyle={hashTagStyle}\r\n />\r\n </div>\r\n </div>\r\n </>\r\n );\r\n }\r\n return null;\r\n },\r\n [\r\n descStyle,\r\n activeIndex,\r\n tempMap,\r\n resolver,\r\n tipText,\r\n nudge,\r\n hashTagStyle,\r\n globalConfig,\r\n onExpandableChange,\r\n isShowMore,\r\n lineGradStyle\r\n ]\r\n );\r\n\r\n const renderLikeButton = useCallback(\r\n (rec: RecItemType, index: number) => {\r\n if (!globalConfig?.isShowLike) return;\r\n let top = globalConfig?.likeIconY ?? 400;\r\n if (waterFallData && top < 40) {\r\n top += 40;\r\n }\r\n if (rec?.video) {\r\n return (\r\n <LikeButton\r\n key={rec.position}\r\n activeIcon={globalConfig?.likeIcon}\r\n unActicveIcon={globalConfig?.unlikeIcon}\r\n active={rec.isCollected}\r\n recData={rec}\r\n className='clc-sxp-like-button'\r\n style={{\r\n [globalConfig.likeIconXPosit ?? 'right']: globalConfig.likeIconX ?? 0,\r\n [globalConfig.likeIconYPosit ?? 'bottom']: top\r\n }}\r\n position={index}\r\n />\r\n );\r\n }\r\n return null;\r\n },\r\n [globalConfig, waterFallData]\r\n );\r\n\r\n const handleReportViewImageEnd = (item: RecItemType) => {\r\n if (!item?.video?.url && item?.video?.imgUrls) {\r\n const endTime = Date.now();\r\n const duration = (endTime - viewImageStartTime.current) / 1000;\r\n bffEventReport?.({\r\n eventInfo: {\r\n eventSubject: 'viewImageCarouselEnd',\r\n eventDescription: 'User end view the image carousel',\r\n contentId: item?.video?.itemId ?? '',\r\n contentName: item?.video.title ?? '',\r\n imageEndTime: `${endTime}`,\r\n playDuration: `${duration}`,\r\n contentTags: JSON.stringify(item?.video.tags ?? []),\r\n position: activeIndex + '',\r\n contentFormat: 'image',\r\n traceInfo: item?.video.traceInfo\r\n }\r\n });\r\n }\r\n };\r\n\r\n const handleScrollEvent = (swiper: any) => {\r\n viewTime.current = new Date();\r\n const item = data[swiper.previousIndex];\r\n if (!item) return;\r\n if (swiper.previousIndex - swiper.activeIndex < 0) {\r\n bffEventReport?.({\r\n eventInfo: {\r\n eventSubject: 'scrollDown',\r\n eventDescription: 'User scroll down',\r\n contentId: item?.video?.itemId ?? '',\r\n productId: item?.product?.itemId ?? '',\r\n requestId: null\r\n }\r\n });\r\n // 如果上一个商品是图片集,需上报 浏览图片集结结束 事件\r\n handleReportViewImageEnd(item);\r\n } else {\r\n bffEventReport?.({\r\n eventInfo: {\r\n eventSubject: 'scrollUp',\r\n eventDescription: 'User scroll up',\r\n contentId: item?.video?.itemId ?? '',\r\n productId: item.product?.itemId ?? '',\r\n requestId: null\r\n }\r\n });\r\n // 如果上一个商品是图片集,需上报 浏览图片集结结束 事件\r\n handleReportViewImageEnd(item);\r\n }\r\n // 商品浏览事件\r\n handleReportProductView(item);\r\n const curItem = data[swiper.activeIndex];\r\n if (!curItem?.video?.url && !curItem?.video?.imgUrls && curItem?.product) {\r\n bffFbReport?.({\r\n eventName: 'ProductView'\r\n });\r\n }\r\n };\r\n\r\n const handleReportProductView = (item: RecItemType) => {\r\n if (!item?.video?.url && !item?.video?.imgUrls && item?.product) {\r\n productView(item, item.product, item?.product?.bindCta, viewTime.current, activeIndex);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n const item = data[activeIndex];\r\n if (openHashtag) handleReportProductView(item);\r\n }, [openHashtag, data, activeIndex]);\r\n\r\n const handleViewImageStartEvent = (activeIndex: number) => {\r\n const item = data[activeIndex];\r\n // 如果是图片集则上报事件\r\n if (!item?.video?.url && item?.video?.imgUrls) {\r\n const startTime = Date.now();\r\n viewImageStartTime.current = startTime;\r\n bffEventReport?.({\r\n eventInfo: {\r\n eventSubject: 'viewImageCarouselStart',\r\n eventDescription: 'User start view the image carousel',\r\n contentId: item?.video?.itemId ?? '',\r\n contentName: item?.video.title ?? '',\r\n imageStartTime: `${startTime}`,\r\n contentTags: JSON.stringify(item?.video.tags ?? []),\r\n position: activeIndex + '',\r\n contentFormat: 'image',\r\n traceInfo: item?.video.traceInfo\r\n }\r\n });\r\n bffFbReport?.({\r\n eventName: 'ViewContent'\r\n });\r\n }\r\n };\r\n\r\n const visList = useMemo(() => {\r\n const list =\r\n activeIndex === 0 && !waterFallData\r\n ? [data?.[0] ?? null]\r\n : (data?.map((item, index) => {\r\n if (activeIndex === index || index - 1 === activeIndex || index + 1 === activeIndex) {\r\n return item;\r\n } else {\r\n return null;\r\n }\r\n }) as any);\r\n\r\n return !waterFallData ? list.concat([{ loading: true }]) : list;\r\n }, [data, activeIndex, waterFallData]);\r\n\r\n const renderView = useMemo(() => {\r\n if (loading) {\r\n return (\r\n <div style={{ height, width: containerWidth, display: 'flex', justifyContent: 'center', alignItems: 'center' }}>\r\n <img width={64} height={64} src={loadingImage} alt='loading...' style={{ objectFit: 'contain' }} />\r\n </div>\r\n );\r\n }\r\n return visList?.map((rec: any, index: any) => {\r\n return (\r\n <SwiperSlide key={index} virtualIndex={index}>\r\n {rec && (\r\n <>\r\n {rec?.loading ? (\r\n <div\r\n style={{\r\n height,\r\n width: containerWidth,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n }}\r\n >\r\n <img width={64} height={64} src={loadingImage} alt='loading...' style={{ objectFit: 'contain' }} />\r\n </div>\r\n ) : (\r\n <>\r\n {renderContent(rec, index)}\r\n {renderBottom(rec, index)}\r\n {renderLikeButton(rec, index)}\r\n </>\r\n )}\r\n </>\r\n )}\r\n </SwiperSlide>\r\n );\r\n });\r\n }, [containerWidth, data, height, loading, renderBottom, renderContent, visList, loadingImage]);\r\n\r\n const mutedIcon = useIconLink('/pb_static/5beaaa5ce7f3477b99db3838619cc471.png');\r\n const unmutedIcon = useIconLink('/pb_static/fea8668a8a894e4aa3a86bcc775e895e.png');\r\n return (\r\n <div id='sxp-render' className='clc-sxp-container'>\r\n {waterFallData && (\r\n <Navbar\r\n icon={left}\r\n styles={{ background: 'rgba(0,0,0,.3)', color: '#fff' }}\r\n onClose={() => {\r\n setOpenHashtag?.(true);\r\n }}\r\n />\r\n )}\r\n {renderLogo}\r\n <Tagbar\r\n tagList={tagList}\r\n setActiveIndex={setActiveIndex}\r\n style={{\r\n top: minusHeight\r\n }}\r\n />\r\n {isShowFingerTip ? (\r\n <FingerSwipeTip\r\n imageUrl={globalConfig?.swipeTipIcon}\r\n style={{ top: `${50 - (globalConfig?.swipeTipOffset ?? 0)}%` }}\r\n />\r\n ) : null}\r\n <Swiper\r\n style={{\r\n marginTop: tagHeight\r\n }}\r\n ref={swiperRef}\r\n onSlideChange={() => {\r\n swiperRef.current.swiper.allowTouchMove = false;\r\n setTimeout(() => {\r\n swiperRef.current.swiper.allowTouchMove = true;\r\n }, 500);\r\n }}\r\n onActiveIndexChange={(swiper) => {\r\n setActiveIndex(swiper.activeIndex);\r\n if (openHashtag) return;\r\n // 处理上滑下滑事件\r\n handleScrollEvent(swiper);\r\n if (waterFallData) return;\r\n if (swiper?.activeIndex + 2 >= data?.length) {\r\n if (!isLoadMore) {\r\n setIsLoadMore(true);\r\n loadVideos?.(Math.ceil(activeIndex / 10) + 1).then(() => {\r\n setIsLoadMore(false);\r\n });\r\n }\r\n }\r\n }}\r\n direction={'vertical'}\r\n height={height}\r\n >\r\n {(globalConfig?.isShowMute === undefined || globalConfig?.isShowMute === true) && (\r\n <ToggleButton\r\n style={{\r\n position: 'fixed',\r\n visibility: data?.[activeIndex]?.video?.url ? 'visible' : 'hidden',\r\n zIndex: 999,\r\n [globalConfig?.muteIconXPosit ?? 'right']: globalConfig?.muteIconX ?? 0,\r\n [globalConfig?.muteIconYPosit ?? 'bottom']: globalConfig?.muteIconY ?? 23\r\n }}\r\n defaultValue={isMuted}\r\n activeIcon={globalConfig?.unMuteIcon ? globalConfig?.unMuteIcon : mutedIcon}\r\n unactiveIcon={globalConfig?.muteIcon ? globalConfig?.muteIcon : unmutedIcon}\r\n onChange={setIsMuted}\r\n />\r\n )}\r\n\r\n {renderView}\r\n </Swiper>\r\n <WaterFall {...globalConfig?.hashTag?.[0]?.item?.props} />\r\n </div>\r\n );\r\n};\r\n\r\nexport default SxpPageRender;\r\n","import React, { FC, memo } from 'react';\r\nimport { Autoplay, Pagination } from 'swiper/modules';\r\nimport { Swiper, SwiperSlide } from 'swiper/react';\r\nimport { RecItemType } from '../SxpPageRender/typing';\r\nimport Picture from '../SxpPageRender/PictureGroup/Picture';\r\nimport { postConfigType } from '../SxpPageRender';\r\n\r\ninterface IPictureGroupProps {\r\n imgUrls?: string[];\r\n width: number;\r\n height: number;\r\n rec: RecItemType;\r\n index: number;\r\n imgUrlsPostConfig?: postConfigType;\r\n}\r\n\r\nconst PictureGroup: FC<IPictureGroupProps> = ({ imgUrls, width, height, imgUrlsPostConfig, rec, index }) => {\r\n return (\r\n <Swiper\r\n defaultValue={0}\r\n direction={'horizontal'}\r\n modules={[Pagination, Autoplay]}\r\n pagination={{ clickable: true, bulletActiveClass: 'swipe-item-active-bullet' }}\r\n height={height}\r\n style={{ width }}\r\n loop={true}\r\n autoplay={false}\r\n >\r\n {imgUrls?.map((url) => {\r\n return (\r\n <SwiperSlide key={url}>\r\n <Picture src={url} height={height} imgUrlsPostConfig={imgUrlsPostConfig} />\r\n </SwiperSlide>\r\n );\r\n })}\r\n </Swiper>\r\n );\r\n};\r\n\r\nexport default memo(PictureGroup);\r\n","import React, { CSSProperties, FC, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport { RecItemType } from '../SxpPageRender/typing';\r\nimport { useIconLink } from '../SxpPageRender/useIconLink';\r\nimport { postConfigType } from '../SxpPageRender';\r\nimport FormatImage from '../SxpPageRender/FormatImage';\r\nimport { useSxpDataSource } from '@/core/hooks';\r\n\r\ninterface IVideoWidgetProps {\r\n rec: RecItemType;\r\n index: number;\r\n height: number;\r\n width: number;\r\n data: RecItemType[];\r\n muted: boolean;\r\n activeIndex?: number;\r\n videoPostConfig?: postConfigType;\r\n}\r\n\r\nconst VideoWidget: FC<IVideoWidgetProps> = ({\r\n rec,\r\n index,\r\n height,\r\n data,\r\n muted,\r\n activeIndex,\r\n videoPostConfig,\r\n width\r\n}) => {\r\n const [isPauseVideo, setIsPauseVideo] = useState(false);\r\n const videoRef = useRef<HTMLVideoElement>(null);\r\n const { bffEventReport, sxpParameter, waterFallData, openHashtag } = useSxpDataSource();\r\n const videoStartTime = useRef(0);\r\n const [isLoadFinish, setIsLoadFinish] = useState(false);\r\n const [isFirstPlay, setIsFirstPlay] = useState(true);\r\n const canvasRef = useRef(null);\r\n const [firstFrameSrc, setFirstFrameSrc] = useState('');\r\n\r\n useEffect(() => {\r\n if (!videoRef.current) return;\r\n videoRef.current.muted = muted;\r\n }, [muted]);\r\n\r\n const handleVideoStart = useCallback(() => {\r\n videoRef.current?.play();\r\n }, []);\r\n\r\n const PAUSE_ICON = useIconLink('/pb_static/06f28a2025c74c1cb49be6767316d827.png');\r\n\r\n const handlePlaying = useCallback(() => {\r\n setIsPauseVideo(false);\r\n const item = data[index];\r\n if (item && videoRef?.current?.duration) {\r\n videoStartTime.current = videoRef?.current?.currentTime || 0;\r\n const videoDuration = (videoRef.current?.duration ?? 0).toFixed(2);\r\n const videoCurrentTime = (videoRef.current?.currentTime ?? 0).toFixed(2);\r\n const playType = isFirstPlay ? '0' : '1';\r\n bffEventReport?.({\r\n eventInfo: {\r\n eventSubject: 'playVideo',\r\n eventDescription: 'User played the video',\r\n contentId: item?.video?.itemId ?? '',\r\n contentName: item?.video?.title ?? '',\r\n playType,\r\n startTime: videoCurrentTime,\r\n videoDuration,\r\n contentTags: JSON.stringify(item?.video?.tags ?? []),\r\n position: index + '',\r\n contentFormat: 'video',\r\n traceInfo: item?.video?.traceInfo\r\n }\r\n });\r\n setIsFirstPlay(false);\r\n }\r\n }, [bffEventReport, data, index, isFirstPlay]);\r\n\r\n const handleLoadedMetadata = useCallback(() => {\r\n setIsLoadFinish(true);\r\n }, []);\r\n\r\n const handleClickVideo = useCallback(\r\n (type?: 'pause' | 'start') => () => {\r\n if (!isLoadFinish) return;\r\n const isPause = videoRef.current?.paused;\r\n switch (type) {\r\n case 'start':\r\n if (!isPause) return;\r\n videoRef.current?.play();\r\n setIsPauseVideo(false);\r\n break;\r\n case 'pause':\r\n if (isPause) return;\r\n videoRef.current?.pause();\r\n setIsPauseVideo(true);\r\n break;\r\n default:\r\n if (isPause) {\r\n videoRef.current?.play();\r\n } else {\r\n videoRef.current?.pause();\r\n }\r\n setIsPauseVideo(!isPause);\r\n break;\r\n }\r\n },\r\n [isLoadFinish]\r\n );\r\n\r\n const onPause = useCallback(() => {\r\n const item = data[index];\r\n const videoDuration = (videoRef.current?.duration ?? 0).toFixed(2);\r\n const videoCurrentTime = (videoRef.current?.currentTime ?? 0).toFixed(2);\r\n if (videoRef?.current?.duration) {\r\n const playDuration = (videoRef?.current?.currentTime - videoStartTime.current).toFixed(2);\r\n bffEventReport?.({\r\n eventInfo: {\r\n eventSubject: 'playOverVideo',\r\n eventDescription: 'User finished playing the video',\r\n contentId: item?.video?.itemId ?? '',\r\n contentName: item?.video?.title ?? '',\r\n endTime: videoCurrentTime,\r\n videoDuration,\r\n playDuration,\r\n contentTags: JSON.stringify(item?.video?.tags ?? []),\r\n position: index + '',\r\n contentFormat: 'video',\r\n traceInfo: item?.video?.traceInfo\r\n }\r\n });\r\n }\r\n }, [data, index, bffEventReport]);\r\n\r\n const blur = useMemo(() => {\r\n return videoPostConfig?.mode === '2';\r\n }, [videoPostConfig]);\r\n\r\n const translateY = useMemo(() => {\r\n return videoPostConfig?.mode === '2'\r\n ? `translateY(-${50 + (videoPostConfig?.offsetTop ?? 0)}%) translate3d(0px, 0px, 0px)`\r\n : 'translateY(-50%)';\r\n }, [videoPostConfig]);\r\n\r\n const blurBgSrc = useMemo(() => {\r\n return rec?.video?.cover || firstFrameSrc;\r\n }, [firstFrameSrc, rec]);\r\n\r\n const handLoadeddata = useCallback(() => {\r\n if (!canvasRef || !videoRef || !videoRef.current || !canvasRef.current) return;\r\n const video = videoRef?.current;\r\n const canvas = canvasRef?.current as any;\r\n const ctx = canvas.getContext('2d');\r\n const targetWidth = window?.innerWidth;\r\n const targetHeight = window?.innerHeight;\r\n canvas.height = targetHeight;\r\n canvas.width = targetWidth;\r\n ctx?.drawImage(video, 0, 0, canvas.width, canvas.height);\r\n setFirstFrameSrc(canvas.toDataURL());\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!videoRef.current) return;\r\n setIsPauseVideo(false);\r\n if (!videoRef.current.src) {\r\n const videoSrc = rec?.video!.url;\r\n if (videoSrc.includes('.m3u8')) {\r\n if (typeof window !== 'undefined' && window?.Hls.isSupported()) {\r\n const hls = new window.Hls();\r\n hls.loadSource(videoSrc);\r\n hls.attachMedia(videoRef.current);\r\n } else if (videoRef.current.canPlayType('application/vnd.apple.mpegurl')) {\r\n videoRef.current.src = videoSrc;\r\n } else {\r\n videoRef.current.src = videoSrc;\r\n }\r\n } else {\r\n videoRef.current.src = videoSrc;\r\n }\r\n videoRef.current.setAttribute('x5-playsinline', 'true');\r\n videoRef.current.setAttribute('webkit-playsinline', 'true');\r\n }\r\n videoRef.current?.addEventListener('loadedmetadata', handleLoadedMetadata);\r\n videoRef.current?.addEventListener('canplay', handleLoadedMetadata);\r\n videoRef.current?.addEventListener('playing', handlePlaying);\r\n videoRef.current?.addEventListener('loadeddata', handLoadeddata);\r\n\r\n return () => {\r\n videoRef.current?.removeEventListener('loadedmetadata', handleLoadedMetadata);\r\n videoRef.current?.removeEventListener('canplay', handleLoadedMetadata);\r\n videoRef.current?.removeEventListener('playing', handlePlaying);\r\n videoRef.current?.removeEventListener('loadeddata', handLoadeddata);\r\n };\r\n }, [handleLoadedMetadata, handlePlaying, rec?.video, handLoadeddata]);\r\n\r\n const renderPoster = useMemo(() => {\r\n if (!sxpParameter?.placeholder_image || isLoadFinish) {\r\n return null;\r\n }\r\n\r\n return (\r\n <img\r\n style={{ position: 'absolute', left: 0, top: 0, width: '100%', height: '100%', objectFit: 'cover' }}\r\n src={sxpParameter?.placeholder_image}\r\n alt='video poster'\r\n />\r\n );\r\n }, [isLoadFinish, sxpParameter?.placeholder_image]);\r\n\r\n useEffect(() => {\r\n const handleBeforeUnload = () => {\r\n if (activeIndex === index && rec?.video?.url && videoRef?.current?.src && !isPauseVideo) {\r\n handleClickVideo('pause')();\r\n }\r\n };\r\n\r\n window.addEventListener('beforeunload', handleBeforeUnload);\r\n\r\n return () => {\r\n window.removeEventListener('beforeunload', handleBeforeUnload);\r\n };\r\n }, [activeIndex, index, rec, videoRef, handleClickVideo, isPauseVideo]);\r\n\r\n const blurStyle = useMemo(() => {\r\n return blur\r\n ? {\r\n filter: 'blur(10px)',\r\n transform: 'translate3d(0px, 0px, 0px) scale(1.2)'\r\n }\r\n : {};\r\n }, [blur]) as CSSProperties;\r\n\r\n if (!rec?.video) {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n {blur ? (\r\n <div\r\n className='video-container'\r\n key={rec?.video.itemId}\r\n onClick={handleClickVideo()}\r\n style={{\r\n position: 'relative',\r\n width,\r\n height,\r\n overflow: 'hidden'\r\n }}\r\n >\r\n <FormatImage\r\n src={blurBgSrc}\r\n style={{\r\n height,\r\n width,\r\n objectFit: 'cover',\r\n ...blurStyle\r\n }}\r\n />\r\n <canvas ref={canvasRef} style={{ display: 'none' }} />\r\n <div\r\n style={{\r\n position: 'absolute',\r\n width,\r\n height,\r\n top: '50%',\r\n transform: translateY,\r\n left: 0,\r\n right: 0\r\n }}\r\n >\r\n <div style={{ position: 'relative', width, height: '100%' }}>\r\n <video\r\n id={`pb-video-${index}`}\r\n className='clc-pb-video'\r\n ref={videoRef}\r\n autoPlay\r\n crossOrigin='anonymous'\r\n muted\r\n controls={false}\r\n playsInline\r\n preload='auto'\r\n onPause={onPause}\r\n onEnded={handleVideoStart}\r\n style={{\r\n width: '100%',\r\n height,\r\n objectFit: 'contain'\r\n }}\r\n />\r\n <img hidden={!isPauseVideo} className='clc-pb-video-pause' src={PAUSE_ICON} alt='video pause image' />\r\n </div>\r\n </div>\r\n {renderPoster}\r\n </div>\r\n ) : (\r\n <div\r\n className='video-container'\r\n key={rec?.video.itemId}\r\n onClick={handleClickVideo()}\r\n style={{\r\n position: 'relative',\r\n width,\r\n height,\r\n overflow: 'hidden'\r\n }}\r\n >\r\n <video\r\n id={`pb-video-${index}`}\r\n className='clc-pb-video'\r\n style={{ width: '100%' }}\r\n ref={videoRef}\r\n crossOrigin='anonymous'\r\n muted\r\n autoPlay\r\n controls={false}\r\n playsInline\r\n preload='auto'\r\n onPause={onPause}\r\n onEnded={handleVideoStart}\r\n />\r\n {renderPoster}\r\n <img hidden={!isPauseVideo} className='clc-pb-video-pause' src={PAUSE_ICON} alt='video pause image' />\r\n </div>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default memo(VideoWidget);\r\n","import React, { FC, memo, useMemo } from 'react';\r\nimport { css } from '@emotion/css';\r\nimport { RecItemType } from '../SxpPageRender/typing';\r\nimport Nudge from '../SxpPageRender/Nudge';\r\nimport RenderCard from '../SxpPageRender/RenderCard';\r\nimport ExpandableText from '../SxpPageRender/ExpandableText';\r\nimport Hashtag from '../SxpPageRender/Hashtag';\r\nimport LikeButton from '../SxpPageRender/LikeButton';\r\nimport ToggleButton from '../SxpPageRender/ToggleButton';\r\nimport { useIconLink } from '../SxpPageRender/useIconLink';\r\nimport { ISxpPageRenderProps } from '../SxpPageRender';\r\nimport Tagbar from '../SxpPageRender/Tagbar';\r\nimport PictureGroup from './PictureGroup';\r\nimport VideoWidget from './VideoWidget';\r\nimport * as _materials_ from '@/materials';\r\nimport { MaterialComponet } from '@/core';\r\nimport withBindDataSource from '@/core/hoc/withBindDataSource';\r\n\r\nconst RESOLVER: Record<string, MaterialComponet> = {};\r\nObject.values(_materials_).forEach((v: any) => {\r\n RESOLVER[v.extend!.type] = v;\r\n});\r\n\r\nconst defaultUnLikeIconPath = '/pb_static/f71266d2c64446c5ae6a5a7f5489cc0a.png';\r\nconst defaultLikeIconPath = '/pb_static/f07900fe3f0f4ae188ea1611d4801a44.png';\r\n\r\nconst DiyPortalPreview: FC<ISxpPageRenderProps & { appDomain?: string }> = ({\r\n data = [],\r\n globalConfig,\r\n tipText,\r\n nudge,\r\n tempMap,\r\n descStyle,\r\n hashTagStyle,\r\n containerHeight = 664,\r\n containerWidth = 375,\r\n appDomain,\r\n tagList = []\r\n}) => {\r\n const height = useMemo(() => {\r\n let minusHeight = 0;\r\n if (globalConfig?.logoUrl && globalConfig?.isShowLogo) {\r\n minusHeight += 45;\r\n }\r\n if (tagList.length > 0) {\r\n minusHeight += 45;\r\n }\r\n return containerHeight - minusHeight;\r\n }, [globalConfig, containerHeight, tagList]);\r\n\r\n const renderContent = (rec: RecItemType, index: number) => {\r\n if (rec?.video?.url) {\r\n return (\r\n <VideoWidget\r\n rec={rec}\r\n index={index}\r\n muted={true}\r\n width={containerWidth}\r\n data={data ?? []}\r\n height={height}\r\n activeIndex={index}\r\n videoPostConfig={globalConfig?.videoPost}\r\n />\r\n );\r\n }\r\n if (rec?.video?.imgUrls) {\r\n return (\r\n <PictureGroup\r\n key={rec?.video.itemId}\r\n imgUrls={rec?.video.imgUrls}\r\n width={containerWidth}\r\n height={height}\r\n rec={rec}\r\n index={index}\r\n imgUrlsPostConfig={globalConfig?.imgUrlsPost}\r\n />\r\n );\r\n }\r\n\r\n if (rec.product) {\r\n if (rec.product && Array.isArray(globalConfig?.productPost) && globalConfig?.productPost?.length > 0) {\r\n return globalConfig?.productPost?.map((value: any, idx: any) => {\r\n const t = RESOLVER[value?.item?.type];\r\n const Component = withBindDataSource(t);\r\n const defaulSetting = t?.extend?.defaulSetting;\r\n return (\r\n <Component\r\n key={`${index}${idx}`}\r\n textStyle={{ ...defaulSetting?.textStyle, ...value?.item?.textStyle }}\r\n bindDatas={value?.item?.bindDatas ?? []}\r\n {...defaulSetting?.props}\r\n {...value?.item?.props}\r\n event={value?.item?.event || {}}\r\n // schema={schema}\r\n id={value?.id}\r\n // viewTime={viewTime.current}\r\n rec={rec}\r\n isPost={true}\r\n tipText={tipText}\r\n style={{\r\n ...defaulSetting?.style,\r\n ...value?.item?.style,\r\n width: containerWidth,\r\n height,\r\n overflow: 'auto'\r\n }}\r\n index={index}\r\n />\r\n );\r\n });\r\n }\r\n }\r\n };\r\n\r\n const renderLogo = useMemo(() => {\r\n if (globalConfig?.logoUrl && globalConfig?.isShowLogo) {\r\n return (\r\n <div className='clc-sxp-logo-banner' style={{ backgroundColor: globalConfig?.color }}>\r\n <img src={globalConfig?.logoUrl} alt='logo' />\r\n </div>\r\n );\r\n }\r\n return null;\r\n }, [globalConfig]);\r\n\r\n const CTA = (rec: RecItemType, index: number) => {\r\n if (globalConfig?.isShowCTA === undefined || globalConfig?.isShowCTA) {\r\n return (\r\n <div className='clc-sxp-bottom-card'>\r\n <RenderCard rec={rec} index={index} tempMap={tempMap} resolver={RESOLVER} />\r\n </div>\r\n );\r\n }\r\n return null;\r\n };\r\n\r\n const renderBottom = (rec: RecItemType, index: number) => {\r\n if (rec?.video) {\r\n return (\r\n <>\r\n {rec?.video?.title && <div className='clc-sxp-bottom-shadow' />}\r\n <div className='clc-sxp-bottom'>\r\n <Nudge nudge={nudge} />\r\n {CTA(rec, index)}\r\n <div>\r\n <ExpandableText\r\n className='clc-sxp-bottom-text'\r\n isPost={true}\r\n foldText={tipText?.foldText}\r\n unfoldText={tipText?.unfoldText}\r\n text={rec?.video?.title ?? ''}\r\n style={{\r\n ...descStyle,\r\n textShadow: globalConfig?.isOpenTextShadow ? '2px 2px 4px rgba(0, 0, 0, 0.5)' : 'none'\r\n }}\r\n />\r\n </div>\r\n <Hashtag\r\n index={index}\r\n tags={rec?.video?.hashTags ?? []}\r\n itemId={rec?.video?.itemId}\r\n itemType={rec?.video?.itemId ? 'VIDEO' : null}\r\n rec={rec}\r\n hashTagStyle={hashTagStyle}\r\n />\r\n </div>\r\n </>\r\n );\r\n }\r\n return null;\r\n };\r\n\r\n const likeIcon = useIconLink(defaultLikeIconPath, appDomain);\r\n const unlikeIcon = useIconLink(defaultUnLikeIconPath, appDomain);\r\n const renderLikeButton = (rec: RecItemType, index: number) => {\r\n if (!globalConfig?.isShowLike) return;\r\n let top = globalConfig?.likeIconY ?? 400;\r\n if (top < 40) {\r\n top += 40;\r\n }\r\n if (rec?.video) {\r\n return (\r\n <LikeButton\r\n key={rec.position}\r\n activeIcon={globalConfig?.likeIcon ?? likeIcon}\r\n unActicveIcon={globalConfig?.unlikeIcon ?? unlikeIcon}\r\n position={index}\r\n active={rec.isCollected}\r\n recData={rec}\r\n className='clc-sxp-like-button'\r\n style={{\r\n top,\r\n right: globalConfig?.likeIconX ?? 0\r\n }}\r\n />\r\n );\r\n }\r\n return null;\r\n };\r\n const mutedIcon = useIconLink('/pb_static/5beaaa5ce7f3477b99db3838619cc471.png', appDomain);\r\n const unmutedIcon = useIconLink('/pb_static/fea8668a8a894e4aa3a86bcc775e895e.png', appDomain);\r\n const renderView = (rec: RecItemType, index: number) => {\r\n return (\r\n <div style={{ position: 'relative', border: '1px solid #e1e1e1' }}>\r\n {renderLogo}\r\n <Tagbar tagList={tagList} />\r\n <ToggleButton\r\n style={{\r\n position: 'absolute',\r\n right: globalConfig?.muteIconX ?? 0,\r\n visibility: data?.[index]?.video?.url ? 'visible' : 'hidden',\r\n bottom: globalConfig?.muteIconY ?? 23,\r\n zIndex: 999\r\n }}\r\n defaultValue={true}\r\n activeIcon={globalConfig?.unMuteIcon ? globalConfig?.unMuteIcon : mutedIcon}\r\n unactiveIcon={globalConfig?.muteIcon ? globalConfig?.muteIcon : unmutedIcon}\r\n // onChange={setIsMuted}\r\n />\r\n {renderContent(rec, index)}\r\n {renderBottom(rec, index)}\r\n {renderLikeButton(rec, index)}\r\n </div>\r\n );\r\n };\r\n\r\n return (\r\n <div\r\n className={css({\r\n width: '100%',\r\n height: containerHeight,\r\n display: 'flex',\r\n boxSizing: 'border-box',\r\n gap: 16,\r\n pointerEvents: 'none',\r\n userSelect: 'none',\r\n transform: 'scale(0.7) translateX(-22%) translateY(-140px)'\r\n })}\r\n >\r\n {data?.map((rec, index) => {\r\n return renderView(rec, index);\r\n })}\r\n </div>\r\n );\r\n};\r\n\r\nexport default memo(DiyPortalPreview);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-10-31 10:56:01\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-05-27 18:19:31\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageRender\\Popup\\index.tsx\r\n *\r\n */\r\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport Modal from '../Modal';\r\nimport { RecItemType } from '../typing';\r\nimport { useEditor, useSxpDataSource } from '@/core/hooks';\r\nimport withBindDataSource from '@/core/hoc/withBindDataSource';\r\nimport { useEventReport } from '@/core/hooks/useEventReport';\r\nimport { IPopupType } from '@/core/context/EditorContext';\r\n\r\nconst Popup = () => {\r\n const { schema, resolver, popup } = useEditor();\r\n const { setPopupDetailData, popupDetailData, bffEventReport } = useSxpDataSource();\r\n const { productView } = useEventReport();\r\n const [visible, setVisible] = useState<IPopupType>();\r\n const curTimeRef = useRef<any>(null);\r\n\r\n useEffect(() => {\r\n const initTime = () => {\r\n curTimeRef.current = new Date();\r\n };\r\n initTime();\r\n window.addEventListener('pageshow', initTime);\r\n return () => {\r\n window.removeEventListener('pageshow', initTime);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (popup && popup?.id && popup?.id !== '') {\r\n curTimeRef.current = new Date();\r\n setVisible(popup);\r\n }\r\n }, [popup]);\r\n\r\n const handleClose = () => {\r\n if (!popup || popup?.id === '' || !visible || (new Date() as any) - curTimeRef.current < (popup?.duration ?? 0)) {\r\n return;\r\n }\r\n setVisible({\r\n ...popup,\r\n id: ''\r\n });\r\n const data = popupDetailData as RecItemType;\r\n const product = data?.video?.bindProduct;\r\n const cta = data?.video?.bindProduct?.bindCta;\r\n if (product && cta) {\r\n productView(data, product, cta, curTimeRef.current, popupDetailData?.index);\r\n }\r\n\r\n setTimeout(() => {\r\n window?.sxpPopup('');\r\n setPopupDetailData?.(null);\r\n }, popup?.duration);\r\n };\r\n\r\n const renderPopupDetail = useMemo(() => {\r\n return schema?.sxpPageConf?.globalConfig?.popupList?.map((value: any, index: any) => {\r\n if (value?.id === popup?.id) {\r\n const t = resolver[value?.item?.type];\r\n const Component = withBindDataSource(t);\r\n const isExternalLink = value?.item?.event?.onClick?.linkType === 'externalLink';\r\n const isPopup = value?.item?.event?.onClick?.linkType === 'popup';\r\n const defaulSetting = t?.extend?.defaulSetting;\r\n return (\r\n <Component\r\n key={index}\r\n style={{\r\n ...defaulSetting?.style,\r\n ...value?.item?.style,\r\n width: window.innerWidth ?? '100vw',\r\n height: '80vh',\r\n overflow: 'auto'\r\n }}\r\n textStyle={{ ...defaulSetting?.textStyle, ...value?.item?.textStyle }}\r\n bindDatas={value?.item?.bindDatas ?? []}\r\n {...defaulSetting?.props}\r\n {...value?.item?.props}\r\n event={value?.item?.event || {}}\r\n schema={schema}\r\n id={value?.id}\r\n isExternalLink={isExternalLink}\r\n isPopup={isPopup}\r\n onClose={handleClose}\r\n />\r\n );\r\n } else {\r\n return <></>;\r\n }\r\n });\r\n }, [schema, popup, resolver, handleClose]);\r\n\r\n return (\r\n <Modal popup={visible} onClose={handleClose} padding={0} modalStyle={{ position: 'fixed' }}>\r\n {renderPopupDetail}\r\n </Modal>\r\n );\r\n};\r\nexport default Popup;\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2024-01-15 19:03:09\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-13 14:54:12\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageCore\\index.tsx\r\n *\r\n */\r\n/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-11-24 15:58:00\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2023-12-26 10:24:42\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\components\\SxpPageCore\\index.tsx\r\n *\r\n */\r\nimport React, { FC, memo, useMemo } from 'react';\r\nimport SxpPageRender from '../SxpPageRender';\r\nimport Popup from '../SxpPageRender/Popup';\r\nimport { PageData } from '@/core/Pagebuilder/type';\r\nimport * as _materials_ from '@/materials';\r\nimport { EditorCore, MaterialComponet } from '@/core';\r\nimport SxpDataSourceProvider from '@/core/context/SxpDataSourceProvider';\r\n\r\nconst RESOLVER: Record<string, MaterialComponet> = {};\r\nObject.values(_materials_).forEach((v: any) => {\r\n RESOLVER[v.extend!.type] = v;\r\n});\r\n\r\nexport interface ISxpPageCoreProps {\r\n data?: PageData;\r\n maxSize?: number;\r\n defaultSize?: number;\r\n hashTagSize?: number;\r\n loadingImage?: string;\r\n appDomain?: string;\r\n licenseUrl?: String;\r\n enabledMetaConversionApi?: boolean;\r\n}\r\n\r\nconst SxpPageCore: FC<ISxpPageCoreProps> = ({\r\n data,\r\n maxSize = 10,\r\n defaultSize = 10,\r\n hashTagSize = 20,\r\n loadingImage,\r\n appDomain,\r\n licenseUrl,\r\n enabledMetaConversionApi\r\n}) => {\r\n const utmVal = useMemo(() => {\r\n const searchParams = location?.search ? location?.search?.replace('?', '') : '';\r\n return searchParams;\r\n }, []);\r\n return (\r\n <EditorCore resolver={RESOLVER} enableDataSource={false} schema={data?.data} utmVal={utmVal}>\r\n <SxpDataSourceProvider\r\n utmVal={utmVal}\r\n dataSources={data?.data_sources}\r\n sxpParameter={data?.sxp_parameter}\r\n maxSize={data?.sxp_parameter?.personalized_recommend ?? maxSize}\r\n defaultSize={data?.sxp_parameter?.default_recommend ?? defaultSize}\r\n hashTagSize={data?.sxp_parameter?.hash_tag_size ?? hashTagSize}\r\n loadingImage={loadingImage}\r\n appDomain={appDomain}\r\n enabledMetaConversionApi={enabledMetaConversionApi}\r\n isShowTag={data?.data?.sxpPageConf?.globalConfig?.isShowTag}\r\n globalConfig={data?.data?.sxpPageConf?.globalConfig}\r\n render={({ rtcList, tagList }) => (\r\n <>\r\n <SxpPageRender\r\n {...data?.data?.sxpPageConf}\r\n tagList={tagList}\r\n data={rtcList}\r\n resolver={RESOLVER}\r\n licenseUrl={licenseUrl}\r\n />\r\n <Popup />\r\n </>\r\n )}\r\n />\r\n </EditorCore>\r\n );\r\n};\r\n\r\nexport default memo(SxpPageCore);\r\n","/*\r\n * @Author: binruan@chatlabs.com\r\n * @Date: 2023-12-26 10:38:53\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-25 11:20:15\r\n * @FilePath: \\pb-sxp-ui\\src\\core\\context\\EditorDataProvider.tsx\r\n *\r\n */\r\nimport React, { FC, PropsWithChildren, createContext, useContext, useState } from 'react';\r\n\r\ninterface IEditorDataContext {\r\n sxpPrameter?: {\r\n bottomImage: string;\r\n defaultRecommend: number;\r\n personalizedRecommend: number;\r\n placeholderImage: string;\r\n hashTagSize: number;\r\n loadingImage: string;\r\n industry?: string;\r\n privacyContent?: string;\r\n privacyNecessity?: boolean;\r\n privacyPolicyTitle?: string;\r\n privacyPolicyUrl?: string;\r\n privacyTitle?: string;\r\n template?: any | null;\r\n };\r\n appDomain?: string;\r\n openHashtag?: boolean;\r\n setOpenHashtag?: React.Dispatch<React.SetStateAction<boolean>>;\r\n openConsent?: boolean;\r\n setOpenConsent?: React.Dispatch<React.SetStateAction<boolean>>;\r\n sxpFontLinks?: any[];\r\n}\r\n\r\ninterface IEditorProviderProps {\r\n data?: any;\r\n}\r\n\r\nconst EditorDataContext = createContext<IEditorDataContext>({});\r\n\r\nconst EditorDataProvider: FC<PropsWithChildren<IEditorProviderProps>> = ({ children, data }) => {\r\n const [openHashtag, setOpenHashtag] = useState(false);\r\n const [openConsent, setOpenConsent] = useState(false);\r\n\r\n return (\r\n <EditorDataContext.Provider\r\n value={{\r\n sxpPrameter: {\r\n bottomImage: data?.sxp_parameter?.bottom_image,\r\n defaultRecommend: data?.sxp_parameter?.default_recommend,\r\n personalizedRecommend: data?.sxp_parameter?.personalized_recommend,\r\n placeholderImage: data?.sxp_parameter?.placeholder_image,\r\n hashTagSize: data?.sxp_parameter?.hash_tag_size,\r\n loadingImage: data?.sxp_parameter?.loading_image,\r\n privacyContent: data?.sxp_parameter?.privacy_context,\r\n privacyNecessity: data?.sxp_parameter?.privacy_necessity,\r\n privacyPolicyTitle: data?.sxp_parameter?.privacy_policy_title,\r\n privacyPolicyUrl: data?.sxp_parameter?.privacy_policy_url,\r\n privacyTitle: data?.sxp_parameter?.privacy_title,\r\n template: data?.sxp_parameter?.template,\r\n industry: data?.sxp_parameter?.industry\r\n },\r\n appDomain: data?.appDomain,\r\n openHashtag,\r\n setOpenHashtag,\r\n openConsent,\r\n setOpenConsent,\r\n sxpFontLinks: data?.sxpFontLinks\r\n }}\r\n >\r\n {children}\r\n </EditorDataContext.Provider>\r\n );\r\n};\r\n\r\nexport function useEditorDataProvider() {\r\n return useContext(EditorDataContext);\r\n}\r\n\r\nexport default EditorDataProvider;\r\n","/*\r\n * @Author : haocanweng@chatlabs.cn\r\n * @Date : 2023-08-21 16:31:58\r\n * @LastEditors: binruan@chatlabs.com\r\n * @LastEditTime: 2024-06-25 11:37:48\r\n * @FilePath: \\pb-sxp-ui\\src\\index.ts\r\n */\r\nimport { Pagebuilder } from './core/Pagebuilder';\r\nexport * as core from './core';\r\nexport * as materials from './materials';\r\nexport { default as SxpPageRender } from './core/components/SxpPageRender';\r\nexport { default as DiyPortalPreview } from './core/components/DiyPortalPreview';\r\nexport { default as Modal } from './core/components/SxpPageRender/Modal';\r\nexport { default as SxpDataSourceProvider } from './core/context/SxpDataSourceProvider';\r\nexport { default as SxpPageCore } from './core/components/SxpPageCore';\r\nexport { default as EditorDataProvider } from './core/context/EditorDataProvider';\r\nexport { useEditorDataProvider } from './core/context/EditorDataProvider';\r\nexport default Pagebuilder;\r\n"],"names":["uuidv4","isEmpty","useContext","useMemo","Consent","useEffect","memo","createContext","useState","useRef","useCallback","isEqual","forwardRef","cloneDeep","useImperativeHandle","DataSourceProvider","AppointForm","debounce","css","Form","settingRender","interactionRender","isObject","extend","getComputedStyle","Swiper","useLayoutEffect","ReactDOM","CommodityDetail","ExpandableText","FormatImage","Modal","img","Prompt","success","CommodityDetailDiroNew","throttle","Commodity","EventProvider","Img","styles","Appoint","Link","CommodityDiro","CommodityDiroNew","FreeMode","MultiCommodityDiro","Scroll","MultiCommodity","MultiCommodityDiroNew","WaterfallFlowItem","WaterfallList","Navbar","left","List","HashTag","WaterFall","defaultUnLikeIconPath","defaultLikeIconPath","VideoWidget","loading_gif","PictureGroup","get","RenderCard","Hashtag","LikeButton","Tagbar","ToggleButton","RESOLVER","SxpDataSourceProvider"],"mappings":"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","x_google_ignoreList":[0,27,28,29,30,31,32,33,34,35,36,37,38,39]}
|