PageSourceSearch

https://www.citiesocial.com/cdn/shop/t/18/assets/you-may-also-like…?v=112433948460129141571789116621

js citiesocial.com collected 2026-09-24 17:39:40 UTC 18,585 bytes, 2 lines download raw bytes

1/*! For license information please see you-may-also-like-app.bundle.js.LICENSE.txt */
2"use strict";(self.webpackChunkcitiesocial_theme=self.webpackChunkcitiesocial_theme||[]).push([[134],{8152:(n,e,t)=>{t.d(e,{A:()=>l}),t(34782),t(67945),t(52811);var r,o,i,a=t(92568);function c(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}const l={showOnlyXLinesOfText:function(n){return(0,a.AH)(r||(r=c(["\n      display: -webkit-box;\n      -webkit-line-clamp: ",";\n      -webkit-box-orient: vertical;\n      overflow: hidden;\n      line-break: anywhere;\n    "])),n)},skeletonBackground:function(){return(0,a.AH)(o||(o=c(["\n      animation-duration: 1s;\n      animation-fill-mode: forwards;\n      animation-iteration-count: infinite;\n      animation-name: skeletonShine;\n      animation-timing-function: linear;\n      background: #e5e5e5;\n      background-image: linear-gradient(\n        to right,\n        #e5e5e5 0%,\n        #f1f2f3 20%,\n        #e5e5e5 40%,\n        #e5e5e5 100%\n      );\n      background-repeat: no-repeat;\n      background-size: 800px auto;\n    "])))},hideScrollbar:function(){return(0,a.AH)(i||(i=c(["\n      scrollbar-width: none; /* 隱藏 Firefox 中的滾動條 */\n      -ms-overflow-style: none; /* 隱藏 IE 和 Edge 中的滾動條 */\n      ::-webkit-scrollbar {\n        display: none; /* 隱藏 Chrome, Safari 中的滾動條 */\n      }\n    "])))}}},14688:(n,e,t)=>{t.d(e,{A:()=>r});const r={getCurrency:function(n){return"number"!=typeof n?"":"NT$ ".concat(n.toLocaleString(void 0,{style:"decimal"}))}}},18068:(n,e,t)=>{t.d(e,{A:()=>o,I:()=>r});var r={phone:480,tablet:768,tabletLandscape:992,desktop:1200};const o={phone:"(min-width: ".concat(r.phone,"px)"),tablet:"(min-width: ".concat(r.tablet,"px)"),tabletLandscape:"(min-width: ".concat(r.tabletLandscape,"px)"),desktop:"(min-width:".concat(r.desktop,"px)")}},62532:(n,e,t)=>{t.d(e,{A:()=>S}),t(52675),t(89463),t(2259),t(23792),t(34782),t(23288),t(62010),t(67945),t(52811),t(27495),t(38781),t(62953),t(51629),t(23418),t(25276),t(64346),t(62062),t(26099),t(47764),t(23500);var r,o,i,a,c,l,u=t(96540),d=t(92568),s=t(49594),p=t(5556),f=t.n(p),m=t(85037),g=t(91521),y=t(8152),h=t(18068);function b(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}function v(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=Array(e);t<e;t++)r[t]=n[t];return r}function x(n){var e,t,r=n.title,o=n.data,i=void 0===o?[]:o,a=n.refLabel,c=n.mode,l=void 0===c?"grid":c,d=n.className,s=(e=(0,u.useState)(!1),t=2,function(n){if(Array.isArray(n))return n}(e)||function(n,e){var t=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null!=t){var r,o,i,a,c=[],l=!0,u=!1;try{if(i=(t=t.call(n)).next,0===e){if(Object(t)!==t)return;l=!1}else for(;!(l=(r=i.call(t)).done)&&(c.push(r.value),c.length!==e);l=!0);}catch(n){u=!0,o=n}finally{try{if(!l&&null!=t.return&&(a=t.return(),Object(a)!==a))return}finally{if(u)throw o}}return c}}(e,t)||function(n,e){if(n){if("string"==typeof n)return v(n,e);var t={}.toString.call(n).slice(8,-1);return"Object"===t&&n.constructor&&(t=n.constructor.name),"Map"===t||"Set"===t?Array.from(n):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?v(n,e):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),p=s[0],f=s[1],m=(0,u.useCallback)(function(n){var e,t=n.currentTarget.querySelector(".product-card__title").innerText;if("grid"===l){var o=document.querySelector(".grid-product-list");e=o&&o.children?Array.from(o.children).indexOf(n.currentTarget)+1:void 0}window.segmentTracking.discoverMoreGoodStuffClicked({title:r,productTitle:t,index:e})},[r]);return(0,u.useEffect)(function(){if(i.length&&(Citiesocial.favoriteManager.start(),document.querySelectorAll(".full-product-list .product-card").forEach(function(n){n.removeEventListener("click",m),n.addEventListener("click",m)}
2),!p)){var n=Citiesocial.utils.throttle(function(){var e=$(".full-product-list").offset().top;$(document).scrollTop()+$(window).height()>e+350&&(window.segmentTracking.discoverMoreGoodStuffViewed({title:r}),$(document).off("scroll",n),f(!0))},200);$(document).on("scroll",n)}},[i]),u.createElement(A,{className:"full-product-list ".concat(d||""),"data-title":r},u.createElement(_,{className:"full-product-list__title"},r),"masonry"===l?u.createElement(O,null,u.createElement(j,{breakpointCols:{default:6,1200:6,992:4,767:2},columnClassName:"product-masonry-grid__column"},null==i?void 0:i.map(function(n){return u.createElement(w,{key:n.id,product:n,refLabel:a,mode:l})}))):u.createElement("div",{className:"grid-product-list"},null==i?void 0:i.map(function(n){return u.createElement(w,{key:n.id,product:n,refLabel:a})})))}x.propTypes={title:f().string.isRequired,data:g.A.products().isRequired,refLabel:f().string.isRequired,mode:f().oneOf(["grid","masonry"]).isRequired,className:f().string};var w=(0,d.Ay)(m.A)(r||(r=b(["\n  margin-bottom: 8px;\n  border-radius: 4px;\n  background-color: #fff;\n  overflow: hidden;\n\n  .product-card__brand {\n    padding: 12px 12px 4px;\n  }\n\n  .product-card__content {\n    padding: 0 12px 12px;\n\n    .product-card__title {\n      color: #111;\n      font-size: 13px;\n      line-height: 18px;\n      font-weight: normal;\n      ","\n      height: 36px;\n\n      ","\n    }\n  }\n\n  @media "," {\n    border-radius: 0;\n\n    .product-card__title {\n      font-size: 14px;\n      font-weight: 600;\n      font-stretch: normal;\n      font-style: normal;\n      line-height: 20px;\n      letter-spacing: normal;\n      color: #3c3c3c;\n      height: 40px;\n    }\n\n    .product-card__brand {\n      padding: 0;\n      margin-top: 8px;\n      margin-bottom: 4px;\n      font-size: 14px;\n      font-weight: 400;\n      font-stretch: normal;\n      font-style: normal;\n      line-height: 20px;\n      letter-spacing: normal;\n      color: #00000080;\n    }\n\n    .product-card__content {\n      padding: 0;\n      margin-bottom: 16px;\n\n      div {\n        gap: 6px;\n      }\n\n      p {\n        font-size: 14px;\n        font-weight: 700;\n        color: #3c3c3c;\n      }\n\n      del {\n        line-height: 18px;\n        font-size: 13px;\n        color: #0000004d;\n      }\n    }\n  }\n"])),y.A.showOnlyXLinesOfText(2),function(n){return"masonry"===n.mode&&(0,d.AH)(o||(o=b(["\n          ","\n          height: unset;\n        "])),y.A.showOnlyXLinesOfText(3))},h.A.tablet),A=d.Ay.div(i||(i=b(["\n  background-color: #f4f4f4;\n  padding: 32px 0;\n\n  .grid-product-list {\n    padding: 0 8px;\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 8px;\n\n    "," {\n      margin-bottom: 0;\n      margin-right: 0;\n    }\n  }\n\n  @media "," {\n    padding: 0;\n    background-color: transparent;\n\n    .grid-product-list {\n      padding: 0;\n      grid-template-columns: repeat(4, 1fr);\n      gap: 12px;\n    }\n  }\n\n  @media "," {\n    .grid-product-list {\n      grid-template-columns: repeat(6, 1fr);\n    }\n  }\n"])),w,h.A.tablet,h.A.tabletLandscape),_=d.Ay.h4(a||(a=b(["\n  padding: 0 16px;\n  font-size: 20px;\n  line-height: 28px;\n  font-weight: 600;\n  margin-bottom: 16px;\n\n  @media "," {\n    padding: 0;\n    font-size: 22px;\n    margin-bottom: 8px;\n  }\n"])),h.A.tablet),O=d.Ay.div(c||(c=b(["\n  padding: 0 8px;\n\n  @media "," {\n    padding: 0;\n  }\n"])),h.A.tablet),j=(0,d.Ay)(s.A)(l||(l=b(["\n  display: flex;\n  margin-left: -7px; /* gutter size offset */\n\n  .product-masonry-grid__column {\n    padding-left: 7px; /* gutter size */\n  }\n\n  @media "," {\n    margin-left: -12px; /* gutter size offset */\n\n    .product-masonry-grid__column {\n      padding-left: 12px; /* gutter size */\n    }\n  }\n"])),h.A.tablet);const S=u.memo(x)},85037:(n,e,t)=>{t.d(e,{A:()=>k}),t(34782),t(67945),t(52811),t(28706);var r,o,i,a,c,l,u,d,s=t(96540),p=t(92568),f=t(5556),m=t.n(f),g=t(14688),y=t(91521);function h(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}function b(n){var e=n.product,t=n.className,r=void 0===t?"":t,o=n.refLabel,i=void 0===o?"":o,a=e.id,c=e.title,l=e.brand,u=e.handle,d=e.cover_image_url,p=e.compare_at_price,f=e.price,m=g.A.getCurrency,y="https://www.citiesocial.com/products/".concat(u,"?").concat(i?"ref=".concat(i):"");return s.createElement(v,{className:"product-card ".concat(r)},s.createElement(x,{href:y,className:"product-card__image"},s.createElement(w,{src:d,alt:c}),s.createElement("div",{className:"favorite__heart","data-product-id":a,"data-product-title":c},s.createElement("i",{className:"cs_icon icon-heart-solid"}),s.createElement("i",{className:"cs_icon icon-heart-outline"}))),s.createElement(A,{className:"product-card__brand",href:"/pages/in-house-search-results-page?type=brand&q=".concat(encodeURIComponent(l))},l),s.createElement(x,{href:y,className:"product-card__content"},s.createElement(_,{className:"product-card__title"},c),s.createElement(O,null,s.createElement(j,null,m(f)),s.createElement(S,null,m(p)))))}b.propTypes={product:y.A.product().isRequired,className:m().string,refLabel:m().string};var v=p.Ay.div(r||(r=h(["\n  display: flex;\n  flex-direction: column;\n  flex: none;\n  width: 100%;\n\n  .favorite__heart {\n    right: 12px !important;\n    bottom: 12px !important;\n  }\n"]))),x=p.Ay.a(o||(o=h(["\n  &:hover,\n  &:focus {\n    color: #111;\n  }\n"]))),w=p.Ay.img(i||(i=h([""]))),A=p.Ay.a(a||(a=h(["\n  font-size: 13px;\n  line-height: 18px;\n  font-weight: 600;\n  padding: 8px 0 4px;\n\n  &:hover,\n  &:focus {\n    color: #111;\n  }\n"]))),_=p.Ay.h6(c||(c=h(["\n  margin: 0 0 8px;\n"]))),O=p.Ay.div(l||(l=h(["\n  display: flex;\n  align-items: center;\n  gap: 8px;\n  justify-content: flex-start;
2\n"]))),j=p.Ay.p(u||(u=h(["\n  font-size: 13px;\n  line-height: 18px;\n  font-family: Outfit;\n  font-weight: 600;\n  margin: 0;\n"]))),S=p.Ay.del(d||(d=h(["\n  font-size: 12px;\n  line-height: 18px;\n  color: #a0a0a0;\n  font-family: Outfit;\n"])));const k=b},91521:(n,e,t)=>{t.d(e,{A:()=>a});var r=t(5556),o=t.n(r),i={AddToCartModalInfo:function(){return o().shape({selectedImageIndex:o().number,selectedVariantId:o().string,quantity:o().number,selectedShippingMethod:o().shape({shipping_method_title:o().string,shipping_method_type:o().string}),addToCartModal:o().shape({isAddToCartButtonLoading:o().bool,isAddToCartModalOpen:o().bool,type:o().string}),data:i.product()})},product:function(){return o().shape({title:o().string,brand:o().string,handle:o().string,cover_image_url:o().string,compare_at_price:o().number,price:o().number})},products:function(){return o().arrayOf(this.product())}};const a=i},94787:(n,e,t)=>{var r,o,i=t(96540),a=t(5338),c=(t(52675),t(89463),t(2259),t(45700),t(2008),t(51629),t(23418),t(34782),t(89572),t(94170),t(62010),t(2892),t(59904),t(67945),t(84185),t(52811),t(83851),t(81278),t(40875),t(79432),t(10287),t(27495),t(23500),t(28706),t(64346),t(23792),t(62062),t(23288),t(26099),t(3362),t(38781),t(47764),t(62953),t(48408),t(92568)),l=(t(49594),t(67310)),u=t(62532),d=(t(85037),t(18068));function s(n){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},s(n)}function p(n,e){return e||(e=n.slice(0)),Object.freeze(Object.defineProperties(n,{raw:{value:Object.freeze(e)}}))}function f(){var n,e,t="function"==typeof Symbol?Symbol:{},r=t.iterator||"@@iterator",o=t.toStringTag||"@@toStringTag";function i(t,r,o,i){var l=r&&r.prototype instanceof c?r:c,u=Object.create(l.prototype);return m(u,"_invoke",function(t,r,o){var i,c,l,u=0,d=o||[],s=!1,p={p:0,n:0,v:n,a:f,f:f.bind(n,4),d:function(e,t){return i=e,c=0,l=n,p.n=t,a}};function f(t,r){for(c=t,l=r,e=0;!s&&u&&!o&&e<d.length;e++){var o,i=d[e],f=p.p,m=i[2];t>3?(o=m===r)&&(l=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=n):i[0]<=f&&((o=t<2&&f<i[1])?(c=0,p.v=r,p.n=i[1]):f<m&&(o=t<3||i[0]>r||r>m)&&(i[4]=t,i[5]=r,p.n=m,c=0))}if(o||t>1)return a;throw s=!0,r}return function(o,d,m){if(u>1)throw TypeError("Generator is already running");for(s&&1===d&&f(d,m),c=d,l=m;(e=c<2?n:l)||!s;){i||(c?c<3?(c>1&&(p.n=-1),f(c,l)):p.n=l:p.v=l);try{if(u=2,i){if(c||(o="next"),e=i[o]){if(!(e=e.call(i,l)))throw TypeError("iterator result is not an object");if(!e.done)return e;l=e.value,c<2&&(c=0)}else 1===c&&(e=i.return)&&e.call(i),c<2&&(l=TypeError("The iterator does not provide a '"+o+"' method"),c=1);i=n}else if((e=(s=p.n<0)?l:t.call(r,p))!==a)break}catch(e){i=n,c=1,l=e}finally{u=1}}return{value:e,done:s}}}(t,o,i),!0),u}var a={};function c(){}function l(){}function u(){}e=Object.getPrototypeOf;var d=[][r]?e(e([][r]())):(m(e={},r,function(){return this}),e),s=u.prototype=c.prototype=Object.create(d);function p(n){return Object.setPrototypeOf?Object.setPrototypeOf(n,u):(n.__proto__=u,m(n,o,"GeneratorFunction")),n.prototype=Object.create(s),n}return l.prototype=u,m(s,"constructor",u),m(u,"constructor",l),l.displayName="GeneratorFunction",m(u,o,"GeneratorFunction"),m(s),m(s,o,"Generator"),m(s,r,function(){return this}),m(s,"toString",function(){return"[object Generator]"}),(f=function(){return{w:i,m:p}})()}function m(n,e,t,r){var o=Object.defineProperty;try{o({},"",{})}catch(n){o=0}m=function(n,e,t,r){if(e)o?o(n,e,{value:t,enumerable:!r,configurable:!r,writable:!r}):n[e]=t;else{var i=function(e,t){m(n,e,function(n){return this._invoke(e,t,n)})};i("next",0),i("throw",1),i("return",2)}},m(n,e,t,r)}function g(n){return function(n){if(Array.isArray(n))return A(n)}(n)||function(n){if("undefined"!=typeof Symbol&&null!=n[Symbol.iterator]||null!=n["@@iterator"])return Array.from(n)}(n)||w(n)||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 y(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})),t.push.apply(t,r)}return t}function h(n){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{};
2e%2?y(Object(t),!0).forEach(function(e){b(n,e,t[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):y(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))})}return n}function b(n,e,t){return(e=function(n){var e=function(n){if("object"!=s(n)||!n)return n;var e=n[Symbol.toPrimitive];if(void 0!==e){var t=e.call(n,"string");if("object"!=s(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(n)}(n);return"symbol"==s(e)?e:e+""}(e))in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function v(n,e,t,r,o,i,a){try{var c=n[i](a),l=c.value}catch(n){return void t(n)}c.done?e(l):Promise.resolve(l).then(r,o)}function x(n,e){return function(n){if(Array.isArray(n))return n}(n)||function(n,e){var t=null==n?null:"undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"];if(null!=t){var r,o,i,a,c=[],l=!0,u=!1;try{if(i=(t=t.call(n)).next,0===e){if(Object(t)!==t)return;l=!1}else for(;!(l=(r=i.call(t)).done)&&(c.push(r.value),c.length!==e);l=!0);}catch(n){u=!0,o=n}finally{try{if(!l&&null!=t.return&&(a=t.return(),Object(a)!==a))return}finally{if(u)throw o}}return c}}(n,e)||w(n,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(n,e){if(n){if("string"==typeof n)return A(n,e);var t={}.toString.call(n).slice(8,-1);return"Object"===t&&n.constructor&&(t=n.constructor.name),"Map"===t||"Set"===t?Array.from(n):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?A(n,e):void 0}}function A(n,e){(null==e||e>n.length)&&(e=n.length);for(var t=0,r=Array(e);t<e;t++)r[t]=n[t];return r}t(8152);var _={accept:"application/json",authorization:"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjaXRpZXNvY2lhbCJ9.pfSdylKmo4z7O6i2Wd_LSQz5bEXSAiY7JaHqcTdPjTI"},O=c.Ay.div(r||(r=p([""]))),j=(0,c.Ay)(u.A)(o||(o=p(["\n  padding-top: 40px;\n  margin: 0px auto;\n  color: #333333;\n\n  @media "," {\n    padding-top: 32px;\n    width: 750px;\n\n    .full-product-list__title {\n      display: block;\n      font-size: 26px;\n      line-height: 32px;\n      margin-bottom: 20px;\n    }\n  }\n\n  @media "," {\n    width: 990px;\n  }\n\n  @media "," {\n    width: 1200px;\n  }\n"])),d.A.tablet,d.A.tabletLandscape,d.A.desktop);const S=function(){var n=x((0,i.useState)([]),2),e=n[0],t=n[1],r=x((0,i.useState)({}),2),o=r[0],a=r[1],c=function(){var n,e=(n=f().m(function n(){var e,r,o,i,c,l,u,d,s,p=arguments;return f().w(function(n){for(;;)switch(n.n){case 0:return r=(e=p.length>0&&void 0!==p[0]?p[0]:{}).page,o=e.customerId,i=e.anonymousId,c=new URLSearchParams,r&&c.append("page",r),o&&c.append("customer_id",o),i&&c.append("anonymous_id",i),n.p=1,n.n=2,fetch("".concat("https://api.fwitapp.com/api/v1","/discover_more?").concat(c.toString()),{method:"GET",headers:_});case 2:if((l=n.v).ok){n.n=3;break}throw new Error("API error: ".concat(l.status));case 3:return n.n=4,l.json();case 4:u=n.v,d=u.data.map(function(n){return h(h({},n),{},{id:n.shopify_id})})||[],t(function(n){return[].concat(g(n),g(d))}),a(u.pagination||{}),document.querySelector(".you-may-also-like-spinner-container").style.display="none",n.n=6;break;case 5:n.p=5,s=n.v,console.error("Error fetching data:",s);case 6:return n.a(2)}},n,null,[[1,5]])}),function(){var e=this,t=arguments;return new Promise(function(r,o){var i=n.apply(e,t);function a(n){v(i,r,o,a,c,"next",n)}function c(n){v(i,r,o,a,c,"throw",n)}a(void 0)})});return function(){return e.apply(this,arguments)}}();return(0,i.useEffect)(function(){var n,e=(null===(n=Citiesocial.userManager.getCustomer())||void 0===n?void 0:n.id.toString())||"",t=Citiesocial.userManager.getSegmentAnonymousId()||"";c({page:1,customerId:e,anonymousId:t})},[]),i.createElement(O,null,i.createElement(l.A,{dataLength:e.length,hasMore:o.has_next,next:function(){return c({page:(o.page||1)+1})},scrollThreshold:"600px"},i.createElement(j,{title:"你可能會喜歡",data:e,refLabel:"you-may-als
2o-like",mode:"masonry"})))};(0,a.H)(document.getElementById("you-may-also-like-app")).render(i.createElement(S,null))}},n=>{n.O(0,[967,438],()=>n(n.s=94787)),n.O()}]);

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