@yorkjs/hive-biz 0.1.6 → 0.1.7
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/hive-biz.esm.js +1 -1
- package/dist/hive-biz.esm.js.map +1 -1
- package/dist/hive-biz.esm.min.js +1 -1
- package/dist/hive-biz.esm.min.js.map +1 -1
- package/dist/hive-biz.js +1 -1
- package/dist/hive-biz.js.map +1 -1
- package/dist/hive-biz.min.js +1 -1
- package/dist/hive-biz.min.js.map +1 -1
- package/package.json +1 -1
- package/types/coupon/constant.d.ts +2 -0
- package/types/coupon/couponSelector.d.ts +1 -0
- package/types/coupon/couponUtil.d.ts +5 -2
- package/types/coupon/type.d.ts +2 -0
package/dist/hive-biz.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{isNaN as t,fill as i,find as e,findIndex as n,flattenDeep as r,every as o,cloneDeep as u,filter as s,pick as c,isEqual as a}from"lodash-es";import*as l from"@yorkjs/hive";import{moneyToDisplay as h,timesNumber as d,plusNumber as f,formatMinuteSegments as m}from"@yorkjs/hive";function p(t,i){(null==i||i>t.length)&&(i=t.length);for(var e=0,n=Array(i);e<i;e++)n[e]=t[e];return n}function v(t,i,e){return i=b(i),function(t,i){if(i&&("object"==typeof i||"function"==typeof i))return i;if(void 0!==i)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,g()?Reflect.construct(i,e||[],b(t).constructor):i.apply(t,e))}function _(t,i){if(!(t instanceof i))throw new TypeError("Cannot call a class as a function")}function k(t,i,e){return i&&function(t,i){for(var e=0;e<i.length;e++){var n=i[e];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,x(n.key),n)}}(t.prototype,i),Object.defineProperty(t,"prototype",{writable:!1}),t}function y(t,i,e){return(i=x(i))in t?Object.defineProperty(t,i,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[i]=e,t}function b(t){return b=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},b(t)}function g(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(g=function(){return!!t})()}function L(t,i){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);i&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,n)}return e}function S(t){for(var i=1;i<arguments.length;i++){var e=null!=arguments[i]?arguments[i]:{};i%2?L(Object(e),!0).forEach(function(i){y(t,i,e[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):L(Object(e)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(e,i))})}return t}function C(t,i){return C=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,i){return t.__proto__=i,t},C(t,i)}function I(t){return function(t){if(Array.isArray(t))return p(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,i){if(t){if("string"==typeof t)return p(t,i);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?p(t,i):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function x(t){var i=function(t,i){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,i);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===i?String:Number)(t)}(t,"string");return"symbol"==typeof i?i:i+""}function P(i){if(null==i||t(i))return!0;var e=!1;switch(Object.prototype.toString.call(i)){case"[object Object]":e=0===Object.keys(i).length;break;case"[object Array]":e=0===i.length;break;case"[object String]":0===i.trim().length&&(e=!0)}return e}var z=function(){return k(function t(i){_(this,t),y(this,"vertex",[]),y(this,"quantity",0),y(this,"adjoinArray",[]),this.vertex=i,this.quantity=this.vertex.length,this.adjoinArray=[],this.init()},[{key:"init",value:function(){this.adjoinArray=i(new Array(this.quantity*this.quantity),0)}},{key:"setAdjoinVertexs",value:function(t,i,e){var n=this,r=this.vertex.indexOf(t);i.forEach(function(t,i){var o=n.vertex.indexOf(t),u=n.adjoinArray[r*n.quantity+o];"number"!=typeof u?n.adjoinArray[r*n.quantity+o].push(e):n.adjoinArray[r*n.quantity+o]=u>1?[u,e]:e})}},{key:"getVertexCol",value:function(t){var i=this,e=this.vertex.indexOf(t),n=[];return this.vertex.forEach(function(t,r){n.push(i.adjoinArray[e+i.quantity*r])}),n}},{key:"getCollection",value:function(t){var i=this,e=t.map(function(t){return i.getVertexCol(t)}),n=[];return e.forEach(function(i,e){i.some(function(t){return 0!==t})&&n.push(t[e])}),n}},{key:"getUnions",value:function(t){var i=this,e=t.map(function(t){return i.getVertexCol(t)}),n=[];return this.vertex.forEach(function(t,r){var o=e.map(function(t){return t[r]}).filter(function(t){return 1!==t});i.isItemEqual(o)&&n.push(t)}),n}},{key:"isItemEqual",value:function(t){if(t.includes(0))return!1;var i=-1;return t.length&&(t.some(function(t){return"number"==typeof t&&(i=t),"number"==typeof t}),-1===i)?this.isArrayUnions(t):t.every(function(t){return"number"==typeof t?t===i:t.includes(i)})}},{key:"isArrayUnions",value:function(t){return!!t.length&&t[0].some(function(i){return t.every(function(t){return t.includes(i)})})}}])}(),E=function(){function t(i,e){var n;_(this,t);var r=[];return i.forEach(function(t,i){t.list.forEach(function(t){r.push("".concat(i,"_").concat(t))})}),y(n=v(this,t,[r]),"specList",[]),y(n,"specCombinationList",[]),n.specList=i,n.specCombinationList=e,n.initSpec(),n.initSameLevel(),n}return function(t,i){if("function"!=typeof i&&null!==i)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(i&&i.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),i&&C(t,i)}(t,z),k(t,[{key:"initSpec",value:function(){var t=this;this.specCombinationList.forEach(function(i,e){var n=i.specs.map(function(t,i){return"".concat(i,"_").concat(t)});t.fillInSpec(n,e+2)})}},{key:"initSameLevel",value:function(){var t=this,i=this.getCollection(this.vertex);this.specList.forEach(function(e,n){var r=[];e.list.forEach(function(t){var e="".concat(n,"_").concat(t);i.includes(e)&&r.push(e)}),t.fillInSpec(r,1)})}},{key:"getSpecsOptions",value:function(t){var i=[];if(t.some(Boolean)){var e=t.map(function(t,i){return t?"".concat(i,"_").concat(t):""}).filter(Boolean);i=this.getUnions(e)}else i=this.getCollection(this.vertex);return i}},{key:"fillInSpec",value:function(t,i){var e=this;t.forEach(function(n){e.setAdjoinVertexs(n,t,i)})}}])}(),O=function(){return k(function t(i){_(this,t);var e=i.productSpecGroupList,n=i.skuListAfter,r=i.activitySpecList,o=void 0===r?[]:r;this.productSpecGroupList=e,this.skuListAfter=n,this.activitySpecList=o,this.specAdjoinMatrix=new E(e,n)},[{key:"isActivitySpec",value:function(t,i){return!P(this.activitySpecList)&&!!e(this.activitySpecList[t],function(t){return t.name===i})}},{key:"getSpecGroupStateList",value:function(t){var i=this,e=this.specAdjoinMatrix.getSpecsOptions(t);return this.productSpecGroupList.map(function(n,r){return{title:n.title,items:n.list.map(function(n){return{value:n,isEnabled:-1!==e.indexOf("".concat(r,"_").concat(n)),isActive:t[r]===n,isActivitySpec:i.isActivitySpec(r,n)}})}})}},{key:"getOptionSpecs",value:function(t){return this.specAdjoinMatrix.getSpecsOptions(t)}},{key:"toggleSpec",value:function(t,i,e,n){var r,o;if(!t)return n;var u=I(n),s=null!==(r=null===(o=this.productSpecGroupList[e])||void 0===o?void 0:o.list)&&void 0!==r?r:[];return-1!==u.indexOf(i)?u[e]="":(s.forEach(function(t){var i=u.indexOf(t);-1!==i&&(u[i]="")}),u[e]=i),u}},{key:"findMatchedSku",value:function(t){var i=t.filter(Boolean),e=this.productSpecGroupList.length;if(i.length===e)return this.skuListAfter.find(function(t){return i.every(function(i){return t.specs.includes(i)})})}},{key:"isAllSpecSelected",value:function(t){var i=this.productSpecGroupList.length;return t.filter(function(t){return!P(t)}).length===i}}])}(),A=1e7,M="decrease";function V(t,i){var e=S(S({},t),{},{id:i.activity_sku_id,origin_sku_id:t.id,is_promotion_activity:!0,is_set_activity_price:!1});return-1!==i.sale_price&&i.sale_price!==t.sale_price&&(e.original_price=t.sale_price,e.sale_price=i.sale_price,e.is_set_activity_price=!0),-1!==i.stock_count&&(e.stock_count=i.stock_count),e}function G(t,i){var n=[];return i.forEach(function(i){var r=i.combo_sku,o=i.min_count,u=i.max_count,s=e(t,function(t){return t.id===r.id});if(s){var c=S({},s);o>0&&(c.per_order_min_limit=o),u>0&&(c.per_order_max_limit=u),n.push(c)}}),n}function j(t){return S(S({},t),{},{origin_sku_id:t.id,is_promotion_activity:!1,is_set_activity_price:!1})}function T(t,i,n){return i?function(t,i,n){if(n)return t.map(function(t){var n=e(i,function(i){return i.mall_sku_id===t.id}),r=j(t);return n&&(r=V(t,n)),r});return i.map(function(i){return V(e(t,function(t){return t.id===i.mall_sku_id}),i)})}(t,i,n):t.map(function(t){return j(t)})}function D(t,i,e){var r=[];return i.forEach(function(i,o){var u=i.items,s=S(S({},i),{},{items:[]});t.forEach(function(t){var i=t.item_ids,r=n(u,function(t){return t.id===i[o]});if(-1!==r){var c=u[r];-1===n(s.items,function(t){return t.id===c.id})&&(t.is_promotion_activity&&e&&(c.is_promotion_activity=!0),s.items.push(c))}}),r.push(s)}),r}function w(t){return t.map(function(t){return{title:t.spec.name,list:t.items.map(function(t){return t.name})}})}function N(t,i,e){var n=[];return t.map(function(t){(e||t.stock_count>0)&&n.push(S(S({},t),{},{specs:t.item_ids.map(function(t){return i[t]})}))}),n}function R(t){var i={};return t.forEach(function(t){t.items.forEach(function(t){i[t.id]=t.name})}),i}function F(t,i){var e,n=i;0!==t.length&&(void 0!==(null===(e=t[0].items[0])||void 0===e?void 0:e.image)&&(n=t[0].items[0].image));return n}function q(t){var i=[];return t.forEach(function(t){var e=[];t.items.forEach(function(t){t.is_promotion_activity&&e.push(t)}),i.push(e)}),i}function B(t){var i=t.combo_type,e=t.select_type;return 2===i?"选套餐":2===e?"选规格":"加入购物车"}function U(t,i){return 1===t&&1===i}function J(t){var i=t.combo_type,e=t.select_type;return!(2===i)&&1===e}function W(t,i){return 1===t&&2===(arguments.length>2&&void 0!==arguments[2]?arguments[2]:2)?1===i?"销售中":"已售罄":"已下架"}function $(t){var i=t.map(function(t){return t.sale_price}),e=Math.min.apply(Math,I(i))||0,n=Math.max.apply(Math,I(i))||0;return e===n?"¥".concat(h(e)):"¥".concat(h(e)," ~ ¥").concat(h(n))}function H(t){var i=t.end_price,e=t.start_price;return e===i?"¥".concat(h(e)):"¥".concat(h(e),"~").concat(h(i))}function Y(t){var i=0;return t.forEach(function(t){i+=t.stock_count}),i}function K(t,i,e){var n={cartList:[],cartCount:0},r=i.id,o=i.code;return t.forEach(function(t){var i=t.product,u=t.external_product;t.error||(e?(null==u?void 0:u.id)===e&&(n.cartList.push(t),n.cartCount+=t.cart.count):r?i.id===r&&(n.cartList.push(t),n.cartCount+=t.cart.count):i.code===o&&(n.cartList.push(t),n.cartCount+=t.cart.count))}),n}function Q(t,i){if(P(i))return t;var e=S(S({},t),i);return-1===i.sale_price?e.sale_price=t.sale_price:e.original_price=t.sale_price,-1===i.stock_count&&(e.stock_count=t.stock_count),e}function X(t){return t.map(function(t){return function(t){return c(t,["id","count"])}(t)})}function Z(t){return X(r(t))}function tt(t,i){var n=0,o=r(i);return t.forEach(function(t){t.items.forEach(function(t){var i=t.id,r=t.customization_item,u=r.increase_type,s=r.increase_sale_price,c=e(o,function(t){return t.id===i});c&&2===u&&(n+=d(s,c.count))})}),n}function it(t,i,e){if(-1===t)return t;var n=tt(i,e||[]);return f(t,n)}function et(t,i){return t.length===i.length&&o(t,function(t){return e(i,function(i){return i.id===t.id&&i.count===t.count})})}function nt(t){return t.map(function(t){var i=S(S({},t),{},{items:[]});return i.items=t.items.map(function(t){var i=t.count,e=t.selected,n=S(S({},t),{},{selected_count:0});return 1===e&&(n.selected_count=i),n}),i})}function rt(t){return ot(t)}function ot(t){var i=[];return t.forEach(function(t){var e=[],n=t.items,r=t.customization;n.forEach(function(t){var i=t.id,n=t.count,o=t.selected,u=t.selected_count,s=t.customization_item;1===o&&e.push({id:i,name:s.name,count:u||n,count_type:r.count_type})}),i.push(e)}),i}function ut(t,i){var n=[],r=u(t).map(function(t){var r=u(t.items),o=t.customization,s=[];return r.forEach(function(t){var n=t.id,r=t.count,u=t.selected,c=t.selectable,a=t.customization_item,l=e(i,function(i){return i.id===t.id});l?(s.push(l),t.selected_count=l.count,t.selected=1):2===c?1===u&&s.push({id:n,name:a.name,count:r,count_type:o.count_type}):(t.selected_count=0,t.selected=2)}),n.push(s),S(S({},t),{},{items:r})});return{isValid:st(r,n).isValid,customizationGroupList:r,selectedCustomizationItemList:n}}function st(t,i){var e=!0,n="";return t.forEach(function(t,r){var o=t.customization,u=t.min_count,s=t.max_count,c=ct(o.count_type);if(e){var a=0;return i[r].forEach(function(t){a+=t.count}),a<u?(e=!1,n="【".concat(o.name,"】:至少选择 ").concat(u," ").concat(c),void(1===s&&(n="请选择【".concat(o.name,"】")))):a>s?(e=!1,void(n="【".concat(o.name,"】:最多选择 ").concat(s," ").concat(c))):void 0}}),{isValid:e,errMsg:n}}function ct(t){return 1===t?"种":"份"}var at=function(t){var i=t.selectable,e=t.min_count,n=t.max_count;return 1===i&&e!==n&&n>1},lt=function(t){var i=t.max_count,e=0;return t.items.forEach(function(t){1===t.selected&&(e+=t.selected_count)}),-1===i||e<i},ht=function(t){var i=t.selected;return 2===t.selectable&&1===i},dt=function(t){var i=t.selected;return 2===t.selectable&&2===i};function ft(t,i){if(!P(i)){var n=t.skuId,o=t.product,s=t.promotionActivityProduct,c=t.customizationItemList,a=e(i,function(t){var i=o.id,e=o.code,u=t.product,a=t.external_product;if(!(a?a.id===(null==s?void 0:s.id):i?u.id===i:u.code===e))return!1;if(!n)return!0;var l=t.sku,h=t.external_sku;if(!(h?h.id===n:l.id===n))return!1;var d=t.product_customization_item_list||[];return!(!P(c)||!P(d))||et(r(c),d)});return a?u(a):void 0}}function mt(t,i){var n=[],r=0;return P(t)||P(i)||i.forEach(function(i){var o=i.items,u=i.customization;o.forEach(function(i){var o=i.id,s=i.customization_item,c=e(t,function(t){return t.id===o});c&&(n.push(S(S({},c),{},{name:s.name,count_type:u.count_type})),2===s.increase_type&&(r=f(r,d(s.increase_sale_price,c.count))))})}),{orderSkuCustomizationItemList:n,customizationSalePrice:r}}function pt(t){var i=t.items,e=t.min_count,n=t.max_count,r=[],o=ct(t.customization.count_type);e===n?r.push("请选择".concat(e).concat(o)):(e>0&&r.push("至少选择".concat(e).concat(o)),n>0&&r.push("最多可选".concat(n).concat(o)));var u=0;return i.forEach(function(t){u+=t.selected_count}),u>0&&r.push("已选".concat(u).concat(o)),r.join(",")}function vt(t,i,e,n){var r=u(t),o=r.items[e],s=r.items,c=r.max_count,a=1===c,l=0;s.forEach(function(t,n){var r=t.count,o=t.selected,u=t.selected_count;n!==e?1===o&&(l+=u):1===i&&(l+=r)}),!a&&l>c||(a&&r.items.forEach(function(t,i){i!==e&&(t.selected=2,t.selected_count=0)}),o.selected=i,o.selected_count=1===i?o.count:0,null==n||n(r))}function _t(t,i,e,n){var r=u(t),o=r.items[e];o.selected_count=i,o.selected=0===i?2:1,null==n||n(r)}function kt(t,i,e,n){var r=i.items,o=t.min_count,u=t.max_count,s=t.customization_item,c=o,a=u,l=i.max_count,h=0;r.forEach(function(t){t.customization_item.id===s.id?h+=e:1===t.selected&&(h+=t.selected_count)}),-1!==l&&h>l||-1!==a&&e>a||(e<c?null==n||n(0):null==n||n(e))}function yt(t,i){var e=t.selected;1===t.selectable&&(null==i||i(1===e?2:1))}function bt(t,i){var e=s(i||[],function(t){return 1===t.count_type});if(P(e))return t||"";var n=e.map(function(t){return t.name}).join("、");return t?"".concat(t,"、").concat(n):n}function gt(t){var i=s(t||[],function(t){return 1!==t.count_type});return P(i)?"":i.map(function(t){return"".concat(t.name,"x").concat(t.count)}).join("、")}function Lt(t){var i=[];return P(t)?"":(t.map(function(t){var e=t.name,n=t.count,r=2===t.count_type;i.push("".concat(e).concat(r?" x".concat(n):""))}),i.join("、"))}function St(t){return t.map(function(t){return function(t){var i=c(t,["id","count","combo_sku_id","combo_product_customization_item_list"]),e=i.combo_product_customization_item_list;return e&&(i.combo_product_customization_item_list=X(e)),i}(t)})}function Ct(t){return St(r(t))}function It(t,i){var n=0,o=r(i);return t.forEach(function(t){t.items.forEach(function(t){var i=t.id,r=t.increase_sale_price,u=e(o,function(t){return t.id===i});u&&r>0&&(n+=l.timesNumber(r,u.count))})}),n}function xt(t,i,e){if(-1===t)return t;var n=It(i,e||[]);return l.plusNumber(t,n)}function Pt(t,i){return t.length===i.length&&o(t,function(t){return e(i,function(i){if(i.id!==t.id||i.count!==t.count)return!1;if(i.combo_sku_id!==t.combo_sku_id)return!1;var e=i.combo_product_customization_item_list||[],n=t.combo_product_customization_item_list||[];return!(!P(n)||!P(e))||et(n,e)})})}function zt(t){var i=t.name,e=t.combo_sku_name,n=t.combo_product_customization_item_list,r=i;if(n){var o=bt(e,n);r=o?"".concat(i,"(").concat(o,")"):i;var u=gt(n);u&&(r="".concat(r,"、").concat(u))}return r}function Et(t){return P(t)?"":t.map(function(t){return zt(t)}).join("+")}function Ot(t){var i=t.items,e=t.max_count,n=0;return i.forEach(function(t){1===t.selected&&(n+=t.count)}),-1===e||n<e}function At(t,i){var e=t.items,n=t.min_count,r=t.max_count,o=0;if(e.forEach(function(t,i){1===t.selected&&o++}),2===i){if(1===n&&o<=1)return!1}else if(r>1&&o>=r)return!1;return!0}function Mt(t){var i=t.selected,e=t.selectable;return 1===i&&2===e}function Vt(t){return 2!==t.selectable&&(!Gt(t)&&!jt(t))}function Gt(t){return!P(t.children)}function jt(t){var i=t.min_count,e=t.max_count;return i!==e&&e>1}function Tt(t){var i=t.combo_product;return 2===(null==i?void 0:i.select_type)}function Dt(t){var i=t.combo_sku,e=t.combo_customization_item_list;if(P(i))return"";var n=bt(i.name,r(e)),o=gt(r(e));return o&&(n="".concat(n,"、").concat(o)),n}function wt(t,i){var e=i.selected,n=i.count,r=i.max_count,o=Ot(t);return o&&2!==e?n<r:o}function Nt(t){var i=t.increase_sale_price;return i>0?"¥".concat(l.formatAmount(i,"")):""}function Rt(t,i){var e=i.count,n=i.min_count,r=Mt(i),o=Ft(t);return r?e>n:o}function Ft(t){var i=t.items,e=0;return i.forEach(function(t){1===t.selected&&(e+=t.count)}),e>0}function qt(t){var i=t.selected;return 1!==t.selectable&&2!==i&&Tt(t)}function Bt(t){var i=t.combo_sku,e=t.combo_product;return 2===(null==e?void 0:e.select_type)&&!i}function Ut(t){var i={};return t.forEach(function(t){var e=t.combo_group_name,n=i[e];n?n.push(t):i[e]=[t]}),Object.keys(i).map(function(t){return{comboGroupName:t,list:i[t]}})}function Jt(t,i){return P(i)?t:t.map(function(t){var n=t.items.map(function(t){var n=e(i,function(i){return i.id===t.id});if(!n)return 1===t.selectable&&(t.selected=2),t;var r=t.children,o=t.combo_product;if(!P(r))return r.forEach(function(t){t.combo_sku.id===n.combo_sku_id?(t.selected=1,t.count=n.count):t.selected=2}),t;if(o){var u,s;if(n.combo_sku_id)t.combo_sku={id:n.combo_sku_id,name:n.combo_sku_name,stock_count:null!==(u=null===(s=t.combo_sku)||void 0===s?void 0:s.stock_count)&&void 0!==u?u:A};n.combo_product_customization_item_list&&(t.combo_customization_item_list=[n.combo_product_customization_item_list])}return t.count=n.count,t.selected=1,t});return S(S({},t),{},{items:n})})}function Wt(t){return t.map(function(t){var i=[],n=t.name;return t.items.forEach(function(t){var o=t.id,u=t.name,s=t.count,c=t.selected,a=t.children,l=t.combo_sku,h=t.combo_sku_type,d=t.combo_customization_item_list;if(P(a)){if(2!==c)if(1!==h){if(l){var f={id:o,name:u,count:s,combo_sku_id:l.id,combo_sku_name:l.name,combo_group_name:n};d&&(f.combo_product_customization_item_list=r(d)),i.push(f)}}else i.push({id:o,name:u,count:s,combo_group_name:n})}else{var m=e(a,function(t){return 1===t.selected});m&&i.push({id:o,name:"".concat(u,"(").concat(m.name,")"),combo_group_name:n,combo_sku_id:m.combo_sku.id,count:m.count})}}),i})}function $t(t,i){var n=!0,r="";return P(i)&&(i=Wt(t)),t.forEach(function(t,o){var u;if(n){var s=t.items,c=t.min_count,a=t.max_count,l=t.name;if(s.forEach(function(t,i){if(n){var o=t.count,u=t.min_count,s=t.selected,c=t.children,a=t.combo_sku,h=t.combo_product;if(2!==s)if(P(c)){if(h&&P(a))return n=!1,void(r="【".concat(l,"】:第").concat(i+1,"个商品,请选择规格"));o<u&&(n=!1,r="【".concat(l,"】:第").concat(i+1,"个商品,至少选择 ").concat(u," 件"))}else{P(e(c,function(t){return 1===t.selected}))&&(n=!1,r="【".concat(l,"】:第").concat(i+1,"个商品,请选择定制项"))}}}),n){var h=0;if(null===(u=i[o])||void 0===u||u.forEach(function(t){h+=t.count}),h<c)return n=!1,void(r="【".concat(l,"】:至少选择 ").concat(c," 件商品"));h>a&&(n=!1,r="【".concat(l,"】:最多选择 ").concat(a," 件商品"))}}}),r}function Ht(t){var i=t.items,e=t.repeatable,n=t.min_count,r=t.max_count;if(o(i,function(t){return 2===t.selectable}))return"";var u=[];n===r?u.push("请选择".concat(n,"项")):(n>0&&u.push("至少选择".concat(n,"项")),r>0&&u.push("最多可选".concat(r,"项"))),1===e&&u.push("可重复选");var s=0;return i.forEach(function(t){1===t.selected&&(s+=t.count)}),s>0&&u.push("已选".concat(s)),u.join(",")}function Yt(t){return P(t)?[]:r(t).map(function(t){var i={id:t.id,name:t.name,count:t.count,combo_group_name:t.combo_group_name};return t.combo_sku_id&&(i.combo_sku_id=t.combo_sku_id),t.combo_sku_name&&(i.combo_sku_name=t.combo_sku_name),P(t.combo_product_customization_item_list)||(i.combo_product_customization_item_list=t.combo_product_customization_item_list.map(function(t){return{id:t.id,name:t.name,count:t.count,count_type:t.count_type}})),i})}function Kt(t,i,e,n){i?null==e||e(t):null==n||n(t)}function Qt(t,i,e,n){var r=t.items,o=i.min_count,u=i.max_count,s=t.max_count,c=Mt(i),a=0;r.forEach(function(t){t.id===i.id?a+=e:1===t.selected&&(a+=t.count)}),-1!==s&&a>s||-1!==u&&e>u||e<0||a<0||c&&e<o||null==n||n(e)}function Xt(t,i,e,n){var r=u(t),o=r.items[e];o.count=i,o.selected=0===i?2:1,null==n||n(r)}function Zt(t,i,e,n){var r=u(t),o=i.sku,s=i.count,c=o.id,a=r.items[e];a.children.forEach(function(t){t.combo_sku.id===c?(t.selected=1,t.count=s):t.selected=2}),a.selected=1,null==n||n(r)}function ti(t,i,e,n){var r=u(t),o=r.items[e],s=r.items,c=r.min_count,a=r.max_count,l=0;if(s.forEach(function(t){1===t.selected&&l++}),2===i){if(1===c&&l<=1)return void(null==n||n(r))}else if(1===a)r.items.forEach(function(t,i){i!==e&&(t.selected=2)});else if(l>=a)return void(null==n||n(r));o.selected=i,null==n||n(r)}function ii(t,i,e,n){var r,o,s=u(t),c=i.sku,a=i.customizationItemList,l=s.items[e],h=jt(l);l.combo_sku={id:c.id,name:c.name,stock_count:null!==(r=null===(o=l.combo_sku)||void 0===o?void 0:o.stock_count)&&void 0!==r?r:A},a&&(l.combo_customization_item_list=a),h&&0===l.count&&(l.count=1),ti(s,1,e,n)}function ei(t,i,e){var n=1===t.selected?2:1;if(P(t.children)){var r=i.items,o=i.max_count;if(1===n&&o>1){var u=0;if(r.forEach(function(t){1===t.selected&&(u+=t.count)}),u>=o)return}null==e||e(n)}}var ni=function(){return k(function t(i){_(this,t),y(this,"product",{}),y(this,"specImage",void 0),y(this,"skuId",0),y(this,"sku",void 0),y(this,"skuList",[]),y(this,"skuListAfter",[]),y(this,"selectedSpecs",[]),y(this,"productSpecGroupList",[]),y(this,"specList",[]),y(this,"stockCount",0),y(this,"minCount",1),y(this,"maxCount",1),y(this,"perOrderMinLimit",-1),y(this,"perOrderMaxLimit",-1),y(this,"salePrice",0),y(this,"originalPrice",-1),y(this,"memberPrice",void 0),y(this,"skuComboGroupList",[]),y(this,"skuComboItemList",[]),y(this,"cartCount",0),y(this,"cartItem",void 0),y(this,"visibleComboInfo",!1),y(this,"isComponentLoading",!0),y(this,"_initSkuListAfter",[]),y(this,"_initSpecType",0),y(this,"_initSkuId",0),y(this,"_validateComboGroupList",function(){return""});var e=i.productData,n=i.cartList,r=i.channel1Type,o=i.negativeStockSaleEnabled,u=i.onChange,s=i.validateComboGroupList;this.cartList=n||[],this.channel1Type=r,this.negativeStockSaleEnabled=o,this.onChange=u,this._validateComboGroupList=s,this._initProductData(e)},[{key:"getInitialSkuId",value:function(){return this._initSkuId}},{key:"init",value:function(t){var i,e,r=this,o=this._initSpecType,u=this._initSkuListAfter,s=this._findSkuCartItem(),c=0;if(2===o&&!P(s)){var a=s,l=a.sku,h=a.external_sku,d=(null==h?void 0:h.id)||l.id;-1===(c=n(u,function(t){return t.id===d}))&&(c=0)}this.cartItem=s,this.cartCount=(null==s||null===(i=s.cart)||void 0===i?void 0:i.count)||0;var f=u[c];if(1===o)return this._initSkuDetail(t),this._updateSkuData(f||this.skuList[0]),this.isComponentLoading=!1,void this._notifyChange();this._initSkuDetail(t),null===(e=u[c])||void 0===e||e.specs.forEach(function(t,i){r._selectSpec(!0,t,i)}),this.isComponentLoading=!1,this._notifyChange()}},{key:"syncCartList",value:function(t){this.cartList=t,this._refreshCartItem(),this._notifyChange()}},{key:"getView",value:function(){return{product:this.product,skuId:this.skuId,salePrice:this.getSalePrice(),originalPrice:this.getOriginalPrice(),memberPrice:this.getMemberPrice(),specImage:this.specImage,skuListAfter:this.skuListAfter,selectedSpecs:this.selectedSpecs,productSpecGroupList:this.productSpecGroupList,skuComboGroupList:this.skuComboGroupList,skuComboItemList:this.skuComboItemList,cartCount:this.cartCount,maxCount:this.maxCount,isComponentLoading:this.isComponentLoading,visibleComboInfo:this.visibleComboInfo}}},{key:"handleSelectSpecs",value:function(t,i,n){var r,o=this;if(!this._selectSpec(t,i,n)||this.selectedSpecs.indexOf("")>=0)return this._notifyChange(),{needFetchSkuDetail:!1,skuId:0};var u=e(this.skuListAfter,function(t){return a(t.specs,o.selectedSpecs)});return u?(void 0!==(null===(r=this.specList[0])||void 0===r||null===(r=r.items[0])||void 0===r?void 0:r.image)&&this.specList[0].items.forEach(function(t){t.name===o.selectedSpecs[0]&&(o.specImage=t.image)}),this._notifyChange(),{needFetchSkuDetail:!0,skuId:u.id}):(this._notifyChange(),{needFetchSkuDetail:!1,skuId:0})}},{key:"updateSkuDetailData",value:function(t){this._initSkuDetail(t),this._notifyChange()}},{key:"updateMemberPrice",value:function(t){this.memberPrice=t,this._notifyChange()}},{key:"handleSelectComboData",value:function(t){this.skuComboItemList=t,this._refreshCartItem(),this._notifyChange()}},{key:"handleProductCountChange",value:function(t,i){var e=this.perOrderMinLimit,n=this.cartItem;if(this.selectedSpecs.indexOf("")>=0)return{isValid:!1,errMsg:"请选择规格"};if(t>0){if(i===M&&-1!==e&&t<e)return{isValid:!0,cartItem:n,count:0};var r=this._validateCombo();if(r)return{isValid:!1,errMsg:r};var o=this._checkProductCount(t);if(!o.isValid)return o}return{isValid:!0,cartItem:n,count:t}}},{key:"getAddToCartParams",value:function(t,i){var e=this.sku,n=this.skuId,r=this.product,o=this.skuList,u=this.selectedSpecs,s=this.negativeStockSaleEnabled,c=this.productSpecGroupList,a=this.skuComboItemList,l=this.perOrderMinLimit,h=u.indexOf(""),d=U(null==r?void 0:r.status,null==r?void 0:r.has_stock),f=W(null==r?void 0:r.status,null==r?void 0:r.has_stock);if(0!==o[0].item_ids.length&&h>=0)return{isValid:!1,errMsg:"请选择".concat(c[h].title)};if(!d&&!s)return{isValid:!1,errMsg:f};var m=this._validateCombo();return m?{isValid:!1,errMsg:m}:{isValid:!0,params:{productId:t,promotionActivityProductId:null!=e&&e.is_promotion_activity?i:void 0,skuId:n,count:-1!==l?l:1,skuComboItemList:a}}}},{key:"handleShowComboInfo",value:function(){P(r(this.skuComboItemList))||(this.visibleComboInfo=!0,this._notifyChange())}},{key:"handleCloseComboInfo",value:function(){this.visibleComboInfo=!1,this._notifyChange()}},{key:"getSalePrice",value:function(){return xt(this.salePrice,this.skuComboGroupList,this.skuComboItemList)}},{key:"getOriginalPrice",value:function(){return P(this.originalPrice)||this.originalPrice<=0?0:xt(this.originalPrice,this.skuComboGroupList,this.skuComboItemList)}},{key:"getMemberPrice",value:function(){if(!(P(this.memberPrice)||this.memberPrice<=0))return xt(this.memberPrice,this.skuComboGroupList,this.skuComboItemList)}},{key:"buildCartCountParams",value:function(){var t=Ct(this.skuComboItemList);return{channel1_type:this.channel1Type,checked:1,sku_id:this.skuId,sku_type:0,sku_combo_item_list:JSON.stringify(t),cart:1}}},{key:"buildMemberPriceParams",value:function(){if(this.skuId)return{sku_id:this.skuId,sku_type:0}}},{key:"_initProductData",value:function(t){var e=t.product,r=t.skuList,o=t.productCover,u=t.productSpecGroupList,s=R(u),c=w(u),a=N(r,s,this.negativeStockSaleEnabled),l=F(u,o);if(this.product=e,this.specImage=l,this.skuList=r,this.skuListAfter=a,this.selectedSpecs=i(new Array(c.length),""),this.productSpecGroupList=c,this.specList=u,this._initSkuListAfter=a,this._initSpecType=e.spec_type,2===e.spec_type){var h=this._findSkuCartItem();if(P(h)){var d,f,m,p;this._initSkuId=null!==(d=null!==(f=null===(m=a[0])||void 0===m?void 0:m.id)&&void 0!==f?f:null===(p=r[0])||void 0===p?void 0:p.id)&&void 0!==d?d:0}else{var v,_,k,y,b=h,g=b.sku,L=b.external_sku,S=(null==L?void 0:L.id)||g.id,C=n(a,function(t){return t.id===S});-1===C&&(C=0),this._initSkuId=null!==(v=null!==(_=null===(k=a[C])||void 0===k?void 0:k.id)&&void 0!==_?_:null===(y=r[0])||void 0===y?void 0:y.id)&&void 0!==v?v:0}}else{var I,x;this._initSkuId=null!==(I=null===(x=r[0])||void 0===x?void 0:x.id)&&void 0!==I?I:0}}},{key:"_initSkuDetail",value:function(t){var i,e=t.sku,n=t.sku_combo_group_list;this._updateSkuData(e);var r=Jt(n||[],null===(i=this.cartItem)||void 0===i?void 0:i.sku_combo_item_list);this.skuComboGroupList=r,this.skuComboItemList=Wt(r)}},{key:"_updateSkuData",value:function(t){var i,e=t.id,n=t.stock_count,r=t.per_order_min_limit,o=t.per_order_max_limit,u=-1===r?1:Math.min(r,n),s=-1===o?n:Math.min(o,n),c=this._findSkuCartItem(e);this.sku=t,this.skuId=e,this.stockCount=n,this.salePrice=t.sale_price,this.originalPrice=t.original_price,this.minCount=u,this.maxCount=s,this.perOrderMinLimit=r,this.perOrderMaxLimit=o,this.cartItem=c,this.cartCount=(null==c||null===(i=c.cart)||void 0===i?void 0:i.count)||0}},{key:"_checkProductCount",value:function(t){var i=this.minCount,e=this.maxCount,n=this.stockCount,r=this.perOrderMinLimit,o=this.negativeStockSaleEnabled;return t<i||t<r?{isValid:!1,errMsg:-1!==r?"该商品 ".concat(r," 件起售哦"):"购买数量至少 ".concat(i," 件")}:t>e&&!o?{isValid:!1,errMsg:t>n?"库存不足":"该商品最多购买 ".concat(e," 件哦")}:{isValid:!0}}},{key:"_selectSpec",value:function(t,i,e){var n=this.selectedSpecs;return 0!==this.productSpecGroupList.length&&(!(n[e]===i||!t)&&(n[e]=i,this.selectedSpecs=n.slice(),!0))}},{key:"_refreshCartItem",value:function(){var t,i=this._findSkuCartItem(this.skuId);this.cartItem=i,this.cartCount=(null==i||null===(t=i.cart)||void 0===t?void 0:t.count)||0}},{key:"_findSkuCartItem",value:function(t){var i=this.cartList,n=this.product,o=this.skuComboItemList,s=e(i,function(i){var e=n.id,u=n.code,s=i.product;if(!(e?s.id===e:s.code===u))return!1;if(!t)return!0;var c=i.sku,a=i.external_sku;if(!(a?a.id===t:c.id===t))return!1;var l=i.sku_combo_item_list||[];return!!P(o)||Pt(r(o),l)});return s?u(s):void 0}},{key:"_validateCombo",value:function(){return this._validateComboGroupList()}},{key:"_notifyChange",value:function(){this.onChange()}}])}(),ri=function(){return k(function t(i){_(this,t),y(this,"product",{}),y(this,"promotionActivityProduct",void 0),y(this,"specImage",void 0),y(this,"skuId",0),y(this,"sku",void 0),y(this,"skuList",[]),y(this,"skuListAfter",[]),y(this,"selectedSpecs",[]),y(this,"productSpecGroupList",[]),y(this,"specList",[]),y(this,"activitySpecList",[]),y(this,"stockCount",0),y(this,"minCount",1),y(this,"maxCount",1),y(this,"perOrderMinLimit",-1),y(this,"perOrderMaxLimit",-1),y(this,"salePrice",0),y(this,"originalPrice",-1),y(this,"memberPrice",void 0),y(this,"customizationGroupList",[]),y(this,"customizationItemList",[]),y(this,"cartCount",0),y(this,"cartItem",void 0),y(this,"cartList",[]);var e=i.productData,n=i.cartList,r=i.channel1Type,o=i.negativeStockSaleEnabled,u=i.onChange;this.cartList=n||[],this.channel1Type=r,this.negativeStockSaleEnabled=o,this.onChange=u,this._initProductData(e)},[{key:"setCartList",value:function(t){this.cartList=t,this._updateSkuCartItem(),this._notifyChange()}},{key:"init",value:function(){var t,i=this,r=this.skuListAfter,o=this.product.spec_type,u=this._findSkuCartItem(),s=0;if(!P(u)){var c=u,l=c.sku,h=c.external_sku,d=c.product_customization_item_list,f=(null==h?void 0:h.id)||l.id;if(-1===(s=n(r,function(t){return t.id===f}))&&(s=0),!P(d)){var m=ut(this.customizationGroupList,d);this.customizationGroupList=m.customizationGroupList,this.customizationItemList=m.selectedCustomizationItemList}}if(this._updateSkuCartItem(),1===o)return this._updateSkuData(this.skuList[0]),void this._notifyChange();null===(t=r[s])||void 0===t||t.specs.forEach(function(t,e){i._selectSpec(!0,t,e)});var p=e(r,function(t){return a(t.specs,i.selectedSpecs)});p&&this._updateSkuData(p),this._notifyChange()}},{key:"getView",value:function(){return{product:this.product,promotionActivityProduct:this.promotionActivityProduct,skuId:this.skuId,sku:this.sku,salePrice:this.getSalePrice(),originalPrice:this.getOriginalPrice(),memberPrice:this.getMemberPrice(),specImage:this.specImage,skuListAfter:this.skuListAfter,selectedSpecs:this.selectedSpecs,productSpecGroupList:this.productSpecGroupList,activitySpecList:this.activitySpecList,customizationGroupList:this.customizationGroupList,customizationItemList:this.customizationItemList,cartCount:this.cartCount,maxCount:this.maxCount,cartItem:this.cartItem}}},{key:"handleSelectSpecs",value:function(t,i,n){var r,o=this,u=this._selectSpec(t,i,n),s=this.buildCartCountParams();if(!u||this.selectedSpecs.indexOf("")>=0)return this._updateSkuCartItem(),this._notifyChange(),{needFetchCart:!1,cartParams:s};var c=e(this.skuListAfter,function(t){return a(t.specs,o.selectedSpecs)});return c?(void 0!==(null===(r=this.specList[0])||void 0===r||null===(r=r.items[0])||void 0===r?void 0:r.image)&&this.specList[0].items.forEach(function(t){t.name===o.selectedSpecs[0]&&(o.specImage=t.image)}),this._updateSkuData(c),this._updateSkuCartItem(),this._notifyChange(),{needFetchCart:!0,cartParams:this.buildCartCountParams()}):(this._updateSkuCartItem(),this._notifyChange(),{needFetchCart:!1,cartParams:s})}},{key:"updateCartCountData",value:function(t){if(t&&void 0!==t.cart){var i=t.cart;this.cartItem=t,this.cartCount=(null==i?void 0:i.count)||0}else this.cartItem=void 0,this.cartCount=0;this._notifyChange()}},{key:"updateMemberPrice",value:function(t){this.memberPrice=t,this._notifyChange()}},{key:"handleCustomizationItemListSelect",value:function(t){return this.customizationItemList=t,st(this.customizationGroupList,t).isValid?(this._updateSkuCartItem(),this._notifyChange(),{isValid:!0,cartParams:this.buildCartCountParams()}):(this.cartItem=void 0,this.cartCount=0,this._notifyChange(),{isValid:!1})}},{key:"handleProductCountChange",value:function(t,i){var e=this.perOrderMinLimit,n=this.cartItem;if(this.selectedSpecs.indexOf("")>=0)return{isValid:!1,errMsg:"请选择规格"};if(t>0){if(i===M&&-1!==e&&t<e)return{isValid:!0,cartItem:n,count:0};if(this.customizationGroupList.length>0){var r=st(this.customizationGroupList,this.customizationItemList);if(!r.isValid)return{isValid:!1,errMsg:r.errMsg}}var o=this._checkProductCount(t);if(!o.isValid)return o}return{isValid:!0,cartItem:n,count:t}}},{key:"getAddToCartParams",value:function(t,i){var e=this.sku,n=this.skuId,r=this.product,o=this.skuList,u=this.selectedSpecs,s=this.negativeStockSaleEnabled,c=this.productSpecGroupList,a=this.customizationItemList,l=this.customizationGroupList,h=this.perOrderMinLimit,d=u.indexOf(""),f=U(null==r?void 0:r.status,null==r?void 0:r.has_stock),m=W(null==r?void 0:r.status,null==r?void 0:r.has_stock);if(0!==o[0].item_ids.length&&d>=0)return{isValid:!1,errMsg:"请选择".concat(c[d].title)};if(!f&&!s)return{isValid:!1,errMsg:m};if(l.length>0){var p=st(l,a);if(!p.isValid)return{isValid:!1,errMsg:p.errMsg}}var v=Z(a);return{isValid:!0,params:{productId:t,promotionActivityProductId:null!=e&&e.is_promotion_activity?i:void 0,skuId:n,count:-1!==h?h:1,productCustomizationItemList:v}}}},{key:"getSalePrice",value:function(){var t=tt(this.customizationGroupList,this.customizationItemList);return this.salePrice+t}},{key:"getOriginalPrice",value:function(){if(P(this.originalPrice)||this.originalPrice<=0)return this.originalPrice;var t=tt(this.customizationGroupList,this.customizationItemList);return this.originalPrice+t}},{key:"getMemberPrice",value:function(){if(!(P(this.memberPrice)||this.memberPrice<=0)){var t=tt(this.customizationGroupList,this.customizationItemList);return this.memberPrice+t}}},{key:"getSelectedSpecAndCustomization",value:function(){var t=this.selectedSpecs.join("、"),i=r(this.customizationItemList);t=bt(t,i);var e=gt(i);return P(t)&&P(e)?"":P(t)||P(e)?t||e:"".concat(t,"、").concat(e)}},{key:"buildCartCountParams",value:function(){var t=Z(this.customizationItemList);return{channel1_type:this.channel1Type,checked:1,sku_id:this.skuId,sku_type:this._getSkuType(),product_customization_item_list:JSON.stringify(t),cart:1}}},{key:"buildMemberPriceParams",value:function(){if(this.skuId)return{sku_id:this.skuId,sku_type:this._getSkuType()}}},{key:"_initProductData",value:function(t){var e=t.product,n=t.promotionActivityProduct,r=t.skuList,o=t.productCover,u=t.productSpecGroupList,s=t.productCustomizationGroupList,c=R(u),a=w(u),l=N(r,c,this.negativeStockSaleEnabled),h=F(u,o),d=q(u),f=nt(s||[]);this.product=e,this.promotionActivityProduct=n,this.specImage=h,this.skuList=r,this.skuListAfter=l,this.selectedSpecs=i(new Array(a.length),""),this.productSpecGroupList=a,this.specList=u,this.activitySpecList=d,this.customizationGroupList=f,this.customizationItemList=s?rt(f):[]}},{key:"_updateSkuData",value:function(t){var i=t.id,e=t.stock_count,n=t.per_order_min_limit,r=t.per_order_max_limit,o=-1===n?1:Math.min(n,e),u=-1===r?e:Math.min(r,e);this.sku=t,this.skuId=i,this.stockCount=e,this.salePrice=t.sale_price,this.originalPrice=t.original_price,this.minCount=o,this.maxCount=u,this.perOrderMinLimit=n,this.perOrderMaxLimit=r,this._findSkuCartItem(i)}},{key:"_checkProductCount",value:function(t){var i=this.minCount,e=this.maxCount,n=this.stockCount,r=this.perOrderMinLimit,o=this.negativeStockSaleEnabled;return t<i||t<r?{isValid:!1,errMsg:-1!==r?"该商品 ".concat(r," 件起售哦"):"购买数量至少 ".concat(i," 件")}:t>e&&!o?{isValid:!1,errMsg:t>n?"库存不足":"该商品最多购买 ".concat(e," 件哦")}:{isValid:!0}}},{key:"_selectSpec",value:function(t,i,e){var n=this.selectedSpecs;return 0!==this.productSpecGroupList.length&&(!(n[e]===i||!t)&&(n[e]=i,this.selectedSpecs=n.slice(),!0))}},{key:"_notifyChange",value:function(){this.onChange()}},{key:"_getSkuType",value:function(){var t;return null!==(t=this.sku)&&void 0!==t&&t.is_promotion_activity?1:0}},{key:"_findSkuCartItem",value:function(t){var i=this,n=this.cartList;if(!P(n)){var o=this.product,s=this.promotionActivityProduct,c=this.customizationItemList,a=e(n,function(e){var n=o.id,u=o.code,a=e.product,l=e.external_product;if(!(l?l.id===(null==s?void 0:s.id):n?a.id===n:a.code===u))return!1;var h=t||i.skuId;if(!h)return!0;var d=e.sku,f=e.external_sku;if(!(f?f.id===h:d.id===h))return!1;var m=e.product_customization_item_list||[];return!(!P(c)||!P(m))||et(r(c),m)});return a?u(a):void 0}}},{key:"_updateSkuCartItem",value:function(){var t,i=this._findSkuCartItem(this.skuId);this.cartItem=i,this.cartCount=(null==i||null===(t=i.cart)||void 0===t?void 0:t.count)||0}}])}(),oi=function(){return k(function t(i){_(this,t),y(this,"product",{}),y(this,"specImage",void 0),y(this,"skuId",0),y(this,"sku",void 0),y(this,"count",1),y(this,"stockCount",0),y(this,"minCount",1),y(this,"maxCount",1),y(this,"perOrderMinLimit",-1),y(this,"perOrderMaxLimit",-1),y(this,"skuList",[]),y(this,"skuListAfter",[]),y(this,"selectedSpecs",[]),y(this,"productSpecGroupList",[]),y(this,"specList",[]),y(this,"customizationGroupList",[]),y(this,"customizationItemList",[]),y(this,"isScrollable",!1);var e=i.productData,n=i.initSkuId,r=i.customizationItemList,o=i.exchangeRate,u=void 0===o?1e4:o,s=i.channel1Type,c=i.onChange;this.exchangeRate=u,this.channel1Type=s,this.onChange=c,this._initCustomizationItemList=r,this._initProductData(e,n)},[{key:"getView",value:function(){return{product:this.product,specImage:this.specImage,skuListAfter:this.skuListAfter,selectedSpecs:this.selectedSpecs,productSpecGroupList:this.productSpecGroupList,customizationGroupList:this.customizationGroupList,customizationItemList:this.customizationItemList,count:this.count,isScrollable:this.isScrollable,salePrice:this._formatSalePrice()}}},{key:"handleSelectSpecs",value:function(t,i,n){var r,o=this,u=this.specList,s=this.skuListAfter,c=this.selectedSpecs;if(this.productSpecGroupList.length>0){if(c[n]===i||!t)return;c[n]=c[n]===i?"":i,this.selectedSpecs=c.slice()}c.indexOf("")<0&&(e(s,function(t){var i=a(t.specs,c);return i&&o._updateSkuData(t),i}),void 0!==(null===(r=u[0])||void 0===r?void 0:r.items[0].image)&&u[0].items.forEach(function(t){t.name===c[0]&&(o.specImage=t.image)}));this._notifyChange()}},{key:"handleCustomizationItemListSelect",value:function(t){this.customizationItemList=t,this._notifyChange()}},{key:"getSelectedSpecAndCustomization",value:function(){var t=this.selectedSpecs.join("、"),i=r(this.customizationItemList);t=bt(t,i);var e=gt(i);return P(t)&&P(e)?"":P(t)||P(e)?t||e:"".concat(t,"、").concat(e)}},{key:"handleProductCountChange",value:function(t,i){var e=this.selectedSpecs,n=this.customizationItemList,r=this.customizationGroupList,o=this.perOrderMinLimit;if(e.indexOf("")<0){if(t>0){if("CHANGE_TYPE_DECREASE"===i&&-1!==o&&t<o)return{isValid:!1};var u=st(r||[],n||[]);if(!u.isValid)return{isValid:!1,errMsg:u.errMsg};var s=this._checkProductCount(t);if(!s.isValid)return s}return{isValid:!0}}return{isValid:!1,errMsg:"请选择规格"}}},{key:"handleSubmit",value:function(){var t=this.sku,i=this.count,e=this.product,n=this.skuList,r=this.selectedSpecs,o=this.productSpecGroupList,u=this.customizationItemList,s=this.customizationGroupList,c=r.indexOf(""),a=U(null==e?void 0:e.status,null==e?void 0:e.has_stock),l=W(null==e?void 0:e.status,null==e?void 0:e.has_stock);if(0===n[0].item_ids.length||c<0){if(!a)return{isValid:!1,errMsg:l};if(!P(s)){var h=st(s,u||[]);if(!h.isValid)return{isValid:!1,errMsg:h.errMsg}}return{isValid:!0,data:{sku:t,count:i,customizationItemList:u}}}return{isValid:!1,errMsg:"请选择".concat(o[c].title)}}},{key:"setScrollable",value:function(t){this.isScrollable=t,this._notifyChange()}},{key:"_initProductData",value:function(t,e){var o,u=this,s=t.product,c=t.skuList,a=t.productCover,l=t.productSpecGroupList,h=t.productCustomizationGroupList,d=R(l),f=w(l),m=N(c,d),p=F(l,a),v=nt(h||[]),_=rt(v);if(this.product=s,this.specImage=p,this.skuList=c,this.skuListAfter=m,this.selectedSpecs=i(new Array(f.length),""),this.productSpecGroupList=f,this.specList=l,this.customizationGroupList=v,this.customizationItemList=_,!P(this._initCustomizationItemList)){var k=ut(v,r(this._initCustomizationItemList));this.customizationGroupList=k.customizationGroupList,this.customizationItemList=k.selectedCustomizationItemList}if(1!==s.spec_type){var y=0;P(e)||-1===(y=n(m,function(t){return t.id===e}))&&(y=0),null===(o=m[y])||void 0===o||o.specs.forEach(function(t,i){u.handleSelectSpecs(!0,t,i)})}else this._updateSkuData(c[0])}},{key:"_updateSkuData",value:function(t){var i=t.id,e=t.stock_count,n=t.per_order_min_limit,r=t.per_order_max_limit,o=-1===n?1:Math.min(n,e),u=-1===r?e:Math.min(r,e);this.sku=t,this.skuId=i,this.stockCount=e,this.minCount=o,this.maxCount=u,this.perOrderMinLimit=n,this.perOrderMaxLimit=r}},{key:"_checkProductCount",value:function(t){var i=this.minCount,e=this.maxCount,n=this.stockCount,r=this.perOrderMinLimit;return t<i||t<r?-1!==r?{isValid:!1,errMsg:"该商品 ".concat(r," 件起售哦")}:{isValid:!1,errMsg:"购买数量至少 ".concat(i," 件")}:t>e?t>n?{isValid:!1,errMsg:"库存不足"}:{isValid:!1,errMsg:"该商品最多购买 ".concat(e," 件哦")}:{isValid:!0}}},{key:"_formatSalePrice",value:function(){return tt(this.customizationGroupList||[],this.customizationItemList||[])}},{key:"_notifyChange",value:function(){this.onChange()}}])}(),ui=1,si=2,ci=3,ai=1,li=2,hi=1,di=2,fi=1,mi=2,pi=3,vi=0,_i=1,ki=2,yi=1,bi=2,gi=3,Li=4,Si=5,Ci=6,Ii="extra",xi="reason",Pi="none",zi="请选择优惠券",Ei=[1,2,3,4,5,6,0],Oi={1:"一",2:"二",3:"三",4:"四",5:"五",6:"六",0:"日"},Ai=[1,2,3,4,5],Mi=[6,0];function Vi(t,i){return 0===t&&(1440===i||1439===i)}function Gi(t){if(Array.isArray(t))return t.map(function(t){return Number(t)}).filter(function(t){return Number.isFinite(t)&&t>=0});if("string"==typeof t&&t)try{var i=JSON.parse(t);if(Array.isArray(i))return Gi(i)}catch(i){return t.split(",").map(function(t){return Number(t)}).filter(function(t){return Number.isFinite(t)&&t>=0})}return[]}var ji=function(t,i){if(t.length!==i.length)return!1;var e=new Set(i);return t.every(function(t){return e.has(t)})},Ti=function(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(t,i){return i===t+1};if(!t.length)return[];for(var e=[[t[0]]],n=1;n<t.length;n++){var r=t[n-1],o=t[n];i(r,o)?e[e.length-1].push(o):e.push([o])}return e},Di=function(t,i){var e=Ei.indexOf(t),n=Ei.indexOf(i);return e>=0&&n===e+1},wi=function(t,i,e){var n=[];return t.forEach(function(t){t.length>=3?n.push(i(t[0],t[t.length-1])):t.forEach(function(t){n.push(e(t))})}),n};function Ni(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=t.repeatType,e=void 0===i?0:i,n=t.repeatValue,r=Gi(void 0===n?[]:n);return 1===e?function(t){if(!t.length)return"";if(ji(t,Ai))return"工作日";if(ji(t,Mi))return"周六日";var i=Ei.filter(function(i){return t.includes(i)}),e=Ti(i,Di);if(!e.some(function(t){return t.length>=3})){var n=i.map(function(t){return Oi[t]});return"每周".concat(n.join("、"))}return wi(e,function(t,i){return"周".concat(Oi[t],"到周").concat(Oi[i])},function(t){return"周".concat(Oi[t])}).join("、")}(r):2===e?function(t){if(!t.length)return"";var i=I(new Set(t)).sort(function(t,i){return t-i}),e=Ti(i);return e.some(function(t){return t.length>=3})?wi(e,function(t,i){return"".concat(t," - ").concat(i,"号")},function(t){return"".concat(t,"号")}).join("、"):"每月".concat(i.join(", "),"号")}(r):""}function Ri(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=t.repeatType,e=void 0===i?0:i,n=t.repeatValue,r=void 0===n?[]:n,o=t.minuteSegments,u=void 0===o?[]:o,s=Ni({repeatType:e,repeatValue:r}),c=m(Gi(u));return"".concat(s).concat(c)||"全天"}function Fi(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=[],e=Number(t.daily)||0,n=Number(t.weekly)||0,r=Number(t.monthly)||0;return e>0&&i.push("每日".concat(e,"次")),n>0&&i.push("每周".concat(n,"次")),r>0&&i.push("每月".concat(r,"次")),i.length?i.join("、"):"不限制"}function qi(t,i){return null!=t&&null!=i&&String(t)===String(i)}function Bi(t){var i=Number(t);return!!Number.isFinite(i)&&i>=3}function Ui(t){return!Bi(t.status)&&("boolean"!=typeof t.available||t.available)}function Ji(t,i){var e=Array.isArray(t)?t:[],n=[];return e.forEach(function(t){var e=i?i(t):t;if(e&&null!=e.id){var r=S(S({},e),{},{original:void 0!==e.original?e.original:t});r.available=Ui(r),n.push(r)}}),n.sort(function(t,i){return Number(i.available)-Number(t.available)})}function Wi(t){var i=Number(t.couponType);return 1===i||2!==i&&3!==i&&!P(t.discount)}function $i(t){if(Wi(t)){if(P(t.discount))return"";var i=l.formatDiscount(Number(t.discount));return i&&"NaN折"!==i?i.endsWith("折")?i.slice(0,-1):i:""}return P(t.amount)?"":ee(l.formatAmount(t.amount,""))}function Hi(t){return Wi(t)||P(t.amount)?"":"¥"}function Yi(t){return Wi(t)&&!P(t.discount)?"折":""}function Ki(t){if(!P(t.thresholdText))return t.thresholdText;var i=Number(t.thresholdType);if(null!=t.thresholdType&&!P(t.thresholdType)){var e=Number(t.thresholdValue)||0;return e?2===i?"满".concat(e,"件"):1===i?"满".concat(ee(l.formatAmount(e,"")),"元"):"无门槛":"无门槛"}return P(t.thresholdAmount)?"":"满".concat(ee(l.formatAmount(t.thresholdAmount,"")),"元")}var Qi=864e5;function Xi(t){if(!P(t.expireText))return t.expireText;if(1===Number(t.expireEndType))return"长期有效";var i,e=(i=function(t){var i=Number(t.expireEndTime);if(Number.isFinite(i)&&i>0)return i;var e=Number(t.expireDays);if(Number.isFinite(e)&&!(e<=0)){var n=Number(t.expireStartType),r=Number(t.expireStartTime);return 2===n&&Number.isFinite(r)&&r>0?r+e*Qi:Date.now()+e*Qi}}(t),i?l.formatDateTime(Number(i)):"");return e||"长期有效"}function Zi(t){return Ni({repeatType:t.availableRepeatType,repeatValue:t.availableRepeatValue})||"每天"}function te(t){var i=Gi(t.availableMinuteSegments);return i.length&&l.formatMinuteSegments(i)||"全天"}function ie(t){return Fi({daily:t.useLimitDaily,weekly:t.useLimitWeekly,monthly:t.useLimitMonthly})}function ee(t){return String(t).replace(/\.00$/,"")}function ne(t){return t.label?"".concat(t.label,":").concat(t.value):t.value}function re(t){var i=[],e=Ki(t);e&&i.push({label:"使用门槛",value:e});var n=Xi(t);return n&&i.push({label:"过期时间",value:n}),i}function oe(t){return null!=(i=t.availableRepeatType)&&""!==i&&!Number.isNaN(Number(i))||!P(Gi(t.availableRepeatValue))||!P(Gi(t.availableMinuteSegments));var i}function ue(t){return null!=t.useLimitDaily||null!=t.useLimitWeekly||null!=t.useLimitMonthly}function se(t){var i=String(t).match(/^(.+?)[::](.*)$/);return i&&i[1]&&""!==i[2]?{label:i[1].trim(),value:i[2].trim()}:{label:"",value:String(t)}}function ce(t){var i=ae(t);return i===Ii?t.extraLines&&t.extraLines.length>0?t.extraLines.map(se):function(t){var i=[];return oe(t)&&(i.push({label:"可用日期",value:Zi(t)}),i.push({label:"可用时间",value:te(t)})),ue(t)&&i.push({label:"使用限制",value:ie(t)}),i}(t):i===xi&&t.unavailableReason?[{label:"本单不可用原因",value:t.unavailableReason}]:[]}function ae(t){if(Ui(t)){var i=!!(t.extraLines&&t.extraLines.length>0),e=oe(t)||ue(t);return i||e?Ii:Pi}return P(t.unavailableReason)?Pi:xi}function le(t){return ce(t).map(function(i){return ae(t)===xi?i.value:ne(i)})}function he(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{coupon:t,selected:!!i.selected,expanded:!!i.expanded,available:Ui(t),amountPrefix:Hi(t),amountValue:$i(t),amountSuffix:Yi(t),title:t.title||"",contentLines:re(t).map(ne),thresholdText:Ki(t),expireText:Xi(t),expandType:ae(t),expandLines:le(t)}}function de(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=Ji([t],i.formatItem)[0];if(e)return he(e,{selected:i.selected,expanded:i.expanded})}var fe=function(){return k(function t(i){_(this,t),y(this,"list",[]),y(this,"expandedIds",[]),y(this,"expandOne",!1),y(this,"onChange",function(){}),this.formatItem=i.formatItem,this.expandOne=!!i.expandOne,this.onChange=i.onChange,i.list&&(this.list=Ji(i.list,this.formatItem)),this.selectedId=this._pickValidSelectedId(i.value)},[{key:"setList",value:function(t){var i=this;this.list=Ji(t,this.formatItem),this.selectedId=this._pickValidSelectedId(this.selectedId),this.expandedIds=this.expandedIds.filter(function(t){return i._findCoupon(t)}),this._notifyChange()}},{key:"appendList",value:function(t){var i=Ji(t,this.formatItem);this.list=Ji([].concat(I(this.list),I(i))),this._notifyChange()}},{key:"getView",value:function(){var t=this,i=this._findCoupon(this.selectedId);return{items:this.list.map(function(i){return t._toViewItem(i)}),selectedId:this.selectedId,selectedCoupon:i}}},{key:"select",value:function(t){var i=this._findCoupon(t);if(i){if(!Ui(i))return this._setExpanded(t,!0),void this._notifyChange();this.selectedId=qi(this.selectedId,t)?void 0:t,this._notifyChange()}}},{key:"toggleExpand",value:function(t){if(this._findCoupon(t)){var i=this._isExpanded(t);this._setExpanded(t,!i),this._notifyChange()}}},{key:"confirm",value:function(){var t=this._findCoupon(this.selectedId);return t&&Ui(t)?{isValid:!0,coupon:t}:{isValid:!1,errMsg:zi}}},{key:"_toViewItem",value:function(t){return he(t,{selected:qi(t.id,this.selectedId),expanded:this._isExpanded(t.id)})}},{key:"_findCoupon",value:function(t){if(null!=t)return this.list.find(function(i){return qi(i.id,t)})}},{key:"_pickValidSelectedId",value:function(t){var i=this._findCoupon(t);if(i&&Ui(i))return i.id}},{key:"_isExpanded",value:function(t){return this.expandedIds.some(function(i){return qi(i,t)})}},{key:"_setExpanded",value:function(t,i){if(i)return this.expandOne?void(this.expandedIds=[t]):void(this._isExpanded(t)||(this.expandedIds=this.expandedIds.concat(t)));this.expandedIds=this.expandedIds.filter(function(i){return!qi(i,t)})}},{key:"_notifyChange",value:function(){this.onChange()}}])}();export{vi as COUPON_AVAILABLE_REPEAT_TYPE_DAILY,ki as COUPON_AVAILABLE_REPEAT_TYPE_MONTHLY,_i as COUPON_AVAILABLE_REPEAT_TYPE_WEEKLY,zi as COUPON_CONFIRM_EMPTY_MSG,Ii as COUPON_EXPAND_TYPE_EXTRA,Pi as COUPON_EXPAND_TYPE_NONE,xi as COUPON_EXPAND_TYPE_REASON,pi as COUPON_EXPIRE_END_TYPE_EXTEND,fi as COUPON_EXPIRE_END_TYPE_FOREVER,mi as COUPON_EXPIRE_END_TYPE_FUTURE,di as COUPON_EXPIRE_START_TYPE_FUTURE,hi as COUPON_EXPIRE_START_TYPE_NOW,Si as COUPON_STATUS_CANCELED,bi as COUPON_STATUS_ENABLED,Li as COUPON_STATUS_EXPIRED,Ci as COUPON_STATUS_LOCKED,yi as COUPON_STATUS_PENDING,gi as COUPON_STATUS_USED,ai as COUPON_THRESHOLD_TYPE_AMOUNT,li as COUPON_THRESHOLD_TYPE_COUNT,si as COUPON_TYPE_AMOUNT,ui as COUPON_TYPE_DISCOUNT,ci as COUPON_TYPE_FREIGHT,oi as ChildCustomSelector,ni as ComboSpecSelector,fe as CouponSelector,ri as CustomSpecSelector,O as SpecSelector,It as calculateSelectedComboPrice,tt as calculateSelectedCustomizationPrice,Ot as checkComboGroupItemCanPlusCount,At as checkComboGroupItemIsCanChangeSelectCheckbox,Mt as checkComboItemIsFixedSelect,Vt as checkComboItemIsUseSelectCheckbox,jt as checkComboItemIsUseSelectCount,Tt as checkComboItemIsUseSelectSkuDialog,lt as checkCustomizationItemCanPlusCount,dt as checkCustomizationItemIsDisabledSelected,ht as checkCustomizationItemIsFixedSelected,at as checkCustomizationItemIsUseSelectCount,st as checkCustomizationItemList,et as checkCustomizationItemListEqual,Ft as checkGroupCanMinusCount,Gt as checkHasChildren,qt as checkIsFixedSelectNeedSelectSku,Bt as checkIsUseSelectSkuBtn,Rt as checkItemCanMinusCount,wt as checkItemCanPlusCount,U as checkProductOnSale,Pt as checkSkuComboItemListEqual,J as checkUseReducePlusBtn,ft as findCustomizationSkuCartItem,K as findProductCartList,Ni as formatAvailableRepeatDateText,Ri as formatAvailableRepeatText,Ht as formatComboGroupItemSelectTips,xt as formatComboPrice,Dt as formatComboSkuAndCustomizationName,ct as formatCountTypeUnit,Hi as formatCouponAmountPrefix,Yi as formatCouponAmountSuffix,$i as formatCouponAmountValue,Zi as formatCouponAvailableDateText,te as formatCouponAvailableTimeText,Xi as formatCouponExpireText,ne as formatCouponKvText,Ji as formatCouponList,Ki as formatCouponThreshold,ie as formatCouponUseLimitText,he as formatCouponViewItem,gt as formatCustomizationCountType,pt as formatCustomizationGroupItemSelectTips,nt as formatCustomizationGroupList,Lt as formatCustomizationInfo,it as formatCustomizationPrice,Nt as formatIncreaseSalePrice,rt as formatInitCustomizationItemList,H as formatPriceRange,B as formatProductBuyText,G as formatProductComboChildrenSkuList,j as formatProductSku,T as formatProductSkuList,D as formatProductSpecGroupList,W as formatProductStatus,Wt as formatSelectSkuComboItemList,ot as formatSelectedCustomizationItemList,Et as formatSkuComboItemList,zt as formatSkuComboItemName,N as formatSkuListAfter,Y as formatSkuListStockCount,bt as formatSkuNameWithCustomization,$ as formatSkuPrice,V as formatSkuWithPromotionActivitySaleInfoItem,w as formatSpecList,R as formatSpecObj,Fi as formatUseLimitText,Q as formatWithExternalSku,Yt as generateCartSkuComboItemList,mt as genereateCartProductCustomizationItemList,q as getActivitySpecList,re as getCouponContentLines,ce as getCouponExpandKvLines,le as getCouponExpandLines,ae as getCouponExpandType,Ut as getSkuComboItemGroup,F as getSpecImage,St as getSubmitComboItemList,Ct as getSubmitComboItemListArr,X as getSubmitCustomizationItemList,Z as getSubmitCustomizationItemListArr,Zt as handleComboGroupItemChildChange,ii as handleComboGroupItemComboSkuChange,ti as handleComboGroupItemSelected,Xt as handleComboItemCountChange,_t as handleCustomizationGroupItemCountChange,vt as handleCustomizationGroupItemSelectedChange,kt as handleCustomizationItemCountChange,yt as handleCustomizationItemToggleSelected,Kt as handleSelectComboSkuSubmit,oe as hasCouponAvailableRepeat,ue as hasCouponUseLimit,Wi as isCouponDiscountBenefit,Bi as isCouponStatusExpired,Vi as isFullDayMinuteSegment,qi as isSameCouponId,se as parseCouponKvLine,Gi as parseCouponNumberList,Jt as reconstructComboGroupList,ut as reconstructCustomizationItemList,Ui as resolveCouponAvailable,Qt as setComboItemCountChange,ei as setToggleComboItemSelecte,de as toCouponViewItem,$t as validateComboGroupList};
|
|
1
|
+
import{isNaN as t,fill as i,find as e,findIndex as n,flattenDeep as r,every as o,cloneDeep as u,filter as s,pick as c,isEqual as a}from"lodash-es";import*as l from"@yorkjs/hive";import{moneyToDisplay as h,timesNumber as d,plusNumber as f,formatMinuteSegments as m}from"@yorkjs/hive";function p(t,i){(null==i||i>t.length)&&(i=t.length);for(var e=0,n=Array(i);e<i;e++)n[e]=t[e];return n}function v(t,i,e){return i=b(i),function(t,i){if(i&&("object"==typeof i||"function"==typeof i))return i;if(void 0!==i)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,g()?Reflect.construct(i,e||[],b(t).constructor):i.apply(t,e))}function _(t,i){if(!(t instanceof i))throw new TypeError("Cannot call a class as a function")}function k(t,i,e){return i&&function(t,i){for(var e=0;e<i.length;e++){var n=i[e];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,x(n.key),n)}}(t.prototype,i),Object.defineProperty(t,"prototype",{writable:!1}),t}function y(t,i,e){return(i=x(i))in t?Object.defineProperty(t,i,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[i]=e,t}function b(t){return b=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},b(t)}function g(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(g=function(){return!!t})()}function L(t,i){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);i&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,n)}return e}function S(t){for(var i=1;i<arguments.length;i++){var e=null!=arguments[i]?arguments[i]:{};i%2?L(Object(e),!0).forEach(function(i){y(t,i,e[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):L(Object(e)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(e,i))})}return t}function C(t,i){return C=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,i){return t.__proto__=i,t},C(t,i)}function I(t){return function(t){if(Array.isArray(t))return p(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,i){if(t){if("string"==typeof t)return p(t,i);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?p(t,i):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function x(t){var i=function(t,i){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,i);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===i?String:Number)(t)}(t,"string");return"symbol"==typeof i?i:i+""}function P(i){if(null==i||t(i))return!0;var e=!1;switch(Object.prototype.toString.call(i)){case"[object Object]":e=0===Object.keys(i).length;break;case"[object Array]":e=0===i.length;break;case"[object String]":0===i.trim().length&&(e=!0)}return e}var z=function(){return k(function t(i){_(this,t),y(this,"vertex",[]),y(this,"quantity",0),y(this,"adjoinArray",[]),this.vertex=i,this.quantity=this.vertex.length,this.adjoinArray=[],this.init()},[{key:"init",value:function(){this.adjoinArray=i(new Array(this.quantity*this.quantity),0)}},{key:"setAdjoinVertexs",value:function(t,i,e){var n=this,r=this.vertex.indexOf(t);i.forEach(function(t,i){var o=n.vertex.indexOf(t),u=n.adjoinArray[r*n.quantity+o];"number"!=typeof u?n.adjoinArray[r*n.quantity+o].push(e):n.adjoinArray[r*n.quantity+o]=u>1?[u,e]:e})}},{key:"getVertexCol",value:function(t){var i=this,e=this.vertex.indexOf(t),n=[];return this.vertex.forEach(function(t,r){n.push(i.adjoinArray[e+i.quantity*r])}),n}},{key:"getCollection",value:function(t){var i=this,e=t.map(function(t){return i.getVertexCol(t)}),n=[];return e.forEach(function(i,e){i.some(function(t){return 0!==t})&&n.push(t[e])}),n}},{key:"getUnions",value:function(t){var i=this,e=t.map(function(t){return i.getVertexCol(t)}),n=[];return this.vertex.forEach(function(t,r){var o=e.map(function(t){return t[r]}).filter(function(t){return 1!==t});i.isItemEqual(o)&&n.push(t)}),n}},{key:"isItemEqual",value:function(t){if(t.includes(0))return!1;var i=-1;return t.length&&(t.some(function(t){return"number"==typeof t&&(i=t),"number"==typeof t}),-1===i)?this.isArrayUnions(t):t.every(function(t){return"number"==typeof t?t===i:t.includes(i)})}},{key:"isArrayUnions",value:function(t){return!!t.length&&t[0].some(function(i){return t.every(function(t){return t.includes(i)})})}}])}(),E=function(){function t(i,e){var n;_(this,t);var r=[];return i.forEach(function(t,i){t.list.forEach(function(t){r.push("".concat(i,"_").concat(t))})}),y(n=v(this,t,[r]),"specList",[]),y(n,"specCombinationList",[]),n.specList=i,n.specCombinationList=e,n.initSpec(),n.initSameLevel(),n}return function(t,i){if("function"!=typeof i&&null!==i)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(i&&i.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),i&&C(t,i)}(t,z),k(t,[{key:"initSpec",value:function(){var t=this;this.specCombinationList.forEach(function(i,e){var n=i.specs.map(function(t,i){return"".concat(i,"_").concat(t)});t.fillInSpec(n,e+2)})}},{key:"initSameLevel",value:function(){var t=this,i=this.getCollection(this.vertex);this.specList.forEach(function(e,n){var r=[];e.list.forEach(function(t){var e="".concat(n,"_").concat(t);i.includes(e)&&r.push(e)}),t.fillInSpec(r,1)})}},{key:"getSpecsOptions",value:function(t){var i=[];if(t.some(Boolean)){var e=t.map(function(t,i){return t?"".concat(i,"_").concat(t):""}).filter(Boolean);i=this.getUnions(e)}else i=this.getCollection(this.vertex);return i}},{key:"fillInSpec",value:function(t,i){var e=this;t.forEach(function(n){e.setAdjoinVertexs(n,t,i)})}}])}(),O=function(){return k(function t(i){_(this,t);var e=i.productSpecGroupList,n=i.skuListAfter,r=i.activitySpecList,o=void 0===r?[]:r;this.productSpecGroupList=e,this.skuListAfter=n,this.activitySpecList=o,this.specAdjoinMatrix=new E(e,n)},[{key:"isActivitySpec",value:function(t,i){return!P(this.activitySpecList)&&!!e(this.activitySpecList[t],function(t){return t.name===i})}},{key:"getSpecGroupStateList",value:function(t){var i=this,e=this.specAdjoinMatrix.getSpecsOptions(t);return this.productSpecGroupList.map(function(n,r){return{title:n.title,items:n.list.map(function(n){return{value:n,isEnabled:-1!==e.indexOf("".concat(r,"_").concat(n)),isActive:t[r]===n,isActivitySpec:i.isActivitySpec(r,n)}})}})}},{key:"getOptionSpecs",value:function(t){return this.specAdjoinMatrix.getSpecsOptions(t)}},{key:"toggleSpec",value:function(t,i,e,n){var r,o;if(!t)return n;var u=I(n),s=null!==(r=null===(o=this.productSpecGroupList[e])||void 0===o?void 0:o.list)&&void 0!==r?r:[];return-1!==u.indexOf(i)?u[e]="":(s.forEach(function(t){var i=u.indexOf(t);-1!==i&&(u[i]="")}),u[e]=i),u}},{key:"findMatchedSku",value:function(t){var i=t.filter(Boolean),e=this.productSpecGroupList.length;if(i.length===e)return this.skuListAfter.find(function(t){return i.every(function(i){return t.specs.includes(i)})})}},{key:"isAllSpecSelected",value:function(t){var i=this.productSpecGroupList.length;return t.filter(function(t){return!P(t)}).length===i}}])}(),A=1e7,M="decrease";function V(t,i){var e=S(S({},t),{},{id:i.activity_sku_id,origin_sku_id:t.id,is_promotion_activity:!0,is_set_activity_price:!1});return-1!==i.sale_price&&i.sale_price!==t.sale_price&&(e.original_price=t.sale_price,e.sale_price=i.sale_price,e.is_set_activity_price=!0),-1!==i.stock_count&&(e.stock_count=i.stock_count),e}function G(t,i){var n=[];return i.forEach(function(i){var r=i.combo_sku,o=i.min_count,u=i.max_count,s=e(t,function(t){return t.id===r.id});if(s){var c=S({},s);o>0&&(c.per_order_min_limit=o),u>0&&(c.per_order_max_limit=u),n.push(c)}}),n}function j(t){return S(S({},t),{},{origin_sku_id:t.id,is_promotion_activity:!1,is_set_activity_price:!1})}function D(t,i,n){return i?function(t,i,n){if(n)return t.map(function(t){var n=e(i,function(i){return i.mall_sku_id===t.id}),r=j(t);return n&&(r=V(t,n)),r});return i.map(function(i){return V(e(t,function(t){return t.id===i.mall_sku_id}),i)})}(t,i,n):t.map(function(t){return j(t)})}function T(t,i,e){var r=[];return i.forEach(function(i,o){var u=i.items,s=S(S({},i),{},{items:[]});t.forEach(function(t){var i=t.item_ids,r=n(u,function(t){return t.id===i[o]});if(-1!==r){var c=u[r];-1===n(s.items,function(t){return t.id===c.id})&&(t.is_promotion_activity&&e&&(c.is_promotion_activity=!0),s.items.push(c))}}),r.push(s)}),r}function w(t){return t.map(function(t){return{title:t.spec.name,list:t.items.map(function(t){return t.name})}})}function N(t,i,e){var n=[];return t.map(function(t){(e||t.stock_count>0)&&n.push(S(S({},t),{},{specs:t.item_ids.map(function(t){return i[t]})}))}),n}function R(t){var i={};return t.forEach(function(t){t.items.forEach(function(t){i[t.id]=t.name})}),i}function F(t,i){var e,n=i;0!==t.length&&(void 0!==(null===(e=t[0].items[0])||void 0===e?void 0:e.image)&&(n=t[0].items[0].image));return n}function q(t){var i=[];return t.forEach(function(t){var e=[];t.items.forEach(function(t){t.is_promotion_activity&&e.push(t)}),i.push(e)}),i}function B(t){var i=t.combo_type,e=t.select_type;return 2===i?"选套餐":2===e?"选规格":"加入购物车"}function U(t,i){return 1===t&&1===i}function J(t){var i=t.combo_type,e=t.select_type;return!(2===i)&&1===e}function W(t,i){return 1===t&&2===(arguments.length>2&&void 0!==arguments[2]?arguments[2]:2)?1===i?"销售中":"已售罄":"已下架"}function $(t){var i=t.map(function(t){return t.sale_price}),e=Math.min.apply(Math,I(i))||0,n=Math.max.apply(Math,I(i))||0;return e===n?"¥".concat(h(e)):"¥".concat(h(e)," ~ ¥").concat(h(n))}function H(t){var i=t.end_price,e=t.start_price;return e===i?"¥".concat(h(e)):"¥".concat(h(e),"~").concat(h(i))}function Y(t){var i=0;return t.forEach(function(t){i+=t.stock_count}),i}function K(t,i,e){var n={cartList:[],cartCount:0},r=i.id,o=i.code;return t.forEach(function(t){var i=t.product,u=t.external_product;t.error||(e?(null==u?void 0:u.id)===e&&(n.cartList.push(t),n.cartCount+=t.cart.count):r?i.id===r&&(n.cartList.push(t),n.cartCount+=t.cart.count):i.code===o&&(n.cartList.push(t),n.cartCount+=t.cart.count))}),n}function Q(t,i){if(P(i))return t;var e=S(S({},t),i);return-1===i.sale_price?e.sale_price=t.sale_price:e.original_price=t.sale_price,-1===i.stock_count&&(e.stock_count=t.stock_count),e}function X(t){return t.map(function(t){return function(t){return c(t,["id","count"])}(t)})}function Z(t){return X(r(t))}function tt(t,i){var n=0,o=r(i);return t.forEach(function(t){t.items.forEach(function(t){var i=t.id,r=t.customization_item,u=r.increase_type,s=r.increase_sale_price,c=e(o,function(t){return t.id===i});c&&2===u&&(n+=d(s,c.count))})}),n}function it(t,i,e){if(-1===t)return t;var n=tt(i,e||[]);return f(t,n)}function et(t,i){return t.length===i.length&&o(t,function(t){return e(i,function(i){return i.id===t.id&&i.count===t.count})})}function nt(t){return t.map(function(t){var i=S(S({},t),{},{items:[]});return i.items=t.items.map(function(t){var i=t.count,e=t.selected,n=S(S({},t),{},{selected_count:0});return 1===e&&(n.selected_count=i),n}),i})}function rt(t){return ot(t)}function ot(t){var i=[];return t.forEach(function(t){var e=[],n=t.items,r=t.customization;n.forEach(function(t){var i=t.id,n=t.count,o=t.selected,u=t.selected_count,s=t.customization_item;1===o&&e.push({id:i,name:s.name,count:u||n,count_type:r.count_type})}),i.push(e)}),i}function ut(t,i){var n=[],r=u(t).map(function(t){var r=u(t.items),o=t.customization,s=[];return r.forEach(function(t){var n=t.id,r=t.count,u=t.selected,c=t.selectable,a=t.customization_item,l=e(i,function(i){return i.id===t.id});l?(s.push(l),t.selected_count=l.count,t.selected=1):2===c?1===u&&s.push({id:n,name:a.name,count:r,count_type:o.count_type}):(t.selected_count=0,t.selected=2)}),n.push(s),S(S({},t),{},{items:r})});return{isValid:st(r,n).isValid,customizationGroupList:r,selectedCustomizationItemList:n}}function st(t,i){var e=!0,n="";return t.forEach(function(t,r){var o=t.customization,u=t.min_count,s=t.max_count,c=ct(o.count_type);if(e){var a=0;return i[r].forEach(function(t){a+=t.count}),a<u?(e=!1,n="【".concat(o.name,"】:至少选择 ").concat(u," ").concat(c),void(1===s&&(n="请选择【".concat(o.name,"】")))):a>s?(e=!1,void(n="【".concat(o.name,"】:最多选择 ").concat(s," ").concat(c))):void 0}}),{isValid:e,errMsg:n}}function ct(t){return 1===t?"种":"份"}var at=function(t){var i=t.selectable,e=t.min_count,n=t.max_count;return 1===i&&e!==n&&n>1},lt=function(t){var i=t.max_count,e=0;return t.items.forEach(function(t){1===t.selected&&(e+=t.selected_count)}),-1===i||e<i},ht=function(t){var i=t.selected;return 2===t.selectable&&1===i},dt=function(t){var i=t.selected;return 2===t.selectable&&2===i};function ft(t,i){if(!P(i)){var n=t.skuId,o=t.product,s=t.promotionActivityProduct,c=t.customizationItemList,a=e(i,function(t){var i=o.id,e=o.code,u=t.product,a=t.external_product;if(!(a?a.id===(null==s?void 0:s.id):i?u.id===i:u.code===e))return!1;if(!n)return!0;var l=t.sku,h=t.external_sku;if(!(h?h.id===n:l.id===n))return!1;var d=t.product_customization_item_list||[];return!(!P(c)||!P(d))||et(r(c),d)});return a?u(a):void 0}}function mt(t,i){var n=[],r=0;return P(t)||P(i)||i.forEach(function(i){var o=i.items,u=i.customization;o.forEach(function(i){var o=i.id,s=i.customization_item,c=e(t,function(t){return t.id===o});c&&(n.push(S(S({},c),{},{name:s.name,count_type:u.count_type})),2===s.increase_type&&(r=f(r,d(s.increase_sale_price,c.count))))})}),{orderSkuCustomizationItemList:n,customizationSalePrice:r}}function pt(t){var i=t.items,e=t.min_count,n=t.max_count,r=[],o=ct(t.customization.count_type);e===n?r.push("请选择".concat(e).concat(o)):(e>0&&r.push("至少选择".concat(e).concat(o)),n>0&&r.push("最多可选".concat(n).concat(o)));var u=0;return i.forEach(function(t){u+=t.selected_count}),u>0&&r.push("已选".concat(u).concat(o)),r.join(",")}function vt(t,i,e,n){var r=u(t),o=r.items[e],s=r.items,c=r.max_count,a=1===c,l=0;s.forEach(function(t,n){var r=t.count,o=t.selected,u=t.selected_count;n!==e?1===o&&(l+=u):1===i&&(l+=r)}),!a&&l>c||(a&&r.items.forEach(function(t,i){i!==e&&(t.selected=2,t.selected_count=0)}),o.selected=i,o.selected_count=1===i?o.count:0,null==n||n(r))}function _t(t,i,e,n){var r=u(t),o=r.items[e];o.selected_count=i,o.selected=0===i?2:1,null==n||n(r)}function kt(t,i,e,n){var r=i.items,o=t.min_count,u=t.max_count,s=t.customization_item,c=o,a=u,l=i.max_count,h=0;r.forEach(function(t){t.customization_item.id===s.id?h+=e:1===t.selected&&(h+=t.selected_count)}),-1!==l&&h>l||-1!==a&&e>a||(e<c?null==n||n(0):null==n||n(e))}function yt(t,i){var e=t.selected;1===t.selectable&&(null==i||i(1===e?2:1))}function bt(t,i){var e=s(i||[],function(t){return 1===t.count_type});if(P(e))return t||"";var n=e.map(function(t){return t.name}).join("、");return t?"".concat(t,"、").concat(n):n}function gt(t){var i=s(t||[],function(t){return 1!==t.count_type});return P(i)?"":i.map(function(t){return"".concat(t.name,"x").concat(t.count)}).join("、")}function Lt(t){var i=[];return P(t)?"":(t.map(function(t){var e=t.name,n=t.count,r=2===t.count_type;i.push("".concat(e).concat(r?" x".concat(n):""))}),i.join("、"))}function St(t){return t.map(function(t){return function(t){var i=c(t,["id","count","combo_sku_id","combo_product_customization_item_list"]),e=i.combo_product_customization_item_list;return e&&(i.combo_product_customization_item_list=X(e)),i}(t)})}function Ct(t){return St(r(t))}function It(t,i){var n=0,o=r(i);return t.forEach(function(t){t.items.forEach(function(t){var i=t.id,r=t.increase_sale_price,u=e(o,function(t){return t.id===i});u&&r>0&&(n+=l.timesNumber(r,u.count))})}),n}function xt(t,i,e){if(-1===t)return t;var n=It(i,e||[]);return l.plusNumber(t,n)}function Pt(t,i){return t.length===i.length&&o(t,function(t){return e(i,function(i){if(i.id!==t.id||i.count!==t.count)return!1;if(i.combo_sku_id!==t.combo_sku_id)return!1;var e=i.combo_product_customization_item_list||[],n=t.combo_product_customization_item_list||[];return!(!P(n)||!P(e))||et(n,e)})})}function zt(t){var i=t.name,e=t.combo_sku_name,n=t.combo_product_customization_item_list,r=i;if(n){var o=bt(e,n);r=o?"".concat(i,"(").concat(o,")"):i;var u=gt(n);u&&(r="".concat(r,"、").concat(u))}return r}function Et(t){return P(t)?"":t.map(function(t){return zt(t)}).join("+")}function Ot(t){var i=t.items,e=t.max_count,n=0;return i.forEach(function(t){1===t.selected&&(n+=t.count)}),-1===e||n<e}function At(t,i){var e=t.items,n=t.min_count,r=t.max_count,o=0;if(e.forEach(function(t,i){1===t.selected&&o++}),2===i){if(1===n&&o<=1)return!1}else if(r>1&&o>=r)return!1;return!0}function Mt(t){var i=t.selected,e=t.selectable;return 1===i&&2===e}function Vt(t){return 2!==t.selectable&&(!Gt(t)&&!jt(t))}function Gt(t){return!P(t.children)}function jt(t){var i=t.min_count,e=t.max_count;return i!==e&&e>1}function Dt(t){var i=t.combo_product;return 2===(null==i?void 0:i.select_type)}function Tt(t){var i=t.combo_sku,e=t.combo_customization_item_list;if(P(i))return"";var n=bt(i.name,r(e)),o=gt(r(e));return o&&(n="".concat(n,"、").concat(o)),n}function wt(t,i){var e=i.selected,n=i.count,r=i.max_count,o=Ot(t);return o&&2!==e?n<r:o}function Nt(t){var i=t.increase_sale_price;return i>0?"¥".concat(l.formatAmount(i,"")):""}function Rt(t,i){var e=i.count,n=i.min_count,r=Mt(i),o=Ft(t);return r?e>n:o}function Ft(t){var i=t.items,e=0;return i.forEach(function(t){1===t.selected&&(e+=t.count)}),e>0}function qt(t){var i=t.selected;return 1!==t.selectable&&2!==i&&Dt(t)}function Bt(t){var i=t.combo_sku,e=t.combo_product;return 2===(null==e?void 0:e.select_type)&&!i}function Ut(t){var i={};return t.forEach(function(t){var e=t.combo_group_name,n=i[e];n?n.push(t):i[e]=[t]}),Object.keys(i).map(function(t){return{comboGroupName:t,list:i[t]}})}function Jt(t,i){return P(i)?t:t.map(function(t){var n=t.items.map(function(t){var n=e(i,function(i){return i.id===t.id});if(!n)return 1===t.selectable&&(t.selected=2),t;var r=t.children,o=t.combo_product;if(!P(r))return r.forEach(function(t){t.combo_sku.id===n.combo_sku_id?(t.selected=1,t.count=n.count):t.selected=2}),t;if(o){var u,s;if(n.combo_sku_id)t.combo_sku={id:n.combo_sku_id,name:n.combo_sku_name,stock_count:null!==(u=null===(s=t.combo_sku)||void 0===s?void 0:s.stock_count)&&void 0!==u?u:A};n.combo_product_customization_item_list&&(t.combo_customization_item_list=[n.combo_product_customization_item_list])}return t.count=n.count,t.selected=1,t});return S(S({},t),{},{items:n})})}function Wt(t){return t.map(function(t){var i=[],n=t.name;return t.items.forEach(function(t){var o=t.id,u=t.name,s=t.count,c=t.selected,a=t.children,l=t.combo_sku,h=t.combo_sku_type,d=t.combo_customization_item_list;if(P(a)){if(2!==c)if(1!==h){if(l){var f={id:o,name:u,count:s,combo_sku_id:l.id,combo_sku_name:l.name,combo_group_name:n};d&&(f.combo_product_customization_item_list=r(d)),i.push(f)}}else i.push({id:o,name:u,count:s,combo_group_name:n})}else{var m=e(a,function(t){return 1===t.selected});m&&i.push({id:o,name:"".concat(u,"(").concat(m.name,")"),combo_group_name:n,combo_sku_id:m.combo_sku.id,count:m.count})}}),i})}function $t(t,i){var n=!0,r="";return P(i)&&(i=Wt(t)),t.forEach(function(t,o){var u;if(n){var s=t.items,c=t.min_count,a=t.max_count,l=t.name;if(s.forEach(function(t,i){if(n){var o=t.count,u=t.min_count,s=t.selected,c=t.children,a=t.combo_sku,h=t.combo_product;if(2!==s)if(P(c)){if(h&&P(a))return n=!1,void(r="【".concat(l,"】:第").concat(i+1,"个商品,请选择规格"));o<u&&(n=!1,r="【".concat(l,"】:第").concat(i+1,"个商品,至少选择 ").concat(u," 件"))}else{P(e(c,function(t){return 1===t.selected}))&&(n=!1,r="【".concat(l,"】:第").concat(i+1,"个商品,请选择定制项"))}}}),n){var h=0;if(null===(u=i[o])||void 0===u||u.forEach(function(t){h+=t.count}),h<c)return n=!1,void(r="【".concat(l,"】:至少选择 ").concat(c," 件商品"));h>a&&(n=!1,r="【".concat(l,"】:最多选择 ").concat(a," 件商品"))}}}),r}function Ht(t){var i=t.items,e=t.repeatable,n=t.min_count,r=t.max_count;if(o(i,function(t){return 2===t.selectable}))return"";var u=[];n===r?u.push("请选择".concat(n,"项")):(n>0&&u.push("至少选择".concat(n,"项")),r>0&&u.push("最多可选".concat(r,"项"))),1===e&&u.push("可重复选");var s=0;return i.forEach(function(t){1===t.selected&&(s+=t.count)}),s>0&&u.push("已选".concat(s)),u.join(",")}function Yt(t){return P(t)?[]:r(t).map(function(t){var i={id:t.id,name:t.name,count:t.count,combo_group_name:t.combo_group_name};return t.combo_sku_id&&(i.combo_sku_id=t.combo_sku_id),t.combo_sku_name&&(i.combo_sku_name=t.combo_sku_name),P(t.combo_product_customization_item_list)||(i.combo_product_customization_item_list=t.combo_product_customization_item_list.map(function(t){return{id:t.id,name:t.name,count:t.count,count_type:t.count_type}})),i})}function Kt(t,i,e,n){i?null==e||e(t):null==n||n(t)}function Qt(t,i,e,n){var r=t.items,o=i.min_count,u=i.max_count,s=t.max_count,c=Mt(i),a=0;r.forEach(function(t){t.id===i.id?a+=e:1===t.selected&&(a+=t.count)}),-1!==s&&a>s||-1!==u&&e>u||e<0||a<0||c&&e<o||null==n||n(e)}function Xt(t,i,e,n){var r=u(t),o=r.items[e];o.count=i,o.selected=0===i?2:1,null==n||n(r)}function Zt(t,i,e,n){var r=u(t),o=i.sku,s=i.count,c=o.id,a=r.items[e];a.children.forEach(function(t){t.combo_sku.id===c?(t.selected=1,t.count=s):t.selected=2}),a.selected=1,null==n||n(r)}function ti(t,i,e,n){var r=u(t),o=r.items[e],s=r.items,c=r.min_count,a=r.max_count,l=0;if(s.forEach(function(t){1===t.selected&&l++}),2===i){if(1===c&&l<=1)return void(null==n||n(r))}else if(1===a)r.items.forEach(function(t,i){i!==e&&(t.selected=2)});else if(l>=a)return void(null==n||n(r));o.selected=i,null==n||n(r)}function ii(t,i,e,n){var r,o,s=u(t),c=i.sku,a=i.customizationItemList,l=s.items[e],h=jt(l);l.combo_sku={id:c.id,name:c.name,stock_count:null!==(r=null===(o=l.combo_sku)||void 0===o?void 0:o.stock_count)&&void 0!==r?r:A},a&&(l.combo_customization_item_list=a),h&&0===l.count&&(l.count=1),ti(s,1,e,n)}function ei(t,i,e){var n=1===t.selected?2:1;if(P(t.children)){var r=i.items,o=i.max_count;if(1===n&&o>1){var u=0;if(r.forEach(function(t){1===t.selected&&(u+=t.count)}),u>=o)return}null==e||e(n)}}var ni=function(){return k(function t(i){_(this,t),y(this,"product",{}),y(this,"specImage",void 0),y(this,"skuId",0),y(this,"sku",void 0),y(this,"skuList",[]),y(this,"skuListAfter",[]),y(this,"selectedSpecs",[]),y(this,"productSpecGroupList",[]),y(this,"specList",[]),y(this,"stockCount",0),y(this,"minCount",1),y(this,"maxCount",1),y(this,"perOrderMinLimit",-1),y(this,"perOrderMaxLimit",-1),y(this,"salePrice",0),y(this,"originalPrice",-1),y(this,"memberPrice",void 0),y(this,"skuComboGroupList",[]),y(this,"skuComboItemList",[]),y(this,"cartCount",0),y(this,"cartItem",void 0),y(this,"visibleComboInfo",!1),y(this,"isComponentLoading",!0),y(this,"_initSkuListAfter",[]),y(this,"_initSpecType",0),y(this,"_initSkuId",0),y(this,"_validateComboGroupList",function(){return""});var e=i.productData,n=i.cartList,r=i.channel1Type,o=i.negativeStockSaleEnabled,u=i.onChange,s=i.validateComboGroupList;this.cartList=n||[],this.channel1Type=r,this.negativeStockSaleEnabled=o,this.onChange=u,this._validateComboGroupList=s,this._initProductData(e)},[{key:"getInitialSkuId",value:function(){return this._initSkuId}},{key:"init",value:function(t){var i,e,r=this,o=this._initSpecType,u=this._initSkuListAfter,s=this._findSkuCartItem(),c=0;if(2===o&&!P(s)){var a=s,l=a.sku,h=a.external_sku,d=(null==h?void 0:h.id)||l.id;-1===(c=n(u,function(t){return t.id===d}))&&(c=0)}this.cartItem=s,this.cartCount=(null==s||null===(i=s.cart)||void 0===i?void 0:i.count)||0;var f=u[c];if(1===o)return this._initSkuDetail(t),this._updateSkuData(f||this.skuList[0]),this.isComponentLoading=!1,void this._notifyChange();this._initSkuDetail(t),null===(e=u[c])||void 0===e||e.specs.forEach(function(t,i){r._selectSpec(!0,t,i)}),this.isComponentLoading=!1,this._notifyChange()}},{key:"syncCartList",value:function(t){this.cartList=t,this._refreshCartItem(),this._notifyChange()}},{key:"getView",value:function(){return{product:this.product,skuId:this.skuId,salePrice:this.getSalePrice(),originalPrice:this.getOriginalPrice(),memberPrice:this.getMemberPrice(),specImage:this.specImage,skuListAfter:this.skuListAfter,selectedSpecs:this.selectedSpecs,productSpecGroupList:this.productSpecGroupList,skuComboGroupList:this.skuComboGroupList,skuComboItemList:this.skuComboItemList,cartCount:this.cartCount,maxCount:this.maxCount,isComponentLoading:this.isComponentLoading,visibleComboInfo:this.visibleComboInfo}}},{key:"handleSelectSpecs",value:function(t,i,n){var r,o=this;if(!this._selectSpec(t,i,n)||this.selectedSpecs.indexOf("")>=0)return this._notifyChange(),{needFetchSkuDetail:!1,skuId:0};var u=e(this.skuListAfter,function(t){return a(t.specs,o.selectedSpecs)});return u?(void 0!==(null===(r=this.specList[0])||void 0===r||null===(r=r.items[0])||void 0===r?void 0:r.image)&&this.specList[0].items.forEach(function(t){t.name===o.selectedSpecs[0]&&(o.specImage=t.image)}),this._notifyChange(),{needFetchSkuDetail:!0,skuId:u.id}):(this._notifyChange(),{needFetchSkuDetail:!1,skuId:0})}},{key:"updateSkuDetailData",value:function(t){this._initSkuDetail(t),this._notifyChange()}},{key:"updateMemberPrice",value:function(t){this.memberPrice=t,this._notifyChange()}},{key:"handleSelectComboData",value:function(t){this.skuComboItemList=t,this._refreshCartItem(),this._notifyChange()}},{key:"handleProductCountChange",value:function(t,i){var e=this.perOrderMinLimit,n=this.cartItem;if(this.selectedSpecs.indexOf("")>=0)return{isValid:!1,errMsg:"请选择规格"};if(t>0){if(i===M&&-1!==e&&t<e)return{isValid:!0,cartItem:n,count:0};var r=this._validateCombo();if(r)return{isValid:!1,errMsg:r};var o=this._checkProductCount(t);if(!o.isValid)return o}return{isValid:!0,cartItem:n,count:t}}},{key:"getAddToCartParams",value:function(t,i){var e=this.sku,n=this.skuId,r=this.product,o=this.skuList,u=this.selectedSpecs,s=this.negativeStockSaleEnabled,c=this.productSpecGroupList,a=this.skuComboItemList,l=this.perOrderMinLimit,h=u.indexOf(""),d=U(null==r?void 0:r.status,null==r?void 0:r.has_stock),f=W(null==r?void 0:r.status,null==r?void 0:r.has_stock);if(0!==o[0].item_ids.length&&h>=0)return{isValid:!1,errMsg:"请选择".concat(c[h].title)};if(!d&&!s)return{isValid:!1,errMsg:f};var m=this._validateCombo();return m?{isValid:!1,errMsg:m}:{isValid:!0,params:{productId:t,promotionActivityProductId:null!=e&&e.is_promotion_activity?i:void 0,skuId:n,count:-1!==l?l:1,skuComboItemList:a}}}},{key:"handleShowComboInfo",value:function(){P(r(this.skuComboItemList))||(this.visibleComboInfo=!0,this._notifyChange())}},{key:"handleCloseComboInfo",value:function(){this.visibleComboInfo=!1,this._notifyChange()}},{key:"getSalePrice",value:function(){return xt(this.salePrice,this.skuComboGroupList,this.skuComboItemList)}},{key:"getOriginalPrice",value:function(){return P(this.originalPrice)||this.originalPrice<=0?0:xt(this.originalPrice,this.skuComboGroupList,this.skuComboItemList)}},{key:"getMemberPrice",value:function(){if(!(P(this.memberPrice)||this.memberPrice<=0))return xt(this.memberPrice,this.skuComboGroupList,this.skuComboItemList)}},{key:"buildCartCountParams",value:function(){var t=Ct(this.skuComboItemList);return{channel1_type:this.channel1Type,checked:1,sku_id:this.skuId,sku_type:0,sku_combo_item_list:JSON.stringify(t),cart:1}}},{key:"buildMemberPriceParams",value:function(){if(this.skuId)return{sku_id:this.skuId,sku_type:0}}},{key:"_initProductData",value:function(t){var e=t.product,r=t.skuList,o=t.productCover,u=t.productSpecGroupList,s=R(u),c=w(u),a=N(r,s,this.negativeStockSaleEnabled),l=F(u,o);if(this.product=e,this.specImage=l,this.skuList=r,this.skuListAfter=a,this.selectedSpecs=i(new Array(c.length),""),this.productSpecGroupList=c,this.specList=u,this._initSkuListAfter=a,this._initSpecType=e.spec_type,2===e.spec_type){var h=this._findSkuCartItem();if(P(h)){var d,f,m,p;this._initSkuId=null!==(d=null!==(f=null===(m=a[0])||void 0===m?void 0:m.id)&&void 0!==f?f:null===(p=r[0])||void 0===p?void 0:p.id)&&void 0!==d?d:0}else{var v,_,k,y,b=h,g=b.sku,L=b.external_sku,S=(null==L?void 0:L.id)||g.id,C=n(a,function(t){return t.id===S});-1===C&&(C=0),this._initSkuId=null!==(v=null!==(_=null===(k=a[C])||void 0===k?void 0:k.id)&&void 0!==_?_:null===(y=r[0])||void 0===y?void 0:y.id)&&void 0!==v?v:0}}else{var I,x;this._initSkuId=null!==(I=null===(x=r[0])||void 0===x?void 0:x.id)&&void 0!==I?I:0}}},{key:"_initSkuDetail",value:function(t){var i,e=t.sku,n=t.sku_combo_group_list;this._updateSkuData(e);var r=Jt(n||[],null===(i=this.cartItem)||void 0===i?void 0:i.sku_combo_item_list);this.skuComboGroupList=r,this.skuComboItemList=Wt(r)}},{key:"_updateSkuData",value:function(t){var i,e=t.id,n=t.stock_count,r=t.per_order_min_limit,o=t.per_order_max_limit,u=-1===r?1:Math.min(r,n),s=-1===o?n:Math.min(o,n),c=this._findSkuCartItem(e);this.sku=t,this.skuId=e,this.stockCount=n,this.salePrice=t.sale_price,this.originalPrice=t.original_price,this.minCount=u,this.maxCount=s,this.perOrderMinLimit=r,this.perOrderMaxLimit=o,this.cartItem=c,this.cartCount=(null==c||null===(i=c.cart)||void 0===i?void 0:i.count)||0}},{key:"_checkProductCount",value:function(t){var i=this.minCount,e=this.maxCount,n=this.stockCount,r=this.perOrderMinLimit,o=this.negativeStockSaleEnabled;return t<i||t<r?{isValid:!1,errMsg:-1!==r?"该商品 ".concat(r," 件起售哦"):"购买数量至少 ".concat(i," 件")}:t>e&&!o?{isValid:!1,errMsg:t>n?"库存不足":"该商品最多购买 ".concat(e," 件哦")}:{isValid:!0}}},{key:"_selectSpec",value:function(t,i,e){var n=this.selectedSpecs;return 0!==this.productSpecGroupList.length&&(!(n[e]===i||!t)&&(n[e]=i,this.selectedSpecs=n.slice(),!0))}},{key:"_refreshCartItem",value:function(){var t,i=this._findSkuCartItem(this.skuId);this.cartItem=i,this.cartCount=(null==i||null===(t=i.cart)||void 0===t?void 0:t.count)||0}},{key:"_findSkuCartItem",value:function(t){var i=this.cartList,n=this.product,o=this.skuComboItemList,s=e(i,function(i){var e=n.id,u=n.code,s=i.product;if(!(e?s.id===e:s.code===u))return!1;if(!t)return!0;var c=i.sku,a=i.external_sku;if(!(a?a.id===t:c.id===t))return!1;var l=i.sku_combo_item_list||[];return!!P(o)||Pt(r(o),l)});return s?u(s):void 0}},{key:"_validateCombo",value:function(){return this._validateComboGroupList()}},{key:"_notifyChange",value:function(){this.onChange()}}])}(),ri=function(){return k(function t(i){_(this,t),y(this,"product",{}),y(this,"promotionActivityProduct",void 0),y(this,"specImage",void 0),y(this,"skuId",0),y(this,"sku",void 0),y(this,"skuList",[]),y(this,"skuListAfter",[]),y(this,"selectedSpecs",[]),y(this,"productSpecGroupList",[]),y(this,"specList",[]),y(this,"activitySpecList",[]),y(this,"stockCount",0),y(this,"minCount",1),y(this,"maxCount",1),y(this,"perOrderMinLimit",-1),y(this,"perOrderMaxLimit",-1),y(this,"salePrice",0),y(this,"originalPrice",-1),y(this,"memberPrice",void 0),y(this,"customizationGroupList",[]),y(this,"customizationItemList",[]),y(this,"cartCount",0),y(this,"cartItem",void 0),y(this,"cartList",[]);var e=i.productData,n=i.cartList,r=i.channel1Type,o=i.negativeStockSaleEnabled,u=i.onChange;this.cartList=n||[],this.channel1Type=r,this.negativeStockSaleEnabled=o,this.onChange=u,this._initProductData(e)},[{key:"setCartList",value:function(t){this.cartList=t,this._updateSkuCartItem(),this._notifyChange()}},{key:"init",value:function(){var t,i=this,r=this.skuListAfter,o=this.product.spec_type,u=this._findSkuCartItem(),s=0;if(!P(u)){var c=u,l=c.sku,h=c.external_sku,d=c.product_customization_item_list,f=(null==h?void 0:h.id)||l.id;if(-1===(s=n(r,function(t){return t.id===f}))&&(s=0),!P(d)){var m=ut(this.customizationGroupList,d);this.customizationGroupList=m.customizationGroupList,this.customizationItemList=m.selectedCustomizationItemList}}if(this._updateSkuCartItem(),1===o)return this._updateSkuData(this.skuList[0]),void this._notifyChange();null===(t=r[s])||void 0===t||t.specs.forEach(function(t,e){i._selectSpec(!0,t,e)});var p=e(r,function(t){return a(t.specs,i.selectedSpecs)});p&&this._updateSkuData(p),this._notifyChange()}},{key:"getView",value:function(){return{product:this.product,promotionActivityProduct:this.promotionActivityProduct,skuId:this.skuId,sku:this.sku,salePrice:this.getSalePrice(),originalPrice:this.getOriginalPrice(),memberPrice:this.getMemberPrice(),specImage:this.specImage,skuListAfter:this.skuListAfter,selectedSpecs:this.selectedSpecs,productSpecGroupList:this.productSpecGroupList,activitySpecList:this.activitySpecList,customizationGroupList:this.customizationGroupList,customizationItemList:this.customizationItemList,cartCount:this.cartCount,maxCount:this.maxCount,cartItem:this.cartItem}}},{key:"handleSelectSpecs",value:function(t,i,n){var r,o=this,u=this._selectSpec(t,i,n),s=this.buildCartCountParams();if(!u||this.selectedSpecs.indexOf("")>=0)return this._updateSkuCartItem(),this._notifyChange(),{needFetchCart:!1,cartParams:s};var c=e(this.skuListAfter,function(t){return a(t.specs,o.selectedSpecs)});return c?(void 0!==(null===(r=this.specList[0])||void 0===r||null===(r=r.items[0])||void 0===r?void 0:r.image)&&this.specList[0].items.forEach(function(t){t.name===o.selectedSpecs[0]&&(o.specImage=t.image)}),this._updateSkuData(c),this._updateSkuCartItem(),this._notifyChange(),{needFetchCart:!0,cartParams:this.buildCartCountParams()}):(this._updateSkuCartItem(),this._notifyChange(),{needFetchCart:!1,cartParams:s})}},{key:"updateCartCountData",value:function(t){if(t&&void 0!==t.cart){var i=t.cart;this.cartItem=t,this.cartCount=(null==i?void 0:i.count)||0}else this.cartItem=void 0,this.cartCount=0;this._notifyChange()}},{key:"updateMemberPrice",value:function(t){this.memberPrice=t,this._notifyChange()}},{key:"handleCustomizationItemListSelect",value:function(t){return this.customizationItemList=t,st(this.customizationGroupList,t).isValid?(this._updateSkuCartItem(),this._notifyChange(),{isValid:!0,cartParams:this.buildCartCountParams()}):(this.cartItem=void 0,this.cartCount=0,this._notifyChange(),{isValid:!1})}},{key:"handleProductCountChange",value:function(t,i){var e=this.perOrderMinLimit,n=this.cartItem;if(this.selectedSpecs.indexOf("")>=0)return{isValid:!1,errMsg:"请选择规格"};if(t>0){if(i===M&&-1!==e&&t<e)return{isValid:!0,cartItem:n,count:0};if(this.customizationGroupList.length>0){var r=st(this.customizationGroupList,this.customizationItemList);if(!r.isValid)return{isValid:!1,errMsg:r.errMsg}}var o=this._checkProductCount(t);if(!o.isValid)return o}return{isValid:!0,cartItem:n,count:t}}},{key:"getAddToCartParams",value:function(t,i){var e=this.sku,n=this.skuId,r=this.product,o=this.skuList,u=this.selectedSpecs,s=this.negativeStockSaleEnabled,c=this.productSpecGroupList,a=this.customizationItemList,l=this.customizationGroupList,h=this.perOrderMinLimit,d=u.indexOf(""),f=U(null==r?void 0:r.status,null==r?void 0:r.has_stock),m=W(null==r?void 0:r.status,null==r?void 0:r.has_stock);if(0!==o[0].item_ids.length&&d>=0)return{isValid:!1,errMsg:"请选择".concat(c[d].title)};if(!f&&!s)return{isValid:!1,errMsg:m};if(l.length>0){var p=st(l,a);if(!p.isValid)return{isValid:!1,errMsg:p.errMsg}}var v=Z(a);return{isValid:!0,params:{productId:t,promotionActivityProductId:null!=e&&e.is_promotion_activity?i:void 0,skuId:n,count:-1!==h?h:1,productCustomizationItemList:v}}}},{key:"getSalePrice",value:function(){var t=tt(this.customizationGroupList,this.customizationItemList);return this.salePrice+t}},{key:"getOriginalPrice",value:function(){if(P(this.originalPrice)||this.originalPrice<=0)return this.originalPrice;var t=tt(this.customizationGroupList,this.customizationItemList);return this.originalPrice+t}},{key:"getMemberPrice",value:function(){if(!(P(this.memberPrice)||this.memberPrice<=0)){var t=tt(this.customizationGroupList,this.customizationItemList);return this.memberPrice+t}}},{key:"getSelectedSpecAndCustomization",value:function(){var t=this.selectedSpecs.join("、"),i=r(this.customizationItemList);t=bt(t,i);var e=gt(i);return P(t)&&P(e)?"":P(t)||P(e)?t||e:"".concat(t,"、").concat(e)}},{key:"buildCartCountParams",value:function(){var t=Z(this.customizationItemList);return{channel1_type:this.channel1Type,checked:1,sku_id:this.skuId,sku_type:this._getSkuType(),product_customization_item_list:JSON.stringify(t),cart:1}}},{key:"buildMemberPriceParams",value:function(){if(this.skuId)return{sku_id:this.skuId,sku_type:this._getSkuType()}}},{key:"_initProductData",value:function(t){var e=t.product,n=t.promotionActivityProduct,r=t.skuList,o=t.productCover,u=t.productSpecGroupList,s=t.productCustomizationGroupList,c=R(u),a=w(u),l=N(r,c,this.negativeStockSaleEnabled),h=F(u,o),d=q(u),f=nt(s||[]);this.product=e,this.promotionActivityProduct=n,this.specImage=h,this.skuList=r,this.skuListAfter=l,this.selectedSpecs=i(new Array(a.length),""),this.productSpecGroupList=a,this.specList=u,this.activitySpecList=d,this.customizationGroupList=f,this.customizationItemList=s?rt(f):[]}},{key:"_updateSkuData",value:function(t){var i=t.id,e=t.stock_count,n=t.per_order_min_limit,r=t.per_order_max_limit,o=-1===n?1:Math.min(n,e),u=-1===r?e:Math.min(r,e);this.sku=t,this.skuId=i,this.stockCount=e,this.salePrice=t.sale_price,this.originalPrice=t.original_price,this.minCount=o,this.maxCount=u,this.perOrderMinLimit=n,this.perOrderMaxLimit=r,this._findSkuCartItem(i)}},{key:"_checkProductCount",value:function(t){var i=this.minCount,e=this.maxCount,n=this.stockCount,r=this.perOrderMinLimit,o=this.negativeStockSaleEnabled;return t<i||t<r?{isValid:!1,errMsg:-1!==r?"该商品 ".concat(r," 件起售哦"):"购买数量至少 ".concat(i," 件")}:t>e&&!o?{isValid:!1,errMsg:t>n?"库存不足":"该商品最多购买 ".concat(e," 件哦")}:{isValid:!0}}},{key:"_selectSpec",value:function(t,i,e){var n=this.selectedSpecs;return 0!==this.productSpecGroupList.length&&(!(n[e]===i||!t)&&(n[e]=i,this.selectedSpecs=n.slice(),!0))}},{key:"_notifyChange",value:function(){this.onChange()}},{key:"_getSkuType",value:function(){var t;return null!==(t=this.sku)&&void 0!==t&&t.is_promotion_activity?1:0}},{key:"_findSkuCartItem",value:function(t){var i=this,n=this.cartList;if(!P(n)){var o=this.product,s=this.promotionActivityProduct,c=this.customizationItemList,a=e(n,function(e){var n=o.id,u=o.code,a=e.product,l=e.external_product;if(!(l?l.id===(null==s?void 0:s.id):n?a.id===n:a.code===u))return!1;var h=t||i.skuId;if(!h)return!0;var d=e.sku,f=e.external_sku;if(!(f?f.id===h:d.id===h))return!1;var m=e.product_customization_item_list||[];return!(!P(c)||!P(m))||et(r(c),m)});return a?u(a):void 0}}},{key:"_updateSkuCartItem",value:function(){var t,i=this._findSkuCartItem(this.skuId);this.cartItem=i,this.cartCount=(null==i||null===(t=i.cart)||void 0===t?void 0:t.count)||0}}])}(),oi=function(){return k(function t(i){_(this,t),y(this,"product",{}),y(this,"specImage",void 0),y(this,"skuId",0),y(this,"sku",void 0),y(this,"count",1),y(this,"stockCount",0),y(this,"minCount",1),y(this,"maxCount",1),y(this,"perOrderMinLimit",-1),y(this,"perOrderMaxLimit",-1),y(this,"skuList",[]),y(this,"skuListAfter",[]),y(this,"selectedSpecs",[]),y(this,"productSpecGroupList",[]),y(this,"specList",[]),y(this,"customizationGroupList",[]),y(this,"customizationItemList",[]),y(this,"isScrollable",!1);var e=i.productData,n=i.initSkuId,r=i.customizationItemList,o=i.exchangeRate,u=void 0===o?1e4:o,s=i.channel1Type,c=i.onChange;this.exchangeRate=u,this.channel1Type=s,this.onChange=c,this._initCustomizationItemList=r,this._initProductData(e,n)},[{key:"getView",value:function(){return{product:this.product,specImage:this.specImage,skuListAfter:this.skuListAfter,selectedSpecs:this.selectedSpecs,productSpecGroupList:this.productSpecGroupList,customizationGroupList:this.customizationGroupList,customizationItemList:this.customizationItemList,count:this.count,isScrollable:this.isScrollable,salePrice:this._formatSalePrice()}}},{key:"handleSelectSpecs",value:function(t,i,n){var r,o=this,u=this.specList,s=this.skuListAfter,c=this.selectedSpecs;if(this.productSpecGroupList.length>0){if(c[n]===i||!t)return;c[n]=c[n]===i?"":i,this.selectedSpecs=c.slice()}c.indexOf("")<0&&(e(s,function(t){var i=a(t.specs,c);return i&&o._updateSkuData(t),i}),void 0!==(null===(r=u[0])||void 0===r?void 0:r.items[0].image)&&u[0].items.forEach(function(t){t.name===c[0]&&(o.specImage=t.image)}));this._notifyChange()}},{key:"handleCustomizationItemListSelect",value:function(t){this.customizationItemList=t,this._notifyChange()}},{key:"getSelectedSpecAndCustomization",value:function(){var t=this.selectedSpecs.join("、"),i=r(this.customizationItemList);t=bt(t,i);var e=gt(i);return P(t)&&P(e)?"":P(t)||P(e)?t||e:"".concat(t,"、").concat(e)}},{key:"handleProductCountChange",value:function(t,i){var e=this.selectedSpecs,n=this.customizationItemList,r=this.customizationGroupList,o=this.perOrderMinLimit;if(e.indexOf("")<0){if(t>0){if("CHANGE_TYPE_DECREASE"===i&&-1!==o&&t<o)return{isValid:!1};var u=st(r||[],n||[]);if(!u.isValid)return{isValid:!1,errMsg:u.errMsg};var s=this._checkProductCount(t);if(!s.isValid)return s}return{isValid:!0}}return{isValid:!1,errMsg:"请选择规格"}}},{key:"handleSubmit",value:function(){var t=this.sku,i=this.count,e=this.product,n=this.skuList,r=this.selectedSpecs,o=this.productSpecGroupList,u=this.customizationItemList,s=this.customizationGroupList,c=r.indexOf(""),a=U(null==e?void 0:e.status,null==e?void 0:e.has_stock),l=W(null==e?void 0:e.status,null==e?void 0:e.has_stock);if(0===n[0].item_ids.length||c<0){if(!a)return{isValid:!1,errMsg:l};if(!P(s)){var h=st(s,u||[]);if(!h.isValid)return{isValid:!1,errMsg:h.errMsg}}return{isValid:!0,data:{sku:t,count:i,customizationItemList:u}}}return{isValid:!1,errMsg:"请选择".concat(o[c].title)}}},{key:"setScrollable",value:function(t){this.isScrollable=t,this._notifyChange()}},{key:"_initProductData",value:function(t,e){var o,u=this,s=t.product,c=t.skuList,a=t.productCover,l=t.productSpecGroupList,h=t.productCustomizationGroupList,d=R(l),f=w(l),m=N(c,d),p=F(l,a),v=nt(h||[]),_=rt(v);if(this.product=s,this.specImage=p,this.skuList=c,this.skuListAfter=m,this.selectedSpecs=i(new Array(f.length),""),this.productSpecGroupList=f,this.specList=l,this.customizationGroupList=v,this.customizationItemList=_,!P(this._initCustomizationItemList)){var k=ut(v,r(this._initCustomizationItemList));this.customizationGroupList=k.customizationGroupList,this.customizationItemList=k.selectedCustomizationItemList}if(1!==s.spec_type){var y=0;P(e)||-1===(y=n(m,function(t){return t.id===e}))&&(y=0),null===(o=m[y])||void 0===o||o.specs.forEach(function(t,i){u.handleSelectSpecs(!0,t,i)})}else this._updateSkuData(c[0])}},{key:"_updateSkuData",value:function(t){var i=t.id,e=t.stock_count,n=t.per_order_min_limit,r=t.per_order_max_limit,o=-1===n?1:Math.min(n,e),u=-1===r?e:Math.min(r,e);this.sku=t,this.skuId=i,this.stockCount=e,this.minCount=o,this.maxCount=u,this.perOrderMinLimit=n,this.perOrderMaxLimit=r}},{key:"_checkProductCount",value:function(t){var i=this.minCount,e=this.maxCount,n=this.stockCount,r=this.perOrderMinLimit;return t<i||t<r?-1!==r?{isValid:!1,errMsg:"该商品 ".concat(r," 件起售哦")}:{isValid:!1,errMsg:"购买数量至少 ".concat(i," 件")}:t>e?t>n?{isValid:!1,errMsg:"库存不足"}:{isValid:!1,errMsg:"该商品最多购买 ".concat(e," 件哦")}:{isValid:!0}}},{key:"_formatSalePrice",value:function(){return tt(this.customizationGroupList||[],this.customizationItemList||[])}},{key:"_notifyChange",value:function(){this.onChange()}}])}(),ui=1,si=2,ci=3,ai=1,li=2,hi=1,di=2,fi=1,mi=2,pi=3,vi=0,_i=1,ki=2,yi=1,bi=2,gi=3,Li=4,Si=5,Ci=6,Ii="extra",xi="reason",Pi="none",zi="请选择优惠券",Ei="deadline",Oi="validity",Ai=[1,2,3,4,5,6,0],Mi={1:"一",2:"二",3:"三",4:"四",5:"五",6:"六",0:"日"},Vi=[1,2,3,4,5],Gi=[6,0];function ji(t,i){return 0===t&&(1440===i||1439===i)}function Di(t){if(Array.isArray(t))return t.map(function(t){return Number(t)}).filter(function(t){return Number.isFinite(t)&&t>=0});if("string"==typeof t&&t)try{var i=JSON.parse(t);if(Array.isArray(i))return Di(i)}catch(i){return t.split(",").map(function(t){return Number(t)}).filter(function(t){return Number.isFinite(t)&&t>=0})}return[]}var Ti=function(t,i){if(t.length!==i.length)return!1;var e=new Set(i);return t.every(function(t){return e.has(t)})},wi=function(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(t,i){return i===t+1};if(!t.length)return[];for(var e=[[t[0]]],n=1;n<t.length;n++){var r=t[n-1],o=t[n];i(r,o)?e[e.length-1].push(o):e.push([o])}return e},Ni=function(t,i){var e=Ai.indexOf(t),n=Ai.indexOf(i);return e>=0&&n===e+1},Ri=function(t,i,e){var n=[];return t.forEach(function(t){t.length>=3?n.push(i(t[0],t[t.length-1])):t.forEach(function(t){n.push(e(t))})}),n};function Fi(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=t.repeatType,e=void 0===i?0:i,n=t.repeatValue,r=Di(void 0===n?[]:n);return 1===e?function(t){if(!t.length)return"";if(Ti(t,Vi))return"工作日";if(Ti(t,Gi))return"周六日";var i=Ai.filter(function(i){return t.includes(i)}),e=wi(i,Ni);if(!e.some(function(t){return t.length>=3})){var n=i.map(function(t){return Mi[t]});return"每周".concat(n.join("、"))}return Ri(e,function(t,i){return"周".concat(Mi[t],"到周").concat(Mi[i])},function(t){return"周".concat(Mi[t])}).join("、")}(r):2===e?function(t){if(!t.length)return"";var i=I(new Set(t)).sort(function(t,i){return t-i}),e=wi(i);return e.some(function(t){return t.length>=3})?Ri(e,function(t,i){return"".concat(t," - ").concat(i,"号")},function(t){return"".concat(t,"号")}).join("、"):"每月".concat(i.join(", "),"号")}(r):""}function qi(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=t.repeatType,e=void 0===i?0:i,n=t.repeatValue,r=void 0===n?[]:n,o=t.minuteSegments,u=void 0===o?[]:o,s=Fi({repeatType:e,repeatValue:r}),c=m(Di(u));return"".concat(s).concat(c)||"全天"}function Bi(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=[],e=Number(t.daily)||0,n=Number(t.weekly)||0,r=Number(t.monthly)||0;return e>0&&i.push("每日".concat(e,"次")),n>0&&i.push("每周".concat(n,"次")),r>0&&i.push("每月".concat(r,"次")),i.length?i.join("、"):"不限制"}function Ui(t,i){return null!=t&&null!=i&&String(t)===String(i)}function Ji(t){var i=Number(t);return!!Number.isFinite(i)&&i>=3}function Wi(t){return!Ji(t.status)&&("boolean"!=typeof t.available||t.available)}function $i(t,i){var e=Array.isArray(t)?t:[],n=[];return e.forEach(function(t){var e=i?i(t):t;if(e&&null!=e.id){var r=S(S({},e),{},{original:void 0!==e.original?e.original:t});r.available=Wi(r),n.push(r)}}),n.sort(function(t,i){return Number(i.available)-Number(t.available)})}function Hi(t){var i=Number(t.couponType);return 1===i||2!==i&&3!==i&&!P(t.discount)}function Yi(t){if(Hi(t)){if(P(t.discount))return"";var i=l.formatDiscount(Number(t.discount));return i&&"NaN折"!==i?i.endsWith("折")?i.slice(0,-1):i:""}return P(t.amount)?"":se(l.formatAmount(t.amount,""))}function Ki(t){return Hi(t)||P(t.amount)?"":"¥"}function Qi(t){return Hi(t)&&!P(t.discount)?"折":""}function Xi(t){if(!P(t.thresholdText))return t.thresholdText;var i=Number(t.thresholdType);if(null!=t.thresholdType&&!P(t.thresholdType)){var e=Number(t.thresholdValue)||0;return e?2===i?"满".concat(e,"件"):1===i?"满".concat(se(l.formatAmount(e,"")),"元"):"无门槛":"无门槛"}return P(t.thresholdAmount)?"":"满".concat(se(l.formatAmount(t.thresholdAmount,"")),"元")}var Zi=864e5;function te(t){return t?l.formatDateTime(Number(t)):""}function ie(t){if(!P(t.expireText))return t.expireText;if(1===Number(t.expireEndType))return"长期有效";var i=te(function(t){var i=Number(t.expireEndTime);if(Number.isFinite(i)&&i>0)return i;var e=Number(t.expireDays);if(Number.isFinite(e)&&!(e<=0)){var n=Number(t.expireStartType),r=Number(t.expireStartTime);return 2===n&&Number.isFinite(r)&&r>0?r+e*Zi:Date.now()+e*Zi}}(t));return i||"长期有效"}function ee(t){if(!P(t.expireText))return t.expireText;var i=Number(t.expireStartType)||1,e=Number(t.expireEndType),n=te(t.expireStartTime),r=te(t.expireEndTime),o=t.expireDays;if(1===i){if(1===e)return"自获取后永久有效";if(2===e)return r?"自获取后截止".concat(r,"期间有效"):"";if(3===e)return o?"自获取后".concat(o,"天内有效"):""}if(2===i){if(1===e)return n?"".concat(n,"起永久有效"):"";if(2===e)return n&&r?"".concat(n,"至").concat(r,"有效"):"";if(3===e)return n&&o?"".concat(n,"起").concat(o,"天内有效"):""}return""}function ne(t){return t===Oi?Oi:Ei}function re(t){return Fi({repeatType:t.availableRepeatType,repeatValue:t.availableRepeatValue})||"每天"}function oe(t){var i=Di(t.availableMinuteSegments);return i.length&&l.formatMinuteSegments(i)||"全天"}function ue(t){return Bi({daily:t.useLimitDaily,weekly:t.useLimitWeekly,monthly:t.useLimitMonthly})}function se(t){return String(t).replace(/\.00$/,"")}function ce(t){return t.label?"".concat(t.label,":").concat(t.value):t.value}function ae(t,i){var e=[],n=Xi(t);if(n&&e.push({label:"使用门槛",value:n}),ne(i)===Oi){var r=ee(t);return r&&e.push({label:"有效期",value:r}),e}var o=ie(t);return o&&e.push({label:"过期时间",value:o}),e}function le(t){return null!=(i=t.availableRepeatType)&&""!==i&&!Number.isNaN(Number(i))||!P(Di(t.availableRepeatValue))||!P(Di(t.availableMinuteSegments));var i}function he(t){return null!=t.useLimitDaily||null!=t.useLimitWeekly||null!=t.useLimitMonthly}function de(t){var i=String(t).match(/^(.+?)[::](.*)$/);return i&&i[1]&&""!==i[2]?{label:i[1].trim(),value:i[2].trim()}:{label:"",value:String(t)}}function fe(t){var i=me(t);return i===Ii?t.extraLines&&t.extraLines.length>0?t.extraLines.map(de):function(t){var i=[];return le(t)&&(i.push({label:"可用日期",value:re(t)}),i.push({label:"可用时间",value:oe(t)})),he(t)&&i.push({label:"使用限制",value:ue(t)}),i}(t):i===xi&&t.unavailableReason?[{label:"本单不可用原因",value:t.unavailableReason}]:[]}function me(t){if(Wi(t)){var i=!!(t.extraLines&&t.extraLines.length>0),e=le(t)||he(t);return i||e?Ii:Pi}return P(t.unavailableReason)?Pi:xi}function pe(t){return fe(t).map(function(i){return me(t)===xi?i.value:ce(i)})}function ve(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=ne(i.expireDisplay),n=e===Oi?ee(t):ie(t);return{coupon:t,selected:!!i.selected,expanded:!!i.expanded,available:Wi(t),amountPrefix:Ki(t),amountValue:Yi(t),amountSuffix:Qi(t),title:t.title||"",contentLines:ae(t,e).map(ce),thresholdText:Xi(t),expireText:n,expandType:me(t),expandLines:pe(t)}}function _e(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=$i([t],i.formatItem)[0];if(e)return ve(e,{selected:i.selected,expanded:i.expanded,expireDisplay:i.expireDisplay})}var ke=function(){return k(function t(i){_(this,t),y(this,"list",[]),y(this,"expandedIds",[]),y(this,"expandOne",!1),y(this,"onChange",function(){}),this.formatItem=i.formatItem,this.expandOne=!!i.expandOne,this.expireDisplay=i.expireDisplay,this.onChange=i.onChange,i.list&&(this.list=$i(i.list,this.formatItem)),this.selectedId=this._pickValidSelectedId(i.value)},[{key:"setList",value:function(t){var i=this;this.list=$i(t,this.formatItem),this.selectedId=this._pickValidSelectedId(this.selectedId),this.expandedIds=this.expandedIds.filter(function(t){return i._findCoupon(t)}),this._notifyChange()}},{key:"appendList",value:function(t){var i=$i(t,this.formatItem);this.list=$i([].concat(I(this.list),I(i))),this._notifyChange()}},{key:"getView",value:function(){var t=this,i=this._findCoupon(this.selectedId);return{items:this.list.map(function(i){return t._toViewItem(i)}),selectedId:this.selectedId,selectedCoupon:i}}},{key:"select",value:function(t){var i=this._findCoupon(t);if(i){if(!Wi(i))return this._setExpanded(t,!0),void this._notifyChange();this.selectedId=Ui(this.selectedId,t)?void 0:t,this._notifyChange()}}},{key:"toggleExpand",value:function(t){if(this._findCoupon(t)){var i=this._isExpanded(t);this._setExpanded(t,!i),this._notifyChange()}}},{key:"confirm",value:function(){var t=this._findCoupon(this.selectedId);return t&&Wi(t)?{isValid:!0,coupon:t}:{isValid:!1,errMsg:zi}}},{key:"_toViewItem",value:function(t){return ve(t,{selected:Ui(t.id,this.selectedId),expanded:this._isExpanded(t.id),expireDisplay:this.expireDisplay})}},{key:"_findCoupon",value:function(t){if(null!=t)return this.list.find(function(i){return Ui(i.id,t)})}},{key:"_pickValidSelectedId",value:function(t){var i=this._findCoupon(t);if(i&&Wi(i))return i.id}},{key:"_isExpanded",value:function(t){return this.expandedIds.some(function(i){return Ui(i,t)})}},{key:"_setExpanded",value:function(t,i){if(i)return this.expandOne?void(this.expandedIds=[t]):void(this._isExpanded(t)||(this.expandedIds=this.expandedIds.concat(t)));this.expandedIds=this.expandedIds.filter(function(i){return!Ui(i,t)})}},{key:"_notifyChange",value:function(){this.onChange()}}])}();export{vi as COUPON_AVAILABLE_REPEAT_TYPE_DAILY,ki as COUPON_AVAILABLE_REPEAT_TYPE_MONTHLY,_i as COUPON_AVAILABLE_REPEAT_TYPE_WEEKLY,zi as COUPON_CONFIRM_EMPTY_MSG,Ii as COUPON_EXPAND_TYPE_EXTRA,Pi as COUPON_EXPAND_TYPE_NONE,xi as COUPON_EXPAND_TYPE_REASON,Ei as COUPON_EXPIRE_DISPLAY_DEADLINE,Oi as COUPON_EXPIRE_DISPLAY_VALIDITY,pi as COUPON_EXPIRE_END_TYPE_EXTEND,fi as COUPON_EXPIRE_END_TYPE_FOREVER,mi as COUPON_EXPIRE_END_TYPE_FUTURE,di as COUPON_EXPIRE_START_TYPE_FUTURE,hi as COUPON_EXPIRE_START_TYPE_NOW,Si as COUPON_STATUS_CANCELED,bi as COUPON_STATUS_ENABLED,Li as COUPON_STATUS_EXPIRED,Ci as COUPON_STATUS_LOCKED,yi as COUPON_STATUS_PENDING,gi as COUPON_STATUS_USED,ai as COUPON_THRESHOLD_TYPE_AMOUNT,li as COUPON_THRESHOLD_TYPE_COUNT,si as COUPON_TYPE_AMOUNT,ui as COUPON_TYPE_DISCOUNT,ci as COUPON_TYPE_FREIGHT,oi as ChildCustomSelector,ni as ComboSpecSelector,ke as CouponSelector,ri as CustomSpecSelector,O as SpecSelector,It as calculateSelectedComboPrice,tt as calculateSelectedCustomizationPrice,Ot as checkComboGroupItemCanPlusCount,At as checkComboGroupItemIsCanChangeSelectCheckbox,Mt as checkComboItemIsFixedSelect,Vt as checkComboItemIsUseSelectCheckbox,jt as checkComboItemIsUseSelectCount,Dt as checkComboItemIsUseSelectSkuDialog,lt as checkCustomizationItemCanPlusCount,dt as checkCustomizationItemIsDisabledSelected,ht as checkCustomizationItemIsFixedSelected,at as checkCustomizationItemIsUseSelectCount,st as checkCustomizationItemList,et as checkCustomizationItemListEqual,Ft as checkGroupCanMinusCount,Gt as checkHasChildren,qt as checkIsFixedSelectNeedSelectSku,Bt as checkIsUseSelectSkuBtn,Rt as checkItemCanMinusCount,wt as checkItemCanPlusCount,U as checkProductOnSale,Pt as checkSkuComboItemListEqual,J as checkUseReducePlusBtn,ft as findCustomizationSkuCartItem,K as findProductCartList,Fi as formatAvailableRepeatDateText,qi as formatAvailableRepeatText,Ht as formatComboGroupItemSelectTips,xt as formatComboPrice,Tt as formatComboSkuAndCustomizationName,ct as formatCountTypeUnit,Ki as formatCouponAmountPrefix,Qi as formatCouponAmountSuffix,Yi as formatCouponAmountValue,re as formatCouponAvailableDateText,oe as formatCouponAvailableTimeText,ie as formatCouponExpireText,ce as formatCouponKvText,$i as formatCouponList,Xi as formatCouponThreshold,ue as formatCouponUseLimitText,ee as formatCouponValidityText,ve as formatCouponViewItem,gt as formatCustomizationCountType,pt as formatCustomizationGroupItemSelectTips,nt as formatCustomizationGroupList,Lt as formatCustomizationInfo,it as formatCustomizationPrice,Nt as formatIncreaseSalePrice,rt as formatInitCustomizationItemList,H as formatPriceRange,B as formatProductBuyText,G as formatProductComboChildrenSkuList,j as formatProductSku,D as formatProductSkuList,T as formatProductSpecGroupList,W as formatProductStatus,Wt as formatSelectSkuComboItemList,ot as formatSelectedCustomizationItemList,Et as formatSkuComboItemList,zt as formatSkuComboItemName,N as formatSkuListAfter,Y as formatSkuListStockCount,bt as formatSkuNameWithCustomization,$ as formatSkuPrice,V as formatSkuWithPromotionActivitySaleInfoItem,w as formatSpecList,R as formatSpecObj,Bi as formatUseLimitText,Q as formatWithExternalSku,Yt as generateCartSkuComboItemList,mt as genereateCartProductCustomizationItemList,q as getActivitySpecList,ae as getCouponContentLines,fe as getCouponExpandKvLines,pe as getCouponExpandLines,me as getCouponExpandType,Ut as getSkuComboItemGroup,F as getSpecImage,St as getSubmitComboItemList,Ct as getSubmitComboItemListArr,X as getSubmitCustomizationItemList,Z as getSubmitCustomizationItemListArr,Zt as handleComboGroupItemChildChange,ii as handleComboGroupItemComboSkuChange,ti as handleComboGroupItemSelected,Xt as handleComboItemCountChange,_t as handleCustomizationGroupItemCountChange,vt as handleCustomizationGroupItemSelectedChange,kt as handleCustomizationItemCountChange,yt as handleCustomizationItemToggleSelected,Kt as handleSelectComboSkuSubmit,le as hasCouponAvailableRepeat,he as hasCouponUseLimit,Hi as isCouponDiscountBenefit,Ji as isCouponStatusExpired,ji as isFullDayMinuteSegment,Ui as isSameCouponId,de as parseCouponKvLine,Di as parseCouponNumberList,Jt as reconstructComboGroupList,ut as reconstructCustomizationItemList,Wi as resolveCouponAvailable,Qt as setComboItemCountChange,ei as setToggleComboItemSelecte,_e as toCouponViewItem,$t as validateComboGroupList};
|
|
2
2
|
//# sourceMappingURL=hive-biz.esm.js.map
|